Flow
type: "io.kestra.core.models.triggers.types.Flow"
Kestra is able to trigger flow after another one. This allows chaining flow without need to update the base flows. With that, you can break responsibility between different flow to different teams.
If you don't provide any conditions, the flow will be triggered for EVERY execution of EVERY flow on your instance.
Examples
This flow will be triggered after each successfully execution of flow
io.kestra.tests.trigger-flow
and forward theuri
ofmy-task
taskId outputs.
id: trigger-flow-listener
namespace: io.kestra.tests
inputs:
- name: from-parent
type: STRING
tasks:
- id: only-no-input
type: io.kestra.core.tasks.debugs.Return
format: "v1: {{trigger.executionId}}"
triggers:
- id: listen-flow
type: io.kestra.core.models.triggers.types.Flow
inputs:
from-parent: '{{ outputs.myTask.uri }}'
conditions:
- type: io.kestra.core.models.conditions.types.ExecutionFlowCondition
namespace: io.kestra.tests
flowId: trigger-flow
- type: io.kestra.core.models.conditions.types.ExecutionStatusCondition
in:
- SUCCESS
Properties
conditions
- Type: array
- SubType: Condition
- Dynamic: ❌
- Required: ❌
List of Conditions in order to limit the flow trigger.
inputs
- Type: object
- Dynamic: ❌
- Required: ❌
Fill input of this flow based on output of current flow, allowing to pass data or file on the triggered flow
If you provide invalid input, the flow will not be created! Since there is no task started, you can't log any reason visible on the execution ui. So you will need to go to Logs tabs on the ui to understand the error
Outputs
executionId
- Type: string
The execution id that trigger the current flow
flowId
- Type: string
The execution id that trigger the current flow
flowRevision
- Type: integer
The flow revision that trigger the current flow
namespace
- Type: string
The namespace of the flow that trigger the current flow
state
- Type: string
- Possible Values:
CREATED
RUNNING
PAUSED
RESTARTED
KILLING
SUCCESS
WARNING
FAILED
KILLED
The execution state