Skip to content

Commit ac2789f

Browse files
marythoughtclaude
andauthored
chore(docs): use shorthand enum names in subject mapping docs (#308)
## Summary - Update Go SDK code samples to use the new shorthand enum constants (`policy.OperatorIn`, `policy.BooleanAnd`, `policy.RuleAnyOf`) instead of verbose proto enum names - Update JS SDK imports to use barrel exports from `@opentdf/sdk` instead of deep proto paths (`@opentdf/sdk/platform/policy/objects_pb.js`) - Update JS SDK examples to use enum values (`ConditionBooleanTypeEnum.AND`) instead of string literals (`'CONDITION_BOOLEAN_TYPE_ENUM_AND'`) - Update Java SDK inline examples in policy.mdx to use `PolicyEnums` shorthand constants - Add `SdkVersion` badges with `NEXT` placeholders — replace with actual versions once SDK releases ship ### Companion PRs | SDK | PR | Status | |---|---|---| | Go | opentdf/platform#3408 | Open | | Java | opentdf/java-sdk#357 | Open | | JavaScript | opentdf/web-sdk#928 | Open | ### Note on Java code samples The `code_samples/java/` files are pulled from the java-sdk repo at build time via `docusaurus-plugin-remote-content`. They will update automatically once `javaSdkVersion` is bumped in `docusaurus.config.ts` after the java-sdk release containing opentdf/java-sdk#357. ## Test plan - [x] `npm run build` passes - [ ] Surge preview renders correctly - [ ] Replace `NEXT` version placeholders after SDK releases 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated policy and quickstart code examples for Go, Java, and JavaScript to use simplified SDK enum constants for clearer, more idiomatic samples. * Switched JavaScript examples to use package entry-point imports instead of generated-module paths. * Added SDK version markers to code samples to show explicit language/version context and improve consistency. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Mary Dickson <mary.dickson@virtru.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent fb6c9b2 commit ac2789f

4 files changed

Lines changed: 36 additions & 18 deletions

File tree

code_samples/policy_code/create_attribute.mdx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Tabs from '@theme/Tabs';
22
import TabItem from '@theme/TabItem';
3+
import SdkVersion from '@site/src/components/SdkVersion';
34

45
<details id="create-attribute">
56
<summary>Create an Attribute</summary>
@@ -45,6 +46,8 @@ await platform.v1.attributes.createAttribute({ ... })
4546
<Tabs>
4647
<TabItem value="go" label="Go">
4748

49+
<SdkVersion language="go" version="0.18.0" source="opentdf" />
50+
4851
```go
4952
import (
5053
"github.com/opentdf/platform/protocol/go/policy"
@@ -55,7 +58,7 @@ resp, err := client.Attributes.CreateAttribute(context.Background(),
5558
&attributes.CreateAttributeRequest{
5659
NamespaceId: "f47ac10b-58cc-4372-a567-0e02b2c3d479",
5760
Name: "classification",
58-
Rule: policy.AttributeRuleTypeEnum_ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF,
61+
Rule: policy.RuleAnyOf,
5962
Values: []string{"public", "confidential", "secret"},
6063
},
6164
)
@@ -69,15 +72,19 @@ log.Printf("Created attribute: %s (ID: %s)\n",
6972
</TabItem>
7073
<TabItem value="java" label="Java">
7174

75+
<SdkVersion language="java" version="0.15.0" source="opentdf" />
76+
7277
import CreateAttributeExample from '@site/code_samples/java/create-attribute.mdx';
7378

7479
<CreateAttributeExample />
7580

7681
</TabItem>
7782
<TabItem value="js" label="JavaScript">
7883

84+
<SdkVersion language="js" version="0.17.0" source="opentdf" />
85+
7986
```typescript
80-
import { AttributeRuleTypeEnum } from '@opentdf/sdk/platform/policy/objects_pb.js';
87+
import { AttributeRuleTypeEnum } from '@opentdf/sdk';
8188

8289
const resp = await platform.v1.attributes.createAttribute({
8390
namespaceId: 'f47ac10b-58cc-4372-a567-0e02b2c3d479',

code_samples/policy_code/create_subject_condition_set.mdx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Tabs from '@theme/Tabs';
22
import TabItem from '@theme/TabItem';
3+
import SdkVersion from '@site/src/components/SdkVersion';
34

45
<details id="create-subject-condition-set">
56
<summary>Create a Subject Condition Set</summary>
@@ -42,6 +43,8 @@ await platform.v1.subjectMapping.createSubjectConditionSet({ ... })
4243
<Tabs>
4344
<TabItem value="go" label="Go">
4445

46+
<SdkVersion language="go" version="0.18.0" source="opentdf" />
47+
4548
```go
4649
import (
4750
"github.com/opentdf/platform/protocol/go/policy"
@@ -56,11 +59,11 @@ conditionset := &subjectmapping.CreateSubjectConditionSetRequest{
5659
{
5760
ConditionGroups: []*policy.ConditionGroup{
5861
{
59-
BooleanOperator: policy.ConditionBooleanTypeEnum_CONDITION_BOOLEAN_TYPE_ENUM_AND,
62+
BooleanOperator: policy.BooleanAnd,
6063
Conditions: []*policy.Condition{
6164
{
6265
SubjectExternalSelectorValue: ".clientId",
63-
Operator: policy.SubjectMappingOperatorEnum_SUBJECT_MAPPING_OPERATOR_ENUM_IN,
66+
Operator: policy.OperatorIn,
6467
SubjectExternalValues: []string{"opentdf"},
6568
},
6669
},
@@ -83,19 +86,23 @@ log.Printf("Created Subject Condition Set with ID: %s\n", resp.GetSubjectConditi
8386
</TabItem>
8487
<TabItem value="java" label="Java">
8588

89+
<SdkVersion language="java" version="0.15.0" source="opentdf" />
90+
8691
import CreateSubjectConditionSetExample from '@site/code_samples/java/create-subject-condition-set.mdx';
8792

8893
<CreateSubjectConditionSetExample />
8994

9095
</TabItem>
9196
<TabItem value="js" label="JavaScript">
9297

98+
<SdkVersion language="js" version="0.17.0" source="opentdf" />
99+
93100
```typescript
94101
import { create } from '@bufbuild/protobuf';
95102
import {
96103
ConditionBooleanTypeEnum,
97104
SubjectMappingOperatorEnum,
98-
} from '@opentdf/sdk/platform/policy/objects_pb.js';
105+
} from '@opentdf/sdk';
99106
import {
100107
CreateSubjectConditionSetRequestSchema,
101108
} from '@opentdf/sdk/platform/policy/subjectmapping/subject_mapping_pb.js';

docs/sdks/policy.mdx

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1639,11 +1639,11 @@ resp, err := client.SubjectMapping.UpdateSubjectConditionSet(context.Background(
16391639
{
16401640
ConditionGroups: []*policy.ConditionGroup{
16411641
{
1642-
BooleanOperator: policy.ConditionBooleanTypeEnum_CONDITION_BOOLEAN_TYPE_ENUM_AND,
1642+
BooleanOperator: policy.BooleanAnd,
16431643
Conditions: []*policy.Condition{
16441644
{
16451645
SubjectExternalSelectorValue: ".clientId",
1646-
Operator: policy.SubjectMappingOperatorEnum_SUBJECT_MAPPING_OPERATOR_ENUM_IN,
1646+
Operator: policy.OperatorIn,
16471647
SubjectExternalValues: []string{"my-service", "my-other-service"},
16481648
},
16491649
},
@@ -1666,16 +1666,17 @@ log.Printf("Updated SCS ID: %s\n", resp.GetSubjectConditionSet().GetId())
16661666
```java
16671667
import io.opentdf.platform.policy.*;
16681668
import io.opentdf.platform.policy.subjectmapping.UpdateSubjectConditionSetRequest;
1669+
import static io.opentdf.platform.sdk.PolicyEnums.*;
16691670

16701671
var condition = Condition.newBuilder()
16711672
.setSubjectExternalSelectorValue(".clientId")
1672-
.setOperator(SubjectMappingOperatorEnum.SUBJECT_MAPPING_OPERATOR_ENUM_IN)
1673+
.setOperator(OPERATOR_IN)
16731674
.addSubjectExternalValues("my-service")
16741675
.addSubjectExternalValues("my-other-service")
16751676
.build();
16761677

16771678
var conditionGroup = ConditionGroup.newBuilder()
1678-
.setBooleanOperator(ConditionBooleanTypeEnum.CONDITION_BOOLEAN_TYPE_ENUM_AND)
1679+
.setBooleanOperator(BOOLEAN_AND)
16791680
.addConditions(condition)
16801681
.build();
16811682

@@ -1698,19 +1699,22 @@ System.out.println("Updated SCS ID: " + resp.getSubjectConditionSet().getId());
16981699
<TabItem value="js" label="JavaScript">
16991700

17001701
```typescript
1701-
import { authTokenInterceptor, clientCredentialsTokenProvider } from '@opentdf/sdk';
1702+
import {
1703+
ConditionBooleanTypeEnum,
1704+
SubjectMappingOperatorEnum,
1705+
} from '@opentdf/sdk';
17021706

17031707
const resp = await platform.v1.subjectMapping.updateSubjectConditionSet({
17041708
id: 'a0b1c2d3-0000-0000-0000-000000000099',
17051709
subjectSets: [
17061710
{
17071711
conditionGroups: [
17081712
{
1709-
booleanOperator: 'CONDITION_BOOLEAN_TYPE_ENUM_AND',
1713+
booleanOperator: ConditionBooleanTypeEnum.AND,
17101714
conditions: [
17111715
{
17121716
subjectExternalSelectorValue: '.clientId',
1713-
operator: 'SUBJECT_MAPPING_OPERATOR_ENUM_IN',
1717+
operator: SubjectMappingOperatorEnum.IN,
17141718
subjectExternalValues: ['my-service', 'my-other-service'],
17151719
},
17161720
],

docs/sdks/quickstart/go.mdx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ if getAttrResp == nil {
249249
&attributes.CreateAttributeRequest{
250250
NamespaceId: nsResp.GetNamespace().GetId(),
251251
Name: "department",
252-
Rule: policy.AttributeRuleTypeEnum_ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF,
252+
Rule: policy.RuleAnyOf,
253253
})
254254
if err != nil {
255255
log.Fatalf("Failed to create attribute: %v", err)
@@ -360,11 +360,11 @@ scsResp, err := client.SubjectMapping.CreateSubjectConditionSet(context.Backgrou
360360
{
361361
ConditionGroups: []*policy.ConditionGroup{
362362
{
363-
BooleanOperator: policy.ConditionBooleanTypeEnum_CONDITION_BOOLEAN_TYPE_ENUM_AND,
363+
BooleanOperator: policy.BooleanAnd,
364364
Conditions: []*policy.Condition{
365365
{
366366
SubjectExternalSelectorValue: ".clientId",
367-
Operator: policy.SubjectMappingOperatorEnum_SUBJECT_MAPPING_OPERATOR_ENUM_IN,
367+
Operator: policy.OperatorIn,
368368
SubjectExternalValues: []string{"opentdf"},
369369
},
370370
},
@@ -514,7 +514,7 @@ func main() {
514514
&attributes.CreateAttributeRequest{
515515
NamespaceId: nsResp.GetNamespace().GetId(),
516516
Name: "department",
517-
Rule: policy.AttributeRuleTypeEnum_ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF,
517+
Rule: policy.RuleAnyOf,
518518
Values: []string{"marketing"},
519519
})
520520
if err != nil {
@@ -583,11 +583,11 @@ func main() {
583583
{
584584
ConditionGroups: []*policy.ConditionGroup{
585585
{
586-
BooleanOperator: policy.ConditionBooleanTypeEnum_CONDITION_BOOLEAN_TYPE_ENUM_AND,
586+
BooleanOperator: policy.BooleanAnd,
587587
Conditions: []*policy.Condition{
588588
{
589589
SubjectExternalSelectorValue: ".clientId",
590-
Operator: policy.SubjectMappingOperatorEnum_SUBJECT_MAPPING_OPERATOR_ENUM_IN,
590+
Operator: policy.OperatorIn,
591591
SubjectExternalValues: []string{"opentdf"},
592592
},
593593
},

0 commit comments

Comments
 (0)