Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
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
6 changes: 4 additions & 2 deletions .github/workflows/checks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,18 +42,20 @@ jobs:
revert
# Scopes include:
# - ci: anything related to ci
# - cmdline: changes to @opentdf/ctl
# - cmdline: changes to cmdline
# - docs: anything related solely to documentation
# - main: bot generated commits
# - sdk: changes to @opentdf/sdk (was lib)
# - sdk: changes to sdk
# - tests: test only changes
# - examples: examples only changes
scopes: |
ci
cmdline
docs
main
sdk
tests
examples

mavenverify:
runs-on: ubuntu-latest
Expand Down
71 changes: 54 additions & 17 deletions examples/src/main/java/io/opentdf/platform/CreateAttribute.java
Original file line number Diff line number Diff line change
@@ -1,37 +1,74 @@
package io.opentdf.platform;

import com.connectrpc.ResponseMessageKt;
import io.opentdf.platform.policy.Attribute;
import io.opentdf.platform.policy.AttributeRuleTypeEnum;
import io.opentdf.platform.policy.Namespace;
import io.opentdf.platform.policy.attributes.CreateAttributeRequest;
import io.opentdf.platform.policy.attributes.CreateAttributeResponse;
import io.opentdf.platform.policy.namespaces.GetNamespaceRequest;
import io.opentdf.platform.sdk.*;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

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

import java.util.Arrays;

public class CreateAttribute {
public static void main(String[] args) {

String clientId = "opentdf";
String clientSecret = "secret";
String platformEndpoint = "localhost:8080";
private static final Logger logger = LogManager.getLogger(CreateAttribute.class);

SDKBuilder builder = new SDKBuilder();
SDK sdk = builder.platformEndpoint(platformEndpoint)
.clientSecret(clientId, clientSecret).useInsecurePlaintextConnection(true)
.build();
public static void main(String[] args) {

CreateAttributeRequest request = CreateAttributeRequest.newBuilder()
.setNamespaceId("877990d1-609b-42ab-a273-4253b8b321eb")
.setName("test")
.setRule(AttributeRuleTypeEnum.forNumber(AttributeRuleTypeEnum.ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF_VALUE))
.addAllValues(Arrays.asList("test1", "test2")).build();
String clientId = "opentdf";
String clientSecret = "secret";
String platformEndpoint = "localhost:8080";

CreateAttributeResponse resp = ResponseMessageKt.getOrThrow(sdk.getServices().attributes().createAttributeBlocking(request, Collections.emptyMap()).execute());
SDKBuilder builder = new SDKBuilder();
SDK sdk =
builder
.platformEndpoint(platformEndpoint)
.clientSecret(clientId, clientSecret)
.useInsecurePlaintextConnection(true)
.build();

Attribute attribute = resp.getAttribute();
Namespace namespace;
String namespaceName = "mynamespace.com";

try {
namespace =
ResponseMessageKt.getOrThrow(
sdk.getServices()
.namespaces()
.getNamespaceBlocking(
GetNamespaceRequest.newBuilder()
.setFqn("https://" + namespaceName)
.build(),
Collections.emptyMap())
.execute())
.getNamespace();
} catch (Exception e) {
logger.error("Namespace '{}' not found", namespaceName);
throw e;
}

CreateAttributeRequest request =
CreateAttributeRequest.newBuilder()
.setNamespaceId(namespace.getId())
.setName("test")
.setRule(
AttributeRuleTypeEnum.forNumber(
AttributeRuleTypeEnum.ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF_VALUE))
.addAllValues(Arrays.asList("test1", "test2"))
.build();

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

logger.info("Successfully created attribute with ID: {}", resp.getAttribute().getId());
}
}
36 changes: 22 additions & 14 deletions examples/src/main/java/io/opentdf/platform/CreateNamespace.java
Original file line number Diff line number Diff line change
@@ -1,29 +1,37 @@
package io.opentdf.platform;

import com.connectrpc.ResponseMessageKt;
import io.opentdf.platform.policy.namespaces.CreateNamespaceRequest;
import io.opentdf.platform.policy.namespaces.CreateNamespaceResponse;
import io.opentdf.platform.sdk.*;

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

public class CreateNamespace {
public static void main(String[] args) {
public static void main(String[] args) {

String clientId = "opentdf";
String clientSecret = "secret";
String platformEndpoint = "localhost:8080";
String clientId = "opentdf";
String clientSecret = "secret";
String platformEndpoint = "localhost:8080";

SDKBuilder builder = new SDKBuilder();
SDK sdk = builder.platformEndpoint(platformEndpoint)
.clientSecret(clientId, clientSecret).useInsecurePlaintextConnection(true)
.build();
SDKBuilder builder = new SDKBuilder();
SDK sdk =
builder
.platformEndpoint(platformEndpoint)
.clientSecret(clientId, clientSecret)
.useInsecurePlaintextConnection(true)
.build();

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

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

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

}
System.out.println(resp.getNamespace().getName());
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
package io.opentdf.platform;

import com.connectrpc.ResponseMessageKt;
import io.opentdf.platform.policy.Condition;
import io.opentdf.platform.policy.ConditionBooleanTypeEnum;
Expand All @@ -10,40 +11,59 @@
import io.opentdf.platform.policy.subjectmapping.CreateSubjectConditionSetResponse;
import io.opentdf.platform.policy.subjectmapping.SubjectConditionSetCreate;
import io.opentdf.platform.sdk.*;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

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


public class CreateSubjectConditionSet {
public static void main(String[] args) {

String clientId = "opentdf";
String clientSecret = "secret";
String platformEndpoint = "localhost:8080";
private static final Logger logger = LogManager.getLogger(CreateSubjectConditionSet.class);

public static void main(String[] args) {

String clientId = "opentdf";
String clientSecret = "secret";
String platformEndpoint = "localhost:8080";

SDKBuilder builder = new SDKBuilder();
SDK sdk = builder.platformEndpoint(platformEndpoint)
.clientSecret(clientId, clientSecret).useInsecurePlaintextConnection(true)
.build();
SDKBuilder builder = new SDKBuilder();
SDK sdk =
builder
.platformEndpoint(platformEndpoint)
.clientSecret(clientId, clientSecret)
.useInsecurePlaintextConnection(true)
.build();

var subjectset = SubjectSet.newBuilder().addConditionGroups(ConditionGroup.newBuilder()
.setBooleanOperator(ConditionBooleanTypeEnum.CONDITION_BOOLEAN_TYPE_ENUM_AND)
.addConditions(Condition.newBuilder()
.setSubjectExternalSelectorValue(".myfield")
.setOperator(SubjectMappingOperatorEnum.SUBJECT_MAPPING_OPERATOR_ENUM_IN)
.addSubjectExternalValues("myvalue")
));
SubjectSet.Builder subjectSetBuilder =
SubjectSet.newBuilder()
.addConditionGroups(
ConditionGroup.newBuilder()
.setBooleanOperator(ConditionBooleanTypeEnum.CONDITION_BOOLEAN_TYPE_ENUM_AND)
.addConditions(
Condition.newBuilder()
.setSubjectExternalSelectorValue(".myfield")
.setOperator(
SubjectMappingOperatorEnum.SUBJECT_MAPPING_OPERATOR_ENUM_IN)
.addSubjectExternalValues("myvalue")));

CreateSubjectConditionSetRequest request = CreateSubjectConditionSetRequest.newBuilder()
.setSubjectConditionSet(
SubjectConditionSetCreate.newBuilder().addSubjectSets(subjectset))
.build();
CreateSubjectConditionSetRequest createSubjectConditionSetRequest =
CreateSubjectConditionSetRequest.newBuilder()
.setSubjectConditionSet(
SubjectConditionSetCreate.newBuilder().addSubjectSets(subjectSetBuilder))
.build();

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

SubjectConditionSet scs = resp.getSubjectConditionSet();
SubjectConditionSet subjectConditionSet =
createSubjectConditionSetResponse.getSubjectConditionSet();

System.out.println(scs.getId());
}
logger.info(
"Successfully created subject condition set with ID: {}", subjectConditionSet.getId());
}
}
Loading
Loading