FlowDrop Workflow Specification 1.0-draft

An edge's source node must exist

The rule

Normative: this is the rule
  1. An edge whose source does not name a node in the workflow is refused with R8_EDGE_SOURCE_MISSING at edge.{index}, where {index} is the edge's position in the workflow's edge list.
  2. An empty source counts as missing.

What it means

The locator counts position, not identity: it is built from where the edge sits in the workflow's edge list, never from the edge's own id. An edge named e1 that happens to be first in the list is reported at edge.0 regardless of what its id says.

An empty source counts as missing on the same footing as one naming a node the workflow does not have — there is no separate "malformed edge" outcome for it.

Example

An edge named e1 names a source the workflow has no node for:

An edge whose source names no node in the workflow
{ "id": "e1", "source": "gone", "target": "t" }
The code and locator of the finding it producesrefused
{ "code": "R8_EDGE_SOURCE_MISSING", "locator": "edge.0" }

The locator addresses the edge by its position, not by the e1 it carries.

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 · R8.a · changed in spec 1.0