# cyborgdb

> For the complete documentation index, see [llms.txt](https://docs.redpanda.com/llms.txt). Component-specific: [cloud-data-platform-full.txt](https://docs.redpanda.com/cloud-data-platform-full.txt)

---
title: cyborgdb
latest-operator-version: v26.1.4
latest-console-tag: v3.7.3
latest-connect-version: 4.93.0
latest-redpanda-tag: v26.1.9
docname: connect/components/outputs/cyborgdb
page-component-name: cloud-data-platform
page-version: master
page-component-version: master
page-component-title: Cloud
page-relative-src-path: connect/components/outputs/cyborgdb.adoc
page-edit-url: https://github.com/redpanda-data/cloud-docs/edit/main/modules/develop/pages/connect/components/outputs/cyborgdb.adoc
description: Inserts items into a CyborgDB encrypted vector index.
page-git-created-date: "2025-10-09"
page-git-modified-date: "2026-05-26"
---

<!-- Source: https://docs.redpanda.com/cloud-data-platform/develop/connect/components/outputs/cyborgdb.md -->

**Available in:** Cloud, [Self-Managed](https://docs.redpanda.com/connect/components/outputs/cyborgdb/%20%22View%20the%20Self-Managed%20version%20of%20this%20component%22)

Inserts items into a CyborgDB encrypted vector index.

#### Common

```yaml
outputs:
  label: ""
  cyborgdb:
    max_in_flight: 64
    batching:
      count: 0
      byte_size: 0
      period: ""
      check: ""
      processors: [] # No default (optional)
    host: "" # No default (required)
    api_key: "" # No default (required)
    index_name: redpanda-vectors
    index_key: "" # No default (required)
    operation: upsert
    id: "" # No default (required)
    vector_mapping: "" # No default (optional)
    metadata_mapping: "" # No default (optional)
```

#### Advanced

```yaml
outputs:
  label: ""
  cyborgdb:
    max_in_flight: 64
    batching:
      count: 0
      byte_size: 0
      period: ""
      check: ""
      processors: [] # No default (optional)
    host: "" # No default (required)
    api_key: "" # No default (required)
    index_name: redpanda-vectors
    index_key: "" # No default (required)
    create_if_missing: false
    operation: upsert
    id: "" # No default (required)
    vector_mapping: "" # No default (optional)
    metadata_mapping: "" # No default (optional)
```

This output allows you to write vectors to a CyborgDB encrypted index. CyborgDB provides end-to-end encrypted vector storage with automatic dimension detection and index optimization.

All vector data is encrypted client-side before being sent to the server, ensuring complete data privacy. The encryption key never leaves your infrastructure.

## [](#fields)Fields

### [](#api_key)`api_key`

The API key for authenticating with the CyborgDB service. This key identifies your account and provides access to your CyborgDB indexes. Keep this key secure and avoid exposing it in logs or version control.

> ⚠️ **CAUTION**
>
> This field contains sensitive information that usually shouldn’t be added to a configuration directly. For more information, see [Manage Secrets](https://docs.redpanda.com/cloud-data-platform/develop/connect/configuration/secret-management/) before adding it to your configuration.

**Type**: `string`

### [](#batching)`batching`

Allows you to configure a [batching policy](https://docs.redpanda.com/cloud-data-platform/develop/connect/configuration/batching/).

**Type**: `object`

```yaml
# Examples:
batching:
  byte_size: 5000
  count: 0
  period: 1s

# ---

batching:
  count: 10
  period: 1s

# ---

batching:
  check: this.contains("END BATCH")
  count: 0
  period: 1m
```

### [](#batching-byte_size)`batching.byte_size`

An amount of bytes at which the batch should be flushed. If `0` disables size based batching.

**Type**: `int`

**Default**: `0`

### [](#batching-check)`batching.check`

A [Bloblang query](https://docs.redpanda.com/cloud-data-platform/develop/connect/guides/bloblang/about/) that should return a boolean value indicating whether a message should end a batch.

**Type**: `string`

**Default**: `""`

```yaml
# Examples:
check: this.type == "end_of_transaction"
```

### [](#batching-count)`batching.count`

A number of messages at which the batch should be flushed. If `0` disables count based batching.

**Type**: `int`

**Default**: `0`

### [](#batching-period)`batching.period`

A period in which an incomplete batch should be flushed regardless of its size.

**Type**: `string`

**Default**: `""`

```yaml
# Examples:
period: 1s

# ---

period: 1m

# ---

period: 500ms
```

### [](#batching-processors)`batching.processors[]`

A list of [processors](https://docs.redpanda.com/cloud-data-platform/develop/connect/components/processors/about/) to apply to a batch as it is flushed. This allows you to aggregate and archive the batch however you see fit. Please note that all resulting messages are flushed as a single batch, therefore splitting the batch into smaller batches using these processors is a no-op.

**Type**: `processor`

```yaml
# Examples:
processors:
  - archive:
      format: concatenate

# ---

processors:
  - archive:
      format: lines

# ---

processors:
  - archive:
      format: json_array
```

### [](#create_if_missing)`create_if_missing`

Whether to create the index if it doesn’t exist. When enabled, CyborgDB automatically detects the vector dimensions from your data and optimizes the index configuration for performance. This is useful for development and testing environments.

**Type**: `bool`

**Default**: `false`

### [](#host)`host`

The host URL for the CyborgDB instance. This should include the protocol (https://) and port number if required. For example: `[https://api.cyborgdb.com](https://api.cyborgdb.com)` or `[https://localhost:8080](https://localhost:8080)`.

**Type**: `string`

```yaml
# Examples:
host: api.cyborg.com

# ---

host: localhost:8000
```

### [](#id)`id`

A [Bloblang mapping](https://docs.redpanda.com/cloud-data-platform/develop/connect/guides/bloblang/about/) that determines the unique identifier for each vector entry. This ID is used to update existing vectors during upsert operations or to specify which vectors to delete. If not provided, CyborgDB will generate unique IDs automatically.

This field supports [interpolation functions](https://docs.redpanda.com/cloud-data-platform/develop/connect/configuration/interpolation/#bloblang-queries).

**Type**: `string`

### [](#index_key)`index_key`

The base64-encoded encryption key for the CyborgDB index. This key must be exactly 32 bytes when decoded from base64. All vector data is encrypted client-side using this key before transmission, ensuring complete data privacy. Store this key securely as it cannot be recovered if lost.

> ⚠️ **CAUTION**
>
> This field contains sensitive information that usually shouldn’t be added to a configuration directly. For more information, see [Manage Secrets](https://docs.redpanda.com/cloud-data-platform/develop/connect/configuration/secret-management/) before adding it to your configuration.

**Type**: `string`

```yaml
# Examples:
index_key: your-base64-encoded-32-byte-key
```

### [](#index_name)`index_name`

The name of the CyborgDB index to write vectors to. If the index doesn’t exist and `create_if_missing` is enabled, CyborgDB will create it automatically with optimized settings based on your data.

**Type**: `string`

**Default**: `redpanda-vectors`

### [](#max_in_flight)`max_in_flight`

The maximum number of messages to have in flight at a given time. Increase this to improve throughput.

**Type**: `int`

**Default**: `64`

### [](#metadata_mapping)`metadata_mapping`

An optional [Bloblang mapping](https://docs.redpanda.com/cloud-data-platform/develop/connect/guides/bloblang/about/) that extracts metadata to associate with the vector entry. The metadata can contain any JSON-serializable data that helps identify or categorize the vector. This data is stored encrypted alongside the vector.

**Type**: `string`

```yaml
# Examples:
metadata_mapping: root = @

# ---

metadata_mapping: root = metadata()

# ---

metadata_mapping: root = {"summary": this.summary, "category": this.category}
```

### [](#operation)`operation`

The operation to perform against the CyborgDB index. Supported operations:

-   `upsert`: Insert new vectors or update existing ones (requires `vector_mapping`)

-   `delete`: Remove vectors from the index (requires `id`)

-   `query`: Search for similar vectors (requires `vector_mapping`)


**Type**: `string`

**Default**: `upsert`

**Options**: `upsert`, `delete`

### [](#vector_mapping)`vector_mapping`

A [Bloblang mapping](https://docs.redpanda.com/cloud-data-platform/develop/connect/guides/bloblang/about/) that extracts the vector from the message. The result must be an array of floating-point numbers representing the vector embeddings. This field is required for `upsert` and `query` operations.

**Type**: `string`

```yaml
# Examples:
vector_mapping: root = this.embeddings_vector

# ---

vector_mapping: root = [1.2, 0.5, 0.76]
```