Full schema reference:
https://www.getbifrost.ai/schemaconfig.json lets you configure every aspect of Bifrost through a single declarative file. It is the right choice for GitOps workflows, CI/CD pipelines, headless deployments, and multinode OSS setups where a central configuration file is shared across all replicas.
Two Configuration Modes
Bifrost supports two mutually exclusive modes. You cannot run both at the same time.| Mode | When | Behaviour |
|---|---|---|
| Web UI / database | No config.json, or config.json with config_store enabled | Full UI available, configuration stored in SQLite or PostgreSQL |
File-based (config.json) | config.json present, config_store disabled | UI disabled, all config loaded from file at startup, restart required for changes |
See Setting Up for a full explanation of both modes and how
config_store bootstrapping works.Minimal Working Example
config.json in your app directory and start Bifrost:
Environment Variable References
Never put secrets directly inconfig.json. Use the env. prefix to reference any environment variable:
-e, Kubernetes Secrets mounted as env vars, or a .env file.
Schema Validation
Add$schema to every config.json for IDE autocomplete and inline validation:
Production Example
A production-ready file with PostgreSQL storage, multi-provider setup, governance, and common plugins:Example Configs
Ready-to-use reference configurations from the examples/configs directory on GitHub:Minimal / File-only
Minimal / File-only
| Example | Description |
|---|---|
| noconfigstorenologstore | Bare-minimum file-only mode — no database, no UI, providers loaded from file |
| partial | SQLite config store with a minimal provider setup |
| v1compat | "version": 1 for v1.4.x array semantics (empty = allow all) |
Storage
Storage
| Example | Description |
|---|---|
| withconfigstore | SQLite config store (Web UI enabled) |
| withconfigstorelogsstorepostgres | PostgreSQL for both config store and logs store |
| withlogstore | SQLite logs store |
| withobjectstorages3 | S3 object storage offload for logs |
| withobjectstoragegcs | GCS object storage offload for logs |
| withvectorstoreweaviate | Weaviate vector store (with docker-compose) |
Semantic Cache
Semantic Cache
| Example | Description |
|---|---|
| withsemanticcache | Semantic cache backed by Weaviate |
| withsemanticcachevalkey | Semantic cache backed by Valkey / Redis |
Governance
Governance
| Example | Description |
|---|---|
| withauth | Admin username/password auth (governance.auth_config) |
| withvirtualkeys | Virtual keys with provider/model allowlists |
| withteamscustomers | Teams and customers with budgets and rate limits |
| withroutingrules | CEL-based routing rules for dynamic provider/model selection |
| withpricingoverridesnostore | Pricing overrides in file-only mode |
| withpricingoverridessqlite | Pricing overrides with SQLite config store |
Observability
Observability
| Example | Description |
|---|---|
| withobservability | Prometheus metrics (telemetry always active, custom labels via client.prometheus_labels) |
| withprompushgateway | Prometheus Push Gateway for multi-instance deployments |
| withotel | OpenTelemetry traces and metrics |
Plugins & Advanced
Plugins & Advanced
| Example | Description |
|---|---|
| withdynamicplugin | Loading a custom .so plugin at startup |
| withcompat | SDK compatibility shims (should_drop_params, convert_text_to_chat) |
| withframework | Custom model pricing catalog URL and sync interval |
| withlargepayload | Large payload optimization (streaming without full materialisation) |
| withwebsocket | WebSocket / Realtime API connection pool tuning |
| withpostgresmcpclientsinconfig | MCP client definitions seeded from config.json with PostgreSQL store |
| encryptionmigration | Migrating to a new encryption key |
Configuration Guides
Schema Reference
Every top-level key, its type, default, and where it is documented
Client Configuration
Pool size, logging, CORS, header filtering, compat shims, MCP settings
Provider Setup
OpenAI, Anthropic, Azure, Bedrock, Vertex, Groq, self-hosted
Storage
config_store, logs_store, vector_store — SQLite, PostgreSQL, object storage
Plugins
Semantic cache, OTel, Maxim, Datadog, custom plugins
Governance
Virtual keys, budgets, rate limits, routing rules, admin auth
Guardrails
Content moderation providers and CEL-based rules (enterprise)
Next Steps
- Configure provider keys
- Enable plugins
- Set up observability
- Configure governance
- Deploy multiple nodes with a shared
config.json

