@camunda8/cli 3.3.0 → 3.4.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.
@@ -10,10 +10,12 @@ version resolution.
10
10
  | File | Purpose |
11
11
  | --- | --- |
12
12
  | `c8ctl-plugin.ts` | Plugin API (metadata + commands export), subcommand dispatch table |
13
- | `commands/<name>.ts` | One file per subcommand: `apply`, `get`, `get-properties`, `info`, `search`, `sync` |
13
+ | `commands/<name>.ts` | One file per subcommand: `apply`, `edit`, `get`, `get-properties`, `info`, `search`, `sync` |
14
14
  | `template-ref.ts` | `parseTemplateRef`, `readBpmnInput`, `getExecutionPlatformVersion`, `resolveOotbTemplate`, `loadTemplate` |
15
15
  | `marketplace.ts` | Cache I/O, `/ootb-connectors` fetch, sync, search, version resolution |
16
- | `helpers.ts` | `--set` parsing, file/URL fetch, glob → regex, multi-binding lookup, condition warnings |
16
+ | `helpers.ts` | `--set` parsing, file/URL fetch, glob → regex, multi-binding lookup, condition warnings, `atomicOverwriteFile` |
17
+ | `binding.ts` | Binding-target resolution shared by `apply`/`edit` — which moddle child + property a `zeebe:input`/etc. binding writes to. Hand-rolled stand-in for bpmn-js-element-templates' internal `setPropertyValue`; see the note at the top of the file about replacing it once bpmn-io/bpmn-js-element-templates#236 ships. |
18
+ | `vendor.ts` | `resolveVendorBundle()` + the minimal bpmn-js `Modeler`/`modeling` type surface shared by `apply`/`edit` |
17
19
  | `vendor-src/bundle-entry.js` | esbuild entry — re-exports `Modeler`, `CloudElementTemplatesCoreModule`, `ZeebeModdleExtension` |
18
20
 
19
21
  ## Things to know before editing
@@ -48,10 +50,23 @@ version resolution.
48
50
  recovery (dead PID or > 60 min old) and signal handlers
49
51
  (SIGINT/SIGTERM/SIGHUP) that release before re-raising. Don't
50
52
  bypass it from new code paths.
51
- - **`apply` and `get` install an EPIPE handler before writing to
52
- stdout** (`installStdoutEpipeHandler()` in `helpers.ts`). New
53
+ - **`apply`, `edit`, and `get` install an EPIPE handler before writing
54
+ to stdout** (`installStdoutEpipeHandler()` in `helpers.ts`). New
53
55
  subcommands that write to stdout must do the same — otherwise
54
56
  `... | head -c N` closing the pipe early crashes the process.
57
+ - **`apply` vs `edit`: applying a template is not the same operation as
58
+ editing one property on an already-applied element.** `apply` calls
59
+ `elementTemplates.applyTemplate()`, which unconditionally resets every
60
+ `Hidden`-typed template property to its template default on *every*
61
+ call — correct for first-time application or a version upgrade, but
62
+ it silently clobbers any hand-authored customization layered into a
63
+ Hidden-owned extension attribute (see c8ctl#466). `edit` never calls
64
+ `applyTemplate()` — it only writes into moddle children that already
65
+ exist via `modeling.updateModdleProperties`, so it can't create a
66
+ property whose gating condition wasn't previously met, but it also
67
+ can't reset anything the template doesn't explicitly touch. Don't
68
+ collapse these back into one code path without re-solving that
69
+ tension.
55
70
  - **JSON output uses element-templates schema field names verbatim.**
56
71
  No invented derivations — `binding`, `optional`, `value`, `condition`,
57
72
  `group` (id), `elementType: { value }`, `engines: { camunda }`. The