--- id: EXPO-6 family: GR-EXPO level: core profiles: [storage-api, editor-client] posture: normative-target added: "1.0" changed: "1.0" source: https://flowdrop.io/spec/rules/gr-expo/expo-6 specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # EXPO-6 — A processor's exposure suggestion is authoring input only *GR-EXPO (Part I) · level: core · profiles: storage-api, editor-client · added in 1.0* A processor may suggest that a port ship hidden. That suggestion is consumed once, when a node type's exposure values are first written, and never again, so a consumer reading a node type's published metadata is reading decisions, not suggestions. ## The rule > **Normative.** This is the rule. > > 1. The `x-exposed-by-default` schema extension is consumed at authoring time only: when seeding an author's exposure controls, and when a node type's stored exposure values are first derived from a processor's schema. > > 2. It must never be consulted when a workflow runs, and no execution-time decision may depend on it. > > 3. Published node metadata reports exposure as it stands in the node type's stored configuration (EXPO-7), never a processor's own suggestion; a processor declaring the extension therefore cannot change what an already-configured node type publishes. ## What it means A processor's exposure suggestion is read exactly once: when a node type is first derived from it. After that read, the suggestion is inert — changing the processor's schema later does not change what an already-derived node type publishes, because nothing at execution or publication time goes back to ask the processor again. What a node type reports is always its own stored decision (EXPO-7), never a live read of the processor. ## Example A processor's schema offers no opinion on one port and asks for the other to ship hidden. ```json title="The processor's own schema for two of its ports" { "visible_in": { "type": "string" }, "hidden_in": { "type": "string", "x-exposed-by-default": false } } ``` ```json title="What the node type stores for hidden_in, once, at derivation" verdict="hidden" { "exposed_by_default": false } ``` `visible_in` gets no such key at all — the derivation writes the flag only where it diverges from exposed. From that point on, a change to the processor's own schema reaches neither entry. ## Related rules - Names: EXPO-5, EXPO-7 - Referenced by: EXPO-5, EXPO-7, EXPO-8, EXPO-16 --- 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.