EventTrigger
Trigger a Flow based on an event occurring on matching assets.
EventTrigger
Trigger a Flow based on an event occurring on matching assets.
yaml
type: "io.kestra.plugin.ee.assets.EventTrigger"Examples
yaml
id: cascade_pipeline
namespace: company.data
triggers:
- id: staging_table_event
type: io.kestra.plugin.ee.assets.EventTrigger
namespace: company.data
assetType: io.kestra.plugin.ee.assets.Table
events:
- CREATED
- UPDATED
metadataQuery:
- field: model_layer
type: EQUAL_TO
value: staging
tasks:
- id: transform_to_mart
type: io.kestra.plugin.core.flow.Subflow
namespace: company.data
flowId: create_mart_tables
inputs:
source_table: "{{ trigger.assets[0].id }}"yaml
id: audit_deletions
namespace: company.security
triggers:
- id: asset_deletion_monitor
type: io.kestra.plugin.ee.assets.EventTrigger
events:
- DELETED
tasks:
- id: log_deletion
type: io.kestra.plugin.jdbc.postgresql.Query
sql: |
INSERT INTO audit_log (asset_id, asset_type, namespace, deleted_at, deleted_by)
VALUES (
'{{ trigger.assets[0].id }}',
'{{ trigger.assets[0].type }}',
'{{ trigger.assets[0].namespace }}',
'{{ trigger.assets[0].eventTime }}',
'{{ trigger.assets[0].tenantId }}'
)yaml
id: auto_configure_monitoring
namespace: company.infra
triggers:
- id: new_vm_created
type: io.kestra.plugin.ee.assets.EventTrigger
assetType: io.kestra.plugin.ee.assets.VM
events:
- CREATED
tasks:
- id: setup_monitoring
type: io.kestra.plugin.scripts.shell.Commands
commands:
- |
configure-monitoring \
--vm-id {{ trigger.assets[0].id }} \
--region {{ trigger.assets[0].metadata.region }} \
--provider {{ trigger.assets[0].metadata.provider }}yaml
id: team_notifications
namespace: company.notifications
triggers:
- id: data_team_assets
type: io.kestra.plugin.ee.assets.EventTrigger
events:
- UPDATED
metadataQuery:
- field: owner
type: EQUAL_TO
value: data-team
tasks:
- id: notify_slack
type: io.kestra.plugin.notifications.slack.SlackIncoming
url: "{{ secret('DATA_TEAM_WEBHOOK') }}"
payload: |
{
"text": "📊 Asset `{{ trigger.assets[0].id }}` was updated"
}yaml
id: critical_asset_monitor
namespace: company.monitoring
triggers:
- id: critical_assets
type: io.kestra.plugin.ee.assets.EventTrigger
events:
- CREATED
- UPDATED
metadataQuery:
- field: environment
type: IS_ONE_OF
value: [prod, staging]
- field: priority
type: EQUAL_TO
value: critical
- field: status
type: NOT_EQUAL_TO
value: archived
- field: description
type: CONTAINS
value: production
tasks:
- id: validate_asset
type: io.kestra.plugin.core.log.Log
message: "Critical asset {{ trigger.assets[0].id }} in {{ trigger.assets[0].metadata.environment }} requires validation"Properties
allowConcurrent Non-dynamicboolean
Default
falseassetId string
assetType string
conditions Non-dynamic
Definitions
Allow events only between two datetimes.
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.DateTimeBetweenio.kestra.core.models.conditions.types.DateTimeBetweenConditionio.kestra.plugin.core.condition.DateTimeBetweenConditionafterstring
beforestring
datestring
Default
{{ trigger.date }}Allow events on a specific weekday.
dayOfWeek*Requiredstring
Possible Values
MONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAYtype*Requiredobject
Possible Values
io.kestra.plugin.core.condition.DayWeekio.kestra.core.models.conditions.types.DayWeekConditionio.kestra.plugin.core.condition.DayWeekConditiondatestring
Default
{{ trigger.date }}Allow events on an nth weekday within the month.
dayInMonth*Requiredstring
Possible Values
FIRSTLASTSECONDTHIRDFOURTHdayOfWeek*Requiredstring
Possible Values
MONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAYtype*Requiredobject
Possible Values
io.kestra.plugin.core.condition.DayWeekInMonthio.kestra.plugin.core.condition.DayWeekInMonthConditionio.kestra.core.models.conditions.types.DayWeekInMonthConditiondatestring
Default
{{ trigger.date }}Match events from a specific flow.
flowId*Requiredstring
namespace*Requiredstring
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.ExecutionFlowio.kestra.plugin.core.condition.ExecutionFlowConditionio.kestra.core.models.conditions.types.ExecutionFlowConditionMatch executions by label set.
labels*Requiredarrayobject
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.ExecutionLabelsio.kestra.core.models.conditions.types.ExecutionLabelsConditionio.kestra.plugin.core.condition.ExecutionLabelsConditionMatch executions by namespace.
namespace*Requiredstring
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.ExecutionNamespaceio.kestra.core.models.conditions.types.ExecutionNamespaceConditionio.kestra.plugin.core.condition.ExecutionNamespaceConditioncomparisonstring
Possible Values
EQUALSPREFIXSUFFIXprefixbooleanstring
Default
falseCondition based on the outputs of an upstream execution.
expression*Requiredbooleanstring
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.ExecutionOutputsio.kestra.core.models.conditions.types.ExecutionOutputsConditionio.kestra.plugin.core.condition.ExecutionOutputsConditionMatch executions by status.
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.ExecutionStatusio.kestra.core.models.conditions.types.ExecutionStatusConditionio.kestra.plugin.core.condition.ExecutionStatusConditioninarray
SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTEDnotInarray
SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTEDCondition based on variable expression.
expression*Requiredstring
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.Expressionio.kestra.plugin.core.condition.ExpressionConditionio.kestra.core.models.conditions.types.VariableConditionMatch a specific flow (deprecated).
flowId*Requiredstring
namespace*Requiredstring
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.FlowConditionio.kestra.core.models.conditions.types.FlowConditionMatch a flow namespace (deprecated).
namespace*Requiredstring
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.FlowNamespaceConditionio.kestra.core.models.conditions.types.FlowNamespaceConditionprefixboolean
Default
falseMatch executions where a task was retried.
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.HasRetryAttemptio.kestra.plugin.core.condition.HasRetryAttemptConditionio.kestra.core.models.conditions.types.HasRetryAttemptConditioninarray
SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTEDnotInarray
SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTEDRun a flow when multiple preconditions are true within a window (deprecated).
conditions*Requiredobject
id*Requiredstring
Validation RegExp
^[a-zA-Z0-9][a-zA-Z0-9_-]*Min length
1type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.MultipleConditionio.kestra.core.models.conditions.types.MultipleConditionresetOnSuccessboolean
Default
truetimeWindow
Default
{
"type": "DURATION_WINDOW"
}io.kestra.core.models.triggers.TimeWindow
deadlinestring
Format
partial-timeendTimestring
Format
partial-timestartTimestring
Format
partial-timetypestring
Default
DURATION_WINDOWPossible Values
DAILY_TIME_DEADLINEDAILY_TIME_WINDOWDURATION_WINDOWSLIDING_WINDOWwindowstring
Format
durationwindowAdvancestring
Format
durationwindowDeprecatedstring
Format
durationwindowAdvanceDeprecatedstring
Format
durationInvert one or more conditions.
conditions*Required
Min items
1type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.Notio.kestra.core.models.conditions.types.NotConditionio.kestra.plugin.core.condition.NotConditionPass when any condition is true.
conditions*Required
Min items
1type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.Orio.kestra.core.models.conditions.types.OrConditionio.kestra.plugin.core.condition.OrConditionAllow events on public holidays.
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.PublicHolidayio.kestra.plugin.core.condition.PublicHolidayConditionio.kestra.core.models.conditions.types.PublicHolidayConditioncountrystring
datestring
Default
{{ trigger.date}}subDivisionstring
Allow events between two times of day.
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.TimeBetweenio.kestra.plugin.core.condition.TimeBetweenConditionio.kestra.core.models.conditions.types.TimeBetweenConditionafterstring
beforestring
datestring
Default
{{ trigger.date }}Allow events on weekends.
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.Weekendio.kestra.plugin.core.condition.WeekendConditionio.kestra.core.models.conditions.types.WeekendConditiondatestring
Default
{{ trigger.date }}events array
SubTypestring
Possible Values
CREATEDUPDATEDDELETEDUSEDmetadataQuery array
Definitions
io.kestra.plugin.ee.assets.EventTrigger-FieldQuery
fieldstring
typestring
Possible Values
EQUAL_TONOT_EQUAL_TOvaluestring
namespace string
stopAfter Non-dynamicarray
SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTEDOutputs
asset *Required
Definitions
io.kestra.ee.assets.AssetWithEvent
descriptionstring
displayNamestring
eventstring
Possible Values
CREATEDUPDATEDDELETEDUSEDeventTimestring
Format
date-timeidstring
Validation RegExp
^[a-zA-Z0-9][a-zA-Z0-9._-]*Min length
1Max length
150metadataobject
namespacestring
Validation RegExp
^[a-z0-9][a-z0-9._-]*Min length
1Max length
150typestring
Min length
1