Skip to content

feat: add audit log object storage (S3/GCS), calendar_aligned fields, force_single_region, and allowOnAllVirtualKeys to Helm chart v2.1.28 - #5077

Merged
akshaydeo merged 2 commits into
devfrom
07-10-feat_new_calendar_alignment_additions
Jul 10, 2026
Merged

akshaydeo merged 2 commits into
devfrom
07-10-feat_new_calendar_alignment_additions

Conversation

@BearTS

@BearTS BearTS commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds Helm chart v2.1.28 with several new configuration fields for audit log object storage archival, Vertex AI single-region enforcement, calendar-aligned budget resets, and MCP client key access controls.

Changes

  • Audit log object storage (bifrost.auditLogs.objectStorage): New field to archive audit events to S3 or GCS. Supports type, bucket, prefix, compress, and full S3 credential fields (region, endpoint, accessKeyId, secretAccessKey, sessionToken, roleArn, forcePathStyle) as well as GCS fields (projectId, credentialsJson). Renders into audit_logs.object_storage in the generated config.
  • force_single_region on Vertex key config: When true, skips automatic promotion of multi-region-only models to a multi-region endpoint. Intended for provisioned throughput use cases. Renders into vertex_key_config.force_single_region.
  • calendar_aligned on access profiles: New top-level field on bifrost.accessProfiles[*] that snaps all budget and rate-limit reset windows to calendar boundaries for the profile.
  • calendar_aligned on budgets: Added to bifrost.accessProfiles[*].budgets[*] and bifrost.accessProfiles[*].provider_configs[*].budgets[*]. Previously blocked by additionalProperties: false in the schema; now matches parity with governance.budgets[*].calendar_aligned.
  • calendar_aligned rendering for virtual keys: Field was accepted by schema but not emitted into the rendered config. Now correctly outputs virtual_keys[*].calendar_aligned.
  • allowOnAllVirtualKeys on MCP client configs: Field was already wired in the template but undocumented. Now visible in values.yaml with a description. Renders into mcp.client_configs[*].allow_on_all_virtual_keys.

Type of change

  • Bug fix
  • Feature
  • Refactor
  • Documentation
  • Chore/CI

Affected areas

  • Core (Go)
  • Transports (HTTP)
  • Providers/Integrations
  • Plugins
  • UI (React)
  • Docs

How to test

Validate the Helm template rendering with the new fields:

# Render with object storage enabled (S3)
helm template bifrost ./helm-charts/bifrost \
  --set bifrost.auditLogs.objectStorage.type=s3 \
  --set bifrost.auditLogs.objectStorage.bucket=my-bucket \
  --set bifrost.auditLogs.objectStorage.region=us-east-1

# Verify calendar_aligned renders for virtual keys
helm template bifrost ./helm-charts/bifrost \
  --set 'bifrost.governance.virtualKeys[0].name=test-key' \
  --set 'bifrost.governance.virtualKeys[0].calendar_aligned=true'

# Verify force_single_region renders for Vertex keys
helm template bifrost ./helm-charts/bifrost \
  --set 'bifrost.providers.vertex.keys[0].vertex_key_config.force_single_region=true'

Confirm that audit_logs.object_storage, virtual_keys[*].calendar_aligned, and vertex_key_config.force_single_region appear correctly in the rendered config.json.

Breaking changes

  • Yes
  • No

Security considerations

The objectStorage configuration accepts sensitive credential fields (accessKeyId, secretAccessKey, sessionToken, roleArn, credentialsJson). These should be provided via Kubernetes secrets or environment variable references rather than plain values in values.yaml to avoid exposing credentials in version control.

Checklist

  • I read docs/contributing/README.md and followed the guidelines
  • I added/updated tests where appropriate
  • I updated documentation where needed
  • I verified builds succeed (Go and UI)
  • I verified the CI pipeline passes locally if applicable

@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Helm schemas, examples, and templates now support audit log object storage, calendar-aligned budgets, Vertex regional settings, and related MCP configuration documentation. Changelog content and documentation navigation were updated for Helm v2.1.28.

Changes

Helm configuration updates

Layer / File(s) Summary
Configuration schemas and examples
helm-charts/bifrost/values.schema.json, helm-charts/bifrost/values.yaml
Adds validation and commented examples for audit log S3/GCS storage, calendar_aligned budget fields, and Vertex force_single_region.
Rendered configuration support
helm-charts/bifrost/templates/_helpers.tpl
Renders calendar_aligned on governance virtual keys and builds audit_logs.object_storage with S3/GCS-specific fields.
Changelog documentation
docs/changelogs/helm-v2.1.28.mdx, helm-charts/bifrost/README.md, docs/docs.json
Documents the new Helm configuration fields and adds the v2.1.28 changelog to navigation.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • maximhq/bifrost#4991: Adds related runtime support for audit log archival configuration using S3/GCS fields.

Suggested reviewers: danpiths, roroghost17, TejasGhatte, akshaydeo

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR does not implement Files API support or POST /v1/files for [#123]; it only updates Helm chart configuration and docs. Add the Files API implementation for provider uploads, including POST /v1/files support for OpenAI/Anthropic and RAG/fine-tuning use cases.
Out of Scope Changes check ⚠️ Warning All changed files are Helm chart/docs updates and are unrelated to the linked Files API support request in [#123]. Remove or split the Helm chart/doc changes into a separate PR and keep this one focused on Files API support.
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title check ✅ Passed The title clearly summarizes the main Helm chart changes and matches the changeset.
Description check ✅ Passed The description covers the required template sections well, with only minor gaps like related issues and screenshots.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 07-10-feat_new_calendar_alignment_additions

Comment @coderabbitai help to get the list of available commands.

@BearTS BearTS changed the title feat: new calendar alignment additions feat: add audit log object storage (S3/GCS), calendar_aligned fields, force_single_region, and allowOnAllVirtualKeys to Helm chart v2.1.28 Jul 9, 2026
@BearTS
BearTS marked this pull request as ready for review July 9, 2026 21:17
@BearTS
BearTS requested a review from a team as a code owner July 9, 2026 21:17
@greptile-apps

greptile-apps Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.

Important Files Changed

Filename Overview
helm-charts/bifrost/templates/_helpers.tpl Adds rendering for virtual-key calendar alignment and audit log object storage.
helm-charts/bifrost/values.schema.json Adds schema entries for audit object storage, calendar alignment, and Vertex single-region settings.
helm-charts/bifrost/values.yaml Documents the new chart values and examples.
docs/changelogs/helm-v2.1.28.mdx Adds the Helm v2.1.28 changelog page.
docs/docs.json Adds the new Helm changelog page to navigation.
helm-charts/bifrost/README.md Updates the chart changelog with the new fields.

Reviews (3): Last reviewed commit: "feat: new calendar alignment additions" | Re-trigger Greptile

Comment thread helm-charts/bifrost/values.schema.json
Comment thread helm-charts/bifrost/values.schema.json
Comment thread helm-charts/bifrost/values.schema.json

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 2

🤖 Prompt for all review comments with 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.

Inline comments:
In `@docs/changelogs/helm-v2.1.28.mdx`:
- Line 10: The changelog entry for bifrost.auditLogs.objectStorage is
overstating compression support by implying all archived batches are gzipped;
update the description so gzip is clearly controlled by the compress option and
only applies when that flag is enabled. Keep the rest of the field list intact,
and make sure the wording matches the behavior in the Helm helper and the
audit_logs.object_storage rendering.

In `@helm-charts/bifrost/values.yaml`:
- Around line 1070-1077: Clarify the object storage archival comments in
values.yaml so they match the schema semantics: the audit event batches should
be described as JSONL by default, with gzip compression and the .gz suffix only
applied when objectStorage.compress is true. Update the nearby objectStorage
example/comments around the audit-logs configuration to reflect this conditional
behavior and keep the wording aligned with the compress field.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 52b53b3b-117b-466b-a9e3-b0436f4129fd

📥 Commits

Reviewing files that changed from the base of the PR and between 3fbd9a4 and e1690e5.

📒 Files selected for processing (6)
  • docs/changelogs/helm-v2.1.28.mdx
  • docs/docs.json
  • helm-charts/bifrost/README.md
  • helm-charts/bifrost/templates/_helpers.tpl
  • helm-charts/bifrost/values.schema.json
  • helm-charts/bifrost/values.yaml

Comment thread docs/changelogs/helm-v2.1.28.mdx Outdated
Comment thread helm-charts/bifrost/values.yaml
@BearTS
BearTS changed the base branch from dev to graphite-base/5077 July 9, 2026 21:45
@BearTS
BearTS force-pushed the 07-10-feat_new_calendar_alignment_additions branch from e1690e5 to db41911 Compare July 9, 2026 21:45
@BearTS
BearTS changed the base branch from graphite-base/5077 to 07-10-adds_alerting_schema_to_config.schema.json July 9, 2026 21:45
@BearTS
BearTS force-pushed the 07-10-feat_new_calendar_alignment_additions branch from db41911 to 4bf0254 Compare July 9, 2026 21:52
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 9, 2026

akshaydeo commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Merge activity

  • Jul 10, 12:04 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Jul 10, 12:05 PM UTC: @akshaydeo merged this pull request with Graphite.

@akshaydeo
akshaydeo changed the base branch from 07-10-adds_alerting_schema_to_config.schema.json to graphite-base/5077 July 10, 2026 12:04
@akshaydeo
akshaydeo changed the base branch from graphite-base/5077 to dev July 10, 2026 12:05
@akshaydeo
akshaydeo dismissed coderabbitai[bot]’s stale review July 10, 2026 12:05

The base branch was changed.

@akshaydeo
akshaydeo merged commit abed892 into dev Jul 10, 2026
10 checks passed
@akshaydeo
akshaydeo deleted the 07-10-feat_new_calendar_alignment_additions branch July 10, 2026 12:05
akshaydeo pushed a commit that referenced this pull request Jul 14, 2026
…s, `force_single_region`, and `allowOnAllVirtualKeys` to Helm chart v2.1.28 (#5077)

## Summary

Adds Helm chart v2.1.28 with several new configuration fields for audit log object storage archival, Vertex AI single-region enforcement, calendar-aligned budget resets, and MCP client key access controls.

## Changes

- **Audit log object storage (`bifrost.auditLogs.objectStorage`)**: New field to archive audit events to S3 or GCS. Supports `type`, `bucket`, `prefix`, `compress`, and full S3 credential fields (`region`, `endpoint`, `accessKeyId`, `secretAccessKey`, `sessionToken`, `roleArn`, `forcePathStyle`) as well as GCS fields (`projectId`, `credentialsJson`). Renders into `audit_logs.object_storage` in the generated config.
- **`force_single_region` on Vertex key config**: When `true`, skips automatic promotion of multi-region-only models to a multi-region endpoint. Intended for provisioned throughput use cases. Renders into `vertex_key_config.force_single_region`.
- **`calendar_aligned` on access profiles**: New top-level field on `bifrost.accessProfiles[*]` that snaps all budget and rate-limit reset windows to calendar boundaries for the profile.
- **`calendar_aligned` on budgets**: Added to `bifrost.accessProfiles[*].budgets[*]` and `bifrost.accessProfiles[*].provider_configs[*].budgets[*]`. Previously blocked by `additionalProperties: false` in the schema; now matches parity with `governance.budgets[*].calendar_aligned`.
- **`calendar_aligned` rendering for virtual keys**: Field was accepted by schema but not emitted into the rendered config. Now correctly outputs `virtual_keys[*].calendar_aligned`.
- **`allowOnAllVirtualKeys` on MCP client configs**: Field was already wired in the template but undocumented. Now visible in `values.yaml` with a description. Renders into `mcp.client_configs[*].allow_on_all_virtual_keys`.

## Type of change

- [ ] Bug fix
- [x] Feature
- [ ] Refactor
- [x] Documentation
- [ ] Chore/CI

## Affected areas

- [ ] Core (Go)
- [ ] Transports (HTTP)
- [x] Providers/Integrations
- [ ] Plugins
- [ ] UI (React)
- [x] Docs

## How to test

Validate the Helm template rendering with the new fields:

```sh
# Render with object storage enabled (S3)
helm template bifrost ./helm-charts/bifrost \
  --set bifrost.auditLogs.objectStorage.type=s3 \
  --set bifrost.auditLogs.objectStorage.bucket=my-bucket \
  --set bifrost.auditLogs.objectStorage.region=us-east-1

# Verify calendar_aligned renders for virtual keys
helm template bifrost ./helm-charts/bifrost \
  --set 'bifrost.governance.virtualKeys[0].name=test-key' \
  --set 'bifrost.governance.virtualKeys[0].calendar_aligned=true'

# Verify force_single_region renders for Vertex keys
helm template bifrost ./helm-charts/bifrost \
  --set 'bifrost.providers.vertex.keys[0].vertex_key_config.force_single_region=true'
```

Confirm that `audit_logs.object_storage`, `virtual_keys[*].calendar_aligned`, and `vertex_key_config.force_single_region` appear correctly in the rendered `config.json`.

## Breaking changes

- [ ] Yes
- [x] No

## Security considerations

The `objectStorage` configuration accepts sensitive credential fields (`accessKeyId`, `secretAccessKey`, `sessionToken`, `roleArn`, `credentialsJson`). These should be provided via Kubernetes secrets or environment variable references rather than plain values in `values.yaml` to avoid exposing credentials in version control.

## Checklist

- [ ] I read `docs/contributing/README.md` and followed the guidelines
- [ ] I added/updated tests where appropriate
- [x] I updated documentation where needed
- [ ] I verified builds succeed (Go and UI)
- [ ] I verified the CI pipeline passes locally if applicable
akhsaul pushed a commit to akhsaul/bifrost that referenced this pull request Aug 27, 2026
…s, `force_single_region`, and `allowOnAllVirtualKeys` to Helm chart v2.1.28 (maximhq#5077)

## Summary

Adds Helm chart v2.1.28 with several new configuration fields for audit log object storage archival, Vertex AI single-region enforcement, calendar-aligned budget resets, and MCP client key access controls.

## Changes

- **Audit log object storage (`bifrost.auditLogs.objectStorage`)**: New field to archive audit events to S3 or GCS. Supports `type`, `bucket`, `prefix`, `compress`, and full S3 credential fields (`region`, `endpoint`, `accessKeyId`, `secretAccessKey`, `sessionToken`, `roleArn`, `forcePathStyle`) as well as GCS fields (`projectId`, `credentialsJson`). Renders into `audit_logs.object_storage` in the generated config.
- **`force_single_region` on Vertex key config**: When `true`, skips automatic promotion of multi-region-only models to a multi-region endpoint. Intended for provisioned throughput use cases. Renders into `vertex_key_config.force_single_region`.
- **`calendar_aligned` on access profiles**: New top-level field on `bifrost.accessProfiles[*]` that snaps all budget and rate-limit reset windows to calendar boundaries for the profile.
- **`calendar_aligned` on budgets**: Added to `bifrost.accessProfiles[*].budgets[*]` and `bifrost.accessProfiles[*].provider_configs[*].budgets[*]`. Previously blocked by `additionalProperties: false` in the schema; now matches parity with `governance.budgets[*].calendar_aligned`.
- **`calendar_aligned` rendering for virtual keys**: Field was accepted by schema but not emitted into the rendered config. Now correctly outputs `virtual_keys[*].calendar_aligned`.
- **`allowOnAllVirtualKeys` on MCP client configs**: Field was already wired in the template but undocumented. Now visible in `values.yaml` with a description. Renders into `mcp.client_configs[*].allow_on_all_virtual_keys`.

## Type of change

- [ ] Bug fix
- [x] Feature
- [ ] Refactor
- [x] Documentation
- [ ] Chore/CI

## Affected areas

- [ ] Core (Go)
- [ ] Transports (HTTP)
- [x] Providers/Integrations
- [ ] Plugins
- [ ] UI (React)
- [x] Docs

## How to test

Validate the Helm template rendering with the new fields:

```sh
# Render with object storage enabled (S3)
helm template bifrost ./helm-charts/bifrost \
  --set bifrost.auditLogs.objectStorage.type=s3 \
  --set bifrost.auditLogs.objectStorage.bucket=my-bucket \
  --set bifrost.auditLogs.objectStorage.region=us-east-1

# Verify calendar_aligned renders for virtual keys
helm template bifrost ./helm-charts/bifrost \
  --set 'bifrost.governance.virtualKeys[0].name=test-key' \
  --set 'bifrost.governance.virtualKeys[0].calendar_aligned=true'

# Verify force_single_region renders for Vertex keys
helm template bifrost ./helm-charts/bifrost \
  --set 'bifrost.providers.vertex.keys[0].vertex_key_config.force_single_region=true'
```

Confirm that `audit_logs.object_storage`, `virtual_keys[*].calendar_aligned`, and `vertex_key_config.force_single_region` appear correctly in the rendered `config.json`.

## Breaking changes

- [ ] Yes
- [x] No

## Security considerations

The `objectStorage` configuration accepts sensitive credential fields (`accessKeyId`, `secretAccessKey`, `sessionToken`, `roleArn`, `credentialsJson`). These should be provided via Kubernetes secrets or environment variable references rather than plain values in `values.yaml` to avoid exposing credentials in version control.

## Checklist

- [ ] I read `docs/contributing/README.md` and followed the guidelines
- [ ] I added/updated tests where appropriate
- [x] I updated documentation where needed
- [ ] I verified builds succeed (Go and UI)
- [ ] I verified the CI pipeline passes locally if applicable
occcat pushed a commit to occcat/bifrost that referenced this pull request Sep 2, 2026
…s, `force_single_region`, and `allowOnAllVirtualKeys` to Helm chart v2.1.28 (maximhq#5077)

## Summary

Adds Helm chart v2.1.28 with several new configuration fields for audit log object storage archival, Vertex AI single-region enforcement, calendar-aligned budget resets, and MCP client key access controls.

## Changes

- **Audit log object storage (`bifrost.auditLogs.objectStorage`)**: New field to archive audit events to S3 or GCS. Supports `type`, `bucket`, `prefix`, `compress`, and full S3 credential fields (`region`, `endpoint`, `accessKeyId`, `secretAccessKey`, `sessionToken`, `roleArn`, `forcePathStyle`) as well as GCS fields (`projectId`, `credentialsJson`). Renders into `audit_logs.object_storage` in the generated config.
- **`force_single_region` on Vertex key config**: When `true`, skips automatic promotion of multi-region-only models to a multi-region endpoint. Intended for provisioned throughput use cases. Renders into `vertex_key_config.force_single_region`.
- **`calendar_aligned` on access profiles**: New top-level field on `bifrost.accessProfiles[*]` that snaps all budget and rate-limit reset windows to calendar boundaries for the profile.
- **`calendar_aligned` on budgets**: Added to `bifrost.accessProfiles[*].budgets[*]` and `bifrost.accessProfiles[*].provider_configs[*].budgets[*]`. Previously blocked by `additionalProperties: false` in the schema; now matches parity with `governance.budgets[*].calendar_aligned`.
- **`calendar_aligned` rendering for virtual keys**: Field was accepted by schema but not emitted into the rendered config. Now correctly outputs `virtual_keys[*].calendar_aligned`.
- **`allowOnAllVirtualKeys` on MCP client configs**: Field was already wired in the template but undocumented. Now visible in `values.yaml` with a description. Renders into `mcp.client_configs[*].allow_on_all_virtual_keys`.

## Type of change

- [ ] Bug fix
- [x] Feature
- [ ] Refactor
- [x] Documentation
- [ ] Chore/CI

## Affected areas

- [ ] Core (Go)
- [ ] Transports (HTTP)
- [x] Providers/Integrations
- [ ] Plugins
- [ ] UI (React)
- [x] Docs

## How to test

Validate the Helm template rendering with the new fields:

```sh
# Render with object storage enabled (S3)
helm template bifrost ./helm-charts/bifrost \
  --set bifrost.auditLogs.objectStorage.type=s3 \
  --set bifrost.auditLogs.objectStorage.bucket=my-bucket \
  --set bifrost.auditLogs.objectStorage.region=us-east-1

# Verify calendar_aligned renders for virtual keys
helm template bifrost ./helm-charts/bifrost \
  --set 'bifrost.governance.virtualKeys[0].name=test-key' \
  --set 'bifrost.governance.virtualKeys[0].calendar_aligned=true'

# Verify force_single_region renders for Vertex keys
helm template bifrost ./helm-charts/bifrost \
  --set 'bifrost.providers.vertex.keys[0].vertex_key_config.force_single_region=true'
```

Confirm that `audit_logs.object_storage`, `virtual_keys[*].calendar_aligned`, and `vertex_key_config.force_single_region` appear correctly in the rendered `config.json`.

## Breaking changes

- [ ] Yes
- [x] No

## Security considerations

The `objectStorage` configuration accepts sensitive credential fields (`accessKeyId`, `secretAccessKey`, `sessionToken`, `roleArn`, `credentialsJson`). These should be provided via Kubernetes secrets or environment variable references rather than plain values in `values.yaml` to avoid exposing credentials in version control.

## Checklist

- [ ] I read `docs/contributing/README.md` and followed the guidelines
- [ ] I added/updated tests where appropriate
- [x] I updated documentation where needed
- [ ] I verified builds succeed (Go and UI)
- [ ] I verified the CI pipeline passes locally if applicable
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants