Flow
Flow protocol schemas
Flow Node Types — built-in seed set (ADR-0018).
Historically this z.enum gated FlowNodeSchema.type, which made the
closed protocol reject any plugin-registered node type — defeating the open
runtime registry (registerNodeExecutor(type: string)). Per ADR-0018 the
gate is removed: FlowNodeSchema.type is now a validated string, checked
against the live action registry at registerFlow() time, not frozen here.
FlowNodeAction is retained as the canonical list of built-in type ids
(documentation + the seed descriptor set the engine registers at boot). It
no longer constrains authored flows — plugins extend the vocabulary.
Source: packages/spec/src/automation/flow.zod.ts
TypeScript Usage
import { FlowNode, FlowNodeAction, FlowVariable } from '@objectstack/spec/automation';
import type { FlowNode, FlowNodeAction, FlowVariable } from '@objectstack/spec/automation';
// Validate data
const result = FlowNode.parse(data);FlowNode
Properties
| Property | Type | Required | Description |
|---|---|---|---|
| id | string | ✅ | Node unique ID |
| type | string | ✅ | Action type — a built-in FlowNodeAction id or a plugin-registered node type. Validated against the live action registry at registerFlow() (ADR-0018), not by a closed enum. |
| label | string | ✅ | Node label |
| config | Record<string, any> | optional | Node configuration |
| connectorConfig | Object | optional | |
| position | Object | optional | |
| timeoutMs | integer | optional | Maximum execution time for this node in milliseconds |
| inputSchema | Record<string, Object> | optional | Input parameter schema for this node |
| outputSchema | Record<string, Object> | optional | Output schema declaration for this node |
| waitEventConfig | Object | optional | Configuration for wait node event resumption |
| boundaryConfig | Object | optional | Configuration for boundary events attached to host nodes |
FlowNodeAction
Allowed Values
startenddecisionassignmentloopcreate_recordupdate_recorddelete_recordget_recordhttphttp_requestnotifyscriptscreenwaitsubflowconnector_actionparallel_gatewayjoin_gatewayboundary_event
FlowVariable
Properties
| Property | Type | Required | Description |
|---|---|---|---|
| name | string | ✅ | Variable name |
| type | string | ✅ | Data type (text, number, boolean, object, list) |
| isInput | boolean | ✅ | Is input parameter |
| isOutput | boolean | ✅ | Is output parameter |