@camunda8/cli 2.7.0-alpha.9 → 2.8.0-alpha.1

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.
Files changed (112) hide show
  1. package/EXAMPLES.md +14 -1
  2. package/README.md +11 -3
  3. package/dist/client.d.ts +2 -2
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js.map +1 -1
  6. package/dist/command-dispatch.d.ts.map +1 -1
  7. package/dist/command-dispatch.js +22 -1
  8. package/dist/command-dispatch.js.map +1 -1
  9. package/dist/command-framework.d.ts +36 -6
  10. package/dist/command-framework.d.ts.map +1 -1
  11. package/dist/command-framework.js +53 -19
  12. package/dist/command-framework.js.map +1 -1
  13. package/dist/command-registry.d.ts +85 -61
  14. package/dist/command-registry.d.ts.map +1 -1
  15. package/dist/command-registry.js +108 -52
  16. package/dist/command-registry.js.map +1 -1
  17. package/dist/command-validation.d.ts +14 -6
  18. package/dist/command-validation.d.ts.map +1 -1
  19. package/dist/command-validation.js +69 -8
  20. package/dist/command-validation.js.map +1 -1
  21. package/dist/commands/completion.d.ts +19 -0
  22. package/dist/commands/completion.d.ts.map +1 -1
  23. package/dist/commands/completion.js +36 -14
  24. package/dist/commands/completion.js.map +1 -1
  25. package/dist/commands/deployments.d.ts +30 -3
  26. package/dist/commands/deployments.d.ts.map +1 -1
  27. package/dist/commands/deployments.js +320 -218
  28. package/dist/commands/deployments.js.map +1 -1
  29. package/dist/commands/forms.d.ts.map +1 -1
  30. package/dist/commands/forms.js +2 -3
  31. package/dist/commands/forms.js.map +1 -1
  32. package/dist/commands/help.d.ts.map +1 -1
  33. package/dist/commands/help.js +39 -39
  34. package/dist/commands/help.js.map +1 -1
  35. package/dist/commands/identity-groups.d.ts.map +1 -1
  36. package/dist/commands/identity-groups.js +3 -5
  37. package/dist/commands/identity-groups.js.map +1 -1
  38. package/dist/commands/identity-mapping-rules.d.ts.map +1 -1
  39. package/dist/commands/identity-mapping-rules.js +5 -9
  40. package/dist/commands/identity-mapping-rules.js.map +1 -1
  41. package/dist/commands/identity-roles.d.ts.map +1 -1
  42. package/dist/commands/identity-roles.js +3 -5
  43. package/dist/commands/identity-roles.js.map +1 -1
  44. package/dist/commands/identity-tenants.d.ts.map +1 -1
  45. package/dist/commands/identity-tenants.js +3 -5
  46. package/dist/commands/identity-tenants.js.map +1 -1
  47. package/dist/commands/identity-users.d.ts.map +1 -1
  48. package/dist/commands/identity-users.js +3 -5
  49. package/dist/commands/identity-users.js.map +1 -1
  50. package/dist/commands/identity.d.ts +29 -2
  51. package/dist/commands/identity.d.ts.map +1 -1
  52. package/dist/commands/identity.js +247 -208
  53. package/dist/commands/identity.js.map +1 -1
  54. package/dist/commands/incidents.d.ts.map +1 -1
  55. package/dist/commands/incidents.js +2 -3
  56. package/dist/commands/incidents.js.map +1 -1
  57. package/dist/commands/jobs.d.ts.map +1 -1
  58. package/dist/commands/jobs.js +5 -9
  59. package/dist/commands/jobs.js.map +1 -1
  60. package/dist/commands/mcp-proxy.d.ts +4 -4
  61. package/dist/commands/mcp-proxy.d.ts.map +1 -1
  62. package/dist/commands/mcp-proxy.js +49 -39
  63. package/dist/commands/mcp-proxy.js.map +1 -1
  64. package/dist/commands/messages.d.ts.map +1 -1
  65. package/dist/commands/messages.js +2 -4
  66. package/dist/commands/messages.js.map +1 -1
  67. package/dist/commands/open.d.ts +4 -2
  68. package/dist/commands/open.d.ts.map +1 -1
  69. package/dist/commands/open.js +17 -18
  70. package/dist/commands/open.js.map +1 -1
  71. package/dist/commands/plugins.d.ts.map +1 -1
  72. package/dist/commands/plugins.js +16 -32
  73. package/dist/commands/plugins.js.map +1 -1
  74. package/dist/commands/process-instances.d.ts.map +1 -1
  75. package/dist/commands/process-instances.js +5 -9
  76. package/dist/commands/process-instances.js.map +1 -1
  77. package/dist/commands/profiles.d.ts.map +1 -1
  78. package/dist/commands/profiles.js +8 -16
  79. package/dist/commands/profiles.js.map +1 -1
  80. package/dist/commands/resource-extensions.d.ts +8 -0
  81. package/dist/commands/resource-extensions.d.ts.map +1 -0
  82. package/dist/commands/resource-extensions.js +20 -0
  83. package/dist/commands/resource-extensions.js.map +1 -0
  84. package/dist/commands/run.d.ts +2 -1
  85. package/dist/commands/run.d.ts.map +1 -1
  86. package/dist/commands/run.js +10 -4
  87. package/dist/commands/run.js.map +1 -1
  88. package/dist/commands/search.d.ts.map +1 -1
  89. package/dist/commands/search.js +4 -8
  90. package/dist/commands/search.js.map +1 -1
  91. package/dist/commands/session.d.ts.map +1 -1
  92. package/dist/commands/session.js +4 -7
  93. package/dist/commands/session.js.map +1 -1
  94. package/dist/commands/user-tasks.d.ts.map +1 -1
  95. package/dist/commands/user-tasks.js +2 -3
  96. package/dist/commands/user-tasks.js.map +1 -1
  97. package/dist/commands/variables.d.ts +10 -0
  98. package/dist/commands/variables.d.ts.map +1 -0
  99. package/dist/commands/variables.js +51 -0
  100. package/dist/commands/variables.js.map +1 -0
  101. package/dist/commands/watch.d.ts +7 -5
  102. package/dist/commands/watch.d.ts.map +1 -1
  103. package/dist/commands/watch.js +90 -39
  104. package/dist/commands/watch.js.map +1 -1
  105. package/dist/errors.d.ts +62 -8
  106. package/dist/errors.d.ts.map +1 -1
  107. package/dist/errors.js +99 -10
  108. package/dist/errors.js.map +1 -1
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +22 -39
  111. package/dist/index.js.map +1 -1
  112. package/package.json +7 -5
@@ -5,7 +5,7 @@
5
5
  * Consumers (help, completion, validation, dispatch) derive their
6
6
  * data from this registry instead of maintaining separate copies.
7
7
  */
8
- import { AuthorizationKey, IncidentKey, JobKey, ProcessDefinitionId, ProcessDefinitionKey, ProcessInstanceKey, TenantId, Username, UserTaskKey } from "@camunda8/orchestration-cluster-api";
8
+ import { AuthorizationKey, ElementInstanceKey, IncidentKey, JobKey, ProcessDefinitionId, ProcessDefinitionKey, ProcessInstanceKey, TenantId, Username, UserTaskKey } from "@camunda8/orchestration-cluster-api";
9
9
  export interface FlagDef {
10
10
  /** Value type: "string" expects an argument, "boolean" is a presence flag. */
11
11
  type: "string" | "boolean";
@@ -27,10 +27,6 @@ export interface FlagDef {
27
27
  * erased to unknown here since FlagDef holds heterogeneous validators.
28
28
  */
29
29
  validate?: (value: string) => any;
30
- /** When true, this flag appears in the top-level `c8ctl help` Flags section. */
31
- showInTopLevelHelp?: boolean;
32
- /** Context hint shown in the top-level help (e.g. "use with 'get pd'"). */
33
- helpHint?: string;
34
30
  /** Rich description for agent-facing help (AI/programmatic consumers). Shown in Agent Flags section. */
35
31
  agentDescription?: string;
36
32
  /** Scope hint for agent-facing help (e.g. "all commands", "all list/search/get commands"). */
@@ -165,8 +161,6 @@ export declare const GET_PD_FLAGS: {
165
161
  readonly xml: {
166
162
  readonly type: "boolean";
167
163
  readonly description: "Get BPMN XML (process definitions)";
168
- readonly showInTopLevelHelp: true;
169
- readonly helpHint: "use with 'get pd'";
170
164
  };
171
165
  };
172
166
  export declare const GET_PD_POSITIONALS: readonly [{
@@ -1078,14 +1072,10 @@ export declare const COMMAND_REGISTRY: {
1078
1072
  variables: {
1079
1073
  readonly type: "boolean";
1080
1074
  readonly description: "Include variables in output";
1081
- readonly showInTopLevelHelp: true;
1082
- readonly helpHint: "use with 'get pi'";
1083
1075
  };
1084
1076
  userTask: {
1085
1077
  readonly type: "boolean";
1086
1078
  readonly description: "Get form for user task";
1087
- readonly showInTopLevelHelp: true;
1088
- readonly helpHint: "use with 'get form'";
1089
1079
  };
1090
1080
  ut: {
1091
1081
  readonly type: "boolean";
@@ -1094,8 +1084,6 @@ export declare const COMMAND_REGISTRY: {
1094
1084
  processDefinition: {
1095
1085
  readonly type: "boolean";
1096
1086
  readonly description: "Get form for process definition";
1097
- readonly showInTopLevelHelp: true;
1098
- readonly helpHint: "use with 'get form'";
1099
1087
  };
1100
1088
  pd: {
1101
1089
  readonly type: "boolean";
@@ -1104,8 +1092,6 @@ export declare const COMMAND_REGISTRY: {
1104
1092
  xml: {
1105
1093
  readonly type: "boolean";
1106
1094
  readonly description: "Get BPMN XML (process definitions)";
1107
- readonly showInTopLevelHelp: true;
1108
- readonly helpHint: "use with 'get pd'";
1109
1095
  };
1110
1096
  };
1111
1097
  resourceFlags: {
@@ -1113,16 +1099,12 @@ export declare const COMMAND_REGISTRY: {
1113
1099
  readonly xml: {
1114
1100
  readonly type: "boolean";
1115
1101
  readonly description: "Get BPMN XML (process definitions)";
1116
- readonly showInTopLevelHelp: true;
1117
- readonly helpHint: "use with 'get pd'";
1118
1102
  };
1119
1103
  };
1120
1104
  form: {
1121
1105
  readonly userTask: {
1122
1106
  readonly type: "boolean";
1123
1107
  readonly description: "Get form for user task";
1124
- readonly showInTopLevelHelp: true;
1125
- readonly helpHint: "use with 'get form'";
1126
1108
  };
1127
1109
  readonly ut: {
1128
1110
  readonly type: "boolean";
@@ -1131,8 +1113,6 @@ export declare const COMMAND_REGISTRY: {
1131
1113
  readonly processDefinition: {
1132
1114
  readonly type: "boolean";
1133
1115
  readonly description: "Get form for process definition";
1134
- readonly showInTopLevelHelp: true;
1135
- readonly helpHint: "use with 'get form'";
1136
1116
  };
1137
1117
  readonly pd: {
1138
1118
  readonly type: "boolean";
@@ -1143,8 +1123,6 @@ export declare const COMMAND_REGISTRY: {
1143
1123
  readonly variables: {
1144
1124
  readonly type: "boolean";
1145
1125
  readonly description: "Include variables in output";
1146
- readonly showInTopLevelHelp: true;
1147
- readonly helpHint: "use with 'get pi'";
1148
1126
  };
1149
1127
  };
1150
1128
  };
@@ -1218,8 +1196,6 @@ export declare const COMMAND_REGISTRY: {
1218
1196
  id: {
1219
1197
  type: "string";
1220
1198
  description: string;
1221
- showInTopLevelHelp: true;
1222
- helpHint: string;
1223
1199
  };
1224
1200
  bpmnProcessId: {
1225
1201
  type: "string";
@@ -1232,19 +1208,14 @@ export declare const COMMAND_REGISTRY: {
1232
1208
  awaitCompletion: {
1233
1209
  type: "boolean";
1234
1210
  description: string;
1235
- showInTopLevelHelp: true;
1236
- helpHint: string;
1237
1211
  };
1238
1212
  fetchVariables: {
1239
1213
  type: "boolean";
1240
1214
  description: string;
1241
- showInTopLevelHelp: true;
1242
1215
  };
1243
1216
  requestTimeout: {
1244
1217
  type: "string";
1245
1218
  description: string;
1246
- showInTopLevelHelp: true;
1247
- helpHint: string;
1248
1219
  };
1249
1220
  username: {
1250
1221
  type: "string";
@@ -1276,32 +1247,6 @@ export declare const COMMAND_REGISTRY: {
1276
1247
  description: string;
1277
1248
  validate: typeof TenantId.assumeExists;
1278
1249
  };
1279
- ownerId: {
1280
- type: "string";
1281
- description: string;
1282
- required: true;
1283
- };
1284
- ownerType: {
1285
- type: "string";
1286
- description: string;
1287
- required: true;
1288
- };
1289
- resourceType: {
1290
- type: "string";
1291
- description: string;
1292
- required: true;
1293
- };
1294
- resourceId: {
1295
- type: "string";
1296
- description: string;
1297
- required: true;
1298
- };
1299
- permissions: {
1300
- type: "string";
1301
- description: string;
1302
- required: true;
1303
- csv: true;
1304
- };
1305
1250
  mappingRuleId: {
1306
1251
  type: "string";
1307
1252
  description: string;
@@ -1315,6 +1260,36 @@ export declare const COMMAND_REGISTRY: {
1315
1260
  description: string;
1316
1261
  };
1317
1262
  };
1263
+ resourceFlags: {
1264
+ authorization: {
1265
+ ownerId: {
1266
+ type: "string";
1267
+ description: string;
1268
+ required: true;
1269
+ };
1270
+ ownerType: {
1271
+ type: "string";
1272
+ description: string;
1273
+ required: true;
1274
+ };
1275
+ resourceType: {
1276
+ type: "string";
1277
+ description: string;
1278
+ required: true;
1279
+ };
1280
+ resourceId: {
1281
+ type: "string";
1282
+ description: string;
1283
+ required: true;
1284
+ };
1285
+ permissions: {
1286
+ type: "string";
1287
+ description: string;
1288
+ required: true;
1289
+ csv: true;
1290
+ };
1291
+ };
1292
+ };
1318
1293
  };
1319
1294
  delete: {
1320
1295
  description: string;
@@ -1578,6 +1553,38 @@ export declare const COMMAND_REGISTRY: {
1578
1553
  }];
1579
1554
  };
1580
1555
  };
1556
+ set: {
1557
+ description: string;
1558
+ helpDescription: string;
1559
+ helpResource: string;
1560
+ hasDetailedHelp: true;
1561
+ helpFooterLabel: string;
1562
+ mutating: true;
1563
+ requiresResource: true;
1564
+ helpExamples: {
1565
+ command: string;
1566
+ description: string;
1567
+ }[];
1568
+ resources: string[];
1569
+ flags: {
1570
+ variables: {
1571
+ type: "string";
1572
+ description: string;
1573
+ required: true;
1574
+ };
1575
+ local: {
1576
+ type: "boolean";
1577
+ description: string;
1578
+ };
1579
+ };
1580
+ resourcePositionals: {
1581
+ variable: readonly [{
1582
+ readonly name: "key";
1583
+ readonly required: true;
1584
+ readonly validate: typeof ElementInstanceKey.assumeExists;
1585
+ }];
1586
+ };
1587
+ };
1581
1588
  deploy: {
1582
1589
  description: string;
1583
1590
  helpDescription: string;
@@ -1591,7 +1598,12 @@ export declare const COMMAND_REGISTRY: {
1591
1598
  description: string;
1592
1599
  }[];
1593
1600
  resources: never[];
1594
- flags: {};
1601
+ flags: {
1602
+ force: {
1603
+ type: "boolean";
1604
+ description: string;
1605
+ };
1606
+ };
1595
1607
  };
1596
1608
  run: {
1597
1609
  description: string;
@@ -1611,6 +1623,10 @@ export declare const COMMAND_REGISTRY: {
1611
1623
  type: "string";
1612
1624
  description: string;
1613
1625
  };
1626
+ force: {
1627
+ type: "boolean";
1628
+ description: string;
1629
+ };
1614
1630
  };
1615
1631
  };
1616
1632
  assign: {
@@ -1733,6 +1749,10 @@ export declare const COMMAND_REGISTRY: {
1733
1749
  type: "boolean";
1734
1750
  description: string;
1735
1751
  };
1752
+ extensions: {
1753
+ type: "string";
1754
+ description: string;
1755
+ };
1736
1756
  };
1737
1757
  aliases: string[];
1738
1758
  };
@@ -1845,8 +1865,6 @@ export declare const COMMAND_REGISTRY: {
1845
1865
  from: {
1846
1866
  type: "string";
1847
1867
  description: string;
1848
- showInTopLevelHelp: true;
1849
- helpHint: string;
1850
1868
  };
1851
1869
  };
1852
1870
  resourcePositionals: {
@@ -1994,7 +2012,12 @@ export declare const COMMAND_REGISTRY: {
1994
2012
  description: string;
1995
2013
  }[];
1996
2014
  resources: string[];
1997
- flags: {};
2015
+ flags: {
2016
+ shell: {
2017
+ type: "string";
2018
+ description: string;
2019
+ };
2020
+ };
1998
2021
  resourceFlags: {
1999
2022
  install: {
2000
2023
  shell: {
@@ -2064,7 +2087,8 @@ export declare function resolveAlias(resource: string): string;
2064
2087
  */
2065
2088
  export declare function getCommandDef(verb: string): CommandDef | undefined;
2066
2089
  /**
2067
- * Get all flags accepted for a given verb, including global flags.
2090
+ * Get all flags accepted for a given verb, including global flags and any
2091
+ * resource-scoped flags declared under `resourceFlags`.
2068
2092
  */
2069
2093
  export declare function getAcceptedFlags(verb: string): Record<string, FlagDef> | undefined;
2070
2094
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"command-registry.d.ts","sourceRoot":"","sources":["../src/command-registry.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+/BS,CAAC;AAEvC,yEAAyE;AACzE,MAAM,MAAM,IAAI,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAIjD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAe9C,CAAC;AAEL;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CASlE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAIrC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAWtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAC/C,MAAM,EACN;IAAE,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAC9C,CAwCA"}
1
+ {"version":3,"file":"command-registry.d.ts","sourceRoot":"","sources":["../src/command-registry.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8jCS,CAAC;AAEvC,yEAAyE;AACzE,MAAM,MAAM,IAAI,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAIjD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAe9C,CAAC;AAEL;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CASlE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAUrC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAWtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAC/C,MAAM,EACN;IAAE,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAC9C,CAwCA"}
@@ -5,7 +5,7 @@
5
5
  * Consumers (help, completion, validation, dispatch) derive their
6
6
  * data from this registry instead of maintaining separate copies.
7
7
  */
8
- import { AuthorizationKey, IncidentKey, JobKey, ProcessDefinitionId, ProcessDefinitionKey, ProcessInstanceKey, TenantId, Username, UserTaskKey, } from "@camunda8/orchestration-cluster-api";
8
+ import { AuthorizationKey, ElementInstanceKey, IncidentKey, JobKey, ProcessDefinitionId, ProcessDefinitionKey, ProcessInstanceKey, TenantId, Username, UserTaskKey, } from "@camunda8/orchestration-cluster-api";
9
9
  // ─── Resource Aliases ────────────────────────────────────────────────────────
10
10
  /**
11
11
  * Maps short/plural resource names to their canonical singular form.
@@ -23,6 +23,7 @@ export const RESOURCE_ALIASES = {
23
23
  msg: "message",
24
24
  vars: "variable",
25
25
  variables: "variable",
26
+ var: "variable",
26
27
  profile: "profile",
27
28
  profiles: "profile",
28
29
  plugin: "plugin",
@@ -306,16 +307,12 @@ export const GET_PD_FLAGS = {
306
307
  xml: {
307
308
  type: "boolean",
308
309
  description: "Get BPMN XML (process definitions)",
309
- showInTopLevelHelp: true,
310
- helpHint: "use with 'get pd'",
311
310
  },
312
311
  };
313
312
  const GET_FORM_FLAGS = {
314
313
  userTask: {
315
314
  type: "boolean",
316
315
  description: "Get form for user task",
317
- showInTopLevelHelp: true,
318
- helpHint: "use with 'get form'",
319
316
  },
320
317
  ut: {
321
318
  type: "boolean",
@@ -324,8 +321,6 @@ const GET_FORM_FLAGS = {
324
321
  processDefinition: {
325
322
  type: "boolean",
326
323
  description: "Get form for process definition",
327
- showInTopLevelHelp: true,
328
- helpHint: "use with 'get form'",
329
324
  },
330
325
  pd: {
331
326
  type: "boolean",
@@ -336,8 +331,6 @@ const GET_PI_FLAGS = {
336
331
  variables: {
337
332
  type: "boolean",
338
333
  description: "Include variables in output",
339
- showInTopLevelHelp: true,
340
- helpHint: "use with 'get pi'",
341
334
  },
342
335
  };
343
336
  // ─── Per-resource get positionals ────────────────────────────────────────────
@@ -669,8 +662,6 @@ export const COMMAND_REGISTRY = {
669
662
  id: {
670
663
  type: "string",
671
664
  description: "Process definition ID (alias for --processDefinitionId)",
672
- showInTopLevelHelp: true,
673
- helpHint: "alias for --bpmnProcessId",
674
665
  },
675
666
  bpmnProcessId: {
676
667
  type: "string",
@@ -680,19 +671,14 @@ export const COMMAND_REGISTRY = {
680
671
  awaitCompletion: {
681
672
  type: "boolean",
682
673
  description: "Wait for process to complete",
683
- showInTopLevelHelp: true,
684
- helpHint: "use with 'create pi'",
685
674
  },
686
675
  fetchVariables: {
687
676
  type: "boolean",
688
677
  description: "Fetch result variables on completion",
689
- showInTopLevelHelp: true,
690
678
  },
691
679
  requestTimeout: {
692
680
  type: "string",
693
681
  description: "Await timeout in milliseconds",
694
- showInTopLevelHelp: true,
695
- helpHint: "use with --awaitCompletion",
696
682
  },
697
683
  // Identity user
698
684
  username: {
@@ -713,33 +699,6 @@ export const COMMAND_REGISTRY = {
713
699
  description: "Tenant ID",
714
700
  validate: TenantId.assumeExists,
715
701
  },
716
- // Identity authorization
717
- ownerId: {
718
- type: "string",
719
- description: "Authorization owner ID",
720
- required: true,
721
- },
722
- ownerType: {
723
- type: "string",
724
- description: "Authorization owner type",
725
- required: true,
726
- },
727
- resourceType: {
728
- type: "string",
729
- description: "Authorization resource type",
730
- required: true,
731
- },
732
- resourceId: {
733
- type: "string",
734
- description: "Authorization resource ID",
735
- required: true,
736
- },
737
- permissions: {
738
- type: "string",
739
- description: "Comma-separated permissions",
740
- required: true,
741
- csv: true,
742
- },
743
702
  // Identity mapping rule
744
703
  mappingRuleId: {
745
704
  type: "string",
@@ -748,6 +707,40 @@ export const COMMAND_REGISTRY = {
748
707
  claimName: { type: "string", description: "Claim name" },
749
708
  claimValue: { type: "string", description: "Claim value" },
750
709
  },
710
+ // Resource-scoped flags: the authorization-specific flags below are
711
+ // only required when creating an authorization. Declaring them at the
712
+ // verb level would force every `create <resource>` invocation to
713
+ // supply them (see #308 — required-flag enforcement).
714
+ resourceFlags: {
715
+ authorization: {
716
+ ownerId: {
717
+ type: "string",
718
+ description: "Authorization owner ID",
719
+ required: true,
720
+ },
721
+ ownerType: {
722
+ type: "string",
723
+ description: "Authorization owner type",
724
+ required: true,
725
+ },
726
+ resourceType: {
727
+ type: "string",
728
+ description: "Authorization resource type",
729
+ required: true,
730
+ },
731
+ resourceId: {
732
+ type: "string",
733
+ description: "Authorization resource ID",
734
+ required: true,
735
+ },
736
+ permissions: {
737
+ type: "string",
738
+ description: "Comma-separated permissions",
739
+ required: true,
740
+ csv: true,
741
+ },
742
+ },
743
+ },
751
744
  },
752
745
  delete: {
753
746
  description: "Delete resource",
@@ -971,9 +964,49 @@ export const COMMAND_REGISTRY = {
971
964
  ],
972
965
  },
973
966
  },
967
+ set: {
968
+ description: "Set variables on an element instance",
969
+ helpDescription: "Set variables on an element instance (process instance or flow element scope). Variables are propagated to the outermost scope by default; use --local to restrict to the specified scope.",
970
+ helpResource: "variable <key>",
971
+ hasDetailedHelp: true,
972
+ helpFooterLabel: "Show set command with all flags",
973
+ mutating: true,
974
+ requiresResource: true,
975
+ helpExamples: [
976
+ {
977
+ command: 'c8ctl set variable 2251799813685249 --variables=\'{"status":"approved"}\'',
978
+ description: "Set variables on a process instance",
979
+ },
980
+ {
981
+ command: "c8ctl set variable 2251799813685249 --variables='{\"x\":1}' --local",
982
+ description: "Set variables in local scope only",
983
+ },
984
+ ],
985
+ resources: ["variable"],
986
+ flags: {
987
+ variables: {
988
+ type: "string",
989
+ description: "JSON object of variables to set (required)",
990
+ required: true,
991
+ },
992
+ local: {
993
+ type: "boolean",
994
+ description: "Set variables in local scope only (default: propagate to outermost scope)",
995
+ },
996
+ },
997
+ resourcePositionals: {
998
+ variable: [
999
+ {
1000
+ name: "key",
1001
+ required: true,
1002
+ validate: ElementInstanceKey.assumeExists,
1003
+ },
1004
+ ],
1005
+ },
1006
+ },
974
1007
  deploy: {
975
- description: "Deploy BPMN/DMN/forms",
976
- helpDescription: "Deploy BPMN, DMN, and form files (auto-discovers deployable files)",
1008
+ description: "Deploy resources",
1009
+ helpDescription: "Deploy files to Camunda (auto-discovers deployable files in directories)",
977
1010
  helpResource: "[path...]",
978
1011
  hasDetailedHelp: true,
979
1012
  helpFooterLabel: "Show deploy command with all flags",
@@ -986,7 +1019,12 @@ export const COMMAND_REGISTRY = {
986
1019
  },
987
1020
  ],
988
1021
  resources: [],
989
- flags: {},
1022
+ flags: {
1023
+ force: {
1024
+ type: "boolean",
1025
+ description: "Deploy any file type, ignoring the default extension allow-list",
1026
+ },
1027
+ },
990
1028
  },
991
1029
  run: {
992
1030
  description: "Deploy and start process",
@@ -1005,6 +1043,10 @@ export const COMMAND_REGISTRY = {
1005
1043
  resources: [],
1006
1044
  flags: {
1007
1045
  variables: { type: "string", description: "JSON variables" },
1046
+ force: {
1047
+ type: "boolean",
1048
+ description: "Deploy any file type, ignoring the default extension allow-list",
1049
+ },
1008
1050
  },
1009
1051
  },
1010
1052
  // ── Assignment commands ────────────────────────────────────────────────
@@ -1057,7 +1099,7 @@ export const COMMAND_REGISTRY = {
1057
1099
  // ── Operational commands ───────────────────────────────────────────────
1058
1100
  watch: {
1059
1101
  description: "Watch files for changes and auto-deploy",
1060
- helpDescription: "Watch files for changes and auto-deploy (BPMN, DMN, forms)",
1102
+ helpDescription: "Watch files for changes and auto-deploy",
1061
1103
  helpResource: "[path...]",
1062
1104
  hasDetailedHelp: true,
1063
1105
  helpFooterLabel: "Show watch command with all flags",
@@ -1075,6 +1117,10 @@ export const COMMAND_REGISTRY = {
1075
1117
  type: "boolean",
1076
1118
  description: "Continue watching after all deployment errors",
1077
1119
  },
1120
+ extensions: {
1121
+ type: "string",
1122
+ description: "Comma-separated list of file extensions to watch (e.g. .bpmn,.dmn,.form)",
1123
+ },
1078
1124
  },
1079
1125
  aliases: ["w"],
1080
1126
  },
@@ -1160,8 +1206,6 @@ export const COMMAND_REGISTRY = {
1160
1206
  from: {
1161
1207
  type: "string",
1162
1208
  description: "Load plugin from URL",
1163
- showInTopLevelHelp: true,
1164
- helpHint: "use with 'load plugin'",
1165
1209
  },
1166
1210
  },
1167
1211
  resourcePositionals: {
@@ -1315,7 +1359,12 @@ export const COMMAND_REGISTRY = {
1315
1359
  },
1316
1360
  ],
1317
1361
  resources: ["bash", "zsh", "fish", "install"],
1318
- flags: {},
1362
+ flags: {
1363
+ shell: {
1364
+ type: "string",
1365
+ description: "Shell to install completions for (bash, zsh, fish)",
1366
+ },
1367
+ },
1319
1368
  resourceFlags: {
1320
1369
  install: {
1321
1370
  shell: {
@@ -1410,13 +1459,20 @@ export function getCommandDef(verb) {
1410
1459
  : undefined;
1411
1460
  }
1412
1461
  /**
1413
- * Get all flags accepted for a given verb, including global flags.
1462
+ * Get all flags accepted for a given verb, including global flags and any
1463
+ * resource-scoped flags declared under `resourceFlags`.
1414
1464
  */
1415
1465
  export function getAcceptedFlags(verb) {
1416
1466
  const def = getCommandDef(verb);
1417
1467
  if (!def)
1418
1468
  return undefined;
1419
- return { ...GLOBAL_FLAGS, ...def.flags };
1469
+ const merged = { ...GLOBAL_FLAGS, ...def.flags };
1470
+ if (def.resourceFlags) {
1471
+ for (const rFlags of Object.values(def.resourceFlags)) {
1472
+ Object.assign(merged, rFlags);
1473
+ }
1474
+ }
1475
+ return merged;
1420
1476
  }
1421
1477
  /**
1422
1478
  * Check whether a verb×resource combination is valid.