ObjectStackObjectStack

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

PropertyTypeRequiredDescription
idstringNode unique ID
typestringAction 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.
labelstringNode label
configRecord<string, any>optionalNode configuration
connectorConfigObjectoptional
positionObjectoptional
timeoutMsintegeroptionalMaximum execution time for this node in milliseconds
inputSchemaRecord<string, Object>optionalInput parameter schema for this node
outputSchemaRecord<string, Object>optionalOutput schema declaration for this node
waitEventConfigObjectoptionalConfiguration for wait node event resumption
boundaryConfigObjectoptionalConfiguration for boundary events attached to host nodes

FlowNodeAction

Allowed Values

  • start
  • end
  • decision
  • assignment
  • loop
  • create_record
  • update_record
  • delete_record
  • get_record
  • http
  • http_request
  • notify
  • script
  • screen
  • wait
  • subflow
  • connector_action
  • parallel_gateway
  • join_gateway
  • boundary_event

FlowVariable

Properties

PropertyTypeRequiredDescription
namestringVariable name
typestringData type (text, number, boolean, object, list)
isInputbooleanIs input parameter
isOutputbooleanIs output parameter

On this page