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
This release introduces username/password authentication for non-SSO deployments, end-to-end file/image handling and env-var support for guardrails, a token-driven SCIM group restriction model that removes platform-wide group enrichment, and a new React Flow cluster topology view - all on top of OSS basetransports/v1.5.0-prerelease7 which adds passthrough streaming accumulation, auto-resolve provider, and unified x-bf-dim-* dimension headers.✨ Features
Authentication & Identity
- Username/Password Authentication - First-class password auth mode alongside SSO via
BIFROST_ADMIN_USERNAME/BIFROST_ADMIN_PASSWORD; newGET /api/auth/typeendpoint, session middleware,EntityTypeAuthConfigcluster gossip, and anauth_modeaware login UI. Enabling a SCIM provider wipes all password sessions and auth config. - Token-Driven SCIM Group Restriction - Removed platform-wide group enrichment across Entra, Okta, Google, Keycloak, SailPoint, and Zitadel; team attachment is now driven exclusively by claims present in the IdP token, eliminating cross-tenant group leakage and unnecessary directory API calls.
- Okta Issuer URL Hardening -
IsOrgAuthServerandNormalizeIssuerURLnow properly parse issuer URLs and treat/oauth2(without an auth-server id) as a malformed Custom URL, promoting it to/oauth2/defaultinstead of misclassifying as Org Authorization Server. - Entra Cloud Default - Entra SCIM provider defaults the
Cloudfield to"commercial"when omitted, preventing nil dereferences from incomplete configs.
Guardrails
- File & Image Block Support - Added
GuardrailFileRequestBlockandFilesfield toGuardrailRequestBlockso non-image attachments flow through the extraction pipeline; nil-pointer panics inextractRequestBlocks/extractResponseBlocksfixed;data:image/...base64 URIs decoded inline without HTTP fetch; SSRF-blocked URL test coverage added. - Env Var Support for Guardrails - Guardrail provider config fields (Azure, Bedrock, GraySwan, regex, etc.) now resolve from environment variables via
env.VAR_NAMEfor secure secret injection. - Bedrock ARN Auto-Derivation - Region and guardrail ID can be inferred directly from the guardrail ARN when region is omitted, simplifying Bedrock guardrail configuration.
- Sheet Click-Outside Protection - All guardrail configuration sheets now use
onInteractOutside={(e) => e.preventDefault()}to avoid accidental dismissal on outside clicks.
Cluster & UX
- React Flow Cluster Graph - Cluster Nodes page replaces the table with an interactive React Flow graph: nodes laid out in a circle with edges colored by reachability, leader badges, automatic background diagnostic on leader change, and draggable/zoomable canvas. Single-node clusters render the simplified card.
- Sticky Sheet Headers/Footers - Sheet panels (cluster view, MCP tool group, access profile, etc.) now have sticky headers and footers with refactored layout.
- Combobox Filters - Team and business unit filters use
ComboboxSelectfor searchable selection. - Virtual Key UX in Team Detail - Replaced infinite scroll with a load-more button and added copy-to-clipboard for virtual keys.
Routing & Loadbalancing
- Passthrough Bypass for LB & Governance - Both load balancing and governance plugins now short-circuit
HTTPTransportPreHookfor passthrough paths so requests bypass governance enforcement and rebalancing as intended.
From OSS transports/v1.5.0-prerelease7
- Passthrough Streaming Accumulation - Accumulator for passthrough streaming responses enables proper logging and cost tracking on raw provider streams.
- Auto-Resolve Provider - Inference and integration routes auto-resolve the provider when no provider prefix is given on the model name.
- Per-Request Content Logging Overrides - Opt-in per-request overrides for content logging and raw request/response visibility, with DB migrations and live-reload.
- Unified
x-bf-dim-*Headers - New unified dimension headers automatically forwarded to logs, traces, Prometheus, and Maxim tags. - VK-Scoped Model Lists - Model list endpoints now scoped to virtual-key-allowed providers and models via request headers.
- MCP Reverse Proxy OAuth - External base URL support for reverse-proxy MCP OAuth flows.
- Routing Rules Scope Cache - Routing rules cached per scope upfront; new model-catalog routing engine label and icon.
schemas.DurationType - Go duration string support for MCP, Redis, Weaviate, and mocker duration fields.- OpenAI Realtime Audio (Base64) - Audio base64 encoding support for the OpenAI realtime provider.
- Local Cache Hit Rate Speedometer - Dashboard speedometer showing local cache hit rate.
- OTEL Finish Reasons - Finish reasons added to OTEL root spans, with correct model and provider names propagated.
🐞 Fixed
Enterprise
- Team Details Sheet - Members and virtual keys now render correctly in the team detail sheet.
- Access Profile Migrations - Fixed migrations for enterprise access profiles.
- Zitadel
ProjectID- UseGetValue()forProjectIDin user grants query to avoid type mismatches. - Bedrock Guardrail ID - Corrected guardrail-id handling in the Bedrock guardrails plugin.
- Provider Config Normalization - Provider config is now normalized after update to keep stored credentials and aliases consistent.
- GraySwan Form - Added missing
enabledfield to GraySwan config form, removed duplicate form fields, and fixed the verify flow to sendpolicy_idsas an array (split from CSV);violation_thresholddefaults to0.5only when the key is absent, not when explicitly zero. - Nil Pointer in New DB - Fixed nil pointer dereference triggered when initializing a fresh database.
- Okta SCIM Enable Toggle - Treat Okta informational warnings as non-blocking so the SCIM enable toggle no longer fails on benign warnings.
- Inline Credential Preserve Checks - Replaced
shouldPreserveStoredCredentialwith inline env-var and redaction checks across guardrail config handlers, with shared utility coverage. - Loadbalancer Logging - Cleaned up loadbalancer log levels and message clarity.
- Access Profile Field Styling - Removed stray
mr-2from icons and corrected access profile field labels. - OSS Ref Branch Selection - Removed
SKIP_TAG_CHECKas a bypass for OSS tag validation; onlySKIP_OSS_TAG_CHECKcontrols the bypass now, restoring distinct semantics for the two flags.
From OSS transports/v1.5.0-prerelease7
- OTEL Cost Info & I/O Messages - Cost info in OTEL calls and response tools fixed; input/output messages propagated to root span.
- Migrations Conflict Resolution - Fixed migration conflicts.
- WebSocket
/responses- Improved logging, cost tracking, and VK stripping for WebSocket responses. - MarshalJSON Auto-Redaction Removed - Explicit redaction now applied to env-backed fields in
ProxyConfig,ClientConfig, andAzureKeyConfiginstead of MarshalJSON-based auto-redaction. - Vertex
google/Prefix - Stripgoogle/prefix from Vertex model IDs across all request types. - Vertex Multi-Region Routing - Multi-region-only models route to multi-region endpoints when the provider key is configured for a single region only.
- OAuth Token
expires_at-expires_atnow nullable; refresh/reconnect guarded on nil expiry. - OpenAI Responses Tool Fields - Tool fields preserved in OpenAI responses.
- Semantic Cache Determinism - Deterministic request hashing and
CacheDebugpropagation in streaming. - Streaming Pool-Reuse Corruption - Snapshot
RequestTypebefore closure to prevent pool-reuse corruption in streaming requests. - Self-Looping Chain Rules - Chain rules with self-loops continue evaluating subsequent rules instead of halting.
- Default Routing Provider Filter - Filter out unconfigured providers in default routing.
- Ollama/SGL Network Config Fallback - Fall back to network config if key config URL is not set for Ollama and SGL;
base_urladded tonetwork_configfor backward compatibility. - Streaming Pipeline
RawRequest-RawRequestpropagated through the streaming pipeline; pool leak fixed. - Logging Streaming Errors - Improved streaming error handling in the logging plugin.
governance_budgetsJoin - Corrected join condition to usevirtual_key_id.resolvePeriodUTC - Fixed UTC handling inresolvePeriodtime calculation.- Semanticcache Provider Keys - Inherit provider keys from the global client in the semanticcache plugin.
📀 Base OSS version
transports/v1.5.0-prerelease7
