--- id: R6.b 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/r6-b specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # R6.b — Required config keys must be present *GR-VAL (Part I) · level: core · profiles: storage-api · added in 1.0* The list of required keys is the one the node type's derived config schema publishes, not the node type's raw required flags; a parameter that can be fed by an edge is deliberately not required in config. ## The rule > **Normative.** This is the rule. > > 1. Every key the node's derived config schema marks required must be present in the node's `config`. > > 2. A key present with the value `null` counts as present. > > 3. Each missing key yields one `R6_CONFIG_REQUIRED` at `node.{id}.config.{key}` (where `{id}` is the node's id and `{key}` the missing key), and the save does not take effect. > > 4. A parameter the node type also marks connectable does not appear on the derived required list, so its absence from `config` is accepted at save even when no edge supplies it; the omission is decided from the node type's declared flags and never from the workflow's actual edges. ## Related rules - Names: R6.i - Referenced by: R6.i, R6.a --- 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.