Skip to content

Commit 2ad70a3

Browse files
committed
fix(examples): improve logging and setup logic in examples
Signed-off-by: Scott Hamrick <2623452+cshamrick@users.noreply.github.com>
1 parent 84af883 commit 2ad70a3

File tree

10 files changed

+455
-177
lines changed

10 files changed

+455
-177
lines changed

.github/workflows/checks.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,20 @@ jobs:
4242
revert
4343
# Scopes include:
4444
# - ci: anything related to ci
45-
# - cmdline: changes to @opentdf/ctl
45+
# - cmdline: changes to cmdline
4646
# - docs: anything related solely to documentation
4747
# - main: bot generated commits
48-
# - sdk: changes to @opentdf/sdk (was lib)
48+
# - sdk: changes to sdk
4949
# - tests: test only changes
50+
# - examples: examples only changes
5051
scopes: |
5152
ci
5253
cmdline
5354
docs
5455
main
5556
sdk
5657
tests
58+
examples
5759
5860
mavenverify:
5961
runs-on: ubuntu-latest
Lines changed: 54 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,74 @@
11
package io.opentdf.platform;
2+
23
import com.connectrpc.ResponseMessageKt;
3-
import io.opentdf.platform.policy.Attribute;
44
import io.opentdf.platform.policy.AttributeRuleTypeEnum;
5+
import io.opentdf.platform.policy.Namespace;
56
import io.opentdf.platform.policy.attributes.CreateAttributeRequest;
67
import io.opentdf.platform.policy.attributes.CreateAttributeResponse;
8+
import io.opentdf.platform.policy.namespaces.GetNamespaceRequest;
79
import io.opentdf.platform.sdk.*;
10+
import org.apache.logging.log4j.LogManager;
11+
import org.apache.logging.log4j.Logger;
812

913
import java.util.Collections;
10-
import java.util.concurrent.ExecutionException;
1114

1215
import java.util.Arrays;
1316

1417
public class CreateAttribute {
15-
public static void main(String[] args) {
1618

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

21-
SDKBuilder builder = new SDKBuilder();
22-
SDK sdk = builder.platformEndpoint(platformEndpoint)
23-
.clientSecret(clientId, clientSecret).useInsecurePlaintextConnection(true)
24-
.build();
21+
public static void main(String[] args) {
2522

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

32-
CreateAttributeResponse resp = ResponseMessageKt.getOrThrow(sdk.getServices().attributes().createAttributeBlocking(request, Collections.emptyMap()).execute());
27+
SDKBuilder builder = new SDKBuilder();
28+
SDK sdk =
29+
builder
30+
.platformEndpoint(platformEndpoint)
31+
.clientSecret(clientId, clientSecret)
32+
.useInsecurePlaintextConnection(true)
33+
.build();
3334

34-
Attribute attribute = resp.getAttribute();
35+
Namespace namespace;
36+
String namespaceName = "mynamespace.com";
3537

38+
try {
39+
namespace =
40+
ResponseMessageKt.getOrThrow(
41+
sdk.getServices()
42+
.namespaces()
43+
.getNamespaceBlocking(
44+
GetNamespaceRequest.newBuilder()
45+
.setFqn("https://" + namespaceName)
46+
.build(),
47+
Collections.emptyMap())
48+
.execute())
49+
.getNamespace();
50+
} catch (Exception e) {
51+
logger.error("Namespace '{}' not found", namespaceName);
52+
throw e;
3653
}
54+
55+
CreateAttributeRequest request =
56+
CreateAttributeRequest.newBuilder()
57+
.setNamespaceId(namespace.getId())
58+
.setName("test")
59+
.setRule(
60+
AttributeRuleTypeEnum.forNumber(
61+
AttributeRuleTypeEnum.ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF_VALUE))
62+
.addAllValues(Arrays.asList("test1", "test2"))
63+
.build();
64+
65+
CreateAttributeResponse resp =
66+
ResponseMessageKt.getOrThrow(
67+
sdk.getServices()
68+
.attributes()
69+
.createAttributeBlocking(request, Collections.emptyMap())
70+
.execute());
71+
72+
logger.info("Successfully created attribute with ID: {}", resp.getAttribute().getId());
73+
}
3774
}
Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,37 @@
11
package io.opentdf.platform;
2+
23
import com.connectrpc.ResponseMessageKt;
34
import io.opentdf.platform.policy.namespaces.CreateNamespaceRequest;
45
import io.opentdf.platform.policy.namespaces.CreateNamespaceResponse;
56
import io.opentdf.platform.sdk.*;
67

78
import java.util.Collections;
8-
import java.util.concurrent.ExecutionException;
99

1010
public class CreateNamespace {
11-
public static void main(String[] args) {
11+
public static void main(String[] args) {
1212

13-
String clientId = "opentdf";
14-
String clientSecret = "secret";
15-
String platformEndpoint = "localhost:8080";
13+
String clientId = "opentdf";
14+
String clientSecret = "secret";
15+
String platformEndpoint = "localhost:8080";
1616

17-
SDKBuilder builder = new SDKBuilder();
18-
SDK sdk = builder.platformEndpoint(platformEndpoint)
19-
.clientSecret(clientId, clientSecret).useInsecurePlaintextConnection(true)
20-
.build();
17+
SDKBuilder builder = new SDKBuilder();
18+
SDK sdk =
19+
builder
20+
.platformEndpoint(platformEndpoint)
21+
.clientSecret(clientId, clientSecret)
22+
.useInsecurePlaintextConnection(true)
23+
.build();
2124

22-
CreateNamespaceRequest request = CreateNamespaceRequest.newBuilder().setName("mynamespace.com").build();
25+
CreateNamespaceRequest request =
26+
CreateNamespaceRequest.newBuilder().setName("mynamespace.com").build();
2327

24-
CreateNamespaceResponse resp = ResponseMessageKt.getOrThrow(sdk.getServices().namespaces().createNamespaceBlocking(request, Collections.emptyMap()).execute());
28+
CreateNamespaceResponse resp =
29+
ResponseMessageKt.getOrThrow(
30+
sdk.getServices()
31+
.namespaces()
32+
.createNamespaceBlocking(request, Collections.emptyMap())
33+
.execute());
2534

26-
System.out.println(resp.getNamespace().getName());
27-
28-
}
35+
System.out.println(resp.getNamespace().getName());
36+
}
2937
}
Lines changed: 45 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
package io.opentdf.platform;
2+
23
import com.connectrpc.ResponseMessageKt;
34
import io.opentdf.platform.policy.Condition;
45
import io.opentdf.platform.policy.ConditionBooleanTypeEnum;
@@ -10,40 +11,59 @@
1011
import io.opentdf.platform.policy.subjectmapping.CreateSubjectConditionSetResponse;
1112
import io.opentdf.platform.policy.subjectmapping.SubjectConditionSetCreate;
1213
import io.opentdf.platform.sdk.*;
14+
import org.apache.logging.log4j.LogManager;
15+
import org.apache.logging.log4j.Logger;
1316

1417
import java.util.Collections;
15-
import java.util.concurrent.ExecutionException;
16-
1718

1819
public class CreateSubjectConditionSet {
19-
public static void main(String[] args) {
2020

21-
String clientId = "opentdf";
22-
String clientSecret = "secret";
23-
String platformEndpoint = "localhost:8080";
21+
private static final Logger logger = LogManager.getLogger(CreateSubjectConditionSet.class);
22+
23+
public static void main(String[] args) {
24+
25+
String clientId = "opentdf";
26+
String clientSecret = "secret";
27+
String platformEndpoint = "localhost:8080";
2428

25-
SDKBuilder builder = new SDKBuilder();
26-
SDK sdk = builder.platformEndpoint(platformEndpoint)
27-
.clientSecret(clientId, clientSecret).useInsecurePlaintextConnection(true)
28-
.build();
29+
SDKBuilder builder = new SDKBuilder();
30+
SDK sdk =
31+
builder
32+
.platformEndpoint(platformEndpoint)
33+
.clientSecret(clientId, clientSecret)
34+
.useInsecurePlaintextConnection(true)
35+
.build();
2936

30-
var subjectset = SubjectSet.newBuilder().addConditionGroups(ConditionGroup.newBuilder()
31-
.setBooleanOperator(ConditionBooleanTypeEnum.CONDITION_BOOLEAN_TYPE_ENUM_AND)
32-
.addConditions(Condition.newBuilder()
33-
.setSubjectExternalSelectorValue(".myfield")
34-
.setOperator(SubjectMappingOperatorEnum.SUBJECT_MAPPING_OPERATOR_ENUM_IN)
35-
.addSubjectExternalValues("myvalue")
36-
));
37+
SubjectSet.Builder subjectSetBuilder =
38+
SubjectSet.newBuilder()
39+
.addConditionGroups(
40+
ConditionGroup.newBuilder()
41+
.setBooleanOperator(ConditionBooleanTypeEnum.CONDITION_BOOLEAN_TYPE_ENUM_AND)
42+
.addConditions(
43+
Condition.newBuilder()
44+
.setSubjectExternalSelectorValue(".myfield")
45+
.setOperator(
46+
SubjectMappingOperatorEnum.SUBJECT_MAPPING_OPERATOR_ENUM_IN)
47+
.addSubjectExternalValues("myvalue")));
3748

38-
CreateSubjectConditionSetRequest request = CreateSubjectConditionSetRequest.newBuilder()
39-
.setSubjectConditionSet(
40-
SubjectConditionSetCreate.newBuilder().addSubjectSets(subjectset))
41-
.build();
49+
CreateSubjectConditionSetRequest createSubjectConditionSetRequest =
50+
CreateSubjectConditionSetRequest.newBuilder()
51+
.setSubjectConditionSet(
52+
SubjectConditionSetCreate.newBuilder().addSubjectSets(subjectSetBuilder))
53+
.build();
4254

43-
CreateSubjectConditionSetResponse resp = ResponseMessageKt.getOrThrow(sdk.getServices().subjectMappings().createSubjectConditionSetBlocking(request, Collections.emptyMap()).execute());
55+
CreateSubjectConditionSetResponse createSubjectConditionSetResponse =
56+
ResponseMessageKt.getOrThrow(
57+
sdk.getServices()
58+
.subjectMappings()
59+
.createSubjectConditionSetBlocking(
60+
createSubjectConditionSetRequest, Collections.emptyMap())
61+
.execute());
4462

45-
SubjectConditionSet scs = resp.getSubjectConditionSet();
63+
SubjectConditionSet subjectConditionSet =
64+
createSubjectConditionSetResponse.getSubjectConditionSet();
4665

47-
System.out.println(scs.getId());
48-
}
66+
logger.info(
67+
"Successfully created subject condition set with ID: {}", subjectConditionSet.getId());
68+
}
4969
}

0 commit comments

Comments
 (0)