Workflow inputs
Workflow inputs allow you to parameterize workflows with typed values. Inputs are defined at the workflow level and can be provided when the workflow is triggered manually or by schedules.
Schema
See Schema Reference for the complete #StringInput, #BoolInput, and #IntInput definitions.
Input Types
Workflows support three input types, each with type-safe default values:
- string: Text values.
- bool: Boolean true/false values.
- int: Integer numeric values.
Input Definition
Inputs are defined as a map where keys are input names and values are Input objects.
Example with all types:
inputs:
model_type:
type: string
required: true
description: Type of ML model to train
debug_mode:
type: bool
default: false
description: Enable debug logging
epochs:
type: int
default: 100
description: Number of training epochs
Input Properties
Common Properties
These properties are available for all input types:
type (required)
The data type of the input.
Type: "string" | "bool" | "int"
Example:
type: string # or bool, or int
required (optional)
Whether this input must have a value.
Type: bool
Default: false
Example:
required: true
Behavior:
- If
defaultis provided, the input always has a value (satisfied by the default). - If no
default, the input must be provided by the trigger.
description (optional)
Human-readable description of the input.
Type: string
Example:
description: Model architecture (xgboost, random-forest, etc.)
String Input Specific
String inputs support an additional secret property.
secret (optional)
Whether this input contains sensitive data that should be masked in logs and UI.
Type: bool
Default: false
Only available for: type: string
Example:
inputs:
api_key:
type: string
secret: true
Type-Specific Defaults
Default values must match the input type:
String defaults:
environment:
type: string
default: "production" # String value
Boolean defaults:
dry_run:
type: bool
default: false # Boolean value (true or false)
Integer defaults:
max_retries:
type: int
default: 3 # Integer value (no quotes)
Using Inputs
Inputs are referenced in expressions as ${{ .inputs.<name> }} - see Expressions.
Type Coercion in Expressions
When inputs are used in expressions (${{ .inputs.<name> }}), they are automatically converted to strings:
See Expressions for more details on type coercion.
In Environment Variables
inputs:
model_type:
type: string
required: true
env:
MODEL_TYPE: "${{ .inputs.model_type }}"
In Shell Commands
steps:
- name: Train model
run: python train.py --model ${{ .inputs.model_type }}
In Drive Paths
upload:
path: models/
destination: "drive://bucket/${{ .inputs.model_type }}/models/"
Providing Input Values
Schedule Triggers
Schedules provide input values through the inputs field:
inputs:
dataset:
type: string
required: true
trigger:
schedule:
- cron: "0 0 * * *"
inputs:
dataset: full-training-set
- cron: "0 12 * * *"
inputs:
dataset: validation-set
Manual Triggers
Input values are provided through the trigger mechanism (UI, API, CLI) when manually starting the workflow.
- Submit and view feedback for this page
- Send feedback about H2O Workflows to cloud-feedback@h2o.ai