FlowDrop Workflow Specification 1.0-draft

A schema that will not load never rewrites stored parameters

A momentary failure to load a node type's declared schema once looked exactly like "this node type declares nothing", and a save then wrote that emptiness back as permanent configuration loss.

The rule

Normative: this is the rule
  1. A declared parameter schema that fails to load, or that loads without a usable properties map, must not be read as a node type declaring nothing; a node type with no parameters declares an empty map, and an absent map loses stored rows exactly as a failure does.
  2. Where a node type has stored parameter configuration that such a schema would drop, the save is refused and nothing is rewritten; where nothing is stored there is nothing to lose, and the rest of the editing surface stays reachable.
  3. A write path that is reachable without that refusal writes the stored configuration back verbatim rather than the accidentally empty computed one, and leaves reserved-port exposure untouched.
  4. Only the render path may treat an unloadable schema as no properties, where that correctly means render no rows.

What it means

A node type's declared parameter schema failing to load and a node type genuinely declaring no parameters produce the same shape — an empty or missing map — so the two must not be read as interchangeable. Only where stored configuration would actually be lost does the save refuse; the two failure shapes, a schema that raises an error and one that loads but without a usable map, are treated identically, both refusing the save rather than writing the accidentally empty result back.

Example

A node type's stored parameters, edited again after its schema starts raising an error on load:

The node type's stored parameterspreserved
{
  "loop_back": { "configurable": false, "connectable": true, "required": false, "exposed_by_default": true },
  "query": { "configurable": true, "connectable": true, "required": true, "exposed_by_default": true, "default": "cats" }
}

The same stored parameters survive just as untouched when the schema loads without raising, but comes back with no usable properties map:

The same stored parameters when the schema loads without a usable properties mappreserved
{ "loop_back": { "configurable": false, "connectable": true, "required": false, "exposed_by_default": true } }
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 · SCH-33 · changed in spec 1.0