# Changelog NetDiag ## 1.1.0 — 2026-08-14 ### Anmeldung läuft über das zentrale Auth-Modul (awlauth) NetDiag war die letzte AWL-App mit eigenem Login: eigenes JWT, eigener Schlüssel (`NETDIAG_API_JWT_SECRET`), eigene Gültigkeitsdauer, keine Möglichkeit, ein verlorenes Handy gezielt abzumelden. Ab sofort stellt awlauth das Token aus — dasselbe Token, derselbe Schlüssel und dieselbe Sitzungs-Registry wie bei den sechs Browser-Apps. - `api/auth.php` prüft das Passwort über `awlauth_login()`. Damit greifen dort auch die **Brute-Force-Bremse** (5 Fehlversuche je IP in 15 min, 10 je Benutzername in 30 min) und die einheitliche, nicht-verräterische Fehlermeldung. Das Token kommt aus `awlauth_issue_bearer()` und legt eine Sitzungszeile an — das Gerät erscheint als „NetDiag-App · Android" in der awlauth-Geräteliste und ist dort einzeln abmeldbar. - `netdiag_api_authenticate()` prüft zuerst das awlauth-Token. Ein **abgelaufenes oder widerrufenes** Token führt sofort zu 401, auch wenn die Signatur noch stimmt. - **Übergangsweise** wird ein bereits ausgestelltes altes netdiag-JWT weiterhin akzeptiert, damit die Umstellung niemanden mitten im Einsatz aussperrt. Dieser Pfad entfällt, sobald alle Geräte einmal neu angemeldet sind. - Ohne aktives awlauth-Modul läuft NetDiag unverändert mit dem eigenen JWT weiter. **Die Antwortform von `auth.php` ist bewusst unverändert** (`{token, expiresIn, user}`). Bereits installierte APKs laufen nach einer **einmaligen Neuanmeldung** ohne Update weiter. ### CORS enger gefasst `Access-Control-Allow-Origin: *` ist raus. Die API liefert Kundendaten aus; ein Wildcard erlaubt jeder beliebigen Webseite, die Antwort auszulesen, sobald sie an ein Token kommt. Erlaubt sind jetzt nur die App-Origins (`https://localhost`, `capacitor://localhost`, `http://localhost`, `ionic://localhost`) und der Vite-Dev-Server; dazu `Vary: Origin`. Anfragen ohne Origin-Header (nativer HTTP-Client, der APK-Downloader im Kotlin-Plugin, curl) bekommen wie bisher eine Antwort — dort greift die Same-Origin-Policy ohnehin nicht. ## 1.0.0 - Erstversion - Datenmodell: Protokoll, Gerät, Messung - JSON-API: auth, customers, orders, protocols (Sync), pdf - Tab "Netzwerk-Diagnose" an Kunde und Auftrag - PDF-Protokoll-Generator + ECM-Ablage - Backend: Protokoll-Liste und Detailansicht - Admin: Token-Einstellung, QR-Code zum App-Download