Apache Cassandra Trigger

Apache Cassandra Trigger

Certified

Trigger flow when Cassandra query returns data

Polls Cassandra at a fixed interval (default 60s) and starts a Flow once the CQL query yields at least one row. Use fetchType to materialize results; the NONE default stores nothing and will not fire the trigger.

yaml
type: io.kestra.plugin.cassandra.standard.Trigger

Wait for a CQL query to return results, and then iterate through rows.

yaml
id: cassandra_trigger
namespace: io.kestra.tests

tasks:
  - id: each
    type: io.kestra.plugin.core.flow.ForEach
    values: "{{ trigger.rows }}"
    tasks:
      - id: return
        type: io.kestra.plugin.core.debug.Return
        format: "{{ fromJson(taskrun.value) }}"

triggers:
  - id: watch
    type: io.kestra.plugin.cassandra.standard.Trigger
    interval: "PT5M"
    session:
       endpoints:
          - hostname: localhost
       username: cassandra_user
       password: "{{ secret('CASSANDRA_PASSWORD') }}"
    cql: "SELECT * FROM CQL_KEYSPACE.CQL_TABLE"
    fetchType: FETCH
Properties

CQL query

Cassandra session configuration

Required connection details (endpoints, datacenter, auth, optional TLS) used to open the polling CqlSession.

Definitions
applicationNamestring

Application name sent in startup

It will be sent in the STARTUP protocol message, under the key APPLICATION_NAME, for each new connection established by the driver. Currently, this information is used by Insights monitoring (if the target cluster does not support Insights, the entry will be ignored by the server).

endpointsarray

Contact endpoints for cluster bootstrap

List of hosts (and optional SNI names) used to open the initial connection. Port defaults to 9042 per endpoint unless overridden.

hostname*Requiredstring
Min length1

Cassandra hostname

portintegerstring
Default9042

Cassandra port

Defaults to 9042.

serverNamestring

SNI server name

In the context of Cloud, this is the string representation of the host ID.

localDatacenterstring

Local datacenter name

Datacenter considered local by the load-balancing policy; recommended for multi-DC clusters.

passwordstring

Plaintext authentication password

secureConnection

Secure connection details

keystorePasswordstring

Password for the keystore file

keystorePathstring

Path to keystore file (*.jks)

truststorePasswordstring

Password for the truststore file

truststorePathstring

Path to truststore file (.crt)

usernamestring

Plaintext authentication username

Defaultfalse

Specifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.

DefaultNONE
Possible Values
STOREFETCHFETCH_ONENONE

The way you want to store data

FETCH_ONE - output the first row. FETCH - output all rows as output variable. STORE - store all rows to a file. NONE - do nothing.

DefaultPT1M
Formatduration

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.

SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED

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

Time zone id used to parse date/time values returned by the query

Defaulttrue

A condition that determines whether the trigger should run.

A Pebble expression evaluated at trigger time. The trigger fires only when the expression evaluates to a truthy value (true, a non-empty string, a non-zero number). Use this to gate trigger execution on dynamic runtime values such as execution labels, flow variables, or environment conditions.

The size of the binary response in bytes

Map containing the first row of fetched data

Only populated when fetchType is FETCH_ONE.

SubTypeobject

List of maps containing rows of fetched data

Only populated when fetchType is FETCH.

The size of the fetched rows

Only populated when fetchType is FETCH or STORE.

Formaturi

The URI of the result file on Kestra storage (.ion file / Amazon Ion text format)

Only populated when fetchType is STORE.