Documentation Index
Fetch the complete documentation index at: https://docs.getbifrost.ai/llms.txt
Use this file to discover all available pages before exploring further.
Changelog
v1.4.0 is a major release bringing full Realtime API support, Fireworks AI, deny-by-default access control, a dedicated Provider Keys API, Anthropic Structured Outputs, Claude Opus 4.7 compatibility, and broad SCIM/SSO hardening - plus cluster reliability improvements, adaptive routing enhancements, and a new Prompts plugin from across the 1.3.x and 1.4.x lines.⚠️ Breaking Changes (v1.5.0 OSS base)
- Deny-by-Default Access Control - Empty
allowed_models,key_ids, andtools_to_executenow deny access instead of allowing all. Use["*"]to allow all. Existing database records are automatically migrated on startup; new config must follow the new semantics. See the migration guide for details. - Provider Keys API Separated - The
keysfield is removed from provider create/update payloads. Use the new/api/providers/{provider}/keysendpoints. Existing keys are unaffected. allowed_keysRenamed tokey_ids- Update anyconfig.jsonor API calls using the old field name.- Compat Plugin Options Changed -
enable_litellm_fallbacksis replaced bycompat.convert_text_to_chat,compat.convert_chat_to_responses, andcompat.should_drop_params.
Upgrade is protected by automatic migration. A v1.4.x Allow-List Compatibility Mode is also available to preserve the old semantics during transition.
✨ Features
AI Provider Support
- Claude Opus 4.7 - Full support including adaptive thinking, task-budgets beta header,
displayparameter handling, and “xhigh” effort mapping - Anthropic Structured Outputs -
response_formatand JSON-schema/JSON-object support for Anthropic chat completions and Responses API - Anthropic Server Tools - End-to-end support for server-side tools: web search, code execution, and computer use containers
- Fireworks AI Provider - First-class provider with native completions, responses, embeddings, and image generations
- StabilityAI on Bedrock - StabilityAI provider support via AWS Bedrock
- Bedrock Embeddings & Image Gen - Embeddings, image generation, edit, and variation support for Bedrock
- Azure Passthrough - Native Azure passthrough support
- Mistral OCR Endpoint - End-to-end
/v1/ocrsupport powered by Mistral OCR - OpenRouter Embeddings - OpenRouter provider now supports embeddings
Realtime & Streaming
- Realtime Support - WebSocket, WebRTC, and client secret handlers with session state management and transport context helpers
- Redis TLS & Cluster Mode - Redis connections support TLS and cluster mode; fixes valkey-search query compatibility
MCP
- MCP Per-Tool Access Control via Virtual Key - VK
mcp_configsacts as an execution-time allow-list with per-tool granularity; tools not permitted by the VK are blocked at inference - MCP Tool Annotations - Preserve tool annotations (
title,readOnly,destructive,idempotent,openWorld) in bidirectional conversion so agents can reason about tool behavior - OAuth MCP Hints - OAuth MCP client creation response now includes next-step hints for a smoother setup flow
- MCP Tool Injection Control - Option to disable automatic MCP tool injection per request
- MCP All-VK Access - Option to allow MCP clients to run on all virtual keys without explicit assignment
- MCP Request Filtering Headers -
x-bf-mcp-include-clientsandx-bf-mcp-include-toolsrequest headers for filtering MCP tools and list responses when using Bifrost as an MCP gateway - MCP Accumulated Usage - Accumulated usage is sent back in MCP agent mode
Access Control & Security
- Deny-by-Default Access Control - Virtual key provider configs,
allowed_models,key_ids, and MCPtools_to_executenow use deny-by-default semantics; wildcard["*"]to allow all - Dedicated Provider Keys API - Keys managed via
/api/providers/{provider}/keyswith full CRUD; model-level key restrictions supported - Access Profiles - Fine-grained permission control via access profiles
- Path Whitelisting - Allow path whitelisting from security config
- SSO Role Enforcement - SSO login denied when user has no role claims and no matching group-to-role mapping; removed the Okta Org Auth Server special case that auto-granted Admin to the first user
- Okta Custom Provider + Group Mapping - Okta custom provider support with group-to-role mapping
- v1.4.x Allow-List Compatibility Mode - New version-1 compatibility mode preserves v1.4.x allow-list semantics for smoother upgrades
Governance & Virtual Keys
- Virtual Keys CSV Export - Sorting and CSV export for the virtual keys table
- Pricing Overrides - Support for per-request pricing override fields
- 272k Token Tier Pricing - Pricing support for the 272k token tier
- Flex & Priority Tier Pricing - Pricing support for flex and priority service tiers, including override fields
- Per-User OAuth Consent - Per-user OAuth consent flow with identity selection and MCP authentication
- SCIM Provider Fixes - Broad fixes across SCIM controller, mapping, and Entra/Google/Keycloak/Okta/SailPoint/Zitadel providers; new SCIM tables, migrations, and config-store wiring
Plugins
- Prompts Plugin - New prompts plugin with direct key header resolver and selective message inclusion when committing prompt sessions
- Plugin Trace Logging - Plugins can now inject logs at trace level via
ctx.Log(schemas.LogLevelInfo, "…") - Logging Tracking Fields - Support for tracking
userId,teamId,customerId, andbusinessUnitIdin logging - Object Store Support for Logging - Log payloads can be offloaded to object storage (S3/GCS/etc.), keeping the database lean under high log volume
- Compat Plugin Improvements - Chat-to-responses fallback for models that only support the Responses API, and OpenAI-compatible parameter dropping for unsupported params
Cluster & Infrastructure
- Reliable Replication - Improved state propagation logic across cluster nodes
- Routing Rule Cluster Sync - Routing rules synchronize across the cluster via dedicated message handling
- Leader-Only Cluster Pricing Sync - Only the cluster leader fetches pricing URLs, then broadcasts DB reloads to followers
- Leader Badge in Cluster View - Leader badge display in the cluster node view
- Unique Node ID - Auto-generated unique node IDs on config load for consistent cluster membership
- Parallel Model Catalog Sync - Provider model catalogs sync in parallel for faster startup and refresh cycles
Routing & Load Balancing
- LB Blacklist Support - Blacklist model and endpoint support in the load balancing plugin
- Deployments to Aliases - Deployments refactored to aliases with implicit model grant removal for cleaner configuration
- Adaptive Routing UI Redesign - Improved layout and Sankey chart visualization for adaptive routing
UI & Dashboard
- User Ranking Dashboard - Per-user traffic ranking dashboard
- Dashboard CSV & PDF Export - Dashboard now supports CSV and PDF export
- OpenAPI Security Schemes - Security schemes added to the OpenAPI spec; API playground now only shows supported auth methods per endpoint
- Configurable API Docs Base URL - Base URL for the hosted API documentation is now configurable
- Server Bootstrap Timer - Startup diagnostic timer for observability
- UI: Create-Provider Shortcut - Empty state now links directly to provider creation
🐞 Fixed
- LB Routing for GenAI & Bedrock - Load balancing routing fixes for GenAI and Bedrock integrations
- Streaming Post-Hook Race - Fixed race where fasthttp
RequestCtxcould be recycled before transport post-hooks finished in streaming goroutines; request/response snapshots captured eagerly - Streaming Blocker - Fixed a streaming blocker in the transport layer
- Async User Values - User values propagated through all async inference handlers and job submissions
- Trace Completer Safety - Trace completer accepts transport logs as a parameter instead of reading from a potentially recycled context
- Async Log Store Exceptions - Fixed exception handling in async log store jobs
- Model Alias Tracking - Split
ModelRequestedintoOriginalModelRequestedandResolvedModelUsedfor accurate alias resolution tracking - MCP Tool Discovery - Added discovered tools and tool-name mapping columns to MCP clients
- MCP Tool Logs - MCP tool logs now captured correctly
- OAuth Transient Failures - OAuth configs no longer marked expired on transient network failures
- OAuth Session Cleanup - OAuth sessions cleaned up on virtual key deletion with associated race condition fixed
- Pricing Sync Config -
pricing_sync_intervalapplied correctly;pricing_urlsupports env variables - Provider Queue Shutdown Panic - Eliminated
send on closed channelpanics in provider queue shutdown - OpenAI Tool Result Output - Flattened array-form
tool_resultoutput for the Responses API; non-text blocks preserved - vLLM Token Usage -
delta.content=""treated same asnilin streaming; restores token usage attribution in logs and UI - Bedrock Streaming - Emit
message_stopevent for Anthropic invoke stream; case-insensitiveanthropic-betaheader merging - Bedrock Streaming Retries - Retry retryable AWS exceptions and stale/closed-connection errors in Bedrock streaming
- Bedrock Tool Images - Preserve image content blocks in tool results when converting to Bedrock Converse API
- Bedrock Tool Choice - Fixed Bedrock tool choice conversion to auto
- Bedrock SigV4 Service - Corrected SigV4 service name for agent runtime rerank
- Gemini Tool Outputs - Handle content block tool outputs in Responses API path for
function_call_outputmessages - Gemini Thinking Level - Preserved
thinkingLevelparameters across round-trip conversions; corrected finish reason mapping - Anthropic WebSearch - Removed Claude Code user agent restriction so WebSearch tool arguments flow for all clients
- Responses Streaming Errors - Capture errors mid-stream in the Responses API so clients see failures instead of silent termination
- Anthropic Request Fallbacks - Dropped fallback fields from outgoing Anthropic requests to avoid schema validation errors
- Async Context Propagation - Preserve context values in async requests so downstream handlers retain request-scoped data
- Custom Providers - Allow custom providers without a list-models endpoint to accept any model
- Routing Rule Targets - Preserve routing rule targets for genai and bedrock paths
- DB Deadlock Prevention - Replaced find-then-upsert with atomic
ON CONFLICTto prevent deadlocks - Key Validation Errors - Improved key validation error handling and logging
- LiteLLM Compat - LiteLLM compatibility fixes
- SQLite Migration Fix - Migration connection handling, error handling, and foreign key checks during migration
- CVE Fixes - Dependency updates addressing reported CVEs
- Guardrails Plugin - Guardrail plugin cleanup and Bedrock guardrail adjustments
- Datadog LLM Spans - LLM span type set correctly as
llm.call - Log Entry Broadcasting - Fixed log entry broadcasting bug in cluster gossip
📀 Base OSS version
transports/v1.5.0-prerelease4
