FlowDrop Workflow Specification 1.0-draft

An edge may not leave a hidden output port

The rule

Normative: this is the rule

An edge whose source port is declared by the source node's node type but is not exposed on that node is refused with R7_EDGE_SOURCE_NOT_EXPOSED at edge.{index}.

What it means

R7.b's "not exposed" is satisfied without any instance ever touching the port: the error output every executable node carries ships hidden by default, so an edge leaving it is refused on the type's own default alone, with no override in play at all. An instance override is one way a port ends up not exposed; a type default nobody has changed is another, and R7.b treats them alike (R7.c decides which applies).

Example

The source node's type declares its error output; this instance never overrides the default that hides it:

An edge leaving a port this node's type hides by default
{ "id": "e1", "source": "s", "sourceHandle": "s-output-error", "target": "t", "targetHandle": "t-input-value" }
The code and locator of the finding it producesrefused
{ "code": "R7_EDGE_SOURCE_NOT_EXPOSED", "locator": "edge.0" }
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 · R7.b · changed in spec 1.0