Skip to main content
To create an encrypted index, you need to specify an index name (must be unique) and an index key:
import cyborgdb_core as cyborgdb
import secrets

# Get your API key
api_key = "your_api_key_here"  # Replace with your CyborgDB API key

# Create a client (in-memory backing store for this example)
client = cyborgdb.Client(api_key, cyborgdb.StorageConfig.memory())

# Generate an encryption key for the index
index_key = secrets.token_bytes(32)

# Create an encrypted index
index = client.create_index("my_index", index_key)
This creates a new DiskIVF encrypted index. The vector dimension is auto-detected from the first upsert (or derived from an embedding_model); you can also set it explicitly with the keyword-only dimension parameter. Other optional parameters include metric ("euclidean" default, "cosine", or "squared_euclidean") and storage_precision (float32 default, or float16 to halve the on-disk rerank-vector footprint).
The example above creates a random 32 byte (256-bit) index key. This is fine for evaluation purposes, but for production use, we recommend that you use an HSM or KMS solution. For more details, see Managing Encryption Keys.

Automatic Embedding Generation

This feature is only available in Python. To use it, use pip install cyborgdb-core[embeddings]
In the Python version of CyborgDB, you can enable automatic embedding generation for the encrypted index by setting embedding_model in create_index():
Python
import cyborgdb_core as cyborgdb
import secrets

# Get your API key
api_key = "your_api_key_here"  # Replace with your CyborgDB API key

# Create a client (in-memory backing store for this example)
client = cyborgdb.Client(api_key, cyborgdb.StorageConfig.memory())

# Generate an encryption key for the index
index_key = secrets.token_bytes(32)

# Create an encrypted index with managed embedding generation (model from HuggingFace)
index = client.create_index(
    "my_index",
    index_key,
    embedding_model="all-MiniLM-L6-v2"
)

API Reference

For more information on creating encrypted indexes, refer to the API reference:

Python API Reference

API reference for create_index() in Python

C++ API Reference

API reference for CreateIndex() in C++