FlowDrop Workflow Specification 1.0-draft

A port with no stored decision is exposed, whatever the processor suggested

A known seam, recorded so nobody is surprised by it. It is the price of the fail-open polarity: a port nobody has decided about shows up rather than disappearing.

The rule

Normative: this is the rule
  1. Where a processor gains a parameter after a node type's exposure values were stored, and the node type has not been re-derived, that port has no stored exposure value and resolves as exposed, even where the processor suggests hiding it.
  2. A processor's suggestion reaches a node type only through the authoring-time derivation of EXPO-6.
descriptiveThis rule records what implementations do rather than requiring it.

What it means

A port with no stored exposure value reads exactly like a port nobody has an opinion about, even where the processor itself asked for that exact port to ship hidden. That request only ever reaches a node type through the one-time read of EXPO-6, and a port a node type never derived a decision for is a port that read never happened for. Fail-open wins: the port shows up.

Example

The processor's own schema for the portsuggested
{ "type": "string", "x-exposed-by-default": false }
The node type's own stored entry for the same portexposed
{ "connectable": true }

The node type's entry carries no exposed_by_default at all — nothing was ever derived for this port. What gets published for it carries no exposure flag either, the same shape as a port nobody has decided about, regardless of what the processor asked for.

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