Dolibarr-Modul NetDiag — Netzwerk-Diagnose-Protokolle, JSON-API für die NetDiag-App
Regression aus dem vorherigen Commit, gefunden bei der Bestandsprüfung von Phase 6: netdiagKundenfelder() war gegen selbst erzeugte Testdaten gebaut, nicht gegen die Namen, welche die App-Werkzeuge tatsächlich liefern. Konkret liefert die App "ziel"/"zielErreicht" (Traceroute), "gegenstelle"/ "downloadMbps"/"uploadMbps" (Durchsatz), "scanned"/"open" (Portscan), "geprueft"/"runden"/"konflikte" (IP-Konflikt), "port"/"linkSpeed"/ "eingangsFehler"/"ausgangsFehler" (SNMP) sowie das gespreadete LinkInfo beim IP-Test. Keiner dieser Schlüssel stand in der Tabelle — und weil netdiagFeldFuerKunde() unbekannte Schlüssel verwirft, wäre im Kundendokument von diesen fünf Werkzeugen nur noch die Ampel übrig geblieben, ohne einen einzigen Messwert. Das ist schlechter als der Zustand davor (rohe Schlüssel). Alle real emittierten Schlüssel ergänzt und gegen die echten Ergebnis- Strukturen geprüft, Beispiel Portscan: "Gerät: 192.168.1.50 | Geprüfte Ports: 10 | Offene Ports: 80/http, 443/https" Lehre für künftige Werkzeuge: die Tabelle ist eine Whitelist, ein neues Werkzeug braucht dort einen Eintrag — sonst verschwinden seine Messwerte stillschweigend aus dem Kundendokument. |
||
|---|---|---|
| .forgejo/workflows | ||
| admin | ||
| api | ||
| class | ||
| core/modules | ||
| langs | ||
| lib | ||
| sql | ||
| ChangeLog.md | ||
| netdiag_object_tab.php | ||
| netdiagindex.php | ||
| netdiagprotocol_card.php | ||
| README.md | ||
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
- Verzeichnis
netdiag/nachhtdocs/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. - In Dolibarr: Einrichtung → Module → NetDiag aktivieren.
- Beim Aktivieren werden die Tabellen
llx_netdiag_protocol,llx_netdiag_device,llx_netdiag_measurementangelegt und ein JWT-Schlüssel erzeugt. - Benutzern das Recht NetDiag → Protokolle lesen/schreiben geben.
API-Endpunkte
Alle unter https://<dolibarr>/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 <token> oder ?jwt=<token>.
Einrichtung
Einrichtung → Module → NetDiag → Einstellungen:
- Token-Gültigkeit (Sekunden)
- App-Download-URL (APK) — wird als QR-Code angezeigt
Lizenz
GPLv3