FlowDrop Workflow Specification 1.0-draft

Reserved config-only parameters always carry a default

The rule

Normative: this is the rule
  1. dynamicInputs, dynamicOutputs and branches are reserved config-only parameters and are never input ports.
  2. Where a node type opts one in by marking it configurable, it enters the config schema and always gets a config-defaults entry: the node type's default, else the schema's default, else an empty array.
  3. Such an entry is never omitted and never null, unlike an ordinary configurable parameter, whose entry is omitted when its resolved default is null.

What it means

dynamicInputs, dynamicOutputs and branches behave like any other configurable parameter for one purpose only: entering the config schema when the node type opts them in. Their config-defaults entry does not follow the ordinary rule. An ordinary configurable parameter with no default anywhere is left out of config defaults entirely; one of these three is never left out and never recorded as null — with nothing to fall back on, the entry is still written, as an empty array.

Example

A reserved parameter with no default declared on the declared schema or the node type:

A reserved parameter with no default anywhereopted in
{ "branches": { "type": "array", "title": "Branches" } }
The config-defaults entry for brancheswritten
[]

An ordinary parameter in the same position would have no entry at all.

Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · SCH-5 · changed in spec 1.0