> ## 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.

# v2.4.0

> v2.4.0 changelog - 2026-10-29

**Bifrost Enterprise**

v2.4.0

## Changelog

v2.4.0 moves the enterprise gateway onto OSS transports v2.4.0. Relays (governed calls to non-LLM APIs) get enterprise access control: relay grants on access profiles and projects, Relays and RelayLogs RBAC resources, and DAC-scoped Relay Logs. Okta Cross App Access lets AI apps exchange an Okta identity assertion for a Bifrost token that acts as the user. Audit logs record typed events with before/after diffs, sign with rotatable keys, and move to the log store when it can hold them. Admins can view the gateway as any user in read-only mode. The OSS release adds Relays, Warp Topics, the MiniMax, BytePlus and AWS SageMaker providers, and MCP prompts and resources.

## ✨ Features

* **Relay Access Control** - Access profiles, user and entity profiles, and projects accept `relay_grants`, so relays are granted the same way as agents and MCP servers. New RBAC resources `Relays` (Create, View, Update, Delete) and `RelayLogs` (View, Delete): Admin gets all of them, Developer and Viewer get View. Relay Logs reads and deletes are DAC-scoped like request logs, and fetching a relay's OpenAPI spec needs `Relays:Update`. The access profile and project sheets edit relay access, Home shows relays, `GET /api/relays/{name}/access-profiles` lists who holds a relay, and log connectors export relay calls. [Docs](https://docs.getbifrost.ai/relays/overview.md)
* **Okta Cross App Access (ID-JAG)** - An AI app can exchange an Okta identity assertion (ID-JAG) at `/oauth2/token` for a Bifrost token that acts as, and is attributed to, the named user. It is set on the Okta SSO provider (`crossAppAccess`: `enabled`, `accessTokenTtl`, `provisionUsers`) and needs Bifrost's OAuth server enabled. Clients are managed under User Provisioning (`/api/scim/idjag/clients`) with `mcp` and `llm` scopes; a token with the `llm` scope works on inference routes as its user. Each assertion can be redeemed once, and disabling or rescoping a client refuses its tokens at once on every node. [Docs](https://docs.getbifrost.ai/mcp/auth/cross-app-access.md)
* **Audit Log Events and Diffs** - Audit rows now name what happened (for example `virtual_key.updated`, `user.access_profiles_removed`, `auth.login`) and store a before/after diff, shown in the detail view. Rows carry the request ID, session ID, auth method and on-behalf-of user, and return a severity. Routine reads are skipped, and test or preview calls are recorded as reads. New events cover agent sign-in, refresh and sign-out, background jobs, identity sync, identity-driven team and business unit changes, and node startup. [Docs](https://docs.getbifrost.ai/enterprise/audit-logs.md)
* **Audit Signature v2 and Key Rotation** - v2 signatures cover every stored field instead of seven, in the format `v2:<key id>:<hex>`. `audit_logs.hmac_keys` with `active_key_id` lets you rotate keys while older keys keep verifying their rows, and v1 rows still verify. With no key configured, Bifrost now generates one shared key, stored encrypted in the config store, instead of a random key per node per boot that never verified after a restart. [Docs](https://docs.getbifrost.ai/enterprise/audit-logs.md)
* **Audit Events in the Log Store** - When the log store can hold them, new audit events go to its `enterprise_audit_events` table. The config store's table becomes a read-only Legacy view in the Audit Logs page, and retention and archival still apply to it.
* **View as User** - Admins with the new `Users:ViewAs` permission (granted to Admin by migration) can open the gateway as a chosen user, in a new tab, to check what that user sees. RBAC, DAC scope and `/me` resolve as that user. Only GET, HEAD and OPTIONS pass; writes and API-key callers get 403. Starting a view writes a `user.view_as_started` audit row.
* **First-Match Access Profile Resolution** - SSO providers accept `accessProfileResolutionStrategy`. `all` (default) grants every matching attribute rule, as before. `order` grants only the first matching rule, and each rule can grant one or more access profiles. Under `order`, a SCIM push also removes the login's attribute grant. The SSO mapping editor has the option. [Docs](https://docs.getbifrost.ai/enterprise/access-profiles.md)
* **Skip User Virtual Key Creation and Deletion** - Two client settings, `skip_access_profile_user_virtual_key_creation` and `skip_access_profile_user_virtual_key_deletion`, stop an access profile from creating a user's first virtual key, or from deleting the user's keys when the last profile goes. Existing keys are still adopted and governed while the user holds a profile. [Docs](https://docs.getbifrost.ai/enterprise/access-profiles.md)
* **Per-Project Content Logging** - Projects have a content-logging setting that overrides the virtual key's, set from the project sheet. [Docs](https://docs.getbifrost.ai/enterprise/projects.md)
* **Guardrail Updates** - [Docs](https://docs.getbifrost.ai/enterprise/guardrails.md)
  * Prompt guardrails can use a decision model, and the rule is phrased as a yes/no question.
  * New per-rule `profileExecutionMode`. `chained` runs profiles in order, and each one sees the payload as the earlier profiles redacted it, so a local PII redactor can run before an external check. `independent` (default) keeps the current behaviour.
  * Lakera requests accept configurable metadata headers.
  * The CEL rule builder has a business unit condition.
  * Background output-monitor checks emit their own trace span. Gray Swan observe-mode and below-threshold results, and outcome-specific Bedrock assessments, are recorded as detections.
* **Edge Server Support** - [Docs](https://docs.getbifrost.ai/edge/admin-configurations.md)
  * Admins can let users pick their own Cursor default model and Antigravity CLI helper model, optionally from a fixed list (`app_setting_policies` on `PUT /api/edge/config`). Choices are stored per user and served through `/api/agent/app-settings`.
  * Model picker lists: a global list plus per-app overrides set the models each app's picker shows, in order. `append_remaining` shows the rest of the catalog after them. Edge settings can suggest the newest models per provider from the model catalog.
  * Edge can sign in with a virtual key alone (fleet switch `virtual_key_auth_disabled`). A virtual key never creates a user session.
  * Edge sign-in uses proof-bound (DPoP, RFC 9449) refresh tokens. Old and new Edge clients and gateways work together during a rolling upgrade.
  * OpenCode can be turned on or off for capture like the other apps, and the Edge settings pages are reorganized.
* **Codex Users Identified by Gateway Cookie** - On `/chatgpt_passthrough`, the user is identified by Codex's `auth-openid` gateway cookie or a virtual key, and the ChatGPT token is forwarded unchanged. The cookie is never sent upstream. A ChatGPT token with `x-bf-vk` now passes under every dual-credential setting.
* **Stored IdP Sign-In for Token Exchange** - MCP token exchange refreshes and uses the user's stored identity provider sign-in, and Edge sessions are recorded for it. Token exchanges go only to the identity provider's hosts, and the authorization server URL is checked when the MCP client is saved.
* **Cluster Sync for MCP Prompts and Resources** - Discovered MCP prompts and resources and their `prompts_to_expose` / `resources_to_expose` allow-lists sync across enterprise nodes.
* **Warp Topics Scoped by DAC** - Warp topic reads follow the caller's data access scope. [Docs](https://docs.getbifrost.ai/features/warp.md)
* **Image Provenance and SBOM** - Every pushed enterprise image has SLSA provenance and an SBOM attached.

## 🌎 Open Source Features

* **Relays** - New relays call non-LLM APIs (Tavily, AWS Textract, Azure Speech and others) through `/relay/{name}/{path}` with one stored credential, per-route pricing and usage mapping, and streaming. Virtual keys get `relay_grants`, and relay calls are charged to the caller's virtual key, team and customer budgets. Relay Logs record metadata, route-matched headers and (with content logging on) streamed response bodies. Routes can be imported from an OpenAPI document. Relays sync from config.json. [Docs](https://docs.getbifrost.ai/relays/overview.md)
* **Warp Topics** - Warp groups logged requests into topics and broader themes, files each request under a topic as it is indexed, discovers new topics from unmatched requests, and counts topics over a time window with trends and metrics. Logs can be filtered by topic. [Docs](https://docs.getbifrost.ai/features/warp.md)
* **MiniMax Provider** - New `minimax` provider for chat completions, Responses, image generation, async video generation, text-to-speech and speech-to-text, with `thinking` passthrough. [Docs](https://docs.getbifrost.ai/providers/supported-providers/minimax.md)
* **BytePlus Provider** - New `byteplus` provider for BytePlus ModelArk: Seed chat completions, the native Responses API, embeddings, Seedream image generation and editing, and async Seedance video generation. [Docs](https://docs.getbifrost.ai/providers/supported-providers/byteplus.md)
* **AWS SageMaker Provider** - New `sagemaker` provider for real-time endpoints. Chat goes through SageMaker's OpenAI-compatible route (vLLM, SGLang, LMI, llama.cpp containers), and `/sagemaker_passthrough` forwards raw `InvokeEndpoint` and `InvokeEndpointWithResponseStream` calls.
* **Azure Speech and Live APIs** - Azure keys reach Azure AI Speech for SSML text-to-speech and fast transcription (`use_speech_endpoints`), Azure Voice Live realtime sessions (`use_voice_live_endpoints`), and GPT Live. A new `/azure` route group lets Azure AI Speech clients and the Azure OpenAI SDK use Bifrost as their Azure resource.
* **Bedrock Nova Sonic Realtime** - Amazon Nova Sonic speech-to-speech on the OpenAI Realtime-compatible surface, translated onto Bedrock's signed HTTP/2 event stream.
* **MCP Prompts and Resources** - Bifrost discovers the prompts, resources and resource templates an upstream MCP server offers and serves them on `/mcp`, with `completion/complete`. Each server gets `prompts_to_expose` and `resources_to_expose` allow-lists, narrowed by virtual keys and Virtual MCPs like tools.
* **MCP Protocol 2026-07-28** - mcp-go moves to v1.3.0. A global and per-server max protocol version setting caps what Bifrost offers upstream. Tool results keep images, audio and structured content, and tool output schemas, titles, icons and annotations reach clients.
  > [!NOTE]
  >
  > The MCP gateway now validates `Origin` as the Streamable HTTP spec requires. Browser requests to `/mcp` from an origin that is not allowed get a `403`. Requests with no `Origin` header (CLIs, SDKs, server-side clients) are unaffected.
* **MCP OAuth CIMD and Issuer Binding** - Upstream MCP OAuth publishes a Client ID Metadata Document at `/api/oauth/client-metadata.json` and registers with it. Each MCP client's credentials are bound to the authorization server that issued them (RFC 8414, RFC 9207). The OAuth issuer URL is editable under Settings > Security.
* **Native Decisions on More Providers** - `/v1/decisions` runs natively on vLLM, SGLang, Databricks System One and Azure gpt-6-luna. OpenAI decisions accept conversation items, JSON parts and prompt caching.
* **GitHub Copilot Token Auth** - GitHub Copilot keys take a fine-grained PAT or a GitHub OAuth token in `value`, and the UI signs in with GitHub through the device flow. Claude models go to Copilot's native `/v1/messages`, OpenAI models to `/responses`. [Docs](https://docs.getbifrost.ai/providers/supported-providers/github-copilot.md)
  > [!WARNING]
  >
  > The GitHub App installation mode is removed. `github_copilot_key_config` is no longer accepted, and a GitHub Copilot key without a token in `value` is refused at setup. Replace App-based keys with a PAT or OAuth token before upgrading.
* **Passthrough Route Allowlist** - Each provider has a passthrough route policy that controls which routes `/openai_passthrough`, `/anthropic_passthrough`, `/azure_passthrough`, `/genai_passthrough` and the other passthrough endpoints forward.
* **Codex with ChatGPT Sign-In** - `/chatgpt_passthrough` forwards `GET /backend-api/codex/models`, so Codex signed in with ChatGPT runs through Bifrost with the virtual key in `x-bf-vk`. Each responses turn is still checked against the key.
* **Vertex OpenAI-Format Endpoints** - A Vertex alias can point at a custom Vertex endpoint (vLLM or another container) that accepts OpenAI chat completions, through `vertex_endpoint` with `raw_predict` or `predict`.
* **Azure Blob Storage** - Log payload and skills-file storage on Azure Blob with default Azure identity or connection-string authentication, JSON/gzip and Parquet.
* **Log CSV Export** - The Logs page exports the filtered logs to CSV.
* **Fallback Chain in Log Details** - Log details show a banner and timeline for the fallback chain a request went through.
* **Hide the Setup Checklist** - A new `disable_onboarding` flag hides the setup checklist on stateless and provider-less deployments.
* **Developer Role and Mid-Conversation System Messages** - Models whose datasheet row sets `supports_developer_role` to false get developer messages as `system`, and later system messages are folded in for models that reject them.
* **Gemini 4 Thinking Level and Continuation** - A thinking budget sent to Gemini 4 models becomes `thinkingLevel` (up to 1024 is `low`, up to 8192 is `medium`, larger is `high`). Hops that end with `finishReason: CONTINUATION` carry their `continuationToken`.
* **Provider Additions** - Fireworks Responses honours `disable_store`. `/v1/models?provider=databricks` lists the key's configured models and aliases. `strict` on a tool reaches Converse `toolSpec.strict` for Claude on Bedrock. The model catalog keeps each model's creation time.
* **Platform Hooks** - Plugins can carry opted-in HTTP metadata into native realtime turns. `HoldTraceFlush` delays trace export until background writers finish, and `SetSpanStartTime` gives late-opened spans their real duration. The ClickHouse log store gets the user agent mappings table.

## ⚙️ Upgrade Notes

* **GitHub Copilot App mode removed** - Replace App-based GitHub Copilot keys with a PAT or OAuth token before upgrading; see the Warning above.
* **MCP gateway checks `Origin`** - Browser requests to `/mcp` from an origin that is not allowed get `403`.
* **Audit log export needs `AuditLogs:Download`** - Roles that exported audit logs with only View need this permission.
* **Adopted keys lose their own grants** - When an access profile adopts a virtual key, the key's own agent grants, Virtual MCP assignments and relay grants are removed, and `allow_all_providers` is cleared. Migrations apply this to keys adopted before the upgrade, so a key that outlives its profile does not regain access the profile never gave.
* **Audit storage moves** - When the log store can hold audit events, new events are written there and the old config-store rows are shown as a Legacy view.

## 🐞 Fixed

* **Startup on Unknown Grants** - A virtual key in config.json whose `agent_grants` or `relay_grants` names an agent or relay that is not stored is created with a warning instead of stopping startup.
* **Token Expiry Clock Skew** - Token expiry tolerates clock skew, and an expired bearer gets an RFC 6750 challenge.
* **JWT Validation Cache Race** - Callers no longer get the cache's shared claims map, which they could change.
* **Dashboard Cookie Sessions** - Cookie sessions exchange the stored sign-in instead of the cookie's token.
* **User-Mode MCP Consent** - User-mode MCP consent is refused for API-key requests.
* **VK Temporary Token Flow** - Per-user headers are whitelisted so the virtual key temporary token flow completes.
* **Azure Subscription Key** - The middleware accepts `Ocp-Apim-Subscription-Key`.
* **Refusals Charged to Keys** - Keys are no longer charged for caller-fault refusals that core retries with the reasoning token stripped.
* **Budget Alerts with Extensions** - Budget alerts account for budget extensions.
* **Access Profile Budget Overrides** - Budget overrides apply to the target user, not the profile template.
* **Budget Requests List** - The list cache is keyed by caller, so one user's list is never served to another.
* **Batched Virtual Key Reload** - Virtual MCP assignments converge in memory after a batched reload.
* **Entity-Owned Keys** - Keys owned by a governed team, business unit or customer are managed like any entity key, and governed key fields match case-insensitively.
* **Business Unit Key Attribution** - Requests with a business unit's key are attributed to the unit and its customers.
* **SCIM Group Pushes** - Removals apply by ID, and additions apply only while a rule maps the target. Business unit membership sync now matches teams on removal, resolve failure and manual assign.
* **Customer Team Count** - The team count covers only teams the caller can see.
* **Relay Deletion** - A deleted relay is removed from every in-memory holder at once, and `relay_logs` counts as a logs-store table.
* **RBAC Routes** - `/api/rss` maps to Notifications, with writes gated on Settings update. UI action gates match the permissions the API checks, and RBAC-dependent queries are skipped when not allowed.
* **Audit Attribution and Verification** - SSO logouts are attributed to the session user, anonymous password-logout rows are skipped, and agent sign-out rows name the user. Legacy v1 signatures verify across time zones and when the database dropped nanoseconds, and a mismatch is explained.
* **Home Budgets** - Profile budget burn is measured on the user's total spend, access profile budgets are pooled in the overview, and My Access lists MCP servers and agents allowed by default.
* **Org Chart Performance** - Org chart log reads are batched and bounded by the gateway timeout.
* **Guardrail Sampling** - Rule sampling is an independent random draw per request instead of a cluster-synced counter.
* **Guardrail Spans and Overhead** - Monitor-mode checks are left out of request overhead, span timings are set directly, and a stream gets one output span instead of one per chunk.
* **Guardrail Output Rules** - Stale output rules are cleared across fallbacks and nested MCP calls, and Bedrock camelCase usage is decoded.
* **Guardrail Media Prompts** - Video, speech and transcription prompts are extracted and redacted instead of sending raw audio.
* **Guardrail Config Validation** - Rule and config validation is stricter, secrets are redacted, and rule writes are atomic.
* **Guardrail CEL Values** - Numeric-looking header, substring and identity values are quoted, and incomplete conditions are omitted.
* **Guardrail Judge Fields** - Judge provider and model are no longer flagged as required when the judge type is toggled.
* **Cross App Access Card** - The card follows the provider save and fits its table.
* **OSS: Anthropic and Bedrock** - Sonnet 5.5 passthrough keeps reasoning and sampling settings, `message_delta` keeps its `delta`, web search on Chat Completions no longer leaks an orphan `tool_calls` delta, advisor passes are billed, Bedrock connection failures return a retryable `502`, tool-use streams end with `stop_reason: tool_use`, and prompt caching holds across tool turns.
* **OSS: Gemini Tool-Call IDs** - Gemini and Vertex receive the tool-call ID they issued instead of a \~500-character ID.
* **OSS: OpenAI-Compatible Streams** - `extra_content`-only chunks are forwarded, native `web_search_call` replay keeps `id` and `status`, and `input_image` in tool outputs gets a default `detail`.
* **OSS: Responses WebSocket and Realtime** - Responses WebSocket accepts `response.interrupt` and stays on one key; an audio commit no longer blocks the next `response.create`.
* **OSS: List Models** - Paginated providers are no longer cut off in aggregate listings, and `/anthropic/v1/models` includes `max_input_tokens`.
* **OSS: Pricing** - Datasheet sync stores one deterministic price for shared Bedrock model names, image models over chat are priced from their image row, and compat keeps sampling params on rows without `model_parameters`.
* **OSS: MCP OAuth and Sessions** - Protected resource metadata must match the server URL, abandoned installs are swept, expired tokens without refresh are marked `needs_reauth`, and `404` means a dead session only on revisions with sessions.
* **OSS: Platform** - Held streams commit as soon as output starts, materialized view refreshes stop with their pod, config reload keeps the runtime classifier, `framework/logstore` builds without cgo, and the `npx` launcher verifies the binary checksum.
* **OSS: UI** - The providers page shows a load error instead of onboarding, and the date range picker uses the active timezone.

## 🗄️ Database Migrations

### Enterprise

* **ent\_add\_users\_view\_as\_permission** - Adds the `Users:ViewAs` permission and grants it to Admin. Rollback is a no-op, so the grant stays.
* **ent\_add\_relay\_rbac\_resources** - Seeds the `Relays` and `RelayLogs` RBAC resources and their role permissions. Rollback is a no-op.
* **ent\_add\_relay\_grants** - Creates `enterprise_access_profile_relay_grants`, `enterprise_user_access_profile_relay_grants`, `enterprise_entity_access_profile_relay_grants` and `enterprise_project_relay_grants`, with cascading foreign keys. Reversible: rollback drops the four tables.
* **ent\_strip\_adopted\_vk\_own\_relay\_access** - Deletes relay grants from virtual keys that an access profile has adopted. Non-reversible.
* **ent\_clear\_adopted\_user\_vk\_allow\_all\_providers** - Sets `allow_all_providers` to false on user keys adopted by an access profile. Non-reversible: which keys had the flag is not recorded.
* **ent\_strip\_adopted\_vk\_own\_agent\_and\_virtual\_mcp\_access** - Deletes agent grants and Virtual MCP assignments from adopted keys, and clears `allow_all_providers` on keys governed by an entity's access profile. Non-reversible.
* **ent\_add\_idjag\_clients\_table** - Creates `enterprise_idjag_clients` for Cross App Access clients. Reversible: rollback drops the table.
* **ent\_add\_idjag\_redemptions\_table** - Creates `enterprise_idjag_redemptions` for single-use assertions. Reversible: rollback drops the table.
* **ent\_add\_agent\_dpop** - Adds `dpop_thumbprint` to agent auth codes, `dpop_thumbprint`, `client_id` and `refresh_mode` to agent sessions, and creates `enterprise_agent_dpop_proofs`. Non-reversible: dropping them could make bound sessions eligible for legacy refresh.
* **ent\_add\_user\_app\_settings\_table** - Creates `enterprise_user_app_settings` (one row per user and setting). Reversible: rollback drops the table.
* **ent\_add\_project\_disable\_content\_logging\_column** - Adds `disable_content_logging` to `enterprise_projects`. Reversible: rollback drops the column.
* **ent\_add\_guardrail\_rule\_profile\_execution\_mode\_column** - Adds `profile_execution_mode` to `enterprise_guardrail_rules`. Reversible: rollback drops the column.
* **ent\_add\_audit\_log\_actor\_context\_columns** - Adds `request_id`, `session_id`, `auth_method` and `on_behalf_of_id` to `enterprise_audit_logs`. Non-reversible.
* **ent\_add\_audit\_log\_event\_name\_columns** - Adds `event_name` and `changes` to `enterprise_audit_logs`. Reversible: rollback drops both columns.
* **ent\_add\_audit\_settings\_state\_table** - Creates `enterprise_audit_settings_state`. Non-reversible.
* **ent\_widen\_audit\_log\_signature\_column** - Widens `enterprise_audit_logs.signature` to `varchar(160)` for v2 signatures. Non-reversible: v2 signatures do not fit the old width.
* **ent\_add\_audit\_log\_request\_id\_index** - Builds `idx_audit_request_id` on `enterprise_audit_logs` concurrently, in the background after startup. Reversible: rollback drops the index.
* **ent\_add\_audit\_log\_event\_name\_index** - Builds `idx_audit_event_name_time` on `enterprise_audit_logs` concurrently, in the background after startup. Reversible: rollback drops the index.
* **ent\_logs\_add\_audit\_events\_table** (log store) - Creates `enterprise_audit_events` (also in ClickHouse). Reversible: rollback drops the table.

> [!WARNING]
>
> Rolling back `ent_add_audit_log_event_name_columns` drops the `changes` column and permanently deletes every stored before/after audit diff. Rolling back `ent_add_relay_grants` deletes every relay grant on access profiles and projects.

### Open Source

* **add\_client\_config\_skip\_access\_profile\_user\_virtual\_key\_lifecycle\_columns** - Adds two client config columns that control access-profile user virtual key creation and deletion. Reversible: rolls back by dropping both columns.
* **add\_passthrough\_json\_column** - Adds the per-provider passthrough route allowlist. Non-reversible: dropping it would delete every provider's passthrough allowlist.
* **add\_warp\_topic\_discovery\_min\_requests\_column** - Adds the Warp topic discovery threshold. Reversible: without the column discovery runs at the default.
* **add\_azure\_use\_speech\_endpoints\_column** - Adds the Azure key `use_speech_endpoints` flag. Reversible: rolls back by dropping the column.
* **add\_azure\_use\_voice\_live\_endpoints\_column** - Adds the Azure key `use_voice_live_endpoints` flag. Reversible: rolls back by dropping the column.
* **add\_sagemaker\_key\_columns** - Adds the SageMaker key config columns. Reversible: rolls back by dropping the columns.
* **widen\_oauth2\_client\_id\_columns** - Widens OAuth `client_id` columns beyond `varchar(255)` for CIMD URLs. Non-reversible: longer client IDs may already be stored.
* **add\_oauth2\_refresh\_token\_client\_display\_name\_column** - Adds a client display name to OAuth refresh tokens. Reversible: rolls back by dropping the column.
* **add\_mcp\_max\_protocol\_version\_columns** - Adds the global and per-server MCP protocol cap. Non-reversible: dropping the columns would delete every configured cap.
* **add\_mcp\_client\_discovered\_resources\_prompts\_columns** - Stores discovered MCP resources, resource templates and prompts. Reversible: rolls back by dropping the columns.
* **add\_mcp\_client\_expose\_lists\_columns** - Adds `prompts_to_expose` and `resources_to_expose`. Non-reversible: dropping the allow-lists would expose every prompt and resource they restrict.
* **add\_oauth\_issuer\_binding\_columns** - Binds MCP OAuth credentials to their issuing authorization server. Reversible: rolls back by dropping the columns.
* **add\_mcp\_client\_discovered\_tool\_details\_column** - Stores discovered MCP tool titles, icons and output schemas. Reversible: rolls back by dropping the column.
* **add\_relays\_tables** - Creates the relay, route and virtual key grant tables. Non-reversible: dropping them would delete relay endpoints, their credentials and virtual key grants.
* **add\_video\_token\_pricing\_column** - Adds `output_cost_per_video_token`. Non-reversible: dropping it would delete custom per-token video prices and bill token-metered video at \$0.
* **add\_voice\_live\_pricing\_columns** - Adds Azure Voice Live pricing columns. Non-reversible: dropping them would delete every Voice Live rate an operator set.
* **logs\_add\_warp\_topic\_tables** - Creates the Warp topic, assignment and unmatched tables in the log store. Non-reversible once populated: topics outlive the requests they were built from and cannot be rebuilt from the logs.
* **logs\_add\_warp\_vector\_deletes\_table** - Creates the pending vector deletes table. Non-reversible while it holds rows: they list deleted logs whose vectors are still in the vector store.
* **mcp\_tool\_logs\_add\_method\_column** - Adds `method` to MCP tool logs for prompt and resource reads. Reversible: rolls back by dropping the column.
* **add\_relay\_logs\_table** - Creates the relay logs table (also created in ClickHouse). Non-reversible: it holds recorded call history and charges.

All new migrations only add columns or tables, so older binaries ignore them during a rolling upgrade.

## 🐙 Closed OSS Issues

* [#5649](https://github.com/maximhq/bifrost/issues/5649) - defaultImageDetail fix (#5352) doesn't cover images inside function\_call\_output (tool results), Responses API to self-host vLLM still fails
* [#7189](https://github.com/maximhq/bifrost/issues/7189) - Realtime audio commit blocks subsequent response.create with active-response error
* [#7319](https://github.com/maximhq/bifrost/issues/7319) - /anthropic/v1/models omits max\_input\_tokens - integration list-models route never enriches from the model catalog
* [#7655](https://github.com/maximhq/bifrost/issues/7655) - Anthropic web search on /v1/chat/completions leaks the search query as an orphan tool\_calls delta and drops citations
* [#8152](https://github.com/maximhq/bifrost/issues/8152) - Allow setup checklist to be dismissed persistently on stateless / provider-less deployments
* [#8268](https://github.com/maximhq/bifrost/issues/8268) - Providers page shows the "no providers configured" onboarding screen when the providers request fails
* [#8382](https://github.com/maximhq/bifrost/issues/8382) - Bifrost 2.2.6 strips web\_search\_call.status from Responses history, breaking Codex replay
* [#8489](https://github.com/maximhq/bifrost/issues/8489) - Datasheet sync stores a random price when bedrock and bedrock\_mantle rows share a model name
* [#8546](https://github.com/maximhq/bifrost/issues/8546) - Gemini/Vertex receives the full `_ts_`-embedded call id as `functionCall.id`, so the model sees (and copies) \~500-char ids
* [#8547](https://github.com/maximhq/bifrost/issues/8547) - Abandoned shared OAuth MCP installs leave oauth\_configs rows pending forever
* [#8549](https://github.com/maximhq/bifrost/issues/8549) - thinking blocks bridged from Chat Completions reasoning\_content get a synthetic brid\_ signature
* [#8550](https://github.com/maximhq/bifrost/issues/8550) - Bedrock invoke-with-response-stream reports `stop_reason: "end_turn"` for tool-use turns
* [#8594](https://github.com/maximhq/bifrost/issues/8594) - Export filtered logs to CSV from the Logs page
* [#8759](https://github.com/maximhq/bifrost/issues/8759) - GET /v1/models omits models from a paginated provider in aggregate listings
* [#8765](https://github.com/maximhq/bifrost/issues/8765) - Bedrock datasheet rows without model\_parameters make compat drop all sampling params and substitute the model default max\_tokens
* [#8801](https://github.com/maximhq/bifrost/issues/8801) - Bedrock: a tool message with one text block renders as text, but the same content as a string renders as json, which breaks prompt caching across turns
* [#8824](https://github.com/maximhq/bifrost/issues/8824) - framework/logstore no longer builds with CGO\_ENABLED=0
* [#8934](https://github.com/maximhq/bifrost/issues/8934) - OpenAI-compatible chat streams drop chunks whose delta carries only extra\_content
* [#8963](https://github.com/maximhq/bifrost/issues/8963) - Bedrock stream dropped mid-response reaches Anthropic clients as invalid\_request\_error
* [#8970](https://github.com/maximhq/bifrost/issues/8970) - Bedrock returns HTTP 400 when it can't connect to the provider

## 📀 Base OSS version

`transports/v2.4.0`

## 🔌 If you are compiling plugin against this release - use following deps

```go theme={null}
module github.com/maximhq/bifrost-enterprise/transports

go 1.27.3

require (
	github.com/bytedance/sonic v1.15.3-0.20260730064818-2a36d6da63e2
	github.com/coreos/go-oidc/v3 v3.18.0
	github.com/fasthttp/router v1.5.4
	github.com/google/cel-go v0.30.0
	github.com/google/uuid v1.6.0
	github.com/mark3labs/mcp-go v1.3.0
	github.com/maximhq/bifrost-enterprise/core v0.0.0
	github.com/maximhq/bifrost-enterprise/framework v0.0.0
	github.com/maximhq/bifrost-enterprise/plugins v0.0.0
	github.com/maximhq/bifrost/core v1.14.1
	github.com/maximhq/bifrost/framework v1.11.1
	github.com/maximhq/bifrost/plugins/governance v1.11.1
	github.com/maximhq/bifrost/plugins/logging v1.11.1
	github.com/maximhq/bifrost/plugins/routing v1.2.4
	github.com/maximhq/bifrost/plugins/semanticcache v1.7.4
	github.com/maximhq/bifrost/plugins/telemetry v1.9.4
	github.com/maximhq/bifrost/transports/v2 v2.4.0
	github.com/stretchr/testify v1.12.1
	github.com/valyala/fasthttp v1.74.0
	golang.org/x/sync v0.24.0
	gorm.io/driver/postgres v1.6.0
	gorm.io/driver/sqlite v1.6.0
	gorm.io/gorm v1.31.1
)

require (
	cel.dev/expr v0.25.2 // indirect
	cloud.google.com/go v0.123.0 // indirect
	cloud.google.com/go/auth v0.20.0 // indirect
	cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
	cloud.google.com/go/bigquery v1.74.0 // indirect
	cloud.google.com/go/compute/metadata v0.9.0 // indirect
	cloud.google.com/go/iam v1.7.0 // indirect
	cloud.google.com/go/monitoring v1.24.3 // indirect
	cloud.google.com/go/pubsub/v2 v2.4.0 // indirect
	cloud.google.com/go/secretmanager v1.16.0 // indirect
	cloud.google.com/go/storage v1.62.1 // indirect
	dario.cat/mergo v1.0.2 // indirect
	github.com/Azure/azure-sdk-for-go/sdk/azcore v1.20.0 // indirect
	github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1 // indirect
	github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect
	github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.4.0 // indirect
	github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.2.0 // indirect
	github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.6.4 // indirect
	github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0 // indirect
	github.com/BobuSumisu/aho-corasick v1.0.3 // indirect
	github.com/ClickHouse/ch-go v0.65.0 // indirect
	github.com/ClickHouse/clickhouse-go/v2 v2.32.0 // indirect
	github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.82.0 // indirect
	github.com/DataDog/datadog-agent/pkg/obfuscate v0.82.0 // indirect
	github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.82.0 // indirect
	github.com/DataDog/datadog-agent/pkg/proto v0.82.0 // indirect
	github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.82.0 // indirect
	github.com/DataDog/datadog-agent/pkg/trace v0.82.0 // indirect
	github.com/DataDog/datadog-agent/pkg/trace/log v0.82.0 // indirect
	github.com/DataDog/datadog-agent/pkg/trace/stats v0.82.0 // indirect
	github.com/DataDog/datadog-agent/pkg/trace/traceutil v0.82.0 // indirect
	github.com/DataDog/datadog-go/v5 v5.9.0 // indirect
	github.com/DataDog/dd-trace-go/v2 v2.11.1 // indirect
	github.com/DataDog/go-libddwaf/v5 v5.0.0 // indirect
	github.com/DataDog/go-runtime-metrics-internal v0.0.4-0.20260217080614-b0f4edc38a6d // indirect
	github.com/DataDog/go-sqllexer v0.2.3 // indirect
	github.com/DataDog/go-tuf v1.1.1-0.5.2 // indirect
	github.com/DataDog/sketches-go v1.4.8 // indirect
	github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.33.0 // indirect
	github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.55.0 // indirect
	github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.55.0 // indirect
	github.com/Masterminds/goutils v1.1.1 // indirect
	github.com/Masterminds/semver/v3 v3.4.0 // indirect
	github.com/Masterminds/sprig/v3 v3.3.0 // indirect
	github.com/Microsoft/go-winio v0.6.2 // indirect
	github.com/ProtonMail/go-crypto v1.1.6 // indirect
	github.com/STARRY-S/zip v0.2.1 // indirect
	github.com/a2aproject/a2a-go/v2 v2.5.0 // indirect
	github.com/andybalholm/brotli v1.2.2 // indirect
	github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
	github.com/apache/arrow/go/v15 v15.0.2 // indirect
	github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect
	github.com/armon/go-metrics v0.4.1 // indirect
	github.com/aws/aws-sdk-go-v2 v1.42.0 // indirect
	github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.10 // indirect
	github.com/aws/aws-sdk-go-v2/config v1.32.14 // indirect
	github.com/aws/aws-sdk-go-v2/credentials v1.19.14 // indirect
	github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.21 // indirect
	github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.29 // indirect
	github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.29 // indirect
	github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 // indirect
	github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.22 // indirect
	github.com/aws/aws-sdk-go-v2/service/bedrockruntime v1.50.6 // indirect
	github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 // indirect
	github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.13 // indirect
	github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21 // indirect
	github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.21 // indirect
	github.com/aws/aws-sdk-go-v2/service/s3 v1.99.0 // indirect
	github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.42.3 // indirect
	github.com/aws/aws-sdk-go-v2/service/signin v1.0.9 // indirect
	github.com/aws/aws-sdk-go-v2/service/sso v1.30.15 // indirect
	github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.19 // indirect
	github.com/aws/aws-sdk-go-v2/service/sts v1.41.10 // indirect
	github.com/aws/smithy-go v1.27.1 // indirect
	github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
	github.com/beorn7/perks v1.0.1 // indirect
	github.com/blevesearch/go-porterstemmer v1.0.3 // indirect
	github.com/bodgit/plumbing v1.3.0 // indirect
	github.com/bodgit/sevenzip v1.6.0 // indirect
	github.com/bodgit/windows v1.0.1 // indirect
	github.com/bytedance/gopkg v0.1.3 // indirect
	github.com/bytedance/sonic/loader v0.5.2 // indirect
	github.com/canonical/starlark v0.0.0-20260428155828-9a81051fac39 // indirect
	github.com/cenkalti/backoff v2.2.1+incompatible // indirect
	github.com/cenkalti/backoff/v4 v4.3.0 // indirect
	github.com/cenkalti/backoff/v5 v5.0.3 // indirect
	github.com/cespare/xxhash/v2 v2.3.0 // indirect
	github.com/charmbracelet/colorprofile v0.3.1 // indirect
	github.com/charmbracelet/lipgloss v1.1.0 // indirect
	github.com/charmbracelet/x/ansi v0.10.1 // indirect
	github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
	github.com/charmbracelet/x/term v0.2.1 // indirect
	github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect
	github.com/cloudflare/circl v1.6.3 // indirect
	github.com/cloudwego/base64x v0.1.6 // indirect
	github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 // indirect
	github.com/coreos/go-semver v0.3.1 // indirect
	github.com/coreos/go-systemd/v22 v22.6.0 // indirect
	github.com/cyphar/filepath-securejoin v0.6.1 // indirect
	github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
	github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
	github.com/dsnet/compress v0.0.2-0.20230904184137-39efe44ab707 // indirect
	github.com/dustin/go-humanize v1.0.1 // indirect
	github.com/ebitengine/purego v0.10.0 // indirect
	github.com/emicklei/go-restful/v3 v3.13.0 // indirect
	github.com/emirpasic/gods v1.18.1 // indirect
	github.com/envoyproxy/go-control-plane/envoy v1.37.0 // indirect
	github.com/envoyproxy/protoc-gen-validate v1.3.3 // indirect
	github.com/fasthttp/websocket v1.5.12 // indirect
	github.com/fatih/color v1.18.0 // indirect
	github.com/fatih/semgroup v1.2.0 // indirect
	github.com/felixge/httpsnoop v1.0.4 // indirect
	github.com/fsnotify/fsnotify v1.9.0 // indirect
	github.com/fxamacker/cbor/v2 v2.9.0 // indirect
	github.com/gitleaks/go-gitdiff v0.9.1 // indirect
	github.com/go-faster/city v1.0.1 // indirect
	github.com/go-faster/errors v0.7.1 // indirect
	github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
	github.com/go-git/go-billy/v5 v5.9.0 // indirect
	github.com/go-git/go-git/v5 v5.19.2 // indirect
	github.com/go-jose/go-jose/v4 v4.1.6 // indirect
	github.com/go-logr/logr v1.4.4 // indirect
	github.com/go-logr/stdr v1.2.2 // indirect
	github.com/go-ole/go-ole v1.3.0 // indirect
	github.com/go-openapi/analysis v0.26.2 // indirect
	github.com/go-openapi/errors v0.22.8 // indirect
	github.com/go-openapi/jsonpointer v1.0.0 // indirect
	github.com/go-openapi/jsonreference v1.0.1 // indirect
	github.com/go-openapi/loads v0.25.2 // indirect
	github.com/go-openapi/runtime v0.29.2 // indirect
	github.com/go-openapi/spec v0.22.11 // indirect
	github.com/go-openapi/strfmt v0.27.0 // indirect
	github.com/go-openapi/swag v0.29.1 // indirect
	github.com/go-openapi/swag/cmdutils v0.29.1 // indirect
	github.com/go-openapi/swag/conv v0.29.1 // indirect
	github.com/go-openapi/swag/fileutils v0.29.1 // indirect
	github.com/go-openapi/swag/jsonutils v0.29.1 // indirect
	github.com/go-openapi/swag/loading v0.29.1 // indirect
	github.com/go-openapi/swag/mangling v0.29.1 // indirect
	github.com/go-openapi/swag/netutils v0.29.1 // indirect
	github.com/go-openapi/swag/pools v0.29.1 // indirect
	github.com/go-openapi/swag/stringutils v0.29.1 // indirect
	github.com/go-openapi/swag/typeutils v0.29.1 // indirect
	github.com/go-openapi/swag/yamlutils v0.29.1 // indirect
	github.com/go-openapi/validate v0.26.5 // indirect
	github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
	github.com/goccy/go-json v0.10.5 // indirect
	github.com/gogo/protobuf v1.3.2 // indirect
	github.com/golang-jwt/jwt/v5 v5.3.1 // indirect
	github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
	github.com/golang/protobuf v1.5.4 // indirect
	github.com/google/btree v1.1.3 // indirect
	github.com/google/flatbuffers v23.5.26+incompatible // indirect
	github.com/google/gnostic-models v0.7.0 // indirect
	github.com/google/jsonschema-go v0.4.2 // indirect
	github.com/google/pprof v0.0.0-20260802141513-ef3492d7dac3 // indirect
	github.com/google/s2a-go v0.1.9 // indirect
	github.com/googleapis/enterprise-certificate-proxy v0.3.16 // indirect
	github.com/googleapis/gax-go/v2 v2.22.0 // indirect
	github.com/grandcat/zeroconf v1.0.0 // indirect
	github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 // indirect
	github.com/h2non/filetype v1.1.3 // indirect
	github.com/hashicorp/consul/api v1.34.3 // indirect
	github.com/hashicorp/errwrap v1.1.0 // indirect
	github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
	github.com/hashicorp/go-hclog v1.6.3 // indirect
	github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
	github.com/hashicorp/go-metrics v0.5.4 // indirect
	github.com/hashicorp/go-msgpack/v2 v2.1.5 // indirect
	github.com/hashicorp/go-multierror v1.1.1 // indirect
	github.com/hashicorp/go-retryablehttp v0.7.8 // indirect
	github.com/hashicorp/go-rootcerts v1.0.2 // indirect
	github.com/hashicorp/go-secure-stdlib/parseutil v0.2.0 // indirect
	github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect
	github.com/hashicorp/go-sockaddr v1.0.7 // indirect
	github.com/hashicorp/go-version v1.9.0 // indirect
	github.com/hashicorp/golang-lru v1.0.2 // indirect
	github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
	github.com/hashicorp/hcl v1.0.1-vault-7 // indirect
	github.com/hashicorp/memberlist v0.5.4 // indirect
	github.com/hashicorp/serf v0.10.1 // indirect
	github.com/hashicorp/vault/api v1.23.0 // indirect
	github.com/huandu/xstrings v1.5.0 // indirect
	github.com/jackc/pgpassfile v1.0.0 // indirect
	github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
	github.com/jackc/pgx/v5 v5.9.2 // indirect
	github.com/jackc/puddle/v2 v2.2.2 // indirect
	github.com/jaswdr/faker/v2 v2.8.0 // indirect
	github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
	github.com/jinzhu/inflection v1.0.0 // indirect
	github.com/jinzhu/now v1.1.5 // indirect
	github.com/json-iterator/go v1.1.12 // indirect
	github.com/kevinburke/ssh_config v1.2.0 // indirect
	github.com/klauspost/compress v1.20.0 // indirect
	github.com/klauspost/cpuid/v2 v2.3.0 // indirect
	github.com/klauspost/pgzip v1.2.6 // indirect
	github.com/kylelemons/godebug v1.1.0 // indirect
	github.com/linkdata/deadlock v0.5.5 // indirect
	github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
	github.com/lufia/plan9stats v0.0.0-20260330125221-c963978e514e // indirect
	github.com/magiconair/properties v1.8.10 // indirect
	github.com/mattn/go-colorable v0.1.14 // indirect
	github.com/mattn/go-isatty v0.0.24 // indirect
	github.com/mattn/go-runewidth v0.0.17 // indirect
	github.com/mattn/go-sqlite3 v1.14.32 // indirect
	github.com/maximhq/bifrost/plugins/compat v0.5.3 // indirect
	github.com/maximhq/bifrost/plugins/maxim v1.7.14 // indirect
	github.com/maximhq/bifrost/plugins/mocker v1.6.14 // indirect
	github.com/maximhq/bifrost/plugins/modelcatalogresolver v1.1.14 // indirect
	github.com/maximhq/bifrost/plugins/otel v1.6.4 // indirect
	github.com/maximhq/bifrost/plugins/prompts v1.1.14 // indirect
	github.com/maximhq/maxim-go v0.2.1 // indirect
	github.com/mholt/archives v0.1.2 // indirect
	github.com/miekg/dns v1.1.68 // indirect
	github.com/minio/minlz v1.0.0 // indirect
	github.com/minio/simdjson-go v0.4.5 // indirect
	github.com/mitchellh/copystructure v1.2.0 // indirect
	github.com/mitchellh/go-homedir v1.1.0 // indirect
	github.com/mitchellh/mapstructure v1.5.0 // indirect
	github.com/mitchellh/reflectwalk v1.0.2 // indirect
	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
	github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
	github.com/molecule-man/go-brrr v1.0.1 // indirect
	github.com/muesli/termenv v0.16.0 // indirect
	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
	github.com/nwaples/rardecode/v2 v2.2.2 // indirect
	github.com/oapi-codegen/runtime v1.1.1 // indirect
	github.com/oklog/ulid/v2 v2.1.2 // indirect
	github.com/outcaste-io/ristretto v0.2.3 // indirect
	github.com/parquet-go/bitpack v1.0.0 // indirect
	github.com/parquet-go/jsonlite v1.0.0 // indirect
	github.com/parquet-go/parquet-go v0.32.0 // indirect
	github.com/paulmach/orb v0.11.1 // indirect
	github.com/pelletier/go-toml/v2 v2.4.3 // indirect
	github.com/petermattis/goid v0.0.0-20260226131333-17d1149c6ac6 // indirect
	github.com/philhofer/fwd v1.2.0 // indirect
	github.com/philippgille/chromem-go v0.7.0 // indirect
	github.com/pierrec/lz4/v4 v4.1.22 // indirect
	github.com/pinecone-io/go-pinecone/v5 v5.3.0 // indirect
	github.com/pion/datachannel v1.6.3 // indirect
	github.com/pion/dtls/v3 v3.1.9 // indirect
	github.com/pion/ice/v4 v4.4.4 // indirect
	github.com/pion/interceptor v0.1.49 // indirect
	github.com/pion/logging v0.2.4 // indirect
	github.com/pion/mdns/v2 v2.2.1 // indirect
	github.com/pion/randutil v0.1.0 // indirect
	github.com/pion/rtcp v1.2.18 // indirect
	github.com/pion/rtp v1.10.5 // indirect
	github.com/pion/sctp v1.11.3 // indirect
	github.com/pion/sdp/v3 v3.0.20 // indirect
	github.com/pion/srtp/v3 v3.1.0 // indirect
	github.com/pion/stun/v4 v4.0.1 // indirect
	github.com/pion/transport/v5 v5.1.1 // indirect
	github.com/pion/turn/v5 v5.1.2 // indirect
	github.com/pion/webrtc/v4 v4.2.22 // indirect
	github.com/pjbgf/sha1cd v0.6.0 // indirect
	github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
	github.com/pkg/errors v0.9.1 // indirect
	github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
	github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
	github.com/prometheus/client_golang v1.23.3-0.20251103151724-a5ae20370e5e // indirect
	github.com/prometheus/client_model v0.6.2 // indirect
	github.com/prometheus/common v0.69.0 // indirect
	github.com/prometheus/procfs v0.21.1 // indirect
	github.com/puzpuzpuz/xsync/v4 v4.5.0 // indirect
	github.com/qdrant/go-client v1.16.2 // indirect
	github.com/redis/go-redis/v9 v9.17.2 // indirect
	github.com/rivo/uniseg v0.4.7 // indirect
	github.com/rs/zerolog v1.34.0 // indirect
	github.com/ryanuber/go-glob v1.0.0 // indirect
	github.com/sagikazarmark/locafero v0.7.0 // indirect
	github.com/sagikazarmark/slog-shim v0.1.0 // indirect
	github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
	github.com/savsgio/gotils v0.0.0-20250408102913-196191ec6287 // indirect
	github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 // indirect
	github.com/secure-systems-lab/go-securesystemslib v0.11.0 // indirect
	github.com/segmentio/asm v1.2.0 // indirect
	github.com/segmentio/kafka-go v0.4.51 // indirect
	github.com/sergi/go-diff v1.4.0 // indirect
	github.com/shirou/gopsutil/v4 v4.26.6 // indirect
	github.com/shopspring/decimal v1.4.0 // indirect
	github.com/skeema/knownhosts v1.3.1 // indirect
	github.com/sorairolake/lzip-go v0.3.5 // indirect
	github.com/sourcegraph/conc v0.3.0 // indirect
	github.com/spf13/afero v1.15.0 // indirect
	github.com/spf13/cast v1.10.0 // indirect
	github.com/spf13/pflag v1.0.10 // indirect
	github.com/spf13/viper v1.19.0 // indirect
	github.com/spiffe/go-spiffe/v2 v2.7.0 // indirect
	github.com/stretchr/objx v0.5.3 // indirect
	github.com/subosito/gotenv v1.6.0 // indirect
	github.com/tetratelabs/wazero v1.11.0 // indirect
	github.com/therootcompany/xz v1.0.1 // indirect
	github.com/tidwall/gjson v1.18.0 // indirect
	github.com/tidwall/match v1.1.1 // indirect
	github.com/tidwall/pretty v1.2.1 // indirect
	github.com/tidwall/sjson v1.2.5 // indirect
	github.com/tinylib/msgp v1.6.4 // indirect
	github.com/tklauser/go-sysconf v0.3.16 // indirect
	github.com/tklauser/numcpus v0.11.0 // indirect
	github.com/trailofbits/go-mutexasserts v0.0.0-20250514102930-c1f3d2e37561 // indirect
	github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
	github.com/twpayne/go-geom v1.6.1 // indirect
	github.com/ulikunitz/xz v0.5.15 // indirect
	github.com/valyala/bytebufferpool v1.0.0 // indirect
	github.com/wasilibs/go-re2 v1.9.0 // indirect
	github.com/wasilibs/wazero-helpers v0.0.0-20240620070341-3dff1577cd52 // indirect
	github.com/weaviate/weaviate v1.38.0 // indirect
	github.com/weaviate/weaviate-go-client/v5 v5.7.1 // indirect
	github.com/wlynxg/anet v0.0.5 // indirect
	github.com/x448/float16 v0.8.4 // indirect
	github.com/xanzy/ssh-agent v0.3.3 // indirect
	github.com/xdg-go/pbkdf2 v1.0.0 // indirect
	github.com/xdg-go/scram v1.1.2 // indirect
	github.com/xdg-go/stringprep v1.0.4 // indirect
	github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
	github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
	github.com/yusufpapurcu/wmi v1.2.4 // indirect
	github.com/zeebo/xxh3 v1.1.0 // indirect
	github.com/zricethezav/gitleaks/v8 v8.30.1 // indirect
	go.etcd.io/etcd/api/v3 v3.6.11 // indirect
	go.etcd.io/etcd/client/pkg/v3 v3.6.11 // indirect
	go.etcd.io/etcd/client/v3 v3.6.11 // indirect
	go.opencensus.io v0.24.0 // indirect
	go.opentelemetry.io/auto/sdk v1.2.1 // indirect
	go.opentelemetry.io/collector/component v1.61.0 // indirect
	go.opentelemetry.io/collector/featuregate v1.61.0 // indirect
	go.opentelemetry.io/collector/pdata v1.61.0 // indirect
	go.opentelemetry.io/collector/pdata/pprofile v0.155.0 // indirect
	go.opentelemetry.io/contrib/detectors/gcp v1.44.0 // indirect
	go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.67.0 // indirect
	go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 // indirect
	go.opentelemetry.io/otel v1.45.0 // indirect
	go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.44.0 // indirect
	go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.44.0 // indirect
	go.opentelemetry.io/otel/metric v1.45.0 // indirect
	go.opentelemetry.io/otel/sdk v1.45.0 // indirect
	go.opentelemetry.io/otel/sdk/metric v1.45.0 // indirect
	go.opentelemetry.io/otel/trace v1.45.0 // indirect
	go.opentelemetry.io/proto/otlp v1.11.0 // indirect
	go.uber.org/atomic v1.11.0 // indirect
	go.uber.org/mock v0.6.0 // indirect
	go.uber.org/multierr v1.11.0 // indirect
	go.uber.org/zap v1.28.0 // indirect
	go.yaml.in/yaml/v2 v2.4.4 // indirect
	go.yaml.in/yaml/v3 v3.0.5 // indirect
	go4.org v0.0.0-20230225012048-214862532bf5 // indirect
	golang.org/x/arch v0.23.0 // indirect
	golang.org/x/crypto v0.58.0 // indirect
	golang.org/x/exp v0.0.0-20260529124908-c761662dc8c9 // indirect
	golang.org/x/mod v0.41.0 // indirect
	golang.org/x/net v0.61.0 // indirect
	golang.org/x/oauth2 v0.36.0 // indirect
	golang.org/x/sys v0.49.0 // indirect
	golang.org/x/telemetry v0.0.0-20260924152758-ed294f943157 // indirect
	golang.org/x/term v0.47.0 // indirect
	golang.org/x/text v0.43.0 // indirect
	golang.org/x/time v0.15.0 // indirect
	golang.org/x/tools v0.51.0 // indirect
	golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
	google.golang.org/api v0.282.0 // indirect
	google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7 // indirect
	google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d // indirect
	google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d // indirect
	google.golang.org/grpc v1.83.2 // indirect
	google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af // indirect
	gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
	gopkg.in/inf.v0 v0.9.1 // indirect
	gopkg.in/ini.v1 v1.67.1 // indirect
	gopkg.in/warnings.v0 v0.1.2 // indirect
	gopkg.in/yaml.v3 v3.0.1 // indirect
	gorm.io/driver/clickhouse v0.7.0 // indirect
	k8s.io/api v0.36.1 // indirect
	k8s.io/apimachinery v0.36.1 // indirect
	k8s.io/client-go v0.36.1 // indirect
	k8s.io/klog/v2 v2.140.0 // indirect
	k8s.io/kube-openapi v0.0.0-20260317180543-43fb72c5454a // indirect
	k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2 // indirect
	sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
	sigs.k8s.io/randfill v1.0.0 // indirect
	sigs.k8s.io/structured-merge-diff/v6 v6.3.2 // indirect
	sigs.k8s.io/yaml v1.6.0 // indirect
)

replace github.com/maximhq/bifrost-enterprise/core => ../core

replace github.com/maximhq/bifrost-enterprise/framework => ../framework

replace github.com/maximhq/bifrost-enterprise/plugins => ../plugins
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.