OpenSearch Put

OpenSearch Put

Certified

Index a single OpenSearch document

Writes one document with optional custom id, opType, routing, and refresh policy; accepts JSON string or Map payload.

yaml
type: io.kestra.plugin.opensearch.Put

Put a document with a Map.

yaml
id: opensearch_put
namespace: company.team

tasks:
  - id: put
    type: io.kestra.plugin.opensearch.Put
    connection:
      hosts:
        - "http://localhost:9200"
    index: "my_index"
    key: "my_id"
    value:
      name: "John Doe"
      city: "Paris"

Put a document from a JSON string.

yaml
id: opensearch_put
namespace: company.team

inputs:
  - id: value
    type: JSON
    defaults: {"name": "John Doe", "city": "Paris"}

tasks:
  - id: put
    type: io.kestra.plugin.opensearch.Put
    connection:
      hosts:
        - "http://localhost:9200"
    index: "my_index"
    key: "my_id"
    value: "{{ inputs.value }}"
Installation

Our standard Docker images already include this plugin. If you use a -slim image or another setup, install it with the following command:

kestractl plugins get io.kestra.plugin:plugin-opensearch --compatible-for $KESTRA_VERSION

For kestractl, use your Kestra version with --compatible-for, or specify an exact plugin version.

For Kestra CLI, replace LATEST with a specific version or version range to pin the plugin version.

Properties

Configure OpenSearch connection

Hosts, auth headers, and TLS options reused by every task invocation.

Definitions
hosts*array
SubTypestring

OpenSearch HTTP endpoints

One or more host URLs with scheme and port, e.g. https://opensearch.com: 9200; all are used for load-balancing/failover.

basicAuth

Basic auth configuration

passwordstring

Basic auth password

usernamestring

Basic auth username

connectTimeoutstring

Connection timeout

Maximum time to wait when establishing the TCP connection to an OpenSearch node before giving up. RestClient's own default is 1 second when this is left unset.

headersarray
SubTypestring

Additional HTTP headers

Each entry is Key: Value, e.g. Authorization: Token XYZ; rendered per request.

pathPrefixstring

Path prefix for every request

Prepends /my/path to all endpoints when OpenSearch is behind a proxy enforcing a base path; leave unset otherwise.

responseTimeoutstring

Response timeout

Maximum time to wait for a response once a request has been sent to an OpenSearch node before giving up. RestClient's own default is 30 seconds when this is left unset.

strictDeprecationModebooleanstring

Fail on warning headers

If true, any response containing an OpenSearch warning header is treated as a failure; defaults to server/client behavior.

trustAllSslbooleanstring

Trust all SSL certificates

WARNING — SECURITY RISK: When enabled, disables TLS certificate chain validation, allowing connections to servers with self-signed or otherwise untrusted certificates. Hostname verification remains enforced to reduce (but not eliminate) exposure to man-in-the-middle attacks. Must never be used against production clusters or over untrusted networks. Prefer supplying a trusted CA certificate/trust store instead.

Target OpenSearch index

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

Document id

Possible Values
INDEXCREATEUPDATEDELETE

Operation type

INDEX or CREATE are supported; others are rejected.

DefaultNONE
Possible Values
IMMEDIATEWAIT_UNTILNONE

Refresh policy

IMMEDIATE forces refresh, WAIT_UNTIL waits for refresh, NONE (default) leaves refresh to cluster.

Shard routing key

Hashes routing using this value instead of the document id to colocate related records.

Document body

JSON string rendered then parsed, or a Map rendered and sent as JSON.

Document id written

Possible Values
CreatedDeletedNoOpNotFoundUpdated

Result of the write

Document version