Reusable Inputs
For the complete documentation index, see llms.txt. For a full content snapshot, see llms-full.txt. Append.mdto anykestra.io/docs/*URL for plain Markdown.
Available on:Enterprise EditionCloud
Reusable inputs let you define a named group of typed inputs once at the namespace level and reference them in any flow.
Define a reusable input set
A reusable input set is defined at the namespace level with an id, an optional description, and an inputs list structured the same as flow inputs.
id: ad_credentialsnamespace: company.teamdescription: Active Directory credentials required by provisioning flows.inputs: - id: username type: STRING required: true displayName: AD Username
- id: domain type: SELECT required: true values: - corp.example.com - eu.example.com
- id: password type: SECRET required: true displayName: AD PasswordThe set’s id must start with a letter or digit and may contain letters, digits, dots, hyphens, and underscores. All flow input types are valid inside a set, including FORM groups.
Each time you save, Kestra stores a new revision.
Reference a set in a flow
The REUSABLE_INPUTS input type accepts a ref property naming the set to include. Kestra expands the set’s inputs inline before execution starts, prefixing each child input id with the reference id (<refId>.<childId>).
id: provision_ad_accountnamespace: company.team
inputs: - id: environment type: SELECT values: [staging, production]
- id: ad type: REUSABLE_INPUTS ref: ad_credentials
tasks: - id: log type: io.kestra.plugin.core.log.Log message: | User: {{ inputs.ad.username }} Domain: {{ inputs.ad.domain }}The set expands into three inputs (ad.username, ad.domain, and ad.password) available alongside environment in the execution form.
Access input values
Reference each child input as {{ inputs.<refId>.<childId> }}, where refId is the id of the REUSABLE_INPUTS input in the flow and childId is the id from the set definition.
{{ inputs.ad.username }}{{ inputs.ad.domain }}{{ inputs.ad.password }}Set properties
| Property | Required | Description |
|---|---|---|
ref | Yes | The id of the reusable input set to include. |
namespace | No | Namespace where the set is defined. Defaults to the flow’s own namespace. Resolution walks the hierarchy; a set in a parent namespace is available to child namespaces. |
revision | No | Integer revision to pin. Omit to use the latest revision at execution time. |
Pin a specific revision
The revision property pins the set to a specific saved version. When omitted, the latest revision is used at execution time.
inputs: - id: ad type: REUSABLE_INPUTS ref: ad_credentials revision: 3Use a set from a parent namespace
A set defined in company is available to any flow in company, company.team, company.team.infra, and any other descendant namespace. If a child namespace defines a set with the same id, the child’s definition takes precedence over the parent’s. To use a set from a different branch of the hierarchy, set namespace explicitly:
inputs: - id: ad type: REUSABLE_INPUTS ref: ad_credentials namespace: companyRBAC
The REUSABLE_INPUTS resource controls who can manage reusable input sets. Flows that reference a set require only normal flow-execution permissions; the expansion happens server-side before the execution form is rendered.
| Role | Permissions |
|---|---|
| Viewer | View, list |
| Launcher | View, list |
| Editor | View, list, create, update, delete |
| Admin | All actions |
Validation
Kestra does not check whether a referenced set exists at flow save time; the existence check runs at execution creation. If the set is missing, execution creation fails with an error naming the missing set and the namespace hierarchy that was searched.
A reusable input set’s inputs are expanded in a single pass. If a set’s inputs list contains a REUSABLE_INPUTS entry, that nested reference is not recursively expanded and the execution form will fail to render it correctly. Keep set definitions flat.
Was this page helpful?