Quickwit Ingest

Quickwit Ingest

Certified

Ingest documents into Quickwit

Sends documents to a Quickwit index as a single NDJSON batch.

The batch is limited to 10 MB by default, so split larger datasets across several runs or use a Quickwit source instead.

yaml
type: io.kestra.plugin.quickwit.ingest.Ingest

Ingest a file produced by a previous task

yaml
id: quickwit_ingest
namespace: company.team

inputs:
  - id: file
    type: FILE

tasks:
  - id: ingest
    type: io.kestra.plugin.quickwit.ingest.Ingest
    url: "https://quickwit.example.com:7280"
    index: app-logs
    from: "{{ inputs.file }}"
    commit: WAIT_FOR

Ingest inline documents and check for rejections

yaml
id: quickwit_ingest_inline
namespace: company.team

tasks:
  - id: ingest
    type: io.kestra.plugin.quickwit.ingest.Ingest
    url: "http://localhost:7280"
    index: app-logs
    commit: FORCE
    detailedResponse: true
    from:
      - timestamp: "{{ now() | timestamp }}"
        service: checkout
        severity: ERROR
        message: "Payment gateway timeout"
      - timestamp: "{{ now() | timestamp }}"
        service: checkout
        severity: ERROR
        message: "Payment gateway timeout"

  - id: check
    type: io.kestra.plugin.core.log.Log
    message: "Ingested {{ outputs.ingest.numIngestedDocs }} / rejected {{ outputs.ingest.numRejectedDocs }}"
Properties

Documents

Documents to send, as one of:

  • a single document, as a map;
  • a list of documents, as a list of maps;
  • a URI, either kestra:// internal storage or a local file:// path;
  • a JSON string holding one document or a list of documents.

Documents must match the doc mapping of the index.

Index ID

ID of the index to ingest into. The ingest API is only served by nodes running an indexer.

Quickwit URL

Base URL of the Quickwit REST API, including the scheme. The api/v1 prefix is added automatically. A local node listens on port 7280, e.g. http://localhost: 7280.

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

Basic authentication

Optional HTTP basic authentication credentials.

Quickwit itself has no authentication layer, so this is only needed when the cluster sits behind a reverse proxy or an API gateway that enforces basic auth.

Definitions
passwordstring

Password

Password for HTTP basic authentication.

usernamestring

Username

Username for HTTP basic authentication.

DefaultAUTO
Possible Values
AUTOWAIT_FORFORCE

Commit behavior

When the ingested documents become visible to search: AUTO (default), WAIT_FOR or FORCE. Use FORCE when a search runs right after this task and must already see the documents.

Connect timeout

Maximum time to wait to establish a connection to Quickwit, e.g. PT10S. When unset, the default of the underlying HTTP client applies.

Defaultfalse

Detailed response

Ask Quickwit to describe every rejected document in parseFailures. Handy to diagnose a doc mapping mismatch, but it costs performance.

Custom HTTP headers

Headers sent on every request, for example an Authorization: Bearer ... token or a gateway API key.

Quickwit itself has no authentication layer, so this is only needed when the cluster sits behind an API gateway that injects credentials.

Read timeout

Maximum time to keep waiting for data on an idle connection, e.g. PT5M. A commit=force ingest or a large search may legitimately take a while, so raise it when needed.

Documents submitted

Number of documents submitted for processing. They may not be searchable yet.

Documents ingested

Number of documents successfully persisted in the write ahead log.

Documents rejected

Number of documents that could not be parsed, usually because of a doc mapping mismatch.

Parse failures

Details of the rejected documents, present only when detailedResponse is enabled.

Definitions

A document rejected by the ingest API, with the reason and the offending payload.

documentstring

Rejected document

The UTF-8 decoded document chunk that generated the error.

messagestring

Failure message

Human readable explanation of why the document was rejected.

reasonstring

Failure reason

Machine readable reason, one of invalid_json, invalid_schema or unspecified.

Unitrecords

Number of documents sent