Skip to content

Configuration

Everything is env-driven. Safe defaults ship in the compose file; every knob below overrides them.

Embedding provider

VariableValuesDefaultMeaning
DASH_EMBEDDING_PROVIDERhash, ollama, openaihashDeterministic hash (no network) vs real semantic embeddings

Custom backends implement the EmbeddingProvider trait.

Persistence

VariableMeaning
DASH_INGEST_PERSISTENCE_PATHOn-disk redb store for the ingestion service
DASH_RETRIEVAL_PERSISTENCE_PATHOn-disk redb store for the retrieval service
DASH_INGEST_WAL_PATHDurable WAL file for ingestion
DASH_RETRIEVAL_WAL_PATHDurable WAL file for retrieval

Unset persistence paths mean WAL-only mode (pre-redb behavior, bit-for-bit preserved).

WAL durability guardrails

Unsafe flush policies are rejected by default. Stress testing requires the explicit override:

bash
DASH_INGEST_ALLOW_UNSAFE_WAL_DURABILITY=true

Auth

VariableMeaning
DASH_INGEST_API_KEY / DASH_RETRIEVAL_API_KEYShared service keys
DASH_*_SCOPED_API_KEYSkey:tenant[,tenant...] scoped keys
DASH_*_REVOKED_API_KEYSHot-reloaded revocation list

JWT auth is HS256 with key rotation by kid, optional iss/aud checks, a fallback secrets list, and per-tenant claim enforcement. A multi-tenant allowlist is enforced in the authz layer.

Rate limits

bash
DASH_*_RATE_LIMIT_*   # per-tenant rate limits

ANN tuning

bash
DASH_*_ANN_*          # HNSW graph tuning knobs

Plus a graph-backed recall layer on top of ANN candidates.

Docker

Multi-stage, multi-arch (linux/amd64, linux/arm64), non-root runtime, healthcheck, dependency ordering, and a dev overlay with hot-reload. The compose file mounts a dash_data volume for the WAL and segments with safe durability defaults.

Released under the Apache 2.0 License.