Summary
Several Workflows pages show inputs at the root of a workflow definition. That has been invalid since 9.5 — kibana#259943 (merged 2026-05-14, v9.5.0) moved inputs under the manual trigger.
Allowed root keys are now version, name, description, enabled, tags, triggers, settings, consts, outputs, steps (kbn-workflows/spec/schema.ts, WorkflowSchemaBase).
Following the docs produces an editor error: The "inputs" must be defined under a manual trigger, not at the root level. The workflow can still be saved, but is persisted valid: false, enabled: false, so it won't run on triggers and can't be scheduled. Manual runs still work via a runtime backward-compat fallback (getInputsFromDefinition).
kibana#259943 carries release_note:skip, which is likely why the docs were never updated. Elastic's own SigEvents workflow broke for the same reason (kibana#270116).
Already correct — use as the model
authoring-techniques/anatomy.md handles this properly with an applies-switch (9.5+ nested, stack: preview =9.3, ga =9.4 root-level). Applying the same treatment elsewhere is the fix.
Affected
Wrong YAML and wrong prose:
templating.md — "Inputs are defined at the workflow level"
reference/context-variables.md — "Declared in the workflow's top-level inputs block"
reference/cheat-sheet.md — lists inputs: [ ... ] among top-level keys
Wrong YAML:
triggers/manual-triggers.md (the page about manual trigger inputs)
authoring-techniques/compose-workflows.md
steps/composition.md
use-cases/security/automate-security-operations/enrich-alert-with-threat-intel.md (×2)
use-cases/security/manage-detection-rules/run-rules-on-demand.md (×2)
Fix
- Move
inputs under the manual trigger, scoped with applies-switch per anatomy.md.
- Correct the three prose statements above.
- State that references remain
{{ inputs.<name> }} in either placement.
Note
Kibana-side: get_json_schema_from_yaml_schema.monaco.test.ts still uses root-level fixtures, but every assertion sits behind if (!inputsSchema) return;, so those tests silently no-op.
Summary
Several Workflows pages show
inputsat the root of a workflow definition. That has been invalid since 9.5 — kibana#259943 (merged 2026-05-14,v9.5.0) movedinputsunder themanualtrigger.Allowed root keys are now
version,name,description,enabled,tags,triggers,settings,consts,outputs,steps(kbn-workflows/spec/schema.ts,WorkflowSchemaBase).Following the docs produces an editor error:
The "inputs" must be defined under a manual trigger, not at the root level.The workflow can still be saved, but is persistedvalid: false, enabled: false, so it won't run on triggers and can't be scheduled. Manual runs still work via a runtime backward-compat fallback (getInputsFromDefinition).kibana#259943 carries
release_note:skip, which is likely why the docs were never updated. Elastic's own SigEvents workflow broke for the same reason (kibana#270116).Already correct — use as the model
authoring-techniques/anatomy.mdhandles this properly with anapplies-switch(9.5+ nested,stack: preview =9.3, ga =9.4root-level). Applying the same treatment elsewhere is the fix.Affected
Wrong YAML and wrong prose:
templating.md— "Inputs are defined at the workflow level"reference/context-variables.md— "Declared in the workflow's top-levelinputsblock"reference/cheat-sheet.md— listsinputs: [ ... ]among top-level keysWrong YAML:
triggers/manual-triggers.md(the page about manual trigger inputs)authoring-techniques/compose-workflows.mdsteps/composition.mduse-cases/security/automate-security-operations/enrich-alert-with-threat-intel.md(×2)use-cases/security/manage-detection-rules/run-rules-on-demand.md(×2)Fix
inputsunder themanualtrigger, scoped withapplies-switchperanatomy.md.{{ inputs.<name> }}in either placement.Note
Kibana-side:
get_json_schema_from_yaml_schema.monaco.test.tsstill uses root-level fixtures, but every assertion sits behindif (!inputsSchema) return;, so those tests silently no-op.