Datenschutz: Log-Bereinigung vor Server-Upload (Scrubber + Quelle)

Diagnose-Logs werden zentral bereinigt, bevor sie an logs.baka-net.de gehen.
Lokaler debugPrint bleibt vollständig.

- Freitext-Scrubber (LoggerService.scrubText) für message + stackTrace:
  maskiert user=/pw=/password=/token=/secret=/url= sowie Datei-Pfade,
  nackte URLs, Bearer-Token, JWTs und lange Hex-IDs.
- stackTrace auf 8 Zeilen gekürzt (capFrames).
- deviceModel nur noch grobe Plattform (android/ios) statt Hersteller+Modell;
  device_info_plus im Logger entfernt.
- Quelle entschärft: settings_screen loggte Navidrome-Login mit Klartext
  user=/url= — jetzt nur neutraler Status inkl. pwLeer-Flag.
- Neue Tests: test/logger_service_test.dart (9). 79/79 grün, analyze sauber.

Opt-in/Einwilligung bleibt separater Folgeschritt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tr2UwurtxyJUpWpBSeVmBm
This commit is contained in:
Hermes (Server)
2026-08-20 01:38:56 +02:00
co-authored by Claude Opus 4.8
parent 61e28d128f
commit d83f8c8c54
4 changed files with 142 additions and 19 deletions
+20
View File
@@ -5,6 +5,26 @@ Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.0.0/).
## [Unreleased]
### 🔒 Datenschutz: Log-Bereinigung vor Server-Upload (2026-08-20)
-**Was:** Diagnose-Logs werden jetzt zentral bereinigt, bevor sie an
`logs.baka-net.de` gehen. Der lokale `debugPrint` bleibt vollständig.
- 🔧 **Details:**
- Freitext-Scrubber für `message` + `stackTrace`: maskiert sensible
`key=value`-Fragmente (`user=`, `pw=`, `password=`, `token=`, `secret=`,
`url=`), Datei-Pfade (`<path>`), nackte URLs (`<url>`), `Bearer`-Token,
JWTs (`<jwt>`) und lange Hex-IDs (`<hex>`).
- `stackTrace` wird auf max. 8 Zeilen gekürzt.
- `deviceModel` sendet nur noch die grobe Plattform (`android`/`ios`) statt
Hersteller+Modell (war ein Geräte-Fingerprint) — `device_info_plus` im
Logger entfernt.
- 🐛 **Fix (Quelle):** Der Navidrome-Login in `settings_screen` loggte
Benutzername + Server-URL im Klartext (`Login: url=… user=…`). Diese
Aufrufe senden jetzt nur noch den neutralen Status inkl. `pwLeer`-Flag.
- 🧪 **Tests:** neue Suite `test/logger_service_test.dart` (9 Tests) — 79/79 grün,
`flutter analyze` ohne Issues.
- **Offen:** Opt-in/Einwilligung für den Diagnose-Versand bleibt ein
separater Folgeschritt (braucht UI).
### 🔧 Log-Upload System - Fixes (2026-08-19)
-**ERROR-Level Logging**: Fehler werden SOFORT zum Server hochgeladen (async/await Fixed)
-**Navidrome-Service Error Logging**: Alle API-Fehler (ping, getAlben, getSongs, getFavorites, getArtists, getArtistSongs, getLyrics, scrobble, getBookmarks, getPlaylists, getPlaylistSongs) werden jetzt mit `logger.error()` zum Server geloggt (statt nur debugPrint)