Skip to content

Accepts incoming OpenSearch-compatible Bulk API requests and forwards them as events.

accept_opensearch [url:string, keep_actions=bool, max_request_size=int,
tls=record]

The accept_opensearch operator starts an OpenSearch-compatible HTTP server and accepts bulk ingestion requests on /_bulk and /{index}/_bulk. Elasticsearch clients can also use this endpoint.

For each bulk request, the operator buffers the request body in memory, up to max_request_size, optionally decompresses it based on the HTTP Content-Encoding header, parses the NDJSON payload, and emits the resulting records as events.

By default, the operator drops Bulk API action objects such as {"create": ...} and emits only the document records. To keep the action objects, set keep_actions=true.

The operator also responds to GET / with a minimal OpenSearch-compatible info response so that basic health checks and client probes succeed.

The endpoint to listen on.

Use the form host:port, [host]:port, http://host:port, or https://host:port.

Defaults to "0.0.0.0:9200".

Whether to keep Bulk API action objects such as {"create": ...}.

Defaults to false.

The maximum size of an incoming request to accept.

Requests that exceed this limit are rejected with HTTP 413 Content Too Large.

Defaults to 10MiB.

TLS configuration. Provide an empty record (tls={}) to enable TLS with defaults or set fields to customize it.

{
skip_peer_verification: bool, // skip certificate verification.
cacert: string, // CA bundle to verify peers.
certfile: string, // client certificate to present.
keyfile: string, // private key for the client certificate.
min_version: string, // minimum TLS version (`"1.0"`, `"1.1"`, `"1.2"`, "1.3"`).
ciphers: string, // OpenSSL cipher list string.
client_ca: string, // CA to validate client certificates.
require_client_cert, // require clients to present a certificate.
}

The client_ca and require_client_cert options are only applied for operators that accept incoming client connections, and otherwise ignored.

Any value not specified in the record will either be picked up from the configuration or if not configured will not be used by the operator.

See the Node TLS Setup guide for more details.

accept_opensearch "0.0.0.0:8080"
accept_opensearch keep_actions=true
accept_opensearch "0.0.0.0:8443",
tls={
certfile: "/path/to/cert.pem",
keyfile: "/path/to/key.pem",
}

Last updated: