For the complete documentation index, see llms.txt. For a full content snapshot, see llms-full.txt. Append .md to any kestra.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_credentials
namespace: company.team
description: 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 Password

The 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_account
namespace: 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

PropertyRequiredDescription
refYesThe id of the reusable input set to include.
namespaceNoNamespace 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.
revisionNoInteger 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: 3

Use 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: company

RBAC

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.

RolePermissions
ViewerView, list
LauncherView, list
EditorView, list, create, update, delete
AdminAll 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?