v2.1.32
Changelog
- Extended
bifrost.accessProfiles[].provider_configs[]withblacklisted_models(denylist that wins overallowed_models;["*"]blocks every model, while an empty or omitted list blocks none),weight(load-balancer seed weight;nullopts out), andmodel_budgets[](per-model budget groups; each entry requiresmodel_nameand may carry optionalbudgets[]and arate_limit). These pass through intoaccess_profiles[].provider_configs[]. - Added
bifrost.scim.config.additionalScopes(Okta) — an array of extra OAuth scopes requested on top of the baseopenid/profile/email/offline_accessset, for Custom Authorization Servers where claims likegroupsare gated behind a scope Bifrost does not request by default. Passes through intoscim_config.config.additionalScopes. - Added
bifrost.framework.pricing.liveModelsSyncInterval(default3600seconds, minimum60,0disables) to control how often each provider’s list-models response is re-fetched in the background. Renders intoframework.pricing.live_models_sync_interval. - Added
storage.configStore.connMaxIdleTimeandstorage.logsStore.connMaxIdleTime(Go duration, e.g.5m) to cap how long an idle PostgreSQL connection is kept before closing, so bursts abovemaxIdleConnsstop churning physical connections. Each renders into its store’sconn_max_idle_time. - Added
storage.logsStore.matviewRefreshTimeout(Go duration, min 30s, max 30m; unset derives 5× the refresh interval, at least 5m) to bound a single materialized-view refresh pass. Renders intologs_store.matview_refresh_timeout. - Added
bifrost.plugins.otel.config.export_timeout(seconds, 1–60, default 5) to bound a single trace export — the only timeout on gRPC exports. Renders into the OTEL plugin config’sexport_timeout, and is omitted from the generated config when unset (or0). - Added
postgresql.external.passwordCommand.cache_ttl(Go duration, default 60s) to control how long a resolved password is reused across new physical connections instead of re-running the command per connection. Passes through intopassword_command.cache_ttl.

