Azure Signal

Azure Signal

Certified

Send an external signal to a pg_durable instance

Sends a named signal (with an optional payload) to an instance waiting on df.wait_for_signal(...), via SELECT df.signal(id, name, data).

yaml
type: io.kestra.plugin.azure.horizondb.durable.Signal
yaml
id: horizondb_durable_signal
namespace: company.team

inputs:
  - id: host
    type: STRING
  - id: instance_id
    type: STRING

tasks:
  - id: approve
    type: io.kestra.plugin.azure.horizondb.durable.Signal
    host: "{{ inputs.host }}"
    port: 5432
    database: mydb
    username: "{{ secret('HORIZONDB_USERNAME') }}"
    password: "{{ secret('HORIZONDB_PASSWORD') }}"
    instanceId: "{{ inputs.instance_id }}"
    signalName: approval
    payload: '{"approved": true, "approver": "jane"}'
Properties

Database name

HorizonDB server host

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

Durable instance id

Identifier of the instance to signal.

Signal name

Name of the external signal the instance is waiting on (matches its df.wait_for_signal(name) call).

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.

Password

Required unless useEntraId is true.

Default{}

Signal payload

Payload passed to the instance as the signal's data, typically a JSON string. Defaults to '{}', matching df.signal()'s own default.

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.

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

Whether the signal was sent

True once df.signal() executes without error. This does not confirm a waiting instance actually received it (e.g. if it wasn't waiting on that signal name) — check GetStatus or df.explain() separately if you need to verify delivery.