Skip to content

Commit 4b7d63c

Browse files
committed
chore(docs): regenerate references after merging origin/main
builtin-node-config.mdx changed on both sides (main's #20205 edited the module; this branch changed its description emission) and os-regen deferred it; regenerated with gen:docs from the merged tree. Claude-Session: https://claude.ai/code/session_01RCEEP3Z95jrpXCeF3it3Y2 Co-authored-by: Claude <noreply@anthropic.com>
1 parent 68d0003 commit 4b7d63c

1 file changed

Lines changed: 17 additions & 5 deletions

File tree

‎content/docs/references/automation/builtin-node-config.mdx‎

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ the contract on what a value may be. The form↔Zod ledger test still pins the
6969
descriptor's free-form `assignments` map as the openness it is; that pin and
7070
this contract describe the same surface from the two sides.
7171

72+
The `create_record` / `update_record` `fields` map carries the same value
73+
contract since #19938 (`FlowValueSlotSchema`, the "value slots" section):
74+
a field value may be a CEL value envelope beside a `{token}` template or a
75+
literal, and the three maps are the expression ledger's `value`-role slots.
76+
7277
Deliberately absent:
7378
- `decision` / `script` / `subflow` / `wait` / `connector_action` — the
7479
descriptor-schemaless class (config-schemas.test.ts). `wait` and
@@ -86,8 +91,8 @@ Deliberately absent:
8691
## TypeScript Usage
8792

8893
```typescript
89-
import { AssignmentConfigSchema, AssignmentExpressionValueSchema, AssignmentValueSchema, CreateRecordConfigSchema, DeleteRecordConfigSchema, EndConfigSchema, GetRecordConfigSchema, MapConfigSchema, ScreenConfigSchema, ScreenFieldConfigSchema, UpdateRecordConfigSchema } from '@objectstack/spec/automation';
90-
import type { AssignmentConfig, AssignmentExpressionValue, AssignmentValue, CreateRecordConfig, DeleteRecordConfig, EndConfig, GetRecordConfig, MapConfig, ScreenConfig, ScreenFieldConfig, UpdateRecordConfig } from '@objectstack/spec/automation';
94+
import { AssignmentConfigSchema, AssignmentExpressionValueSchema, AssignmentValueSchema, CreateRecordConfigSchema, DeleteRecordConfigSchema, EndConfigSchema, FlowValueSlotSchema, GetRecordConfigSchema, MapConfigSchema, ScreenConfigSchema, ScreenFieldConfigSchema, UpdateRecordConfigSchema } from '@objectstack/spec/automation';
95+
import type { AssignmentConfig, AssignmentExpressionValue, AssignmentValue, CreateRecordConfig, DeleteRecordConfig, EndConfig, FlowValueSlot, GetRecordConfig, MapConfig, ScreenConfig, ScreenFieldConfig, UpdateRecordConfig } from '@objectstack/spec/automation';
9196

9297
// Validate data
9398
const result = AssignmentConfigSchema.parse(data);
@@ -108,7 +113,7 @@ const result = AssignmentConfigSchema.parse(data);
108113

109114
## AssignmentExpressionValue
110115

111-
CEL value envelope `{ dialect: 'cel', source }` — evaluated by the expression engine to the value the variable takes; the whole CEL stdlib (`joinNonEmpty`, …) is reachable
116+
CEL value envelope `{ dialect: 'cel', source }` — evaluated by the expression engine to the value the slot takes; the whole CEL stdlib (`joinNonEmpty`, …) is reachable
112117

113118
### Properties
114119

@@ -136,7 +141,7 @@ Value the variable takes: a string (`{token}` flow interpolation — a sole toke
136141
| Property | Type | Required | Description |
137142
| :--- | :--- | :--- | :--- |
138143
| **objectName** | `string` | ✅ | Object to insert into |
139-
| **fields** | `Record<string, any>` | optional | Field values to write on the new record |
144+
| **fields** | `Record<string, any>` | optional | Field values to write on the new record: each key is a field name, each value a `{token}` template, a CEL value envelope, or a literal |
140145
| **outputVariable** | `string` | optional | Flow variable bound to the created record |
141146

142147

@@ -165,6 +170,13 @@ Value the variable takes: a string (`{token}` flow interpolation — a sole toke
165170
| **message** | `string` | optional | Why the run was refused, as a `{token}` template interpolated at run time exactly like a screen `description` (`{record.name}` etc.), so the text names the record. Required when `outcome` is `refused`; refused when it is `completed` — a completion renders nothing, so the key would be a silent no-op. |
166171

167172

173+
---
174+
175+
## FlowValueSlot
176+
177+
A value: a string (`{token}` flow interpolation — a sole token keeps its type), a CEL value envelope `{ dialect: 'cel', source }` evaluated by the expression engine (the CEL stdlib such as `joinNonEmpty` is reachable), or any other literal
178+
179+
168180
---
169181

170182
## GetRecordConfig
@@ -272,7 +284,7 @@ Value the variable takes: a string (`{token}` flow interpolation — a sole toke
272284
| :--- | :--- | :--- | :--- |
273285
| **objectName** | `string` | ✅ | Object to update |
274286
| **filter** | `Record<string, any>` | optional | Field/value pairs identifying the record(s) to update |
275-
| **fields** | `Record<string, any>` | optional | Field values to write |
287+
| **fields** | `Record<string, any>` | optional | Field values to write: each key is a field name, each value a `{token}` template, a CEL value envelope, or a literal |
276288
| **multi** | `boolean` | optional | Declare bulk intent: update every row the filter matches (default false — a predicate update without it is refused by the engine) |
277289

278290

0 commit comments

Comments
 (0)