Octonode Playbook

Workflow inputs, node values, and triggers

Canonical Octonode repository documentation.

Workflow inputs, node values, and triggers

This design uses the JSON Schema contracts Octonode already gets from code. It does not add a second form-definition format.

Data model

  • nodes[].signature.inputs remains code-owned. Its properties, types, defaults, descriptions, and required list define the node form.
  • workflows[].bindings[nodeId][input] stores a fixed literal or a serializable source-symbol snapshot. The scheduler applies it after incoming edges and before expressions.
  • workflows[].inputs is the workflow invocation schema. Source workflows project it from function parameters and local TypeScript types. Canvas workflows derive it from root inputs; Start/Webhook roots publish their output schema instead.
  • types remains the shared JSON Schema registry. Forms resolve #/types/<name> references. Adding a local TypeScript interface/type and compiling projects also updates the inline source-workflow input schema.

Studio flow

  1. Select or double-click a node to open the Inspector.
  2. The I/O tab renders one control per declared input. required fields are marked; optional fields can remain unset. Fixed values are saved with the workflow draft and override incoming values.
  3. Execute workflow opens the same schema-driven form for workflow inputs and refuses to run while required values are missing.
  4. Source-symbol bindings remain labeled with their declaration id; changing one intentionally replaces it with a workflow-owned literal.

One-way triggers

Start and Webhook declare inputs.properties: {} and therefore render no target handles. Their configured payload schema is exposed as outputs, so they only give values to the DAG. Connection validation rejects incoming edges even when topology is authored outside Studio.

POST /api/webhooks/:workflowId accepts the event JSON and runs the workflow through the normal queue/history path. The workflow must be active and have a Webhook root. Existing request authorization and project scoping apply.

Ownership

Source function signatures and source-projected bindings are code-owned and refreshed by Compile. Canvas topology, fixed values, expressions, activation, and layout are workflow/config-owned. Runtime validation remains in each language SDK, so Studio convenience checks never replace trust-boundary validation.

On this page