elastic / elastic/docs-content

Workflows docs show inputs at the workflow root, invalid since 9.5

Open
#8,137 1 comment 0 reactions 1 assignee Claimed by @charlotte-hoblik View on GitHub
Confidence: 1 documentation Effort: 0.5 Impact: 3 Reach: 4 Team:Developer
Dominant language
No language data
Stars
47
Forks
261
Avg merge
3d 12h
Merged PRs (30d)
116

Description

## 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

1. Move `inputs` under the `manual` trigger, scoped with `applies-switch` per `anatomy.md`.
2. Correct the three prose statements above.
3. State that references remain `{{ inputs. }}` 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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.