EventTrigger EventTrigger
EventTrigger Certified

Trigger a Flow based on an event occurring on matching assets.

yaml
type: "io.kestra.plugin.ee.assets.EventTrigger"
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
Defaultfalse
Definitions
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.DateTimeBetweenio.kestra.core.models.conditions.types.DateTimeBetweenConditionio.kestra.plugin.core.condition.DateTimeBetweenCondition
afterstring
beforestring
datestring
Default{{ trigger.date }}
dayOfWeek*Requiredstring
Possible Values
MONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAY
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.DayWeekio.kestra.core.models.conditions.types.DayWeekConditionio.kestra.plugin.core.condition.DayWeekCondition
datestring
Default{{ trigger.date }}
dayInMonth*Requiredstring
Possible Values
FIRSTLASTSECONDTHIRDFOURTH
dayOfWeek*Requiredstring
Possible Values
MONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAY
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.DayWeekInMonthio.kestra.plugin.core.condition.DayWeekInMonthConditionio.kestra.core.models.conditions.types.DayWeekInMonthCondition
datestring
Default{{ trigger.date }}
flowId*Requiredstring
namespace*Requiredstring
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.ExecutionFlowio.kestra.plugin.core.condition.ExecutionFlowConditionio.kestra.core.models.conditions.types.ExecutionFlowCondition
labels*Requiredarrayobject
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.ExecutionLabelsio.kestra.core.models.conditions.types.ExecutionLabelsConditionio.kestra.plugin.core.condition.ExecutionLabelsCondition
namespace*Requiredstring
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.ExecutionNamespaceio.kestra.core.models.conditions.types.ExecutionNamespaceConditionio.kestra.plugin.core.condition.ExecutionNamespaceCondition
comparisonstring
Possible Values
EQUALSPREFIXSUFFIX
prefixbooleanstring
Defaultfalse
expression*Requiredbooleanstring
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.ExecutionOutputsio.kestra.core.models.conditions.types.ExecutionOutputsConditionio.kestra.plugin.core.condition.ExecutionOutputsCondition
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.ExecutionStatusio.kestra.core.models.conditions.types.ExecutionStatusConditionio.kestra.plugin.core.condition.ExecutionStatusCondition
inarray
SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED
notInarray
SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED
expression*Requiredstring
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.Expressionio.kestra.plugin.core.condition.ExpressionConditionio.kestra.core.models.conditions.types.VariableCondition
flowId*Requiredstring
namespace*Requiredstring
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.FlowConditionio.kestra.core.models.conditions.types.FlowCondition
namespace*Requiredstring
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.FlowNamespaceConditionio.kestra.core.models.conditions.types.FlowNamespaceCondition
prefixboolean
Defaultfalse
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.HasRetryAttemptio.kestra.plugin.core.condition.HasRetryAttemptConditionio.kestra.core.models.conditions.types.HasRetryAttemptCondition
inarray
SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED
notInarray
SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED
conditions*Requiredobject
id*Requiredstring
Validation RegExp^[a-zA-Z0-9][a-zA-Z0-9_-]*
Min length1
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.MultipleConditionio.kestra.core.models.conditions.types.MultipleCondition
resetOnSuccessboolean
Defaulttrue
timeWindow
Default{ "type": "DURATION_WINDOW" }
deadlinestring
Formatpartial-time
endTimestring
Formatpartial-time
startTimestring
Formatpartial-time
typestring
DefaultDURATION_WINDOW
Possible Values
DAILY_TIME_DEADLINEDAILY_TIME_WINDOWDURATION_WINDOWSLIDING_WINDOW
windowstring
Formatduration
windowAdvancestring
Formatduration
windowDeprecatedstring
Formatduration
windowAdvanceDeprecatedstring
Formatduration
conditions*Required
Min items1
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.Notio.kestra.core.models.conditions.types.NotConditionio.kestra.plugin.core.condition.NotCondition
conditions*Required
Min items1
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.Orio.kestra.core.models.conditions.types.OrConditionio.kestra.plugin.core.condition.OrCondition
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.PublicHolidayio.kestra.plugin.core.condition.PublicHolidayConditionio.kestra.core.models.conditions.types.PublicHolidayCondition
countrystring
datestring
Default{{ trigger.date}}
subDivisionstring
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.TimeBetweenio.kestra.plugin.core.condition.TimeBetweenConditionio.kestra.core.models.conditions.types.TimeBetweenCondition
afterstring
beforestring
datestring
Default{{ trigger.date }}
type*Requiredobject
Possible Values
io.kestra.plugin.core.condition.Weekendio.kestra.plugin.core.condition.WeekendConditionio.kestra.core.models.conditions.types.WeekendCondition
datestring
Default{{ trigger.date }}
SubTypestring
Possible Values
CREATEDUPDATEDDELETEDUSED
Definitions
fieldstring
typestring
Possible Values
EQUAL_TONOT_EQUAL_TO
valuestring
SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED
Definitions
descriptionstring
displayNamestring
eventstring
Possible Values
CREATEDUPDATEDDELETEDUSED
eventTimestring
Formatdate-time
idstring
Validation RegExp^[a-zA-Z0-9][a-zA-Z0-9._-]*
Min length1
Max length150
metadataobject
namespacestring
Validation RegExp^[a-z0-9][a-z0-9._-]*
Min length1
Max length150
typestring
Min length1