dschlueter
6792e1be86
feat(auth): Passwort-Login (1FA) für die App; Admin ebenfalls 1FA
...
Variante 1: Senioren behalten ihren persönlichen Link; zusätzlich ein
Passwort-Einstieg ohne 2FA über Authelia.
- Neuer Endpunkt GET /api/login (app_login): hinter Authelia (nginx-Location
/login, one_factor), erkennt den per Remote-User weitergereichten Nutzer
(Admin ODER normaler Authelia-Nutzer), mintet das va_token-Cookie und leitet
in die App (/). Cookie-Mint in _issue_login_cookie() gemeinsam mit
/api/admin/login refaktoriert.
- "Persönlicher Zugang nötig"-Seite (main.py) bekommt einen großen Knopf
„Mit Benutzername & Passwort anmelden" -> /login. Bare / leitet bewusst NICHT
automatisch um (Senioren ohne Authelia-Konto würden sonst feststecken).
Begleitende Infra (außerhalb des Repos):
- nginx: location = /login (auth_request one_factor -> /api/login).
- Authelia: access_control-Regel voice.jamulix.de -> one_factor (über der
*.jamulix.de-Wildcard); damit sind App-Login UND Admin nur noch 1FA, andere
Subdomains bleiben 2FA.
Tests: /api/login für Nicht-Admin/Admin/ohne-Identität. 257 Offline-Tests grün.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 19:04:37 +02:00
..
conftest.py
test: Coverage für Gender-/Stimm-System + hermetische Suite
2026-06-25 00:32:47 +02:00
test_admin_app_login.py
feat(auth): Passwort-Login (1FA) für die App; Admin ebenfalls 1FA
2026-06-26 19:04:37 +02:00
test_admin_llm_status.py
feat(admin): Backend-Wechsel + Gateway-Neustart aus dem Admin-Panel — Plan-Schritt 3
2026-06-20 18:39:59 +02:00
test_admin_prefs_validation.py
feat(admin): serverseitige Pydantic-Validatoren für Notfall-Profilfelder
2026-06-25 18:24:33 +02:00
test_admin_settings.py
feat(3c): OpenRouter-Modelle live & selbst-aktualisierend statt erfunden
2026-06-25 05:01:05 +02:00
test_audio_router.py
Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament
2026-06-17 01:48:56 +02:00
test_audit.py
refactor(ui): Geräte-STT entfernt + Menü-Redesign (schlanke Kopfzeile + ⋮-Sheet)
2026-06-20 22:26:20 +02:00
test_auth.py
feat: Geräte-TTS, native Stimmen, Favicon, Auth-Gate, UI-Fixes
2026-06-20 13:12:04 +02:00
test_basic_layout.py
Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament
2026-06-17 01:48:56 +02:00
test_capability_login.py
feat(2-Schritt2): Login-Link + persistentes is_admin-Flag pro Nutzer
2026-06-25 04:33:33 +02:00
test_cartesia_tts.py
test: Coverage für Gender-/Stimm-System + hermetische Suite
2026-06-25 00:32:47 +02:00
test_chatterbox_tts.py
feat: Geräte-TTS, native Stimmen, Favicon, Auth-Gate, UI-Fixes
2026-06-20 13:12:04 +02:00
test_config_profiles.py
Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament
2026-06-17 01:48:56 +02:00
test_cookie_auth.py
feat(auth): Forward-Auth via JWT-Cookie (YunoHost yunohost.portal)
2026-06-18 08:44:33 +02:00
test_emergency_bridge.py
refactor: Notruf-Bridge nutzt seven-send-Library statt eigenem seven.io-Code
2026-06-25 11:50:05 +02:00
test_emergency_cooldown.py
feat(notruf): Alarmpause pro Nutzer im Notfall-Profil (Minuten, 0=aus, leer=global)
2026-06-26 17:10:12 +02:00
test_emergency_enrichment.py
feat(notruf): Wiederauslöse-Sperre + grüner Hinweis; "Neues Gespräch" in die Kopfzeile
2026-06-26 15:58:17 +02:00
test_endpoints_e2e.py
feat: UI-Hinweis bei Cartesia + nicht unterstützter Sprache
2026-06-25 00:49:28 +02:00
test_forward_auth.py
feat(2-Schritt3): nginx-Cutover — App per Token-Link, Admin hinter Authelia
2026-06-25 04:45:11 +02:00
test_local_llm_messages.py
fix(llm): System-Nachrichten zu einer fuehrenden zusammenfuehren (Qwen3-Template)
2026-06-18 04:45:21 +02:00
test_logging_config.py
fix: App-Logger sichtbar machen (Notruf-Diagnose im Log)
2026-06-25 19:03:54 +02:00
test_memory.py
feat: Geräte-TTS, native Stimmen, Favicon, Auth-Gate, UI-Fixes
2026-06-20 13:12:04 +02:00
test_memory_extraction.py
fix(llm): LLM antwortet jetzt in der konfigurierten Systemsprache
2026-06-19 14:12:16 +02:00
test_openrouter_tts.py
fix(tts): OpenRouter-TTS bei transient leerer/5xx-Antwort wiederholen
2026-06-18 00:06:47 +02:00
test_piper_tts.py
test: Coverage für Gender-/Stimm-System + hermetische Suite
2026-06-25 00:32:47 +02:00
test_quota_safety.py
feat(notruf): Wiederauslöse-Sperre + grüner Hinweis; "Neues Gespräch" in die Kopfzeile
2026-06-26 15:58:17 +02:00
test_realtime.py
feat(P3): Diktat in Fremdsprache → Übersetzung in die Zielsprache
2026-06-25 03:30:37 +02:00
test_resilience.py
feat: Geräte-TTS, native Stimmen, Favicon, Auth-Gate, UI-Fixes
2026-06-20 13:12:04 +02:00
test_routing.py
feat(2a): Erlaubte Sprachen pro Nutzer (Admin-Vorgabe)
2026-06-25 04:06:09 +02:00
test_streaming.py
feat: Geräte-TTS, native Stimmen, Favicon, Auth-Gate, UI-Fixes
2026-06-20 13:12:04 +02:00
test_stt_quality.py
feat(stt): bessere Spracherkennung — small-Modell, VAD, feste Sprache
2026-06-25 19:36:17 +02:00
test_tts_normalizer.py
feat(tts): Aussprache-Lexikon befüllt (verifizierte Vokallängen-Fixes) + case-insensitiv
2026-06-17 23:19:17 +02:00
test_warmup.py
feat: Geräte-TTS, native Stimmen, Favicon, Auth-Gate, UI-Fixes
2026-06-20 13:12:04 +02:00
test_ws.py
feat(stt): bessere Spracherkennung — small-Modell, VAD, feste Sprache
2026-06-25 19:36:17 +02:00