FlowDrop Workflow Specification 1.0-draft

An entry that cannot be built is skipped, not fatal

One broken entry must not cost the workflow its whole contract, so the build drops it and carries on.

The rule

Normative: this is the rule
  1. An entry that cannot be resolved (the node it names is missing, the node declares no such port) is skipped with a logged warning, and the remaining entries are still built.
  2. An entry that is structurally malformed, missing or empty in name, node_id or port, is likewise skipped and never contributes to the contract.

What it means

A manifest can go wrong in two different ways, and neither costs the workflow the rest of its contract. An entry can be structurally malformed — its name, node_id or port missing or empty — in which case it never named anything to resolve in the first place. Or it can be well-formed but point nowhere real: a node that is not in the graph, or a port its node's own type never declared. Either way the entry is dropped and the build carries on with whatever else the manifest names.

Example

An entry naming a node absent from the graphskipped
{ "name": "gone", "node_id": "ghost", "port": "key" }
An entry naming a port its node's own type never declaredskipped
{ "name": "gone", "node_id": "n1", "port": "nope" }
An entry with no name at allskipped
{ "node_id": "n1", "port": "key" }

None of the three contributes a property to the built contract; a valid sibling entry elsewhere in the same manifest still would.

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 · MAN-8 · changed in spec 1.0