FlowDrop Workflow Specification 1.0-draft

Hiding an input port changes precedence, it does not unset the parameter

A value arriving at a hidden input is ignored, not rejected. The parameter still gets a value (the author's, or the default), so hiding a port never turns a working node into a failing one.

The rule

Normative: this is the rule
  1. Where a port is connectable but hidden, priority 1 is skipped rather than failed: a value delivered on a wire or by a caller is ignored and resolution continues to the author's saved config where the parameter is configurable and a key is present (CFG-5), and otherwise to the effective default (CFG-6).
  2. Such a parameter never takes its value from the runtime inputs, and is never left null merely because its port is hidden.
  3. Internal parameters sit outside this gate and always accept a runtime value (CFG-8).

What it means

Hiding a connectable input is a precedence change, not a removal. A value arriving on the port's wire, or supplied by a caller, is skipped entirely rather than merged, refused, or recorded — resolution carries on exactly as if that value had never arrived, landing on the author's saved value where one exists.

The consequence that is easy to miss is the floor under that skip: it must never leave the parameter unset. Where the parameter is not even configurable, so there is nothing saved to fall back on, resolution continues all the way to the schema's own default rather than stopping short — a hidden port that resolved to null would turn hiding it into breaking the node it hides.

Internal parameters sit outside this gate altogether. They are not authored ports a workflow shows or hides, so a runtime value reaches them whatever a port-exposure override happens to say about them.

Example

A parameter is connectable and configurable, the author saved a value for it, and a caller also supplies one for the same call — but the port is hidden.

The parameter's resolved value, with a caller's value also on offerkept
"from-config"

Hiding a non-configurable parameter with nothing saved does not leave it unset either: resolution falls through to the schema's own default.

A hidden parameter with no config to fall back onkept
"from-schema"

An internal parameter, hidden the same way an authored one would be, still takes the caller's value: the gate was never describing it.

An internal parameter's port marked hiddenkept
"from-runtime"

Hidden governs which value a wire or a caller may deliver; it never decides whether the parameter ends up with one.

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 · EXPO-10 · changed in spec 1.0