Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions docs/changelogs/helm-v1.7.0.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: "v1.7.0"
description: "Helm v1.7.0 changelog - 2026-01-28"
---

<Update label="Bifrost Helm" description="v1.7.0">

## Changelog

- Previous stable release with Deployment-based architecture for all storage modes

</Update>
43 changes: 43 additions & 0 deletions docs/changelogs/helm-v2.0.0.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
title: "v2.0.0"
description: "Helm v2.0.0 changelog - 2026-01-31"
---

<Update label="Bifrost Helm" description="v2.0.0 (Breaking Change)">

## Changelog

#### StatefulSet for SQLite with Persistence

This release fixes the multi-attach volume error when running multiple replicas with SQLite storage mode.

#### What Changed

- When using `storage.mode: sqlite` with `storage.persistence.enabled: true`, Bifrost now deploys as a **StatefulSet** instead of a Deployment
- Each pod gets its own dedicated PersistentVolumeClaim (e.g., `data-bifrost-0`, `data-bifrost-1`, `data-bifrost-2`)
- A headless service is created for StatefulSet DNS resolution
- HorizontalPodAutoscaler now correctly references StatefulSet or Deployment based on storage configuration

#### Who Is Affected

- Users running SQLite mode with persistence enabled and multiple replicas
- Users upgrading existing SQLite deployments need to migrate (see below)

#### Who Is NOT Affected

- Users running PostgreSQL mode (`storage.mode: postgres`) - no changes, still uses Deployment
- Users running SQLite without persistence (`storage.persistence.enabled: false`)
- Users running SQLite with an existing PVC claim (`storage.persistence.existingClaim`)

#### Migration Guide for Existing SQLite Deployments

Since Kubernetes doesn't allow in-place conversion from Deployment to StatefulSet, you need to:

1. Back up your data (if needed)
2. Uninstall the existing release: `helm uninstall bifrost`
3. Delete the old PVC: `kubectl delete pvc bifrost-data`
4. Install with the new chart version: `helm install bifrost bifrost/bifrost --set image.tag=<latest-image>`

**Note:** For production high-availability setups, we recommend using PostgreSQL mode which scales horizontally without these concerns.

</Update>
14 changes: 14 additions & 0 deletions docs/changelogs/helm-v2.0.1.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: "v2.0.1"
description: "Helm v2.0.1 changelog - 2026-01-31"
---

<Update label="Bifrost Helm" description="v2.0.1">

## Changelog

- Added missing StatefulSet template for SQLite with persistence mode
- Added headless service for StatefulSet DNS resolution
- v2.0.0 documented StatefulSet support but the template was not included - this release fixes that

</Update>
16 changes: 16 additions & 0 deletions docs/changelogs/helm-v2.0.10.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: "v2.0.10"
description: "Helm v2.0.10 changelog - 2026-03-03"
---

<Update label="Bifrost Helm" description="v2.0.10">

## Changelog

- Added missing plugin config properties from Go implementations:
- governance: `required_headers`, `is_enterprise`
- logging: `disable_content_logging`, `logging_headers`
- otel: `headers`, `tls_ca_cert`, `insecure`
- telemetry: `custom_labels`

</Update>
12 changes: 12 additions & 0 deletions docs/changelogs/helm-v2.0.11.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: "v2.0.11"
description: "Helm v2.0.11 changelog - 2026-03-05"
---

<Update label="Bifrost Helm" description="v2.0.11">

## Changelog

- Bumped appVersion to 1.4.11

</Update>
12 changes: 12 additions & 0 deletions docs/changelogs/helm-v2.0.12.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: "v2.0.12"
description: "Helm v2.0.12 changelog - 2026-03-06"
---

<Update label="Bifrost Helm" description="v2.0.12">

## Changelog

- Fixed health probe paths to use `/health` instead of `/metrics`

</Update>
20 changes: 20 additions & 0 deletions docs/changelogs/helm-v2.0.13.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
title: "v2.0.13"
description: "Helm v2.0.13 changelog - 2026-03-11"
---

<Update label="Bifrost Helm" description="v2.0.13">

## Changelog

- Added missing client config properties: `asyncJobResultTTL`, `requiredHeaders`, `loggingHeaders`, `allowedHeaders`, `mcpAgentDepth`, `mcpToolExecutionTimeout`, `mcpCodeModeBindingLevel`, `mcpToolSyncInterval`, `hideDeletedVirtualKeysInFilters`
- Added MCP new fields: top-level `toolSyncInterval`, per-client `clientId`, `isCodeModeClient`, `toolSyncInterval`, `isPingAvailable`, `toolPricing`, and `codeModeBindingLevel` in tool manager config
- Added governance `modelConfigs` and `providers` top-level properties
- Added cluster `region` property
- Added guardrail provider `timeout` field (was missing from schema and template rendering)
- Fixed `isPingAvailable` rendering bug in `_helpers.tpl` (was using wrong key name)
- Added `is_ping_available` and `tool_pricing` to `config.schema.json` MCP client config
- Added new CI script `validate-go-config-fields.sh` for Go struct-to-schema drift detection
- Expanded all 3 existing CI validation scripts with Gap 1-8 property coverage

</Update>
15 changes: 15 additions & 0 deletions docs/changelogs/helm-v2.0.14.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
title: "v2.0.14"
description: "Helm v2.0.14 changelog - 2026-03-20"
---

<Update label="Bifrost Helm" description="v2.0.14">

## Changelog

- Added `placement` and `order` fields to custom plugin schema and template rendering
- Added plugin property completeness check to `validate-helm-schema.sh`
- Added custom plugin placement/order rendering tests to `validate-helm-templates.sh`
- Added `PluginConfig` struct validation to `validate-go-config-fields.sh`

</Update>
22 changes: 22 additions & 0 deletions docs/changelogs/helm-v2.0.15.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
title: "v2.0.15"
description: "Helm v2.0.15 changelog - 2026-04-07"
---

<Update label="Bifrost Helm" description="v2.0.15">

## Changelog

- Synced helm schema with transport `config.schema.json` — added missing properties:
- `client.mcpDisableAutoToolInject` — disable automatic MCP tool injection
- `governance.budgets[].calendar_aligned` — snap budget resets to calendar boundaries
- `governance.pricingOverrides` — scoped pricing overrides for the model catalog
- `mcp.clientConfigs[].allowedExtraHeaders` — header allowlist per MCP client
- `mcp.clientConfigs[].allowOnAllVirtualKeys` — make MCP server accessible to all virtual keys
- `mcp.toolManagerConfig.disableAutoToolInject` — disable auto tool injection at manager level
- `networkConfig.beta_header_overrides` — override Anthropic beta header support per provider
- `websocket` — full WebSocket gateway tuning (connections, pool, transcript buffer)
- Fixed SSE `connectionString` not being rendered in `_helpers.tpl` for MCP clients
- Added template rendering for all new properties in `_helpers.tpl`

</Update>
12 changes: 12 additions & 0 deletions docs/changelogs/helm-v2.0.16.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: "v2.0.16"
description: "Helm v2.0.16 changelog - 2026-04-08"
---

<Update label="Bifrost Helm" description="v2.0.16">

## Changelog

- Fixed disabled custom plugins being completely removed from rendered config.json instead of being kept with `enabled: false`

</Update>
16 changes: 16 additions & 0 deletions docs/changelogs/helm-v2.0.17.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: "v2.0.17"
description: "Helm v2.0.17 changelog - 2026-04-08"
---

<Update label="Bifrost Helm" description="v2.0.17">

## Changelog

- Added object storage support (S3/GCS) for offloading log payloads from the database
- Added `storage.logsStore.objectStorage` configuration with S3 and GCS backend support
- Added object storage credential injection from Kubernetes secrets (`existingSecret`)
- Added `object_storage` schema to `config.schema.json` under `logs_store`
- Updated deployment and stateful templates with object storage secret env vars

</Update>
14 changes: 14 additions & 0 deletions docs/changelogs/helm-v2.0.2.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: "v2.0.2"
description: "Helm v2.0.2 changelog - 2026-01-31"
---

<Update label="Bifrost Helm" description="v2.0.2">

## Changelog

- Added Qdrant vector store support with deployment, service, and PVC templates
- Added headless service template for StatefulSet DNS resolution
- Fixed gitignore pattern that was excluding template files from version control

</Update>
12 changes: 12 additions & 0 deletions docs/changelogs/helm-v2.0.5.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: "v2.0.5"
description: "Helm v2.0.5 changelog - 2026-02-13"
---

<Update label="Bifrost Helm" description="v2.0.5">

## Changelog

- Fixes config field validation parity

</Update>
12 changes: 12 additions & 0 deletions docs/changelogs/helm-v2.0.6.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: "v2.0.6"
description: "Helm v2.0.6 changelog - 2026-02-17"
---

<Update label="Bifrost Helm" description="v2.0.6">

## Changelog

- Fixes MCP client config template to convert camelCase Helm values to snake_case config format

</Update>
12 changes: 12 additions & 0 deletions docs/changelogs/helm-v2.0.7.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: "v2.0.7"
description: "Helm v2.0.7 changelog - 2026-02-17"
---

<Update label="Bifrost Helm" description="v2.0.7">

## Changelog

- Previous release

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Replace placeholder changelog text with a concrete release note.

- Previous release is too vague for a changelog entry and doesn’t communicate what changed in v2.0.7.

Suggested edit
-- Previous release
+- [Add the specific fix/feature shipped in v2.0.7]
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- Previous release
- [Add the specific fix/feature shipped in v2.0.7]
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/changelogs/helm-v2.0.7.mdx` at line 10, Replace the placeholder line "-
Previous release" in the helm v2.0.7 changelog with a concrete release note
summarizing key changes for v2.0.7: mention the main features/fixes (e.g., bug
fixes, API changes, performance improvements or security patches), include
concise bullet points or a short paragraph, and add any relevant upgrade notes
or breaking changes under the v2.0.7 heading so readers understand what changed
and if any action is required.


</Update>
19 changes: 19 additions & 0 deletions docs/changelogs/helm-v2.0.8.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
title: "v2.0.8"
description: "Helm v2.0.8 changelog - 2026-02-19"
---

<Update label="Bifrost Helm" description="v2.0.8">

## Changelog

- Added comprehensive config field coverage for all `config.schema.json` fields
- Added Pinecone vector store support (external only) with secret injection
- Added governance routing rules template support
- Added OTEL metrics fields (metrics_enabled, metrics_endpoint, metrics_push_interval)
- Added advanced Redis connection pool fields (pool_size, timeouts, idle conns, etc.)
- Added Weaviate timeout and className fields
- Expanded values.yaml with commented examples for all provider types (Azure, Vertex, Bedrock), network config, concurrency, proxy config, and governance entities
- Added helm config field validation CI test (246 assertions covering all config.schema.json fields)

</Update>
12 changes: 12 additions & 0 deletions docs/changelogs/helm-v2.0.9.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: "v2.0.9"
description: "Helm v2.0.9 changelog - 2026-02-26"
---

<Update label="Bifrost Helm" description="v2.0.9">

## Changelog

- Bumped appVersion to 1.4.8

</Update>
17 changes: 17 additions & 0 deletions docs/changelogs/helm-v2.1.0-prerelease2.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: "v2.1.0-prerelease2"
description: "Helm v2.1.0-prerelease2 changelog - 2026-04-15"
---

<Update label="Bifrost Helm" description="v2.1.0-prerelease2 (prerelease)">

## Changelog

- Synced helm `values.schema.json` with transport `config.schema.json` — fixed virtual key and budget drift:
- Removed `required: [mcp_client_id]` constraint on `virtualKeys[].mcp_configs[]` items — canonical schema accepts either `mcp_client_id` (DB form) or `mcp_client_name` (config-file form, resolved to ID at startup)
- Added `mcp_client_name` as an allowed property on `virtualKeys[].mcp_configs[]` items
- Added `calendar_aligned` (boolean) on `virtualKeys[]` — field now lives on the virtual key, applies uniformly to all budgets under it
- Removed stale `budget_id` from `virtualKeys[]` — `TableVirtualKey` has no `BudgetID`; budgets link via foreign key from the budget table
- Removed stale `calendar_aligned` from `budgets[]` — moved to virtual key level

</Update>
13 changes: 13 additions & 0 deletions docs/changelogs/helm-v2.1.1.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: "v2.1.1"
description: "Helm v2.1.1 changelog - 2026-04-15"
---

<Update label="Bifrost Helm" description="v2.1.1">

## Changelog

- Made `bifrost.governance.virtualKeys[].value` optional — template no longer fails when the field is omitted, allowing the backend to auto-generate the virtual key value
- When `value` is absent, the rendered `config.json` omits the field entirely (consistent with other optional VK fields)

</Update>
16 changes: 16 additions & 0 deletions docs/changelogs/helm-v2.1.10.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: "v2.1.10"
description: "Helm v2.1.10 changelog - 2026-04-29"
---

<Update label="Bifrost Helm" description="v2.1.10">

## Changelog

- Added `bifrost.cluster.grpc` block for the cluster gRPC counter-sync transport (enterprise):
- New values: `bifrost.cluster.grpc.port` (default `10102`) and `bifrost.cluster.grpc.dialTimeoutSeconds` (default `5`).
- Rendered into `cluster_config.grpc` (`port`, `dial_timeout_seconds`) by `templates/_helpers.tpl`.
- StatefulSet exposes the port as a named `grpc` container port; `service-headless` exposes it as a named service port so peers can dial each other.
- Both port additions are guarded by `if .Values.bifrost.cluster.grpc` so values overrides that omit the block render cleanly.

</Update>
25 changes: 25 additions & 0 deletions docs/changelogs/helm-v2.1.11.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: "v2.1.11"
description: "Helm v2.1.11 changelog - 2026-04-29"
---

<Update label="Bifrost Helm" description="v2.1.11">

## Changelog

- Added `description` and `default` fields to numerous properties that previously had neither, including `initialPoolSize`, `disableDbPingsInHealth`, `logRetentionDays`, `asyncJobResultTTL`, `mcpAgentDepth`, `mcpToolExecutionTimeout`, `hideDeletedVirtualKeysInFilters`, `mcpDisableAutoToolInject`, and MCP `toolManagerConfig` fields
- Added `additionalProperties: false` to multiple objects (`bifrost.config`, `bifrost.pricing`, `proxyConfig`, `concurrencyConfig`, `providerConfig`, `credentialsSecret`, and auth provider configs) to reject unknown keys at validation time
- Added three new `bifrost.client` fields:
- `allowPerRequestContentStorageOverride` — controls whether per-request headers can override content logging behavior
- `allowPerRequestRawOverride` — controls whether per-request headers can override raw provider request/response passthrough
- `mcpExternalBaseUrl` — public base URL for OAuth callbacks and discovery metadata behind a reverse proxy, supporting both string and env-var object forms
- Added two new `bifrost.cluster.discovery` fields:
- `bindPort` — port to bind for cluster communication
- `dialTimeout` — timeout for discovery dial operations as a Go duration string
- Changed `allowedOrigins` items from `oneOf` to `anyOf` and removed the redundant `not: { const: "*" }` constraint on the URI branch
- Tightened the env-var pattern to require a valid identifier start character (`[A-Za-z_]`) for proxyConfig.url
- Expanded `toolSyncInterval` to accept either a Go duration string (with a stricter regex) or a legacy integer (nanoseconds) for backward compatibility.
- Marked `enforceGovernanceHeader` as deprecated in its description
- Added `mdnsService` description for local network discovery

</Update>
12 changes: 12 additions & 0 deletions docs/changelogs/helm-v2.1.12.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: "v2.1.12"
description: "Helm v2.1.12 changelog - 2026-04-30"
---

<Update label="Bifrost Helm" description="v2.1.12">

## Changelog

- Added Helm support for `storage.logsStore.objectStorageExcludeFields` and render path to `logs_store.object_storage_exclude_fields` in generated config.

</Update>
13 changes: 13 additions & 0 deletions docs/changelogs/helm-v2.1.13.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: "v2.1.13"
description: "Helm v2.1.13 changelog - 2026-05-02"
---

<Update label="Bifrost Helm" description="v2.1.13">

## Changelog

- Surfaced `bifrost.client.enforceAuthOnInference` in `values.yaml` as a commented default with usage notes. The field was already wired in `_helpers.tpl` to render to `client.enforce_auth_on_inference` and declared in `values.schema.json`; this change makes the knob discoverable without altering default rendered config.
- Marked `bifrost.client.enforceGovernanceHeader` as deprecated in `values.yaml` (use `enforceAuthOnInference` instead). Schema description was already deprecated in 2.1.11.

</Update>
Loading
Loading