001e4b415f
Check Cross-Plugin Imports / check (push) Waiting to run
Vorher: Alle drei External-Endpoints hingen an require_permission, das an der Session-Cookie-Auth haengt — reine Bearer-Clients (n8n, Skripte, externe Systeme) erhielten 401, bevor die Bearer-Verifikation im Handler je erreicht wurde (Astra-Repro: Statusabfrage mit nur Bearer-Header -> 401). Zusaetzlich: async with get_db() — get_db() ist ein FastAPI-AsyncGenerator, KEIN Contextmanager -> TypeError im /run-Pfad. Fix: - Neue Dependency require_permission_or_bearer (deps.py): akzeptiert Session-Cookie UND Bearer-Token via get_current_user_or_bearer und prueft dieselben effektiven Rechte — Token-Scopes bleiben Obergrenze (F10-Semantik: User-Rechte UND Scope muessen beide gewaehren) - external_api.py: alle 3 Endpunkte (run/status/stream) auf die neue Dependency umgestellt - /run-Pfad: get_db() -> get_session_factory() (Session-Factory wie alle anderen self-managed-Session-Codepfade) Abnahme (Astra): Gueltiger Bearer ohne Cookie funktioniert fuer Status, Run und Stream; ungueltige Tokens werden abgewiesen — die Permission-Pruefung laeuft identisch fuer beide Auth-Pfade. Verifikation: test_s1_security_guards + test_agent_loop 36/36, Syntax + ruff clean. (Live-Bearer-Verifikation folgt mit dem naechsten Deploy.)