Skip to content

build: objectstack validate / compile accept unknown keys in a plugin node's config (e.g. an approval node's escalation) — the build-time refusal map covers built-in node types only #21850

Description

@objectstack-fleet

QA-source: #21845 · approvals.sla-escalation · acceptance[4]

Clause A5 of approvals.sla-escalation (rev 2) fails in the follow-up run #21845 (subject 316be321e); an independent verifier (RUNNER rule 7) reproduced it: low-medium, predates 17.6.0.

Reproduction

  1. In a scratch copy of the showcase, add a flow whose approval node has escalation {…, bogusKey: 1} (or the timeout alias).
  2. objectstack validate → exit 0; objectstack compile → exit 0, and the key is copied into dist/objectstack.json.
  3. Boot: the flow is dropped with only a WARN; the server stays healthy.

Mechanism

packages/spec/src/automation/flow-node-config-refusals.ts:94-111 holds config contracts for the 13 built-in node types; plugin node types (approval) are not consulted at build time. The timeout alias is correctly refused (aliases only drive the "did you mean" text).

Done when

The build consults registered plugin node descriptors (or a declared contract map) and refuses unknown keys and invalid values; a test pins the approval escalation case.


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:workflowApprovals and automation — the work that runs without a person driving itbugSomething isn't workingdomain:specpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions