my_voice_assistant_v3_jamulix/app
dschlueter b4111c887e feat(auth): Admin-Selbstanmeldung in die App (Login statt verlorenem Zugangslink)
Die App-Oberflaeche (/) ist bewusst nur per persoenlichem Zugangslink
erreichbar (kein SSO, damit Senioren keine Login-Maske sehen). Ein Admin, der
seinen Link verliert, kam bisher nicht mehr in die App-UI.

Neuer Endpunkt GET /api/admin/login: liegt hinter Authelia (nginx-Location
/api/admin/ mit auth_request + error_page-Redirect, Remote-User durchgereicht),
erkennt den SSO-Admin, mintet ein frisches Capability-Token, setzt es als
va_token-Cookie und leitet in die App (/). Damit meldet sich der Admin allein
mit seinem Authelia-Passwort an. Jeder Aufruf rotiert den Token (alte Links
dieses Admins werden ungueltig) - fuer eine Recovery-Funktion korrekt.

Die huebsche URL https://voice.jamulix.de/admin-login wird per nginx-Alias auf
diesen Endpunkt gelegt (nginx-Config liegt ausserhalb des Repos).

Doku: BEDIENUNGSANLEITUNG.md § 7.6 - Selbstanmeldung, Recovery per
ADMIN_API_KEY (SSO-unabhaengig) und Haertung (zweiter Admin in ADMIN_USERS,
Key im Passwortmanager).

Tests: Cookie wird gesetzt + 303 -> /, gesetzter Token authentifiziert,
Token-Rotation, Nicht-Admin/ohne Identitaet -> 403.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 12:37:14 +02:00
..
api feat(auth): Admin-Selbstanmeldung in die App (Login statt verlorenem Zugangslink) 2026-06-26 12:37:14 +02:00
audio feat: Barge-in/Turn-Manager und VAD-Aeusserungserkennung (#4 Ausbau) 2026-06-17 05:06:58 +02:00
core perf(stream): TTS-Synthese vom Token-Streaming entkoppeln (Bubble läuft voraus) 2026-06-26 11:33:04 +02:00
pipeline feat(tts): Emojis/Markdown beim Vorlesen entfernen + Autostart/GPU-Doku 2026-06-20 18:25:45 +02:00
providers feat(stt): bessere Spracherkennung — small-Modell, VAD, feste Sprache 2026-06-25 19:36:17 +02:00
safety feat: Notruf — Telefon in SMS, Geo-Diagnose + Geräteerkennung; Sprach-UI-Fix 2026-06-25 17:24:36 +02:00
utils Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament 2026-06-17 01:48:56 +02:00
web fix(web): Web-Audio-Kontext bei Nutzergeste freischalten (iOS-Chunk-Wiedergabe) 2026-06-26 10:55:15 +02:00
__init__.py Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament 2026-06-17 01:48:56 +02:00
admin_llm.py fix(admin): Phase 0 — Log & Restart reparieren, Status auf Wahrheit 2026-06-25 02:27:18 +02:00
audit.py feat(admin): Audit-Logging schreibender Admin-Aktionen — Plan-Schritt 5 2026-06-20 18:50:55 +02:00
auth.py feat(2-Schritt2): Login-Link + persistentes is_admin-Flag pro Nutzer 2026-06-25 04:33:33 +02:00
config.py feat(stt): bessere Spracherkennung — small-Modell, VAD, feste Sprache 2026-06-25 19:36:17 +02:00
dependencies.py feat(2a): Erlaubte Sprachen pro Nutzer (Admin-Vorgabe) 2026-06-25 04:06:09 +02:00
errors.py Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament 2026-06-17 01:48:56 +02:00
main.py fix: App-Logger sichtbar machen (Notruf-Diagnose im Log) 2026-06-25 19:03:54 +02:00
metrics.py feat: Resilienz (Fallback-Ketten) und Metriken (#5) 2026-06-17 05:19:07 +02:00
quota.py feat(admin): Phase 3 — Laufzeit-Konfiguration ohne Server-Neustart 2026-06-19 01:39:36 +02:00
runtime_config.py feat(1a): Flex-Sprachmodus vollständig entfernen 2026-06-25 02:51:17 +02:00
schemas.py feat(admin): serverseitige Pydantic-Validatoren für Notfall-Profilfelder 2026-06-25 18:24:33 +02:00
store.py feat(2-Schritt2): Login-Link + persistentes is_admin-Flag pro Nutzer 2026-06-25 04:33:33 +02:00