feat: add skillsRegistry, allowDirectKeys, mcpExternalClientUrl, blacklisted_models, allow_private_network, and deployment strategy to Bifrost Helm chart - #4473
Conversation
📝 WalkthroughWalkthroughThe Bifrost Helm chart is extended with four additive changes: a configurable Kubernetes Deployment ChangesBifrost Helm Chart Config Extensions
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
skillsRegistry, allowDirectKeys, mcpExternalClientUrl, blacklisted_models, allow_private_network, and deployment strategy to Bifrost Helm chart
There was a problem hiding this comment.
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 `@helm-charts/bifrost/values.schema.json`:
- Around line 3086-3094: The url and dataurl fields in the skillsRegistry file
sources schema are currently unconstrained string types, allowing malformed
inputs to pass validation and fail later during reconciliation. Add format
constraints to these fields (url and dataurl should use "format": "uri" to
validate they are proper URIs) wherever they appear in the skillsRegistry
configuration schema to catch invalid inputs at validation time rather than
runtime.
- Around line 542-545: The mcpExternalClientUrl field in the schema currently
accepts any string without validating that it conforms to URI format. Since this
field is used as a public base URL for OAuth redirect construction, add URI
format validation to the field definition. Add a "format" property set to "uri"
to the mcpExternalClientUrl object definition to ensure only valid URIs are
accepted and fail fast on invalid configuration values.
🪄 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: a1e1992a-1df3-4fca-a5ae-125b7ff422c5
📒 Files selected for processing (4)
helm-charts/bifrost/templates/_helpers.tplhelm-charts/bifrost/templates/deployment.yamlhelm-charts/bifrost/values.schema.jsonhelm-charts/bifrost/values.yaml
Merge activity
|
Confidence Score: 3/5The Helm chart update needs attention before merge because access-profile values cannot express provider model deny-lists through the strict schema. The changes are scoped to Helm chart templates and schema, but the schema omission blocks a newly supported configuration path for Helm-managed access profiles. helm-charts/bifrost/values.schema.json
What T-Rex did
|

Summary
Extends the Bifrost Helm chart with several new configuration surface areas: a declarative Skills Registry, two new client-level options (
allowDirectKeysandmcpExternalClientUrl), ablacklisted_modelsfield for provider configs,allow_private_networksupport in network configs, and a configurable Deployment update strategy.Changes
strategyfield tovalues.yamlanddeployment.yamlso operators can override the Kubernetes Deployment rollout strategy (e.g. surge-only rollouts for HA gateway deployments).bifrost.client.allowDirectKeysto permit callers to bypass the registered key pool viax-bf-direct-key+Authorizationheader, mapping toclient.allow_direct_keys.bifrost.client.mcpExternalClientUrlto set the public base URL Bifrost uses asredirect_uriwhen acting as an OAuth client to upstream MCP servers, mapping toclient.mcp_external_client_url.allow_private_networkto providernetwork_confighandling in_helpers.tpl, usinghasKeyto allow explicitfalsevalues to be set.blacklisted_modelsto the provider config schema, allowing specific models to be blocked even when matched byallowed_models(use["*"]to block all).bifrost.skillsRegistryas a declarative Skills Repository block rendered verbatim asskills_registryinconfig.json, reconciled at startup when enabled. Supports skill definitions with name, description, version, markdown body, optional metadata, and file attachments withtext,url, ordataurlsource types.values.schema.jsonwith full JSON Schema definitions and descriptions for all new fields.Type of change
Affected areas
How to test
New configuration fields:
strategyspec.strategybifrost.client.allowDirectKeysx-bf-direct-keyheaderbifrost.client.mcpExternalClientUrlredirect_urifor MCP OAuth flowsbifrost.skillsRegistrynetwork_config.allow_private_networkblacklisted_modelsallowed_modelsBreaking changes
Related issues
Security considerations
allowDirectKeyspermits callers to supply raw provider keys directly via theAuthorizationheader, bypassing the managed key pool. This should only be enabled in trusted environments where callers are already authenticated and authorized, as it exposes provider credentials to the request path.Checklist
docs/contributing/README.mdand followed the guidelines