Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
735f72b
fix: private network toggle in custom provider form
Jun 8, 2026
fed162e
fix: private network toggle in custom provider form (#4160)
akshaydeo Jun 9, 2026
030f8d3
feat: add `PreRequestHook` to `LLMPlugin` interface for once-per-requ…
Pratham-Mishra04 Jun 9, 2026
27b1da5
refactor: migrate governance routing from `HTTPTransportPreHook` to `…
Pratham-Mishra04 Jun 9, 2026
5282def
refactor: extract provider resolution into `modelcatalogresolver` Pre…
Pratham-Mishra04 Jun 9, 2026
88ac570
docs: add `PreRequestHook` routing phase to plugin lifecycle and sequ…
Pratham-Mishra04 Jun 9, 2026
1799a3d
feat: add routing allowlist enforcement via `BifrostContextKeyRouting…
Pratham-Mishra04 Jun 9, 2026
4bddf40
refactor: promote `KeyAliases` value type from `string` to `AliasConf…
Pratham-Mishra04 Jun 9, 2026
84634a9
feat: add per-alias Azure endpoint, API version, and Anthropic versio…
Pratham-Mishra04 Jun 9, 2026
de4b699
feat: add alias-level region/ARN overrides and context-aware model fa…
Pratham-Mishra04 Jun 9, 2026
7f2150f
feat: add per-alias Vertex project/region overrides and context-aware…
Pratham-Mishra04 Jun 9, 2026
6d6f96c
feat: add per-alias `ReplicateAliasCfg.UseDeploymentsEndpoint` overri…
Pratham-Mishra04 Jun 9, 2026
f2444cf
feat: replace flat aliases table with rich `DeploymentsTable` support…
Pratham-Mishra04 Jun 9, 2026
f2a448e
feat: add `RoutingInfo` to response/error extra fields with fallback …
Pratham-Mishra04 Jun 9, 2026
076263d
refactor: replace `resolvePricing` flat args with `RoutingInfo` and a…
Pratham-Mishra04 Jun 9, 2026
bf6cd1d
docs: expand alias object schema, `routing_info` response shape, and …
Pratham-Mishra04 Jun 9, 2026
83e4180
feat: add `keyconfig.Store` for per-key config aggregation with allow…
Pratham-Mishra04 Jun 9, 2026
7ee0920
feat: add `live` model catalog cache store with filtered/unfiltered e…
Pratham-Mishra04 Jun 9, 2026
d923cda
feat: adds datasheet store to modelcatalog (#4191)
Pratham-Mishra04 Jun 9, 2026
aa4a44c
feat: scope `ListModels` to single key when `KeyID` is set, add `filt…
Pratham-Mishra04 Jun 9, 2026
c168fed
refactor: replace aggregated model discovery shims with per-key live …
Pratham-Mishra04 Jun 9, 2026
e4446c5
feat: add `core` routing engine audit trail for retry and fallback tr…
Pratham-Mishra04 Jun 9, 2026
23a767c
feat: add adaptive routing settings sub-route with sidebar nav and en…
Pratham-Mishra04 Jun 9, 2026
37020bf
docs: overhaul semantic caching page with direct/semantic mode split,…
Pratham-Mishra04 Jun 9, 2026
f19dd63
feat: tag MCP health check requests with `BifrostContextKeyMCPHealthC…
Pratham-Mishra04 Jun 9, 2026
4730967
[StepSecurity] Apply security best practices (#4209)
stepsecurity-app[bot] Jun 9, 2026
371e553
feat: adds plugin span filtering for multiple connectors (#4199)
roroghost17 Jun 9, 2026
fc02026
feat: adds plugin_span_filters to config json and helm charts (#4201)
roroghost17 Jun 9, 2026
35bc0f7
docs: updates dd & otel docs for plugin filtering (#4204)
roroghost17 Jun 9, 2026
5036ae3
fix: gemini parts in tool response (#4202)
TejasGhatte Jun 9, 2026
f48e5ea
docs: direct api key
Jun 9, 2026
5e27c97
fix: preserve cache_control blocks in open router chat request
Jun 9, 2026
0608c39
feat: vertex files api (#4151)
TejasGhatte Jun 9, 2026
63851b8
feat: vertex batches api (#4152)
TejasGhatte Jun 9, 2026
a273755
feat: add vault backend (`aws-secrets-manager`, `gcp-secret-manager`,…
BearTS Jun 9, 2026
b9f1dfa
refactor: extract `publishRoutingAllowlist` and filter by model when …
Pratham-Mishra04 Jun 9, 2026
ca21298
refactor: move `isModelBlockedByList` logic into `BlackList.IsBlocked…
Pratham-Mishra04 Jun 9, 2026
ad34c78
fix: fixes plugin names sanitization for live loaded plugins for conn…
roroghost17 Jun 9, 2026
e68689c
feat: anthropic fable model compatibility (#4224)
TejasGhatte Jun 10, 2026
09d8df4
fix(bedrock): fill Cohere embed/rerank usage from response header (#3…
Alishark14 Jun 10, 2026
6eae6ba
fix(vertex): add API key auth support to Embedding method (#4200)
TransactCharlie Jun 10, 2026
2b81969
fix: build fix for missing import (#4244)
roroghost17 Jun 10, 2026
e275136
fix: exempt cache creation requests from model checks in governance (…
TejasGhatte Jun 10, 2026
b45cdce
fixL drop reasoning effort none for vertex (#4246)
TejasGhatte Jun 10, 2026
cd7d616
fix: register patch request in integration router (#4226)
TejasGhatte Jun 10, 2026
c1e2d78
feat: complexity router : adds complexity_tier CEL routing (#3711)
Madhuvod Jun 10, 2026
321c618
complexity router : add complexity analyzer config DB and API changes…
Madhuvod Jun 10, 2026
688a9f7
feat(ui): add complexity router config UI and CEL support (#3715)
Madhuvod Jun 10, 2026
7217a08
docs for complexity router and openapi reference (#3716)
Madhuvod Jun 10, 2026
726422e
feat(helm): add complexity analyzer config values support (#3948)
Madhuvod Jun 10, 2026
1e9bc3d
feat: add `mcp_library` table schema and sync config (#3978)
impoiler Jun 10, 2026
92e5c66
feat: add MCP library catalog sync, paginated listing, and filter dat…
impoiler Jun 10, 2026
c1ee2d8
feat: add MCP server library page with install sheet and sidebar entr…
impoiler Jun 10, 2026
9908b7c
feat: add dynamic MCP library catalog with search, filters, paginatio…
impoiler Jun 10, 2026
6dff256
feat: add `MCPLibraryURL` and `MCPLibrarySyncInterval` config columns…
impoiler Jun 11, 2026
eb3a2f8
fix: removed redundant provider stripping from anthropic converter (#…
TejasGhatte Jun 11, 2026
01b58c9
feat: replace stdio env vars text input with key-value table supporti…
impoiler Jun 11, 2026
4caf945
feat: Set up community submission guidelines for the MCP library (#4000)
impoiler Jun 11, 2026
fa71957
feat: add custom MCP library entries with soft-delete and sync protec…
impoiler Jun 11, 2026
ac13f55
feat: add MCP Connect agent sheet with multi-harness command/config g…
impoiler Jun 11, 2026
7a08f87
feat: remove the `slug` field from the MCP server schema and add 100+…
impoiler Jun 11, 2026
707ea8b
feat: add icons to MCP server library entries and relax `icon_url` sc…
impoiler Jun 11, 2026
317e5b1
fix: make MCP registry table scrollable with sticky header and improv…
impoiler Jun 11, 2026
e898646
fix: add `focus-visible` ring styles to button variants (#4242)
impoiler Jun 11, 2026
7d1fbd6
fix: enforce auth on inference in auth middleware (#4227)
TejasGhatte Jun 11, 2026
2e70b73
tests: add e2e routing wiring test harness (#4249)
Pratham-Mishra04 Jun 11, 2026
1338d2e
tests: add e2e model-catalog wiring tests for openai, anthropic, and …
Pratham-Mishra04 Jun 11, 2026
2466df1
tests: add e2e scenarios for reverse-alias gate (#4251)
Pratham-Mishra04 Jun 11, 2026
d004b53
tests: cover blacklist/multi-key/keyless/details/base catalog cases. …
Pratham-Mishra04 Jun 11, 2026
04281a0
tests: add weightless VK allow-list and case-insensitive alias fallba…
Pratham-Mishra04 Jun 11, 2026
9a9b615
tests: add e2e fallback routing scenarios and setup clear-providers s…
Pratham-Mishra04 Jun 11, 2026
c742825
docs: add semantic cache latency warning, comparison table row, and r…
Pratham-Mishra04 Jun 11, 2026
10a4d84
refactor: simplify load balancing skip logic to use parsed provider f…
Pratham-Mishra04 Jun 11, 2026
a68e9df
chore: remove vault encryption hooks from certain GORM tables in favo…
BearTS Jun 11, 2026
ac3d5d0
feat: add support for DD env vars with helm & doc changes (#4269)
roroghost17 Jun 11, 2026
4973482
fix: generate UUID for virtual key if ID is empty before creation (#4…
BearTS Jun 11, 2026
b75c842
fix: parse provider-prefixed model string in `runPreRequestRouting` l…
Pratham-Mishra04 Jun 11, 2026
0ad2fb1
fix: use `providerCfgInFile` instead of `existingCfg` when preserving…
BearTS Jun 11, 2026
e155b1c
fix: tests for vertex files api (#4256)
TejasGhatte Jun 11, 2026
61869d8
fix: vertex batch api tests (#4278)
TejasGhatte Jun 11, 2026
d289053
refactor: remove `enforceRoutingAllowlist` and its call sites from `h…
Pratham-Mishra04 Jun 11, 2026
575ff8d
fix: fast mode pricing for anthropic (#4267)
TejasGhatte Jun 11, 2026
b8d90b4
fix: preserve raw list-model metadata in schemas
kristiandrucker Jun 11, 2026
da2e626
fix: preserve rich metadata in openai-compatible model responses
kristiandrucker Jun 11, 2026
65fd42d
fix: normalize list-model provider prefixes in model catalog
kristiandrucker Jun 11, 2026
22d01e6
fix: preserve pricing enrichment for normalized list-model ids
kristiandrucker Jun 11, 2026
f6c53a4
docs: document preserved rich model metadata
kristiandrucker Jun 11, 2026
d0934de
Merge branch 'dev' into fix/preserve-model-metadata
kristiandrucker Jun 11, 2026
5ba62cc
tests: migration test script fixes (#4300)
TejasGhatte Jun 11, 2026
acff63a
chore: revert helpers helm change (#4291)
TejasGhatte Jun 11, 2026
98eef4e
feat: enforce VK tool-grant boundary on caller-provided `x-bf-mcp-inc…
Pratham-Mishra04 Jun 11, 2026
bc49637
fix: stamp virtual key tool allowlist when `include-clients` filter b…
Pratham-Mishra04 Jun 11, 2026
5c3abf1
tests: add `PreRequestHook` MCP tool-stamping unit tests for governan…
Pratham-Mishra04 Jun 11, 2026
ac98caf
fix: deep-merge preserved nested model metadata
kristiandrucker Jun 11, 2026
29b9e9d
fix: default openai list-model item objects
kristiandrucker Jun 11, 2026
a236cf9
docs: clarify preserved openai model metadata examples
kristiandrucker Jun 11, 2026
9ff5d53
Merge branch 'dev' into fix/preserve-model-metadata
kristiandrucker Jun 11, 2026
13b4a27
feat: add loading skeletons and fix scrolling layout for MCP library …
impoiler Jun 11, 2026
fa17a49
feat: add unique constraint migration on customer table name field (#…
BearTS Jun 11, 2026
3ef12a1
feat: add `key_ids` field to provider config in Helm chart and config…
BearTS Jun 11, 2026
059b829
`chore: remove vault_config schema definition and vault_store propert…
BearTS Jun 11, 2026
af63196
docs: use context_length in openai metadata docs
kristiandrucker Jun 11, 2026
25628af
chore: update skills repository dependencies and workspace tooling (#…
danpiths Jun 11, 2026
4b5b921
feat: adds per model usage to quota API (#4287)
roroghost17 Jun 11, 2026
19dbd00
chore: ui tooltips updates (#4309)
Pratham-Mishra04 Jun 11, 2026
5b106c8
fix: fixes customer FK column issue (#4292)
roroghost17 Jun 11, 2026
975c2cd
feat: adds http metrics to OTEL (#4294)
roroghost17 Jun 11, 2026
b0da966
fix: fix teams and customers name mappings on logs (#4306)
roroghost17 Jun 11, 2026
c540df5
feat: adds metadata into LLM logs in object storage (#4307)
roroghost17 Jun 11, 2026
6fd09d8
fix: run `vite build` before `typecheck` in build scripts (#4323)
impoiler Jun 12, 2026
38068c1
fix: metadata filters and pagination total_count for Postgres logstor…
zbloss Jun 12, 2026
0815849
Merge branch 'dev' into fix/preserve-model-metadata
kristiandrucker Jun 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
135 changes: 135 additions & 0 deletions .github/ISSUE_TEMPLATE/mcp_library_submission.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
name: "Add MCP Server to Library"
description: "Propose a new MCP server for the Bifrost community library"
title: "[MCP Library] Add: "
labels: ["community", "mcp-library"]
body:
- type: markdown
attributes:
value: |
Thanks for contributing to the Bifrost MCP Library. Please fill out the details below, then open a PR editing `community/mcp-library/servers.json`.

Do not include secrets, tokens, API keys, private URLs, or personal data.

- type: input
id: name
attributes:
label: Server name
description: "Human-readable display name. Bifrost derives the internal slug from this name."
placeholder: "My Server"
validations:
required: true

- type: textarea
id: description
attributes:
label: Description
description: "What does this MCP server do? Keep it concise and factual."
validations:
required: true

- type: input
id: category
attributes:
label: Category
description: "Reuse an existing category from community/mcp-library/README.md when possible."
placeholder: "Developer Tools"
validations:
required: true

- type: dropdown
id: connection_type
attributes:
label: Connection type
options:
- http
- stdio
- sse
- inprocess
validations:
required: true

- type: input
id: connection_url
attributes:
label: Connection URL
description: "Required for http or sse servers. Leave blank for stdio servers."
placeholder: "https://api.example.com/mcp"

- type: textarea
id: stdio_config
attributes:
label: STDIO config
description: "Required for stdio servers. Include command, args, and environment variable names only."
value: |
command:
args:
envs:

- type: dropdown
id: auth_type
attributes:
label: Auth type
options:
- none
- headers
- oauth
- per_user_oauth
- per_user_headers
validations:
required: true

- type: input
id: required_header_keys
attributes:
label: Required header keys
description: "Header names only, comma-separated. Never include values."
placeholder: "Authorization, x-api-key"

- type: input
id: docs_url
attributes:
label: Documentation URL
description: "Link to the server's docs, repo, or homepage."
placeholder: "https://github.com/example/mcp-server"
validations:
required: true

- type: input
id: publisher
attributes:
label: Publisher
description: "Person or organization that maintains this server."
validations:
required: true

- type: input
id: icon_url
attributes:
label: Icon URL or path
description: "Optional square PNG or SVG icon URL/path."
placeholder: "/images/mcp-servers/example.svg"

- type: input
id: tags
attributes:
label: Tags
description: "Short tags, comma-separated."
placeholder: "api, docs, developer-tools"

- type: checkboxes
id: checklist
attributes:
label: Checklist
options:
- label: "I searched `servers.json` and this is not a duplicate."
required: true
- label: "I did not include secrets, tokens, API keys, private URLs, or personal data."
required: true
- label: "I did not add `slug` or `version` fields."
required: true

- type: textarea
id: additional
attributes:
label: Additional context
description: "Anything else maintainers should know?"
5 changes: 5 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -314,3 +314,8 @@ updates:
directory: /tests/cmd/seedvks
schedule:
interval: weekly

- package-ecosystem: gomod
directory: /plugins/modelcatalogresolver
schedule:
interval: weekly
109 changes: 109 additions & 0 deletions .github/workflows/scripts/run-migration-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1801,6 +1801,62 @@ append_dynamic_columns_postgres() {
echo "UPDATE logs SET inc_number = NULL WHERE id = 'log-migration-test-002';" >> "$output_file"
echo "UPDATE logs SET inc_number = NULL WHERE id = 'log-migration-test-003';" >> "$output_file"
fi

# -------------------------------------------------------------------------
# v1.5.9 columns - config store tables
# -------------------------------------------------------------------------

# governance_budgets.model_config_id (added in v1.5.9 via add_budget_model_config_id_column)
if column_exists_postgres "governance_budgets" "model_config_id"; then
echo "UPDATE governance_budgets SET model_config_id = NULL WHERE id = 'budget-migration-test-1';" >> "$output_file"
echo "UPDATE governance_budgets SET model_config_id = NULL WHERE id = 'budget-migration-test-2';" >> "$output_file"
echo "UPDATE governance_budgets SET model_config_id = NULL WHERE id = 'budget-migration-test-3';" >> "$output_file"
fi

# governance_budgets.customer_id (added in v1.5.9 via add_customer_budgets_to_budgets_table)
if column_exists_postgres "governance_budgets" "customer_id"; then
echo "UPDATE governance_budgets SET customer_id = NULL WHERE id = 'budget-migration-test-1';" >> "$output_file"
echo "UPDATE governance_budgets SET customer_id = NULL WHERE id = 'budget-migration-test-2';" >> "$output_file"
echo "UPDATE governance_budgets SET customer_id = NULL WHERE id = 'budget-migration-test-3';" >> "$output_file"
fi

# governance_customers.calendar_aligned (added in v1.5.9 via add_customer_calendar_aligned_column)
if column_exists_postgres "governance_customers" "calendar_aligned"; then
echo "UPDATE governance_customers SET calendar_aligned = false WHERE id = 'customer-migration-test-1';" >> "$output_file"
echo "UPDATE governance_customers SET calendar_aligned = false WHERE id = 'customer-migration-test-2';" >> "$output_file"
fi

# governance_model_configs.scope / scope_id (added in v1.5.9 via add_model_config_scope_columns)
# scope is set to the column default 'global'; scope_id stays NULL so the seeded rows keep
# satisfying the idx_model_scope_provider unique index
if column_exists_postgres "governance_model_configs" "scope"; then
echo "UPDATE governance_model_configs SET scope = 'global' WHERE id = 'model-config-migration-test-1';" >> "$output_file"
echo "UPDATE governance_model_configs SET scope = 'global' WHERE id = 'model-config-migration-test-2';" >> "$output_file"
fi
if column_exists_postgres "governance_model_configs" "scope_id"; then
echo "UPDATE governance_model_configs SET scope_id = NULL WHERE id = 'model-config-migration-test-1';" >> "$output_file"
echo "UPDATE governance_model_configs SET scope_id = NULL WHERE id = 'model-config-migration-test-2';" >> "$output_file"
fi

# governance_model_configs.calendar_aligned (added in v1.5.9 via add_model_config_calendar_aligned_column)
if column_exists_postgres "governance_model_configs" "calendar_aligned"; then
echo "UPDATE governance_model_configs SET calendar_aligned = false WHERE id = 'model-config-migration-test-1';" >> "$output_file"
echo "UPDATE governance_model_configs SET calendar_aligned = false WHERE id = 'model-config-migration-test-2';" >> "$output_file"
fi

# -------------------------------------------------------------------------
# v1.5.9 columns - log store tables
# -------------------------------------------------------------------------

# logs multi-team/BU/customer JSON-array columns (added in v1.5.9 via
# logs_add_multi_team_business_unit_columns and logs_add_customer_array_columns)
for arr_col in team_ids team_names customer_ids customer_names business_unit_ids business_unit_names; do
if column_exists_postgres "logs" "$arr_col"; then
echo "UPDATE logs SET $arr_col = NULL WHERE id = 'log-migration-test-001';" >> "$output_file"
echo "UPDATE logs SET $arr_col = NULL WHERE id = 'log-migration-test-002';" >> "$output_file"
echo "UPDATE logs SET $arr_col = NULL WHERE id = 'log-migration-test-003';" >> "$output_file"
fi
done
}

# Append dynamic column UPDATEs for columns that may not exist in older schemas (SQLite)
Expand Down Expand Up @@ -2792,6 +2848,59 @@ append_dynamic_columns_sqlite() {
echo "UPDATE logs SET inc_number = NULL WHERE id = 'log-migration-test-001';" >> "$output_file"
echo "UPDATE logs SET inc_number = NULL WHERE id = 'log-migration-test-002';" >> "$output_file"
echo "UPDATE logs SET inc_number = NULL WHERE id = 'log-migration-test-003';" >> "$output_file"

# -------------------------------------------------------------------------
# v1.5.9 columns
# -------------------------------------------------------------------------

if [ -f "$config_db" ]; then
# governance_budgets.model_config_id (added in v1.5.9 via add_budget_model_config_id_column)
if column_exists_sqlite "$config_db" "governance_budgets" "model_config_id"; then
echo "UPDATE governance_budgets SET model_config_id = NULL WHERE id = 'budget-migration-test-1';" >> "$output_file"
echo "UPDATE governance_budgets SET model_config_id = NULL WHERE id = 'budget-migration-test-2';" >> "$output_file"
echo "UPDATE governance_budgets SET model_config_id = NULL WHERE id = 'budget-migration-test-3';" >> "$output_file"
fi

# governance_budgets.customer_id (added in v1.5.9 via add_customer_budgets_to_budgets_table)
if column_exists_sqlite "$config_db" "governance_budgets" "customer_id"; then
echo "UPDATE governance_budgets SET customer_id = NULL WHERE id = 'budget-migration-test-1';" >> "$output_file"
echo "UPDATE governance_budgets SET customer_id = NULL WHERE id = 'budget-migration-test-2';" >> "$output_file"
echo "UPDATE governance_budgets SET customer_id = NULL WHERE id = 'budget-migration-test-3';" >> "$output_file"
fi

# governance_customers.calendar_aligned (added in v1.5.9 via add_customer_calendar_aligned_column)
if column_exists_sqlite "$config_db" "governance_customers" "calendar_aligned"; then
echo "UPDATE governance_customers SET calendar_aligned = 0 WHERE id = 'customer-migration-test-1';" >> "$output_file"
echo "UPDATE governance_customers SET calendar_aligned = 0 WHERE id = 'customer-migration-test-2';" >> "$output_file"
fi

# governance_model_configs.scope / scope_id (added in v1.5.9 via add_model_config_scope_columns)
# scope is set to the column default 'global'; scope_id stays NULL so the seeded rows keep
# satisfying the idx_model_scope_provider unique index
if column_exists_sqlite "$config_db" "governance_model_configs" "scope"; then
echo "UPDATE governance_model_configs SET scope = 'global' WHERE id = 'model-config-migration-test-1';" >> "$output_file"
echo "UPDATE governance_model_configs SET scope = 'global' WHERE id = 'model-config-migration-test-2';" >> "$output_file"
fi
if column_exists_sqlite "$config_db" "governance_model_configs" "scope_id"; then
echo "UPDATE governance_model_configs SET scope_id = NULL WHERE id = 'model-config-migration-test-1';" >> "$output_file"
echo "UPDATE governance_model_configs SET scope_id = NULL WHERE id = 'model-config-migration-test-2';" >> "$output_file"
fi

# governance_model_configs.calendar_aligned (added in v1.5.9 via add_model_config_calendar_aligned_column)
if column_exists_sqlite "$config_db" "governance_model_configs" "calendar_aligned"; then
echo "UPDATE governance_model_configs SET calendar_aligned = 0 WHERE id = 'model-config-migration-test-1';" >> "$output_file"
echo "UPDATE governance_model_configs SET calendar_aligned = 0 WHERE id = 'model-config-migration-test-2';" >> "$output_file"
fi
fi

# logs multi-team/BU/customer JSON-array columns (added in v1.5.9 via
# logs_add_multi_team_business_unit_columns and logs_add_customer_array_columns)
# Emitted unconditionally - logs table is in logs_db; fails silently on config_db
for arr_col in team_ids team_names customer_ids customer_names business_unit_ids business_unit_names; do
echo "UPDATE logs SET $arr_col = NULL WHERE id = 'log-migration-test-001';" >> "$output_file"
echo "UPDATE logs SET $arr_col = NULL WHERE id = 'log-migration-test-002';" >> "$output_file"
echo "UPDATE logs SET $arr_col = NULL WHERE id = 'log-migration-test-003';" >> "$output_file"
done
}

# ============================================================================
Expand Down
21 changes: 19 additions & 2 deletions .github/workflows/scripts/validate-helm-config-fields.sh
Original file line number Diff line number Diff line change
Expand Up @@ -555,7 +555,6 @@ assert_field_value 'governance.providers[0].rate_limit_id' '.governance.provider
assert_field_value 'governance.auth_config.admin_username' '.governance.auth_config.admin_username' '"admin"'
assert_field_value 'governance.auth_config.admin_password' '.governance.auth_config.admin_password' '"secret"'
assert_field_value 'governance.auth_config.is_enabled' '.governance.auth_config.is_enabled' 'true'
assert_field_value 'governance.auth_config.disable_auth_on_inference' '.governance.auth_config.disable_auth_on_inference' 'true'

###############################################################################
# 5. Top-level Auth Config
Expand All @@ -579,7 +578,6 @@ render_config "$TMPDIR/values-auth.yaml"
assert_field_value 'auth_config.admin_username' '.auth_config.admin_username' '"root"'
assert_field_value 'auth_config.admin_password' '.auth_config.admin_password' '"rootpass"'
assert_field_value 'auth_config.is_enabled' '.auth_config.is_enabled' 'true'
assert_field_value 'auth_config.disable_auth_on_inference' '.auth_config.disable_auth_on_inference' 'false'

###############################################################################
# 6. Plugins (telemetry, logging, governance, maxim, semantic_cache, otel, datadog, custom)
Expand Down Expand Up @@ -656,12 +654,22 @@ bifrost:
enabled: true
config:
service_name: "bifrost-dd"
ml_app: "bifrost-ml"
agent_addr: "dd-agent:8126"
dogstatsd_addr: "dd-agent:8125"
env: "staging"
version: "1.0.0"
custom_tags:
team: "platform"
enable_metrics: true
enable_traces: true
enable_llm_obs: true
disable_content_logging: false
agentless: true
api_key: "env.DD_API_KEY"
site: "datadoghq.com"
request_headers:
- "x-bf-session-id"
custom:
- name: "my-plugin"
enabled: true
Expand Down Expand Up @@ -727,11 +735,20 @@ assert_field_value 'plugins: otel insecure' '.plugins.[5].config.insecure' 'true
# Datadog plugin
assert_field_value 'plugins: datadog name' '.plugins.[6].name' '"datadog"'
assert_field_value 'plugins: datadog service_name' '.plugins.[6].config.service_name' '"bifrost-dd"'
assert_field_value 'plugins: datadog ml_app' '.plugins.[6].config.ml_app' '"bifrost-ml"'
assert_field_value 'plugins: datadog agent_addr' '.plugins.[6].config.agent_addr' '"dd-agent:8126"'
assert_field_value 'plugins: datadog dogstatsd_addr' '.plugins.[6].config.dogstatsd_addr' '"dd-agent:8125"'
assert_field_value 'plugins: datadog env' '.plugins.[6].config.env' '"staging"'
assert_field_value 'plugins: datadog version' '.plugins.[6].config.version' '"1.0.0"'
assert_field 'plugins: datadog custom_tags' '.plugins.[6].config.custom_tags'
assert_field_value 'plugins: datadog enable_metrics' '.plugins.[6].config.enable_metrics' 'true'
assert_field_value 'plugins: datadog enable_traces' '.plugins.[6].config.enable_traces' 'true'
assert_field_value 'plugins: datadog enable_llm_obs' '.plugins.[6].config.enable_llm_obs' 'true'
assert_field_value 'plugins: datadog disable_content_logging' '.plugins.[6].config.disable_content_logging' 'false'
assert_field_value 'plugins: datadog agentless' '.plugins.[6].config.agentless' 'true'
assert_field_value 'plugins: datadog api_key' '.plugins.[6].config.api_key' '"env.DD_API_KEY"'
assert_field_value 'plugins: datadog site' '.plugins.[6].config.site' '"datadoghq.com"'
assert_field 'plugins: datadog request_headers' '.plugins.[6].config.request_headers'

# Custom plugin
assert_field_value 'plugins: custom name' '.plugins.[7].name' '"my-plugin"'
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -183,4 +183,7 @@ examples/mcps/oauth-demo-server/oauth-demo-server

# binaries
tests/cmd/e2eseed/e2eseed
tests/cmd/seedvks/seedvks
tests/cmd/seedvks/seedvks

# routing harness ledgers (local run journals, never committed)
tests/e2e/api/routing/ledger-*
Loading