Chroma

Chroma

Certified

Manage collections and vectors in Chroma, the open-source embedding database, from your Kestra flows.

Chroma is an open-source embedding (vector) database for building AI applications such as semantic search and retrieval-augmented generation (RAG).

This plugin talks to a Chroma server over its v2 REST API, so it works with self-hosted Chroma and with Chroma Cloud. It lets you create collections, upsert embeddings, run nearest-neighbour queries, and delete records as tasks in a flow.

Tasks:

  • CreateCollection – create (or get-or-create) a collection, optionally setting its distance metric and metadata.
  • Upsert – insert or update records (id, embedding, optional document and metadata) in batches, inline or streamed from a Kestra storage file.
  • Query – run a nearest-neighbour search with optional metadata and document filters, returning the matches inline, first-only, or as an ION file in Kestra storage.
  • Delete – delete records by id and/or by a metadata or document filter.

Authenticate with an authToken (sent as X-Chroma-Token, used by token-authenticated servers and Chroma Cloud) or with HTTP basic username/password.

Chroma Plugin

Use the Chroma plugin to manage collections and to load, query and delete vector records in Chroma, an open-source vector database. The tasks talk to a Chroma server over its REST API (v2), so they work with both a self-hosted Chroma server and Chroma Cloud.

Connection

All tasks inherit common connection properties:

  • baseUrl: The base URL of the Chroma server, for example http://localhost: 8000 (required).
  • tenant: The tenant that holds the database (default: default_tenant).
  • database: The database that holds the collection (default: default_database).
  • authToken: A token sent in the X-Chroma-Token header, for token-authenticated servers and Chroma Cloud (optional, secret).
  • username / password: Credentials for HTTP basic authentication (optional; password is secret).

Record operations (Upsert, Query, Delete) address a collection by name; the plugin resolves the name to its Chroma collection id automatically.

Tasks

  • CreateCollection: Creates a collection in the configured tenant and database. Supports a distance metric (L2, COSINE or IP), optional collection metadata, and get-or-create semantics (default: true). Chroma infers the vector dimension from the first records added.
  • Upsert: Inserts or updates records (an id, an embedding, and optional metadata and document) in configurable batches. Reads records from an inline list or from a file in Kestra's internal storage (ION or JSON, via kestra:// URIs).
  • Query: Runs a nearest-neighbour search with a query vector. Supports a metadata filter (where), a document filter (whereDocument), the number of results (maxResults), the fields to include (include), and fetch output modes (FETCH, FETCH_ONE, STORE).
  • Delete: Deletes records by ids and/or by a metadata (where) or document (whereDocument) filter.

Filters

Query and Delete accept Chroma's native filter syntax directly:

  • where: a metadata filter, e.g. {source: handbook} for equality, or operators such as {year: {$gte: 2020}} and {source: {$in: [handbook, faq]}}.
  • whereDocument: a full-text filter on the stored document, e.g. {$contains: "capital"}.