FlowDrop Workflow Specification 1.0-draft

An edge may not target a hidden input port

The rule

Normative: this is the rule

An edge whose target port is declared by the target node's node type but is not exposed on that node is refused with R7_EDGE_TARGET_NOT_EXPOSED at edge.{index}, where {index} is the edge's position in the workflow's edge list.

What it means

"Not exposed" folds two different origins into one refusal: a port this instance has explicitly hidden, and a port the node type itself hides by default that this instance never touched. R7.a does not distinguish between them — either way, an edge into it is refused the same way. R7.c is what decides which of the two is in force for a given instance.

The check only fires for a port the target node's type actually declares; a dynamic or author-defined port is out of its scope entirely (R7.d).

Example

The target node's type declares a value input; this instance's own configuration records it as hidden:

An edge landing on a port this instance has hidden
{ "id": "e1", "source": "s", "sourceHandle": "s-output-result", "target": "t", "targetHandle": "t-input-value" }
The code and locator of the finding it producesrefused
{ "code": "R7_EDGE_TARGET_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.a · changed in spec 1.0