From 5f8481b0754fb4188277ecea8e306a53e74707eb Mon Sep 17 00:00:00 2001 From: julianleonard123 Date: Wed, 30 Apr 2025 16:40:33 +0200 Subject: [PATCH 1/5] Exclude protobuf-java as transitive dependency of grpc-protobuf, since we explicitly pull in a specific version on the next line anyway. This will allow for more clarity on what version will be used and avoid conflicts highlighted by tools like enforcer: org.apache.maven.enforcer.rules.dependency.DependencyConvergence --- build.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index f9fc361b..c7f82f57 100644 --- a/build.gradle +++ b/build.gradle @@ -96,7 +96,9 @@ sourceSets { main { }} dependencies { - implementation "io.grpc:grpc-protobuf:${grpcVersion}" + implementation("io.grpc:grpc-protobuf:${grpcVersion}") { + exclude group: 'com.google.protobuf', module: 'protobuf-java' + } implementation "com.google.protobuf:protobuf-java:${protocVersion}" implementation "io.grpc:grpc-stub:${grpcVersion}" runtimeOnly "io.grpc:grpc-netty-shaded:${grpcVersion}" From af6465cfc9157260f3cfd664b077da133898288b Mon Sep 17 00:00:00 2001 From: julianleonard123 Date: Wed, 30 Apr 2025 16:43:36 +0200 Subject: [PATCH 2/5] Change the protobuf-java dependency scope to be api, so that it is included transitively in compile scope for our maven consumers. This makes the client library easier to use and avoids the end users having to include the protobuf-java dependency themselves. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index c7f82f57..4d4118e5 100644 --- a/build.gradle +++ b/build.gradle @@ -99,7 +99,7 @@ dependencies { implementation("io.grpc:grpc-protobuf:${grpcVersion}") { exclude group: 'com.google.protobuf', module: 'protobuf-java' } - implementation "com.google.protobuf:protobuf-java:${protocVersion}" + api "com.google.protobuf:protobuf-java:${protocVersion}" implementation "io.grpc:grpc-stub:${grpcVersion}" runtimeOnly "io.grpc:grpc-netty-shaded:${grpcVersion}" compileOnly "org.apache.tomcat:annotations-api:6.0.53" From 27e83cf9dd90d6cb81facf4384de06ddd79e4026 Mon Sep 17 00:00:00 2001 From: julianleonard123 Date: Thu, 1 May 2025 14:44:49 +0200 Subject: [PATCH 3/5] Update the example code, which hasn't been compilable since the changes introduced here: https://github.com/authzed/authzed-java/releases/tag/0.8.0 --- examples/v1/App.java | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/examples/v1/App.java b/examples/v1/App.java index cded0191..64e075e0 100644 --- a/examples/v1/App.java +++ b/examples/v1/App.java @@ -7,23 +7,24 @@ import java.util.logging.Level; import java.util.logging.Logger; -import com.authzed.api.v1.Core; -import com.authzed.api.v1.Core.ObjectReference; -import com.authzed.api.v1.Core.Relationship; -import com.authzed.api.v1.Core.SubjectReference; -import com.authzed.api.v1.Core.ZedToken; -import com.authzed.api.v1.PermissionService; -import com.authzed.api.v1.PermissionService.CheckPermissionRequest; -import com.authzed.api.v1.PermissionService.Consistency; -import com.authzed.api.v1.PermissionService.CheckPermissionResponse.Permissionship; +import com.authzed.api.v1.CheckPermissionRequest; +import com.authzed.api.v1.CheckPermissionResponse; +import com.authzed.api.v1.CheckPermissionResponse.Permissionship; +import com.authzed.api.v1.Consistency; +import com.authzed.api.v1.ObjectReference; import com.authzed.api.v1.PermissionsServiceGrpc; +import com.authzed.api.v1.ReadSchemaRequest; +import com.authzed.api.v1.ReadSchemaResponse; +import com.authzed.api.v1.Relationship; +import com.authzed.api.v1.RelationshipUpdate; import com.authzed.api.v1.SchemaServiceGrpc; -import com.authzed.api.v1.SchemaServiceOuterClass.ReadSchemaRequest; -import com.authzed.api.v1.SchemaServiceOuterClass.ReadSchemaResponse; -import com.authzed.api.v1.SchemaServiceOuterClass.WriteSchemaRequest; -import com.authzed.api.v1.SchemaServiceOuterClass.WriteSchemaResponse; +import com.authzed.api.v1.SubjectReference; +import com.authzed.api.v1.WriteRelationshipsRequest; +import com.authzed.api.v1.WriteRelationshipsResponse; +import com.authzed.api.v1.WriteSchemaRequest; +import com.authzed.api.v1.WriteSchemaResponse; +import com.authzed.api.v1.ZedToken; import com.authzed.grpcutil.BearerToken; - import io.grpc.Channel; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; @@ -124,10 +125,10 @@ public String readSchema() { public String writeRelationship() { logger.info("Write relationship..."); - PermissionService.WriteRelationshipsRequest request = PermissionService.WriteRelationshipsRequest.newBuilder() + WriteRelationshipsRequest request = WriteRelationshipsRequest.newBuilder() .addUpdates( - com.authzed.api.v1.Core.RelationshipUpdate.newBuilder() - .setOperation(Core.RelationshipUpdate.Operation.OPERATION_CREATE) + RelationshipUpdate.newBuilder() + .setOperation(RelationshipUpdate.Operation.OPERATION_CREATE) .setRelationship( Relationship.newBuilder() .setResource( @@ -148,7 +149,7 @@ public String writeRelationship() { .build()) .build(); - PermissionService.WriteRelationshipsResponse response; + WriteRelationshipsResponse response; try { response = permissionsService.writeRelationships(request); } catch (Exception e) { @@ -162,7 +163,7 @@ public String writeRelationship() { public Permissionship check(ZedToken zedToken) { logger.info("Checking..."); - PermissionService.CheckPermissionRequest request = CheckPermissionRequest.newBuilder() + CheckPermissionRequest request = CheckPermissionRequest.newBuilder() .setConsistency( Consistency.newBuilder() .setAtLeastAsFresh(zedToken) @@ -183,12 +184,12 @@ public Permissionship check(ZedToken zedToken) { .setPermission("can_comment") .build(); - PermissionService.CheckPermissionResponse response; + CheckPermissionResponse response; try { response = permissionsService.checkPermission(request); } catch (Exception e) { logger.log(Level.WARNING, "RPC failed: {0}", e.getMessage()); - return ""; + return null; } logger.info("Response: " + response.toString()); return response.getPermissionship(); From 1036f9631fb3c2f7774c9674813893e265fb9bfc Mon Sep 17 00:00:00 2001 From: julianleonard123 Date: Thu, 1 May 2025 15:21:17 +0200 Subject: [PATCH 4/5] Update versions of io.grpc dependencies to match what's in gradle config. Also change from importing grpc-protobuf to grpc-api since our sample code depends directly on classes in grpc-api (e.g. ManagedChannel), not on protobuf. --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a07bc8d4..8ebe24fc 100644 --- a/README.md +++ b/README.md @@ -55,13 +55,13 @@ Most commonly, if you are using [Maven] you can add the following to your pom.xm io.grpc - grpc-protobuf - 1.66.0 + grpc-api + 1.71.0 io.grpc grpc-stub - 1.66.0 + 1.71.0 ``` @@ -71,8 +71,8 @@ If you are using [Gradle] then add the following to your `build.gradle` file: ```groovy dependencies { implementation "com.authzed.api:authzed:v1.0.0" - implementation 'io.grpc:grpc-protobuf:1.66.0' - implementation 'io.grpc:grpc-stub:1.66.0' + implementation 'io.grpc:grpc-api:1.71.0' + implementation 'io.grpc:grpc-stub:1.71.0' } ``` From 0601d3a2acde4dadd4af1bdc973bf7d9dd4ff038 Mon Sep 17 00:00:00 2001 From: julianleonard123 Date: Thu, 1 May 2025 15:27:49 +0200 Subject: [PATCH 5/5] Update versions to latest picked up by dependabot. --- README.md | 8 ++++---- build.gradle | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8ebe24fc..64a943e6 100644 --- a/README.md +++ b/README.md @@ -56,12 +56,12 @@ Most commonly, if you are using [Maven] you can add the following to your pom.xm io.grpc grpc-api - 1.71.0 + 1.72.0 io.grpc grpc-stub - 1.71.0 + 1.72.0 ``` @@ -71,8 +71,8 @@ If you are using [Gradle] then add the following to your `build.gradle` file: ```groovy dependencies { implementation "com.authzed.api:authzed:v1.0.0" - implementation 'io.grpc:grpc-api:1.71.0' - implementation 'io.grpc:grpc-stub:1.71.0' + implementation 'io.grpc:grpc-api:1.72.0' + implementation 'io.grpc:grpc-stub:1.72.0' } ``` diff --git a/build.gradle b/build.gradle index 4d4118e5..2e572a06 100644 --- a/build.gradle +++ b/build.gradle @@ -83,7 +83,7 @@ tasks.sourcesJar { // All it does is complain about generated code. javadoc { options.addStringOption('Xdoclint:none', '-quiet') } -def grpcVersion = "1.71.0" +def grpcVersion = "1.72.0" def protocVersion = "4.30.2" def authzedProtoCommit = "v1.41.0" def bufDir = "${buildDir}/buf"