Trigger Trigger

yaml
type: "io.kestra.plugin.nats.Trigger"

Consume messages from a NATS subject on a JetStream-enabled NATS server to trigger execution on results.

Examples

Subscribe to a NATS subject, getting every message from the beginning of the subject on first trigger execution.

yaml
triggers:
  - id: watch
    type: io.kestra.plugin.nats.Trigger
    url: nats://localhost:4222
    username: kestra
    password: k3stra
    subject: kestra.trigger
    durableId: natsTrigger
    deliverPolicy: All

Properties

batchSize

  • Type: integer
  • Dynamic:
  • Required: ✔️
  • Default: 10
  • Minimum: >= 1

Messages are fetched by batch of given size

deliverPolicy

  • Type: string
  • Dynamic:
  • Required: ✔️
  • Default: All
  • Possible Values:
    • All
    • Last
    • New
    • ByStartSequence
    • ByStartTime
    • LastPerSubject

The point in the stream to receive messages from. Either All, Last, New, StartSequence, StartTime, or LastPerSubject

pollDuration

  • Type: string
  • Dynamic:
  • Required: ✔️
  • Default: 2.000000000
  • Format: duration

Polling duration before processing message

If no messages are available, define the max duration to wait for new messages

subject

  • Type: string
  • Dynamic: ✔️
  • Required: ✔️
  • Min length: 1

Subject to subscribe to

url

  • Type: string
  • Dynamic: ✔️
  • Required: ✔️
  • Min length: 1

URL to connect to NATS server

The format is (nats://)server_url:port. You can also provide a connection token like so: nats://token@server_url:port

conditions

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

List of conditions in order to limit the flow trigger.

durableId

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

ID used to attach the subscription to a durable one, allowing the subscription to start back from a previous position

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.

maxDuration

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

The max duration before stopping the message polling

It's not an hard limit and is evaluated every second

maxRecords

  • Type: integer
  • Dynamic:
  • Required:

The max number of rows to fetch before stopping

password

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

Plaintext authentication password

since

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

Minimum message timestamp to start consumption from

By default, we consume all messages from the subjects starting from beginning of logs or depending on the current durable id position. You can also provide an arbitrary start time to get all messages since this date for a new durable id. Note that if you don't provide a durable id, you will retrieve all messages starting from this date even after subsequent usage of this task.Must be a valid iso 8601 date.

stopAfter

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

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

username

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

Plaintext authentication username

Outputs

messagesCount

  • Type: integer
  • Dynamic:
  • Required:

Number of messages consumed.

uri

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

URI of a Kestra internal storage file.