FlowDrop Workflow Specification 1.0-draft

When a node has a ui schema, and when it has none

The ui schema is what turns a flat config form into grouped sections. Whether there is one at all is decided by a single question about the final schema.

The rule

Normative: this is the rule
  1. The ui schema is generated from the final config schema, after every reserved property has been injected.
  2. It is null exactly when no property carries a registered group: a property tagged with an unregistered group falls into the default bucket, so a schema tagged only with unregistered groups also yields null, and the form stays on its flat path.
  3. Groups are collapsed by default; a group is opened for a node instance where that instance sets one of the fields in it.

What it means

A group name the site does not recognise does not get its own section — it falls into the same default bucket as an untagged property. When that is the only tagged property a schema has, the form has nothing grouped at all, and the whole ui schema comes back null rather than a group of one.

The per-instance open state is not "this field has a value" — it is "this field differs from its own default." A field explicitly set to the value the schema already defaults it to does not open its group.

Example

A config schema property is tagged with a group name the site does not register.

A property tagged with an unregistered group
{ "a": { "type": "string", "x-group": "not-a-real-group" } }
The resulting form schemaflat
null

Separately, an executable node's maxRetries field defaults to 0.

The Execution group when maxRetries is set to 0collapsed
false
The Execution group when maxRetries is set to 3opened
true

An empty string or a missing value behave the same as the default: neither opens its group.

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-23 · changed in spec 1.0