--- id: R4.d family: GR-VAL level: core profiles: [storage-api] posture: normative-target added: "1.0" changed: "1.0" source: https://flowdrop.io/spec/rules/gr-val/r4-d specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # R4.d — An exposure entry must name a port the node declares *GR-VAL (Part I) · level: core · profiles: storage-api · added in 1.0* ## The rule > **Normative.** This is the rule. > > 1. A workflow exposure entry's `port` must be declared by the named node: as an input parameter for an entry on the input side, as an output for one on the output side. > > 2. An entry naming an undeclared port is refused at `schema.{side}.{index}`. > > 3. Where the node's executor cannot be resolved the port cannot be checked, so this check and R10 are skipped for that entry rather than guessed at; the skip is narrower than the entry, and R4.a's name format and R4.b's uniqueness (both decided from the entry alone) are still reported. ## Related rules - Names: R4.a, R4.b, R10 - Referenced by: R4.c, R10 --- Rule identifiers are permanent and are never renumbered. This specification carries no implementation status: each implementation publishes its own standing against these rules. Licensed CC BY 4.0.