Commit 4e44b1a
committed
feat(automation): publish a configSchema for the map node (designer parity, #3304)
Second increment of #3304 (descriptor-side counterpart to objectui #2670 Phase 3).
The `map` node shipped no `configSchema`, so the flow designer had no server-driven
form for it. Its descriptor now carries one that mirrors objectui's hardcoded `map`
field group field-for-field:
• collection → xExpression: 'template' (an interpolate() `{items}` template,
same marker + rationale as loop.collection)
• flowName → xRef { kind: 'flow' } (typed reference picker)
• itemObject → xRef { kind: 'object' }
• iteratorVariable / outputVariable → plain text
`map` is the one previously-schemaless flow node whose fields are all scalars and
typed references — no `keyValue` map, no virtual columns — so it maps cleanly
through objectui's jsonSchemaToFlowFields with zero regression, making the online
and offline forms agree.
The other schemaless nodes (assignment, the CRUD quartet, script, subflow, screen,
wait, decision) rely on editor kinds the schema→fields adapter does not yet
reproduce — `keyValue` maps, the decision virtual `target` column, `wait`'s
top-level `waitEventConfig` block. Shipping their configSchemas before the adapter
learns those would make objectui prefer the server schema and DROP those editors (a
live regression), so they are deferred to #3304 pending an objectui adapter
extension.
Verified: new descriptor test (map configSchema carries the collection template
marker + flowName/itemObject references); tsc clean; full @objectstack/service-
automation suite green (331 tests) — the added `required` breaks nothing. Additive;
no runtime behavior change.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VuvxWgoadqryqBcjs7TpVi1 parent 39b56d0 commit 4e44b1a
3 files changed
Lines changed: 65 additions & 0 deletions
File tree
- .changeset
- packages/services/service-automation/src/builtin
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
Lines changed: 24 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
164 | 164 | | |
165 | 165 | | |
166 | 166 | | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
Lines changed: 19 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
52 | 71 | | |
53 | 72 | | |
54 | 73 | | |
| |||
0 commit comments