-
released this
2026-04-28 18:39:16 +02:00 | 1 commits to 1.4.23-ew since this releasev1.4.23-ew-3
Patch-Release auf v1.4.23-ew-2.
Highlight: Inference-Routen über
WhitelistedRoutesöffentlich machenDas bestehende Setting Workspace → Config → Security → "Whitelisted Routes" greift jetzt auch für Inference-Endpunkte (z. B.
/v1/models). Vorher griff es nur für/api/...-Dashboard-Routen.Anwendungsfall:
- „Password protect the dashboard" aktiviert, „Enforce virtual keys on inference" aktiviert.
/v1/models(oder/v1/models*,/v1/*) unter „Whitelisted Routes" eintragen.curl http://bifrost/v1/modelsohneAuthorization-Header und ohnex-bf-vk-Virtual-Key liefert die Modellliste.
Anonyme Aufrufe sehen die ungefilterte Modellliste — Virtual-Key-basiertes Filtering kann ohne Virtual Key naturgemäß nicht greifen.
Was passiert ist
Das Setting
WhitelistedRouteslebte schon, aber die Enforcement war auf zwei Schichten unvollständig:- AuthMiddleware (Basic-Auth/Session-Token) prüfte die Whitelist nur in
APIMiddleware(für/api/...), nicht inInferenceMiddleware(für/v1/...). - Selbst wenn die AuthMiddleware durchließ, gab das Governance-Plugin unabhängig „virtual key is required" zurück, sobald „Enforce auth on inference" aktiv war.
Beide Schichten respektieren jetzt die Whitelist.
Was geändert wurde
feat(auth): allow inference routes in WhitelistedRoutes configtransports/bifrost-http/handlers/middlewares.go: Match-Logik (exakt +*-Suffix-Wildcard) inisUserWhitelistedextrahiert.InferenceMiddlewareruft den Helper jetzt zusätzlich zuDisableAuthOnInference.APIMiddleware-Verhalten unverändert.- UI: Hilfetext und Placeholder im Security-Tab erwähnen Inference-Routen.
fix(auth): propagate WhitelistedRoutes bypass into governance plugin- Neue Context-Konstante
schemas.BifrostContextKeyAuthRouteWhitelistedincore/schemas/bifrost.go. - AuthMiddleware setzt das Flag, wenn die URL gegen die User-Whitelist matcht.
plugins/governance/main.go:evaluateGovernanceRequestcheckt das Flag ganz vorne und gibt direktDecisionAllowzurück — vor dem VK-Pflicht-Gate.
fix(auth): strip query string before whitelist matchisUserWhitelistedstrippt jetzt?…vom URL, bevor sie matcht. Damit greift ein exakter Eintrag/v1/modelsauch bei Aufrufen wie/v1/models?provider=openai.
Geänderte Dateien
core/schemas/bifrost.go— neue Context-Konstante.transports/bifrost-http/handlers/middlewares.go— Helper, Inference-Whitelist, Query-String-Strip.transports/bifrost-http/handlers/middlewares_test.go— Regression-Tests (5 Fälle inkl. Query-String).plugins/governance/main.go— Bypass im Plugin.ui/app/workspace/config/views/securityView.tsx— Hinweistext + Placeholder.
Upgrade
- Service neu starten, Docker-Image:
forge.engelmann.me/engel75/bifrost:v1.4.23-ew-3(wird durch Tag-Push gebaut). - Bestehende Whitelist-Einträge werden automatisch auch für Inference-Routen wirksam — keine Migration nötig.
Vollständiger Changelog
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads