Kestra Plugin Acquire

Kestra Plugin Acquire

Certified

Acquire a lock on an asset for the duration of the execution

Acquires an EXECUTION-owned lock on the asset on behalf of the current execution, so concurrent flow writes to the asset are rejected while it is held. The lock is released by the Release task, or automatically when its ttl expires. The calling credential must hold the LOCK permission on the ASSET resource (typically a dedicated service account); other principals are rejected with 403.

yaml
type: io.kestra.plugin.kestra.ee.locks.Acquire

Lock an asset while a flow writes to it, then release it.

yaml
id: lock_asset
namespace: company.team

tasks:
  - id: acquire
    type: io.kestra.plugin.kestra.ee.locks.Acquire
    assetId: customers_by_country
    ttl: PT1H
  - id: write
    type: io.kestra.plugin.core.log.Log
    message: writing to the locked asset
  - id: release
    type: io.kestra.plugin.kestra.ee.locks.Release
    assetId: customers_by_country
Properties

The ID of the asset to lock

Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset failure behavior

Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150

Select API authentication

Use either an API token or HTTP Basic (username/password); do not provide both.

Definitions
apiTokenstring

API token for bearer auth

autobooleanstring
Defaulttrue

Automatically retrieve credentials from Kestra's configuration if available

The default configuration can be configured globally inside the Kestra configuration file:

  • Set kestra.tasks.sdk.authentication.api-token to use an API token
  • Set kestra.tasks.sdk.authentication.username and kestra.tasks.sdk.authentication.password for HTTP basic authentication
  • Set kestra.tasks.sdk.authentication.url to also default the Kestra API endpoint (see kestraUrl above) The Enterprise edition also provides setting a default configuration at the Namespace or Tenant level by an administrator. Set to false to also opt out of the default URL, and to call a Kestra API that requires no authentication when no credentials are set either.
passwordstring

Password for HTTP Basic auth

usernamestring

Username for HTTP Basic auth

Override Kestra API endpoint

URL used for calls to the Kestra API. When null, falls back to the url configured alongside the default SDK authentication (Namespace or Tenant level, Enterprise edition), then renders {{ kestra.url }} from configuration; if still empty, defaults to http://localhost: 8080. Trailing slashes are stripped before use.

Override target tenant

Tenant identifier applied to API calls; defaults to the current execution tenant.

DefaultPT5M

How long the lock is held before it expires

An ISO-8601 duration (e.g. PT1H).

The id of the execution holding the lock

Formatdate-time

The instant at which the lock expires

The lock owner type (always EXECUTION for a task-acquired lock)