FlowDrop Workflow Specification 1.0-draft

An instance override decides exposure; otherwise the default does

The rule

Normative: this is the rule
  1. A port is exposed on a node instance when the instance's direction-scoped overrides in data.config.ports contain an entry for that port carrying an exposed key: that key's value is the answer.
  2. Where there is no such entry, or the entry carries no exposed key, the port's default exposure decides (exposedByDefault, CFG-2).

What it means

Being named in the direction-scoped overrides is not, by itself, an override. An entry for a port can exist there for reasons that have nothing to do with exposure, so the only thing that flips a port away from its default is that entry carrying an exposed key. A port named but silent on exposed reads exactly as a port not named at all.

Example

The port value defaults exposed; error defaults hidden (EXPO-4). Three override shapes for value land on two different answers.

An override entry with an explicit exposed: falsehidden
{ "id": "value", "exposed": false }
An override entry with an explicit exposed: true, on a port that defaults hiddenexposed
{ "id": "error", "exposed": true }
An entry naming value, but with no exposed key at allexposed
{ "id": "value" }

The third entry names the same port as the first, and still resolves to the default: naming a port is not deciding about it.

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