FlowDrop Workflow Specification 1.0-draft

Config is a JSON object

Every other rule about config addresses it by key, which presumes an object. This is the rule that says so, and it holds for nodes no schema is judging.

The rule

Normative: this is the rule
  1. A node's data.config, where present, must be a JSON object.
  2. A string, number, boolean or JSON array is refused with R6_CONFIG_INVALID at node.{id}.config (where {id} is the node's id), and the save does not take effect.
  3. This is a requirement on config's shape rather than on its contents, so it applies to every node, including a node that records no node type and a node whose node type does not resolve — neither of which has a derived schema against which the rest of R6 could judge anything (R6.j).

What it means

Every other check under R6 depends on a schema derived from the node's type, so a node whose type does not resolve has nothing left for those checks to compare its config against (R6.j). This one does not depend on a schema at all: it looks only at the shape of data.config, not its content, so it still runs on a node whose type cannot be resolved to an executor — the one part of R6 a reader tracking R6.j's exemption could easily assume it covers too.

Example

A node anchored to a type that resolves normally, with config set to a plain string:

A node's config set to a plain stringrefused
"not-an-object"

A node anchored to a type that cannot be resolved to an executor, with config set to a number:

The same shape check on a node whose type does not resolverefused
7
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 · R6.a · changed in spec 1.0