Dieter Schlüter
76df695111
feat(web): Remote-Web-UI mit Mikrofon + Forward-Auth (YunoHost-SSO)
- Minimale Web-UI (app/web/, vanilla, same-origin -> kein CORS): Text-Prompt +
Mikrofon-Button (Aufnahme im Browser -> /ws/voice -> Antwort wird vorgelesen),
Token-Streaming, PCM-Wiedergabe, Identitaet/Logout/Admin im Menue
- Forward-/Trusted-Header-Auth (app/auth.py): Identitaet aus SSO-Header, nur von
TRUSTED_PROXY_IPS akzeptiert; sonst Token/Anonymous-Fallback. Auto-Provisioning
via store.get_or_create_user_by_external_id (+ external_id-Spalte/Migration)
- /api/me um is_admin + sso_logout_url erweitert; GET /api/admin/users (Liste) und
GET /api/admin/request-headers (SSO-Header-Discovery), Admin-gated
- StaticFiles-Mount; Config: TRUSTED_AUTH_HEADER/_PROXY_IPS, ADMIN_USERS, SSO_LOGOUT_URL
- WS-Auth liest Identitaet aus dem Handshake-Header
- Deploy: nginx-Vorlage (WS-Upgrade!) + deploy/README.md (HTTPS/SSO/Firewall/Discovery)
- Tests: Forward-Auth (Provisioning, Admin-Flag, Proxy-IP-Trust, 401/403, Static)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-18 04:37:16 +02:00 |
| .. |
|
__init__.py
|
Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament
|
2026-06-17 01:48:56 +02:00 |
|
admin.py
|
feat(web): Remote-Web-UI mit Mikrofon + Forward-Auth (YunoHost-SSO)
|
2026-06-18 04:37:16 +02:00 |
|
chat.py
|
feat(safety): zweistufige Notfall-Erkennung mit LLM-Klassifikation
|
2026-06-18 03:24:25 +02:00 |
|
config.py
|
Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament
|
2026-06-17 01:48:56 +02:00 |
|
devices.py
|
Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament
|
2026-06-17 01:48:56 +02:00 |
|
health.py
|
Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament
|
2026-06-17 01:48:56 +02:00 |
|
me.py
|
feat(web): Remote-Web-UI mit Mikrofon + Forward-Auth (YunoHost-SSO)
|
2026-06-18 04:37:16 +02:00 |
|
metrics.py
|
feat: Resilienz (Fallback-Ketten) und Metriken (#5)
|
2026-06-17 05:19:07 +02:00 |
|
sessions.py
|
feat: Cloud-Fundament - Auth, Persistenz und Mandanten-Trennung
|
2026-06-17 02:14:25 +02:00 |
|
speak.py
|
feat(voice_loop): --voice-Option + saubere Default-Stimme je TTS-Provider
|
2026-06-17 23:42:23 +02:00 |
|
transcribe.py
|
feat: Tageskontingent und Notfall-Eskalation (#6)
|
2026-06-17 05:29:30 +02:00 |
|
ws.py
|
feat(web): Remote-Web-UI mit Mikrofon + Forward-Auth (YunoHost-SSO)
|
2026-06-18 04:37:16 +02:00 |