Migrate from Bifrost to DVARA.
Move the operating controls with the traffic.
Bifrost and DVARA both accept OpenAI-compatible requests. The migration is complete only when provider routes, access, limits and governance behave correctly on the new path.
Map what runs in Bifrost today
Bifrost can store configuration in its Web UI and database or load it from a config.json file. Neither format imports into DVARA. Treat the current deployment as an inventory and rebuild only what production traffic actually uses.
| In Bifrost | In DVARA | Migration action |
|---|---|---|
| Providers, keys and provider-prefixed models | Provider credentials, routes and public model names | Recreate provider credentials and decide which model names clients should keep. Do not translate Bifrost provider prefixes blindly. |
| Virtual keys, teams and customers | Workspaces, roles and DVARA API keys | Create new keys and rotate every client. Map ownership and access boundaries before copying limits. |
| Provider configs and routing rules | Ordered routes, model patterns, retry and failover settings | Rebuild the routing intent. Test provider selection, failure codes, streaming and model capabilities before cutover. |
| Budgets and rate limits | Workspace and API-key limits, with budget controls in the Enterprise platform | Recreate the values and verify windows, accounting and denial responses. Similar labels do not mean identical behavior. |
| Plugins, moderation and MCP settings | Policies, configured data checks, guardrails and governed gateway planes | Inventory each active control and test its allow, log, redact, deny or approval outcome. Do not assume defaults carry over. |
| Request logs, metrics and traces | Audit evidence, request correlation, metrics and Flightdeck views | Map the fields used by operations and compliance, then configure retention and export for the new deployment. |
Move one workload in six steps
Use a workload that represents production, including its model naming, streaming mode, tools, structured output and failure cases.
- 1
Write down the current contract
Record the Bifrost host, model names, providers, virtual-key headers, routing rules, budgets, rate limits, plugins and metadata in use. Save representative successful and failed responses.
- 2
Choose the DVARA operating model
DVARA Open Source provides a file-configured LLM data plane. The Enterprise platform adds Flightdeck, central persistence, workspaces and managed governance workflows. Test the deployment shape you plan to operate.
- 3
Rebuild access, routes and controls
Add provider credentials, create new DVARA keys, map only the public model names clients need, and rebuild routes, limits and governance. Bifrost and DVARA both allow unauthenticated inference by default; set
DVARA_LLM_GATEWAY_REQUIRE_API_KEY=truewhen your DVARA deployment must require a key. - 4
Send one complete governed request
Replace the host, keys and model names with values from your test deployments. Bifrost commonly uses a provider-prefixed model and virtual key; the DVARA route decides the provider behind the public model name.
Before — Bifrostcurl https://<your-bifrost-host>/v1/chat/completions \ -H 'Authorization: Bearer <bifrost-virtual-key>' \ -H 'Content-Type: application/json' \ -d '{ "model": "openai/gpt-4o-mini", "messages": [{ "role": "user", "content": "Summarize the refund policy." }], "temperature": 0 }'After — DVARAcurl https://<your-dvara-host>/v1/chat/completions \ -H 'Authorization: Bearer <your-dvara-key>' \ -H 'Content-Type: application/json' \ -d '{ "model": "gpt-4o-mini", "messages": [{ "role": "user", "content": "Summarize the refund policy." }], "temperature": 0 }'A representative successful response looks like this:
{ "id": "chatcmpl-01JQ8BIFROST2DVARA", "object": "chat.completion", "model": "gpt-4o-mini", "choices": [{ "index": 0, "message": { "role": "assistant", "content": "Refunds are available within 30 days." }, "finish_reason": "stop" }], "usage": { "prompt_tokens": 16, "completion_tokens": 9, "total_tokens": 25 } }In the Enterprise platform, find the request under the expected workspace in Flightdeck. In Open Source, check the audit sink you configured. Confirm the provider, policy outcome, status and token usage.
- 5
Test the paths that expose differences
Test streaming and non-streaming calls, tools, structured output, invalid keys, unknown models, limit boundaries, policy denials, provider errors and failover. Compare response shape, status, token accounting, latency and recorded evidence.
- 6
Cut over in stages
Keep the Bifrost and DVARA URL/key pairs in runtime configuration. Move one workload, watch agreed error, latency, cost and denial thresholds, then expand only after the acceptance window passes.
Define rollback before cutover
Restore the Bifrost URL and virtual key when a response-contract, error-rate, latency, cost or governance threshold fails. Do not mirror sensitive prompts to both systems unless that data handling has been reviewed.
Questions before you migrate
Is changing the base URL enough?
It is enough to test a simple OpenAI-compatible request. It does not move provider credentials, virtual keys, teams, budgets, routing rules, plugins, MCP settings or logs. Rebuild and test those controls before moving production traffic.
Can DVARA import Bifrost configuration?
No. There is no supported automatic importer for Bifrost configuration databases or config.json files. Use the current configuration as an inventory, then create and review the corresponding DVARA routes, identities and governance controls.
Do Bifrost virtual keys become DVARA API keys?
Create new DVARA keys instead of copying key material. Bifrost can accept a virtual key through several headers; DVARA uses an Authorization bearer token when API-key enforcement is enabled. Rotate one client at a time.
Which DVARA distribution should I use?
Use DVARA Open Source for a file-configured LLM data plane. Use the Enterprise platform when you need Flightdeck, central persistence, managed workspaces and advanced governance workflows. MCP and A2A are Enterprise planes and require a production licence to activate.
Will routing and failover behave the same?
Do not assume they will. Rebuild the route and test real provider failures. Model compatibility and response state matter, and a stream cannot move to another provider after response delivery has begun.
How do I roll back?
Keep Bifrost available during the acceptance window and keep both URL and key pairs in runtime configuration. Restore the previous pair if an agreed response-contract, error-rate, latency, cost or governance threshold fails.
Prove one real workload first.
Rebuild its access, routes and controls, test its failure paths, and keep Bifrost ready until the results are clear.