@camunda8/orchestration-cluster-api 8.9.0-alpha.32 → 8.9.0-alpha.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ # [8.9.0-alpha.34](https://github.com/camunda/orchestration-cluster-api-js/compare/v8.9.0-alpha.33...v8.9.0-alpha.34) (2026-04-09)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * add missing examples for all template methods (green) ([6fabac5](https://github.com/camunda/orchestration-cluster-api-js/commit/6fabac5bf3423037d4d7d05d9c176d0a45422b5c)), closes [#122](https://github.com/camunda/orchestration-cluster-api-js/issues/122)
7
+ * Update scripts/check-method-example-completeness.cjs ([8503c12](https://github.com/camunda/orchestration-cluster-api-js/commit/8503c120b65bf4002fbe153e1b790ed6e2342130))
8
+
9
+ # [8.9.0-alpha.33](https://github.com/camunda/orchestration-cluster-api-js/compare/v8.9.0-alpha.32...v8.9.0-alpha.33) (2026-04-09)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * exclude union response schemas from VOID_RESPONSES set ([52c36ab](https://github.com/camunda/orchestration-cluster-api-js/commit/52c36abaacaf79398f47f35b4bbd28d25663ae17)), closes [#120](https://github.com/camunda/orchestration-cluster-api-js/issues/120)
15
+ * remove accidentally committed .tmp-clone gitlink ([9301965](https://github.com/camunda/orchestration-cluster-api-js/commit/9301965ce991135bff9dcc4301cc026c8fc92d4c))
16
+
1
17
  # [8.9.0-alpha.32](https://github.com/camunda/orchestration-cluster-api-js/compare/v8.9.0-alpha.31...v8.9.0-alpha.32) (2026-04-09)
2
18
 
3
19
 
package/README.md CHANGED
@@ -50,6 +50,104 @@ In the vast majority of use-cases, this will not be an issue; but you should be
50
50
  - Check the [CHANGELOG](https://github.com/camunda/orchestration-cluster-api-js/releases).
51
51
  - As a sanity check during server version upgrade, rebuild applications with the matching SDK major version to identify any affected runtime surfaces.
52
52
 
53
+ ## Migrating from 8.8
54
+
55
+ SDK 9.x (for Camunda 8.9) introduces two categories of breaking type changes relative to SDK 8.x (for Camunda 8.8). Neither change affects runtime behavior — existing code that compiled against 8.x will run identically — but the compiler will flag type mismatches until you update.
56
+
57
+ ### Search results: optional → required fields
58
+
59
+ The search result types changed several fields from **optional** to **required**:
60
+
61
+ **`SearchQueryPageResponse` (page metadata)**
62
+
63
+ | Field | SDK 8.x (Camunda 8.8) | SDK 9.x (Camunda 8.9) |
64
+ |-------|----------------------|----------------------|
65
+ | `totalItems` | `totalItems?: number` | `totalItems: number` |
66
+ | `hasMoreTotalItems` | `hasMoreTotalItems?: boolean` | `hasMoreTotalItems: boolean` |
67
+ | `endCursor` | `endCursor?: EndCursor` | `endCursor: EndCursor \| null` |
68
+ | `startCursor` | `startCursor?: StartCursor` | `startCursor: StartCursor \| null` |
69
+
70
+ **`*SearchQueryResult` types (result containers)**
71
+
72
+ | Field | SDK 8.x (Camunda 8.8) | SDK 9.x (Camunda 8.9) |
73
+ |-------|----------------------|----------------------|
74
+ | `items` | `items?: T[]` | `items: T[]` |
75
+ | `page` | `page?: SearchQueryPageResponse` | `page: SearchQueryPageResponse` |
76
+
77
+ This reflects upstream OpenAPI spec changes where these fields are now always present in the response, with `null` indicating "no value" for cursors rather than being absent.
78
+
79
+ **What to change**: Update code that checks for these fields using optional chaining or `undefined` comparisons. The `items` array and `page` object are now always present, so optional chaining on them is unnecessary:
80
+
81
+ <!-- snippet-exempt: migration example showing before/after patterns -->
82
+
83
+ ```ts
84
+ // Before (8.x) — checking for undefined
85
+ if (result.page?.endCursor !== undefined) {
86
+ nextPage(result.page.endCursor);
87
+ }
88
+ const count = result.items?.length ?? 0;
89
+
90
+ // After (9.x) — page and items are always present; check cursors for null
91
+ if (result.page.endCursor !== null) {
92
+ nextPage(result.page.endCursor);
93
+ }
94
+ const count = result.items.length;
95
+ ```
96
+
97
+ If you have a custom `PagedResponse` type, update its `page` shape to match:
98
+
99
+ <!-- snippet-exempt: migration example showing type definition update -->
100
+
101
+ ```ts
102
+ // Before (8.x)
103
+ type PagedResponse<T> = {
104
+ items?: T[];
105
+ page?: {
106
+ totalItems?: number;
107
+ endCursor?: string;
108
+ startCursor?: string;
109
+ hasMoreTotalItems?: boolean;
110
+ };
111
+ };
112
+
113
+ // After (9.x)
114
+ type PagedResponse<T> = {
115
+ items: T[];
116
+ page: {
117
+ totalItems: number;
118
+ endCursor: EndCursor | null;
119
+ startCursor: StartCursor | null;
120
+ hasMoreTotalItems: boolean;
121
+ };
122
+ };
123
+ ```
124
+
125
+ ### Branded key types for `tenantId`
126
+
127
+ The `tenantId` field on request types (e.g. `CreateDeploymentData`) changed from `string` to the branded `TenantId` type. A plain `string` is no longer assignable:
128
+
129
+ <!-- snippet-exempt: migration example showing branded type usage -->
130
+
131
+ ```ts
132
+ import { TenantId } from '@camunda8/orchestration-cluster-api';
133
+
134
+ // Before (8.x) — plain string worked
135
+ await camunda.createDeployment({
136
+ tenantId: 'my-tenant',
137
+ resources: [file],
138
+ });
139
+
140
+ // After (9.x) — use the branded type helper
141
+ await camunda.createDeployment({
142
+ tenantId: TenantId.assumeExists('my-tenant'),
143
+ resources: [file],
144
+ });
145
+ ```
146
+
147
+ `TenantId.assumeExists()` validates the string against the tenant ID pattern and brands it at zero runtime cost. See [Branded Keys](#branded-keys) for more on this pattern.
148
+
149
+ > **Tip**: If your tenant ID comes from a validated source (environment variable, config file), call `TenantId.assumeExists()` once at startup and pass the branded value throughout your application.
150
+
53
151
  ## Quick Start (Zero‑Config – Recommended)
54
152
 
55
153
  Keep configuration out of application code. Let the factory read `CAMUNDA_*` variables from the environment (12‑factor style). This makes rotation, secret management, and environment promotion safer & simpler.
@@ -4412,7 +4412,7 @@ function installAuthInterceptor(client2, getStrategy, getAuthHeaders) {
4412
4412
  }
4413
4413
 
4414
4414
  // src/runtime/version.ts
4415
- var packageVersion = "8.9.0-alpha.32";
4415
+ var packageVersion = "8.9.0-alpha.34";
4416
4416
 
4417
4417
  // src/runtime/supportLogger.ts
4418
4418
  var NoopSupportLogger = class {
@@ -6088,7 +6088,7 @@ function deepFreeze2(obj) {
6088
6088
  }
6089
6089
  return obj;
6090
6090
  }
6091
- var VOID_RESPONSES = /* @__PURE__ */ new Set(["zDeleteAuthorizationResponse", "zUpdateAuthorizationResponse", "zCancelBatchOperationResponse", "zResumeBatchOperationResponse", "zSuspendBatchOperationResponse", "zPinClockResponse", "zResetClockResponse", "zDeleteGlobalClusterVariableResponse", "zDeleteTenantClusterVariableResponse", "zDeleteDecisionInstanceResponse", "zDeleteDocumentResponse", "zActivateAdHocSubProcessActivitiesResponse", "zCreateElementInstanceVariablesResponse", "zDeleteGlobalTaskListenerResponse", "zDeleteGroupResponse", "zUnassignClientFromGroupResponse", "zAssignClientToGroupResponse", "zUnassignMappingRuleFromGroupResponse", "zAssignMappingRuleToGroupResponse", "zUnassignUserFromGroupResponse", "zAssignUserToGroupResponse", "zResolveIncidentResponse", "zUpdateJobResponse", "zCompleteJobResponse", "zThrowJobErrorResponse", "zFailJobResponse", "zDeleteMappingRuleResponse", "zGetStartProcessFormResponse", "zCancelProcessInstanceResponse", "zDeleteProcessInstanceResponse", "zMigrateProcessInstanceResponse", "zModifyProcessInstanceResponse", "zDeleteRoleResponse", "zUnassignRoleFromClientResponse", "zAssignRoleToClientResponse", "zUnassignRoleFromGroupResponse", "zAssignRoleToGroupResponse", "zUnassignRoleFromMappingRuleResponse", "zAssignRoleToMappingRuleResponse", "zUnassignRoleFromUserResponse", "zAssignRoleToUserResponse", "zGetStatusResponse", "zDeleteTenantResponse", "zUnassignClientFromTenantResponse", "zAssignClientToTenantResponse", "zUnassignGroupFromTenantResponse", "zAssignGroupToTenantResponse", "zUnassignMappingRuleFromTenantResponse", "zAssignMappingRuleToTenantResponse", "zUnassignRoleFromTenantResponse", "zAssignRoleToTenantResponse", "zUnassignUserFromTenantResponse", "zAssignUserToTenantResponse", "zDeleteUserResponse", "zUpdateUserTaskResponse", "zUnassignUserTaskResponse", "zAssignUserTaskResponse", "zCompleteUserTaskResponse", "zGetUserTaskFormResponse"]);
6091
+ var VOID_RESPONSES = /* @__PURE__ */ new Set(["zDeleteAuthorizationResponse", "zUpdateAuthorizationResponse", "zCancelBatchOperationResponse", "zResumeBatchOperationResponse", "zSuspendBatchOperationResponse", "zPinClockResponse", "zResetClockResponse", "zDeleteGlobalClusterVariableResponse", "zDeleteTenantClusterVariableResponse", "zDeleteDecisionInstanceResponse", "zDeleteDocumentResponse", "zActivateAdHocSubProcessActivitiesResponse", "zCreateElementInstanceVariablesResponse", "zDeleteGlobalTaskListenerResponse", "zDeleteGroupResponse", "zUnassignClientFromGroupResponse", "zAssignClientToGroupResponse", "zUnassignMappingRuleFromGroupResponse", "zAssignMappingRuleToGroupResponse", "zUnassignUserFromGroupResponse", "zAssignUserToGroupResponse", "zResolveIncidentResponse", "zUpdateJobResponse", "zCompleteJobResponse", "zThrowJobErrorResponse", "zFailJobResponse", "zDeleteMappingRuleResponse", "zCancelProcessInstanceResponse", "zDeleteProcessInstanceResponse", "zMigrateProcessInstanceResponse", "zModifyProcessInstanceResponse", "zDeleteRoleResponse", "zUnassignRoleFromClientResponse", "zAssignRoleToClientResponse", "zUnassignRoleFromGroupResponse", "zAssignRoleToGroupResponse", "zUnassignRoleFromMappingRuleResponse", "zAssignRoleToMappingRuleResponse", "zUnassignRoleFromUserResponse", "zAssignRoleToUserResponse", "zGetStatusResponse", "zDeleteTenantResponse", "zUnassignClientFromTenantResponse", "zAssignClientToTenantResponse", "zUnassignGroupFromTenantResponse", "zAssignGroupToTenantResponse", "zUnassignMappingRuleFromTenantResponse", "zAssignMappingRuleToTenantResponse", "zUnassignRoleFromTenantResponse", "zAssignRoleToTenantResponse", "zUnassignUserFromTenantResponse", "zAssignUserToTenantResponse", "zDeleteUserResponse", "zUpdateUserTaskResponse", "zUnassignUserTaskResponse", "zAssignUserTaskResponse", "zCompleteUserTaskResponse"]);
6092
6092
  var CancelError = class extends Error {
6093
6093
  constructor() {
6094
6094
  super("Cancelled");
@@ -16721,4 +16721,4 @@ export {
16721
16721
  withTimeoutTE,
16722
16722
  eventuallyTE
16723
16723
  };
16724
- //# sourceMappingURL=chunk-5B3A2LNR.js.map
16724
+ //# sourceMappingURL=chunk-DP5HJTAU.js.map