7.0 KiB
7.0 KiB
Changelog
Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.
Format basiert auf Keep a Changelog. Dieses Projekt verwendet Semantic Versioning.
Unreleased
0.9.0 - 2026-07-02
Added
- Geräte-Tracking ohne MAC-Adresse: nmap-Hosts aus Remote-Subnetzen (kein ARP möglich) werden jetzt als
network_devices-Einträge erfasst (Tracking per Hostname, Fallback per IP) mac_addressinnetwork_devicesist jetzt nullable (mehrere NULL-Werte durch MySQL erlaubt)- Dashboard: Separater Warnblock „⚠️ IP-Adressen-Wechsel erkannt" mit Anzeige alter IP → neuer IP, Gerätename, MAC, Quittier-Button inkl. Notizfeld
- Alle anderen Ereignisse auf dem Dashboard ebenfalls mit inline Notiz quittierbar
- Geräte-Detailseite: IP-Verlauf zeigt Hinweis wenn ein Gerät mehrere verschiedene IPs hatte, alle bekannten IPs als Tags, aktuelle IP hervorgehoben
- Globale Suche:
netbios_namewird jetzt mitdurchsucht
Setup (einmalig)
php artisan migrate
0.8.0 - 2026-07-02
Added
- IP-Bemerkungen: Pro IP-Adresse je Segment eine Bemerkung hinterlegen (inline editierbar in der Scan-Detailansicht)
- Neue Tabelle
network_ip_notes(Segment + IP als Unique-Key) - Subnetz-Erkennung: Schaltfläche „🔍 Erkennen" in Segment anlegen/bearbeiten – ermittelt /24-Subnetze aus vorhandenen IP-Daten per API (
/network/detect-subnets) - Export Segment als Excel (
.xlsx) via PhpSpreadsheet – enthält alle Hosts des letzten Scans inkl. Bemerkungen - Export Segment als PDF via DomPDF – Querformat-Tabelle mit Hosts, Status, MAC, Hostname, Hersteller, Ping und Bemerkungen
- Export-Buttons (📊 Excel / 📄 PDF) auf Segment-Detailseite und Scan-Detailseite
Setup (einmalig ausführen)
composer require phpoffice/phpspreadsheet barryvdh/laravel-dompdf
php artisan migrate
0.7.0 - 2026-07-02
Added
- Automatischer Netzwerkscan via
nmappro Segment (Artisan Commandnetwork:scan) - Scan-Zyklus pro Segment einstellbar: 5 / 15 / 30 / 60 / 360 / 720 / 1440 Minuten
- „Jetzt scannen"-Button direkt auf der Segment-Detailseite
- nmap-Parameter pro Segment konfigurierbar (z.B.
-sn,-sn -p 22,80,443) - Laravel Scheduler führt
network:scanjede Minute aus und prüft fällige Segmente - Auto-Refresh auf Segment-Detailseite nach manuellem Scan (prüft alle 10s)
- Chronologischer IP-Verlauf (
/network/history) über alle Scans und Segmente - Filter im IP-Verlauf: IP, MAC, Hostname, Segment, Status, Datumsbereich
- IP-Verlauf Auto-Refresh alle 60 Sekunden (ohne aktiven Filter)
- Navigation: neuer Menüpunkt „IP-Verlauf"
last_scanned_atundscan_interval_minutesin Segment-Stammdaten
Setup (Cron für Scheduler)
* * * * * cd /home/arudolph/Projekte/PHP/Network-MGMT && php artisan schedule:run >> /dev/null 2>&1
0.6.0 - 2026-07-01
Added
- Netzwerk-Segmentverwaltung: Subnetze mit Name, VLAN-ID und Aktiv/Inaktiv-Flag definieren
- Neue Tabelle
network_segmentsals organisatorische Einheit für Scan-Durchläufe - Dashboard-Ansicht „Netzwerk" mit Übersicht aller Segmente, KPI-Karten und offenen Ereignissen
- Globale Suche über alle Segmente nach IP, MAC, Hostname und Bezeichnung
- Navigation „Netzwerk" als Dropdown: Dashboard, Segmente, Alle Geräte, Suche, Import
- Import-Seite: Segment-Auswahl beim Upload eines Angry IP Scanner Exports
- Segment-Detailseite mit Scan-Historie
segment_idFK innetwork_scansTabelle
0.5.0 - 2026-06-29
Added
- Netzwerk-Modul: Menüpunkt „Netzwerk" auf Ebene 0 für alle eingeloggten Benutzer
- Import von Angry IP Scanner
.txt-Exporten (tab-getrennt) via Datei-Upload - Automatische Erkennung und Speicherung von Netzwerkgeräten anhand MAC-Adresse
- Chronologische Scan-Sessions mit Metadaten (Subnetz, Quelle, Gesamt-/Online-Hosts)
- Änderungserkennung: neue Geräte, IP-Wechsel, Online/Offline-Statuswechsel
- Ereignis-Protokoll pro Gerät mit Bestätigungs-Workflow (✓ Bestätigen)
- Geräte-Detailansicht: Stammdaten, Bezeichnung, Notizen, IP-Verlauf, Ereignislog
- Geräte-Übersicht mit Suche und Statusfilter (Online/Offline)
- Scan-Detailansicht mit vollständiger Host-Tabelle
- Manuelle Notizen zu Geräten hinzufügbar
- 4 neue Datenbanktabellen:
network_scans,network_devices,network_hosts,network_device_events NetworkScanImporter-Service für Parser-Logik (MAC-Normalisierung, Spalten-Aliase)NetworkControllermit 9 Routen
0.4.0 - 2026-06-29
Added
- Einstellungen → Layout: Seitenname, Logo-Upload, Button-Farbe (Colorpicker), Dark/Light-Mode
- Settings-Tabelle als Key-Value-Store in der Datenbank
- SettingsService mit Cache-Layer (automatische Invalidierung bei Änderung)
- SettingsServiceProvider: Einstellungen werden global in alle Views injiziert
- Dark-Mode via
dark-Klasse auf HTML-Element (Tailwind CSS) - CSS-Variable
--color-primaryfür dynamische Button-Farbe - Hilfe-Menü auf Ebene 0 (Dropdown) für alle eingeloggten Benutzer
- Hilfe → Handbuch: Übersicht über Rollen, Funktionen, Bedienung
- Hilfe → Changelog: Changelog direkt im Browser lesbar
- Navigation: Einstellungen-Dropdown um Layout erweitert
0.3.0 - 2026-06-27
Added
- Admin-Modul: komplette Benutzerverwaltung unter
/admin/users - Benutzer anlegen, bearbeiten, löschen über Web-Oberfläche
- Rollenzuweisung direkt im Formular (admin / manager / user)
- Navigationslink „Benutzerverwaltung" nur für Admins sichtbar (
@role('admin')) - Gefahrenzone im Bearbeiten-Formular für sicheres Löschen
- Schutz: eigener Account kann nicht gelöscht werden
Security
- Admin-Routen mit Middleware
role:admingeschützt
0.2.0 - 2026-06-27
Added
- Laravel 13 Projektstruktur
- Authentifizierung via Laravel Breeze (Blade)
- RBAC via Spatie Permission v8 (admin/manager/user)
- MariaDB-Anbindung konfiguriert
- Rollen:
admin,manager,user - Permissions:
user.*,role.*,network.* - Standard-Admin-Account: admin@mms-systemservice.de
- Docker-Umgebung: Gitea, MariaDB, phpMyAdmin
0.1.0 - 2026-06-27
Added
- Initiale Projektstruktur angelegt
- Git-Repository mit Gitea-Remote eingerichtet
- Grundlegende PHP-Projektstruktur (public/, src/, config/)
- composer.json, .gitignore, README.md