165 lines
7.0 KiB
Markdown
165 lines
7.0 KiB
Markdown
# 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
|