Skip to content

feat(sdk): use connect-rpc for GRPC #244

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 49 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 36 commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
de08f2e
maybe update dependencies
mkleene Mar 24, 2025
0787338
here we go
mkleene Mar 26, 2025
96c52b1
get `KasClient` compiling
mkleene Mar 27, 2025
32a5094
just saving
mkleene Apr 2, 2025
979f179
Merge remote-tracking branch 'origin/main' into feature/connect-rpc
mkleene Apr 8, 2025
218dca5
just saving
mkleene Apr 9, 2025
1a8b00a
Merge remote-tracking branch 'origin/main' into feature/connect-rpc
mkleene Apr 10, 2025
ab13ca9
trying to get things working
mkleene Apr 17, 2025
86a57f4
get tests working
mkleene Apr 21, 2025
cbe8f7b
move file
mkleene Apr 21, 2025
65ac48d
address normalization
mkleene Apr 21, 2025
437ea20
fix test defaults
mkleene Apr 21, 2025
b1e3b28
still need that
mkleene Apr 21, 2025
81face1
Merge remote-tracking branch 'origin/main' into feature/connect-rpc
mkleene Apr 21, 2025
4a09aeb
propogate plaintext setting
mkleene Apr 21, 2025
fc81bf1
disable to see if tests work
mkleene Apr 21, 2025
20a10b3
do not document generated code
mkleene Apr 21, 2025
531a019
update examples
mkleene Apr 21, 2025
499c02f
use variable
mkleene Apr 21, 2025
cb472ef
Update AutoconfigureTest.java
mkleene Apr 21, 2025
4ef5636
normalize the platform endpoint
mkleene Apr 21, 2025
37da315
change address normalization logic
mkleene Apr 21, 2025
a9a8c9d
show a more intentional message
mkleene Apr 21, 2025
503e9dd
consolidate factory method
mkleene Apr 21, 2025
f33efd7
rename
mkleene Apr 21, 2025
a69f795
use the API right
mkleene Apr 21, 2025
7e13a5f
comment
mkleene Apr 22, 2025
78442f2
cleanup
mkleene Apr 22, 2025
bc3d212
cleanup
mkleene Apr 22, 2025
931a64f
cleanup
mkleene Apr 22, 2025
c4e34af
cleanup
mkleene Apr 23, 2025
5da6224
cleanup
mkleene Apr 23, 2025
cc28646
cleanup
mkleene Apr 23, 2025
b783e50
get autocloseable working again
mkleene Apr 28, 2025
527f710
sonar
mkleene Apr 28, 2025
fa26a9c
sonar cloud
mkleene Apr 28, 2025
60f9a04
Delete keys/kas-cert.pem
mkleene Apr 28, 2025
bf84445
Merge remote-tracking branch 'origin/main' into feature/connect-rpc
mkleene Apr 28, 2025
744230f
Merge remote-tracking branch 'origin/feature/connect-rpc' into featur…
mkleene Apr 28, 2025
c64d166
sonar
mkleene Apr 28, 2025
33e8925
more sonar
mkleene Apr 28, 2025
f08f375
Merge remote-tracking branch 'origin/main' into feature/connect-rpc
mkleene Apr 28, 2025
bb69d45
log some more info
mkleene Apr 30, 2025
e679d36
also do it here
mkleene Apr 30, 2025
3675291
fix error handling
mkleene Apr 30, 2025
6ebae76
clarity
mkleene Apr 30, 2025
d7940c4
better comment
mkleene Apr 30, 2025
1200d46
sonar
mkleene Apr 30, 2025
347a995
even more sonar
mkleene Apr 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 0 additions & 14 deletions examples/buf.gen.yaml

This file was deleted.

18 changes: 0 additions & 18 deletions examples/buf.lock

This file was deleted.

22 changes: 0 additions & 22 deletions examples/buf.yaml

This file was deleted.

53 changes: 0 additions & 53 deletions examples/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -125,59 +125,6 @@
<mainClass>io.opentdf.platform.App</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.1.0</version>
<executions>
<!-- Generate Sources Execution under target/generated-sources -->
<execution>
<id>generateSources</id>
<phase>generate-sources</phase>
<configuration>
<target>
<!-- Generate OpenTDF Platform Protobuf -->
<exec executable="buf" dir="." failOnError="true">
<arg value="generate"/>
<arg value="https://github.com/opentdf/platform.git#branch=${platform.branch},subdir=service"/>
<arg value="-o"/>
<arg value="target/generated-sources"/>
</exec>
<!-- Generate gRPC Protobuf -->
<!-- <exec executable="buf" dir="." failOnError="true">
<arg value="generate"/>
<arg value="buf.build/grpc-ecosystem/grpc-gateway"/>
<arg value="-o"/>
<arg value="target/generated-sources"/>
</exec> -->
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Add Generate Sources Directory -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>target/generated-sources</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<!-- </pluginManagement> -->
</build>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package io.opentdf.platform;
import com.connectrpc.ResponseMessageKt;
import io.opentdf.platform.generated.policy.Attribute;
import io.opentdf.platform.generated.policy.AttributeRuleTypeEnum;
import io.opentdf.platform.generated.policy.attributes.CreateAttributeRequest;
import io.opentdf.platform.generated.policy.attributes.CreateAttributeResponse;
import io.opentdf.platform.sdk.*;

import java.util.Collections;
import java.util.concurrent.ExecutionException;

import io.opentdf.platform.policy.AttributeRuleTypeEnum;

import io.opentdf.platform.policy.attributes.*;
import io.opentdf.platform.policy.Attribute;

import java.util.Arrays;

public class CreateAttribute {
Expand All @@ -28,7 +29,7 @@ public static void main(String[] args) throws ExecutionException, InterruptedExc
.setRule(AttributeRuleTypeEnum.forNumber(AttributeRuleTypeEnum.ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF_VALUE))
.addAllValues(Arrays.asList("test1", "test2")).build();

CreateAttributeResponse resp = sdk.getServices().attributes().createAttribute(request).get();
CreateAttributeResponse resp = ResponseMessageKt.getOrThrow(sdk.getServices().attributes().createAttributeBlocking(request, Collections.emptyMap()).execute());

Attribute attribute = resp.getAttribute();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package io.opentdf.platform;
import com.connectrpc.ResponseMessageKt;
import io.opentdf.platform.generated.policy.namespaces.CreateNamespaceRequest;
import io.opentdf.platform.generated.policy.namespaces.CreateNamespaceResponse;
import io.opentdf.platform.sdk.*;

import java.util.Collections;
import java.util.concurrent.ExecutionException;

import io.opentdf.platform.policy.namespaces.*;

public class CreateNamespace {
public static void main(String[] args) throws ExecutionException, InterruptedException{

Expand All @@ -19,7 +21,7 @@ public static void main(String[] args) throws ExecutionException, InterruptedExc

CreateNamespaceRequest request = CreateNamespaceRequest.newBuilder().setName("mynamespace.com").build();

CreateNamespaceResponse resp = sdk.getServices().namespaces().createNamespace(request).get();
CreateNamespaceResponse resp = ResponseMessageKt.getOrThrow(sdk.getServices().namespaces().createNamespaceBlocking(request, Collections.emptyMap()).execute());

System.out.println(resp.getNamespace().getName());

Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
package io.opentdf.platform;
import com.connectrpc.ResponseMessageKt;
import io.opentdf.platform.generated.policy.Condition;
import io.opentdf.platform.generated.policy.ConditionBooleanTypeEnum;
import io.opentdf.platform.generated.policy.ConditionGroup;
import io.opentdf.platform.generated.policy.SubjectConditionSet;
import io.opentdf.platform.generated.policy.SubjectMappingOperatorEnum;
import io.opentdf.platform.generated.policy.SubjectSet;
import io.opentdf.platform.generated.policy.subjectmapping.CreateSubjectConditionSetRequest;
import io.opentdf.platform.generated.policy.subjectmapping.CreateSubjectConditionSetResponse;
import io.opentdf.platform.generated.policy.subjectmapping.SubjectConditionSetCreate;
import io.opentdf.platform.sdk.*;

import java.util.Collections;
import java.util.concurrent.ExecutionException;

import io.opentdf.platform.policy.subjectmapping.*;
import io.opentdf.platform.policy.SubjectMapping;
import io.opentdf.platform.policy.SubjectConditionSet;
import io.opentdf.platform.policy.SubjectSet;
import io.opentdf.platform.policy.ConditionGroup;
import io.opentdf.platform.policy.Condition;
import io.opentdf.platform.policy.ConditionBooleanTypeEnum;
import io.opentdf.platform.policy.SubjectMappingOperatorEnum;


public class CreateSubjectConditionSet {
public static void main(String[] args) throws ExecutionException, InterruptedException{
Expand All @@ -38,7 +40,7 @@ public static void main(String[] args) throws ExecutionException, InterruptedExc
SubjectConditionSetCreate.newBuilder().addSubjectSets(subjectset))
.build();

CreateSubjectConditionSetResponse resp = sdk.getServices().subjectMappings().createSubjectConditionSet(request).get();
CreateSubjectConditionSetResponse resp = ResponseMessageKt.getOrThrow(sdk.getServices().subjectMappings().createSubjectConditionSetBlocking(request, Collections.emptyMap()).execute());

SubjectConditionSet scs = resp.getSubjectConditionSet();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package io.opentdf.platform;
import com.connectrpc.ResponseMessageKt;
import grpc.gateway.protoc_gen_openapiv2.options.Response;
import io.opentdf.platform.generated.policy.Action;
import io.opentdf.platform.generated.policy.SubjectMapping;
import io.opentdf.platform.generated.policy.subjectmapping.CreateSubjectMappingRequest;
import io.opentdf.platform.generated.policy.subjectmapping.CreateSubjectMappingResponse;
import io.opentdf.platform.sdk.*;

import java.util.Collections;
import java.util.concurrent.ExecutionException;

import io.opentdf.platform.policy.subjectmapping.*;
import io.opentdf.platform.policy.SubjectMapping;
import io.opentdf.platform.policy.Action;

public class CreateSubjectMapping {
public static void main(String[] args) throws ExecutionException, InterruptedException{

Expand All @@ -25,7 +28,7 @@ public static void main(String[] args) throws ExecutionException, InterruptedExc
.setExistingSubjectConditionSetId("9009fde8-d22b-4dfb-a456-f9ce6943244a")
.build();

CreateSubjectMappingResponse resp = sdk.getServices().subjectMappings().createSubjectMapping(request).get();
CreateSubjectMappingResponse resp = ResponseMessageKt.getOrThrow(sdk.getServices().subjectMappings().createSubjectMappingBlocking(request, Collections.emptyMap()).execute());

SubjectMapping sm = resp.getSubjectMapping();

Expand Down
15 changes: 11 additions & 4 deletions examples/src/main/java/io/opentdf/platform/GetDecisions.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
package io.opentdf.platform;
import com.connectrpc.ResponseMessageKt;
import io.opentdf.platform.generated.authorization.DecisionRequest;
import io.opentdf.platform.generated.authorization.DecisionResponse;
import io.opentdf.platform.generated.authorization.Entity;
import io.opentdf.platform.generated.authorization.EntityChain;
import io.opentdf.platform.generated.authorization.GetDecisionsRequest;
import io.opentdf.platform.generated.authorization.GetDecisionsResponse;
import io.opentdf.platform.generated.authorization.ResourceAttribute;
import io.opentdf.platform.generated.policy.Action;
import io.opentdf.platform.sdk.*;

import java.util.Collections;
import java.util.concurrent.ExecutionException;

import io.opentdf.platform.authorization.*;
import io.opentdf.platform.policy.Action;

import java.util.List;

public class GetDecisions {
Expand All @@ -28,7 +35,7 @@ public static void main(String[] args) throws ExecutionException, InterruptedExc
.addAttributeValueFqns("https://mynamespace.com/attr/test/value/test1"))
).build();

GetDecisionsResponse resp = sdk.getServices().authorization().getDecisions(request).get();
GetDecisionsResponse resp = ResponseMessageKt.getOrThrow(sdk.getServices().authorization().getDecisionsBlocking(request, Collections.emptyMap()).execute());

List<DecisionResponse> decisions = resp.getDecisionResponsesList();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
package io.opentdf.platform;
import com.connectrpc.ResponseMessageKt;
import io.opentdf.platform.generated.authorization.Entity;
import io.opentdf.platform.generated.authorization.EntityEntitlements;
import io.opentdf.platform.generated.authorization.GetEntitlementsRequest;
import io.opentdf.platform.generated.authorization.GetEntitlementsResponse;
import io.opentdf.platform.sdk.*;

import java.util.Collections;
import java.util.concurrent.ExecutionException;

import io.opentdf.platform.authorization.*;

import java.util.List;

public class GetEntitlements {
Expand All @@ -23,7 +27,7 @@ public static void main(String[] args) throws ExecutionException, InterruptedExc
.addEntities(Entity.newBuilder().setId("entity-1").setClientId("opentdf"))
.build();

GetEntitlementsResponse resp = sdk.getServices().authorization().getEntitlements(request).get();
GetEntitlementsResponse resp = ResponseMessageKt.getOrThrow(sdk.getServices().authorization().getEntitlementsBlocking(request, Collections.emptyMap()).execute());

List<EntityEntitlements> entitlements = resp.getEntitlementsList();

Expand Down
12 changes: 6 additions & 6 deletions examples/src/main/java/io/opentdf/platform/ListAttributes.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package io.opentdf.platform;
import com.connectrpc.ResponseMessageKt;
import io.opentdf.platform.generated.policy.Attribute;
import io.opentdf.platform.generated.policy.attributes.ListAttributesRequest;
import io.opentdf.platform.generated.policy.attributes.ListAttributesResponse;
import io.opentdf.platform.sdk.*;

import java.util.Collections;
import java.util.concurrent.ExecutionException;

import io.opentdf.platform.policy.AttributeRuleTypeEnum;

import io.opentdf.platform.policy.attributes.*;
import io.opentdf.platform.policy.Attribute;

import java.util.List;

public class ListAttributes {
Expand All @@ -25,7 +25,7 @@ public static void main(String[] args) throws ExecutionException, InterruptedExc
ListAttributesRequest request = ListAttributesRequest.newBuilder()
.setNamespace("mynamespace.com").build();

ListAttributesResponse resp = sdk.getServices().attributes().listAttributes(request).get();
ListAttributesResponse resp = ResponseMessageKt.getOrThrow(sdk.getServices().attributes().listAttributesBlocking(request, Collections.emptyMap()).execute());

List<Attribute> attributes = resp.getAttributesList();

Expand Down
13 changes: 8 additions & 5 deletions examples/src/main/java/io/opentdf/platform/ListNamespaces.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package io.opentdf.platform;
import com.connectrpc.ResponseMessageKt;
import io.opentdf.platform.generated.policy.Namespace;
import io.opentdf.platform.generated.policy.namespaces.ListNamespacesRequest;
import io.opentdf.platform.generated.policy.namespaces.ListNamespacesResponse;
import io.opentdf.platform.sdk.*;

import java.util.Collections;
import java.util.List;
import java.util.concurrent.ExecutionException;

import io.opentdf.platform.policy.namespaces.*;
import io.opentdf.platform.policy.Namespace;

public class ListNamespaces {
public static void main(String[] args) throws ExecutionException, InterruptedException{

Expand All @@ -20,8 +23,8 @@ public static void main(String[] args) throws ExecutionException, InterruptedExc

ListNamespacesRequest request = ListNamespacesRequest.newBuilder().build();

ListNamespacesResponse resp = sdk.getServices().namespaces().listNamespaces(request).get();
ListNamespacesResponse resp = ResponseMessageKt.getOrThrow(sdk.getServices().namespaces().listNamespacesBlocking(request, Collections.emptyMap()).execute());

java.util.List<Namespace> namespaces = resp.getNamespacesList();
List<Namespace> namespaces = resp.getNamespacesList();
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package io.opentdf.platform;
import com.connectrpc.ResponseMessageKt;
import io.opentdf.platform.generated.policy.SubjectMapping;
import io.opentdf.platform.generated.policy.subjectmapping.ListSubjectMappingsRequest;
import io.opentdf.platform.generated.policy.subjectmapping.ListSubjectMappingsResponse;
import io.opentdf.platform.sdk.*;

import java.util.Collections;
import java.util.concurrent.ExecutionException;

import io.opentdf.platform.policy.subjectmapping.*;
import io.opentdf.platform.policy.SubjectMapping;

import java.util.List;

public class ListSubjectMappings {
Expand All @@ -22,7 +24,7 @@ public static void main(String[] args) throws ExecutionException, InterruptedExc

ListSubjectMappingsRequest request = ListSubjectMappingsRequest.newBuilder().build();

ListSubjectMappingsResponse resp = sdk.getServices().subjectMappings().listSubjectMappings(request).get();
ListSubjectMappingsResponse resp = ResponseMessageKt.getOrThrow(sdk.getServices().subjectMappings().listSubjectMappingsBlocking(request, Collections.emptyMap()).execute());

List<SubjectMapping> sms = resp.getSubjectMappingsList();

Expand Down
19 changes: 19 additions & 0 deletions keys/kas-cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIC/TCCAeWgAwIBAgIUUCu5Zu5b8PIRhAFJ5VpaZFP35HQwDQYJKoZIhvcNAQEL
BQAwDjEMMAoGA1UEAwwDa2FzMB4XDTI0MDgxNTExMzYxN1oXDTI1MDgxNTExMzYx
N1owDjEMMAoGA1UEAwwDa2FzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAx4PgRz+H/U4X5hf3Uj2JgqqyG7fX0QDSoxI3Ziu1Q+gbxElVppOqJQMA88Yd
8uug2Px/vtmkFwGXGi5DzKq6bLcpCJEXc1TOtJH5o+2Wcu1Ahfp9MxkOXpbJvoH8
JRkjOp6ZPIiIM/IOQDq3eHpLVAB6ihDFDwzhJsqBMVMejmkDRNj8qx5AkZSrE4zi
AL7hV/TWWyCiq8rLiWVnZOFXNHyRtPmTgmerRg5Ad1lP9muMrLJ/1ziq1lILk7fB
a31yOmS3g25MGYYwX+7PCNMWkhX0eCLAyosYfIp/K0SOJ3WO9G4eiq9keb4xRSbB
jFKmadNBITEWIhPzCAzT8nDlFwIDAQABo1MwUTAdBgNVHQ4EFgQUFc94TI8PUU+u
uASVIyQgQm4tHRswHwYDVR0jBBgwFoAUFc94TI8PUU+uuASVIyQgQm4tHRswDwYD
VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAjvzUeU9otYOM0UpwhZ/j
nBxNcP0J7fAODokL1as8zXnv7t8mk327b8HSORkfGdbCsf5be10W9xGK1DoRhscA
3wkASiWOk2wsIq9l12tR247EJXk7VMcDXQfGuVhzMhN1gp25bxX2FsmKvxnOFuN2
Qv4BY61dQSHjoDQDRhYb9naYTqsppiHjj11nayfEY6nVivs9Hu9jXqakcE4wSksX
DRRgxAs2KBcbQ0/rfOZs7yPs8jlqpmPk09M+yV7Tn1943EaAnWyiuavW7g5Zn/dM
szuJrlIzmgRdUyHTD4tS6ebTqGo+hziYNdfHUdjQF8JDMiRFwx/xoqC5/1jP18kX
MQ==
-----END CERTIFICATE-----
Loading
Loading