Trigger Trigger

yaml
type: "io.kestra.plugin.fs.http.Trigger"

Trigger a flow based on an HTTP response

Examples

Send a Slack alert if the price is below a certain threshold. The flow will be triggered every 30 seconds until the condition is met. Then, the stopAfter property will disable the trigger to avoid unnecessary API calls and alerts.

yaml
id: http_price_alert
namespace: dev

tasks:
  - id: send_slack_alert
    type: io.kestra.plugin.notifications.slack.SlackIncomingWebhook
    url: "{{ secret('SLACK_WEBHOOK') }}"
    payload: |
      {
        "channel": "#price-alerts",
        "text": "The price is now: {{ json(trigger.body).price }}"
      }

triggers:
  - id: http
    type: io.kestra.plugin.fs.http.Trigger
    uri: https://fakestoreapi.com/products/1
    responseCondition: "{{ json(response.body).price <= 110 }}"
    interval: PT30S
    stopAfter:
      - SUCCESS

Trigger a flow if an HTTP endpoint returns a status code equals to 200

yaml
id: http-trigger
namespace: dev

triggers:
  - id: http
    type: io.kestra.plugin.fs.http.Trigger
    uri: https://api.chucknorris.io/jokes/random
    responseCondition: "{{ response.statusCode == 200 }}"
    stopAfter:
      - SUCCESS

tasks:
  - id: log_response
    type: io.kestra.core.tasks.log.Log
    message: '{{ trigger.body }}'

Properties

responseCondition

  • Type: string
  • Dynamic: ✔️
  • Required: ✔️
  • Default:

The condition on the HTTP response to trigger a flow which can be any expression that evaluates to a boolean value.

The condition will be evaluated after calling the HTTP endpoint, it can use the response itself to determine whether to start a flow or not. The following variables are available when evaluating the condition:

  • response.statusCode: the response HTTP status code
  • response.body: the response body as a string
  • response.headers: the response headers

Boolean coercion allows 0, -0, null and '' to evaluate to false, all other values will evaluate to true.

The condition will be evaluated before any 'generic trigger conditions' that can be configured via the conditions property.

uri

  • Type: string
  • Dynamic: ✔️
  • Required: ✔️

The fully-qualified URI that points to the HTTP destination

body

  • Type: string
  • Dynamic: ✔️
  • Required:

The full body as a string

conditions

  • Type: array
  • SubType: Condition
  • Dynamic:
  • Required:

List of conditions in order to limit the flow trigger.

contentType

  • Type: string
  • Dynamic: ✔️
  • Required:

The request content type

encryptBody

  • Type: boolean
  • Dynamic:
  • Required:
  • Default: false

If true, the HTTP response body will be automatically encrypted and decrypted in the outputs if encryption is configured

When true, the encryptedBody output will be filled, otherwise the body output will be filled

formData

  • Type: object
  • Dynamic: ✔️
  • Required:

The form data to be send

headers

  • Type: object
  • SubType: string
  • Dynamic: ✔️
  • Required:

The headers to pass to the request

interval

  • Type: string
  • Dynamic:
  • Required:
  • Default: 60.000000000
  • Format: duration

Interval between polling.

The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S. See ISO_8601 Durations for more information of available interval values.

method

  • Type: string
  • Dynamic:
  • Required:
  • Default: GET
  • Possible Values:
    • OPTIONS
    • GET
    • HEAD
    • POST
    • PUT
    • DELETE
    • TRACE
    • CONNECT
    • PATCH
    • CUSTOM

The HTTP method to use

options

The HTTP request options

sslOptions

The SSL request options

stopAfter

  • Type: array
  • SubType: string
  • Dynamic:
  • Required:

List of execution states after which a trigger should be stopped (a.k.a. disabled).

Outputs

body

  • Type: object
  • Dynamic:
  • Required:

The body of the response

Kestra will by default store the task output using this property. However, if the encryptBody property is set to true, kestra will instead encrypt the output and store it using the encryptedBody output property.

code

  • Type: integer
  • Dynamic:
  • Required:

The status code of the response

encryptedBody

The encrypted body of the response

If the encryptBody property is set to true, kestra will automatically encrypt the output before storing it, and decrypt it when the output is retrieved in a downstream task.

formData

  • Type: object
  • Dynamic: ✔️
  • Required:

The form data to be sent in the request body

When sending a file, you can pass a list of maps (i.e. a list of key-value pairs) with a key 'name' and value of the filename, as well as 'content' key with the file's content as value (e.g. passed from flow inputs or outputs from another task).

headers

  • Type: object
  • SubType: array
  • Dynamic:
  • Required:

The headers of the response

uri

  • Type: string
  • Dynamic:
  • Required:
  • Format: uri

The URL of the current request

Definitions

io.kestra.plugin.fs.http.HttpInterface-RequestOptions

Properties

basicAuthPassword
  • Type: string
  • Dynamic: ✔️
  • Required:

The HTTP basic authentication password.

basicAuthUser
  • Type: string
  • Dynamic: ✔️
  • Required:

The HTTP basic authentication username.

connectTimeout
  • Type: string
  • Dynamic:
  • Required:
  • Format: duration

The connect timeout.

connectionPoolIdleTimeout
  • Type: string
  • Dynamic:
  • Required:
  • Default: 0.0
  • Format: duration

The idle timeout for connection in the client connection pool.

defaultCharset
  • Type: Charset
  • Dynamic:
  • Required:
  • Default: UTF-8

The default charset.

followRedirects
  • Type: boolean
  • Dynamic:
  • Required:
  • Default: true

Whether redirects should be followed.

logLevel
  • Type: string
  • Dynamic:
  • Required:
  • Possible Values:
    • ALL
    • TRACE
    • DEBUG
    • INFO
    • WARN
    • ERROR
    • OFF
    • NOT_SPECIFIED

The log level.

maxContentLength
  • Type: integer
  • Dynamic:
  • Required:
  • Default: 10485760

The maximum content length of the response

proxyAddress
  • Type: string
  • Dynamic: ✔️
  • Required:

The proxy address.

proxyPassword
  • Type: string
  • Dynamic: ✔️
  • Required:

The proxy password.

proxyPort
  • Type: integer
  • Dynamic:
  • Required:

The proxy port.

proxyType
  • Type: string
  • Dynamic:
  • Required:
  • Default: DIRECT
  • Possible Values:
    • DIRECT
    • HTTP
    • SOCKS

The proxy type.

proxyUsername
  • Type: string
  • Dynamic: ✔️
  • Required:

The proxy username.

readIdleTimeout
  • Type: string
  • Dynamic:
  • Required:
  • Default: 300.000000000
  • Format: duration

The default amount of time to allow the read connection to remain idle.

readTimeout
  • Type: string
  • Dynamic:
  • Required:
  • Default: 10.000000000
  • Format: duration

The default read timeout.

java.nio.charset.Charset

io.kestra.plugin.fs.http.HttpInterface-SslOptions

Properties

insecureTrustAllCertificates
  • Type: boolean
  • Dynamic:
  • Required:

Whether the client should disable checking of the remote SSL certificate.

Only applies if no trust store is configured. Note: This makes the SSL connection insecure, and should only be used for testing. If you are using a self-signed certificate, set up a trust store instead.

io.kestra.core.models.tasks.common.EncryptedString

Properties

type
  • Type: string
  • Dynamic:
  • Required:
value
  • Type: string
  • Dynamic:
  • Required: