
Chroma
CertifiedManage 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
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.
tasks
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 examplehttp://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 theX-Chroma-Tokenheader, for token-authenticated servers and Chroma Cloud (optional, secret).username/password: Credentials for HTTP basic authentication (optional;passwordis 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,COSINEorIP), 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 (anid, anembedding, and optionalmetadataanddocument) in configurable batches. Reads records from an inline list or from a file in Kestra's internal storage (ION or JSON, viakestra://URIs).Query: Runs a nearest-neighbour search with a queryvector. 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 byidsand/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"}.