Azure Start

Azure Start

Certified

Start a pg_durable durable function instance

Submits a pg_durable function body via SELECT df.start(func, label, database) and returns the new instance id.

yaml
type: io.kestra.plugin.azure.horizondb.durable.Start
yaml
id: horizondb_durable_start
namespace: company.team

inputs:
  - id: host
    type: STRING

tasks:
  - id: start_etl
    type: io.kestra.plugin.azure.horizondb.durable.Start
    host: "{{ inputs.host }}"
    port: 5432
    database: mydb
    username: "{{ secret('HORIZONDB_USERNAME') }}"
    password: "{{ secret('HORIZONDB_PASSWORD') }}"
    functionBody: |
      'DELETE FROM target WHERE loaded_at < now() - INTERVAL ''1 day'''
      ~> 'INSERT INTO target SELECT * FROM staging'
      ~> 'REINDEX TABLE target'
      ~> 'INSERT INTO etl_log (job, finished_at) VALUES (''nightly'', now())'
    label: nightly-etl
Properties

Database name

Durable function body

The pg_durable SQL DSL body describing the sequence of steps to run durably.

HorizonDB server host

Hostname of the Azure HorizonDB server, without protocol or port (e.g. myserver.postgres.horizondb.azure.com).

Azure client id

Used with tenantId/clientSecret for service principal authentication when useEntraId is true. Ignored otherwise.

Azure client secret

Used with tenantId/clientId for service principal authentication when useEntraId is true. Ignored otherwise.

Instance label

Optional human-readable label attached to the instance, useful for filtering with durable.ListInstances.

Password

Required unless useEntraId is true.

Reference (ref) of the pluginDefaults to apply to this task.

Default5432

HorizonDB server port

Defaults to the standard PostgreSQL port.

Defaulttrue

Require TLS

When true (the default), the connection is rejected unless it is encrypted (sslmode=require). Set to false only for local development against a non-TLS instance.

Target database

Optional database (on the same PostgreSQL cluster) that the function's SQL steps should run against. Omit to run in the extension's own database — the default HorizonDB connection's database is unaffected either way, since this only changes where df.start() executes the function's SQL, not the connection used to submit it.

Azure tenant id

Used with clientId/clientSecret for service principal authentication when useEntraId is true. Ignored otherwise.

Defaultfalse

Authenticate with Azure Entra ID

When true, authenticates using Azure Entra ID (via the Azure Identity Extensions JDBC plugin) instead of a static password. With no further properties set, this falls back to whatever DefaultAzureCredential resolves on the worker (managed identity, environment variables, Azure CLI login, etc.); set tenantId/clientId/clientSecret below to authenticate as a specific service principal instead.

Username

Required unless useEntraId is true and the Entra ID token carries the identity.

Durable instance id

Identifier of the newly started pg_durable instance.