Files
Network-MGMT/CHANGELOG.md
T

165 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.
Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.0.0/).
Dieses Projekt verwendet [Semantic Versioning](https://semver.org/lang/de/).
## [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_address` in `network_devices` ist 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_name` wird 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 `nmap` pro Segment (Artisan Command `network: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:scan` jede 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_at` und `scan_interval_minutes` in 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_segments` als 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_id` FK in `network_scans` Tabelle
---
## [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)
- `NetworkController` mit 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-primary` fü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:admin` geschü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
[Unreleased]: http://localhost:3000/admin/Network-MGMT/compare/v0.9.0...HEAD
[0.9.0]: http://localhost:3000/admin/Network-MGMT/compare/v0.8.0...v0.9.0
[0.8.0]: http://localhost:3000/admin/Network-MGMT/compare/v0.7.0...v0.8.0
[0.7.0]: http://localhost:3000/admin/Network-MGMT/compare/v0.6.0...v0.7.0
[0.6.0]: http://localhost:3000/admin/Network-MGMT/compare/v0.5.0...v0.6.0
[0.5.0]: http://localhost:3000/admin/Network-MGMT/compare/v0.4.0...v0.5.0
[0.4.0]: http://localhost:3000/admin/Network-MGMT/compare/v0.3.0...v0.4.0
[0.3.0]: http://localhost:3000/admin/Network-MGMT/compare/v0.2.0...v0.3.0
[0.2.0]: http://localhost:3000/admin/Network-MGMT/compare/v0.1.0...v0.2.0
[0.1.0]: http://localhost:3000/admin/Network-MGMT/releases/tag/v0.1.0