# NetDiag — Netzwerk-Diagnose für Dolibarr Dolibarr-Modul für die Ablage von Netzwerk-Diagnose-Protokollen. Erfasst per mobiler App (siehe Projekt `NetzwerkDiagnose/app`) gefundene Geräte, Ports und Messungen und hängt die Protokolle dauerhaft an **Kunde** und **Auftrag**. ## Funktionen - Datenmodell: Protokoll → Geräte → Messungen (`llx_netdiag_*`) - Tab **Netzwerk-Diagnose** an Kunde (thirdparty) und Auftrag (commande) - JSON-API unter `/custom/netdiag/api/` für die mobile App (JWT-Auth) - PDF-Protokoll, wird im Dokumentenarchiv (ECM) abgelegt - Rechtesystem: `netdiag → protocol → read/write/delete` - Mehrsprachig (de_DE, en_US) - QR-Code zum App-Download in der Modul-Einrichtung ## Installation 1. Verzeichnis `netdiag/` nach `htdocs/custom/` auf den Dolibarr-Server kopieren. Auf dem Produktivsystem übernimmt das die Forgejo-Pipeline (`.forgejo/workflows/deploy.yml`) — Commit mit `[deploy]` in der Message synct das Modul automatisch auf den Server. 2. In Dolibarr: **Einrichtung → Module → NetDiag** aktivieren. 3. Beim Aktivieren werden die Tabellen `llx_netdiag_protocol`, `llx_netdiag_device`, `llx_netdiag_measurement` angelegt und ein JWT-Schlüssel erzeugt. 4. Benutzern das Recht **NetDiag → Protokolle lesen/schreiben** geben. ## API-Endpunkte Alle unter `https:///custom/netdiag/api/`: | Endpunkt | Methode | Zweck | |----------|---------|-------| | `auth.php` | POST `{login,password}` | Anmeldung → `{token,expiresIn,user}` | | `customers.php` | GET `?q=` / `?id=` | Kundensuche / Kundendetail | | `orders.php` | GET `?open=1&q=` / `?id=` | Auftragsliste / Auftragsdetail | | `protocols.php` | GET `?id=` | Protokoll mit Geräten + Messungen | | `protocols.php` | POST `{action:"sync",protocol:{…}}` | Protokoll anlegen/aktualisieren (idempotent über `clientUuid`) | | `pdf.php` | GET `?id=&jwt=` | Protokoll-PDF streamen | Authentifizierung per `Authorization: Bearer ` oder `?jwt=`. ## Einrichtung **Einrichtung → Module → NetDiag → Einstellungen:** - Token-Gültigkeit (Sekunden) - App-Download-URL (APK) — wird als QR-Code angezeigt ## Lizenz GPLv3