--- id: R6.j family: GR-VAL level: extended profiles: [storage-api] posture: normative-target added: "1.0" changed: "1.0" source: https://flowdrop.io/spec/rules/gr-val/r6-j specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # R6.j — No node type, no schema-driven config verdict *GR-VAL (Part I) · level: extended · profiles: storage-api · added in 1.0* ## The rule > **Normative.** This is the rule. > > 1. When a node's node type does not resolve there is no derived config schema to judge its `config` against, so the schema-driven checks of R6 (required keys, type, `enum`, bounds, `pattern`, and the unknown-key warning) are not applied to that node, and produce neither error nor warning for it. > > 2. The unresolvable node type is reported by R9. ## What it means Without a resolved node type there is nothing to derive a config schema from, so none of R6's schema-driven checks run for that node — not the required-key check, not type or `enum` or bounds or `pattern`, and not even the unknown-key warning a stray key would otherwise draw. The node is silent on all of it, favourably or not: a key nobody declared draws no warning either, for want of anything to compare it against. That silence does not reach the config's own shape. A node whose type does not resolve still has its `config` checked for being an object at all (R6.a) — the skip is for the schema-driven checks alone. ## Example ```json title="Config on a node whose type does not resolve" verdict="accepted" {"undeclared": "value"} ``` ## Related rules - Names: R9 - Referenced by: 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.