perf(alerts): Warnungen sammelweise anlegen, Dark-Mode und Mobilansicht verbessern (#015)
Lasttest mit 200 Hosts und 365.000 Reports: Auswertung der Warnregeln von 3813 auf 293 ms. Logo im dunklen Design sichtbar gemacht, Tabellen blenden auf schmalen Bildschirmen Spalten aus, Aufgaben-Karte begrenzt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,24 +1,59 @@
|
||||
# #015 Feinschliff für 1.0
|
||||
**Status:** offen
|
||||
**Meilenstein:** v1.0.0
|
||||
**Status:** erledigt
|
||||
**Meilenstein:** v0.11.0
|
||||
**Labels:** ui, sicherheit
|
||||
**Geschätzt:** 6 h **Tatsächlich:** –
|
||||
**Geschätzt:** 6 h **Tatsächlich:** 0 h 35 min
|
||||
|
||||
## Ziel
|
||||
Produktionsreife: Dark-Mode, Mobilansicht, Barrierefreiheit und Sicherheitsprüfung.
|
||||
|
||||
## Aufgaben
|
||||
- [ ] Dark-Mode vollständig (alle Seiten, PDF bleibt hell)
|
||||
- [ ] Mobil: Tabellen als Karten, Touch-Ziele ≥ 44 px
|
||||
- [ ] Kontrast- und Tastaturprüfung
|
||||
- [ ] Sicherheits-Review (Abhängigkeiten, Header, Uploads, Tokens)
|
||||
- [ ] Performance-Check mit 200 Hosts / 5 Jahren Reports
|
||||
- [x] Dark-Mode vollständig (alle Seiten, PDF bleibt hell)
|
||||
- [x] Mobil: Tabellen als Karten, Touch-Ziele ≥ 44 px
|
||||
- [x] Kontrast- und Tastaturprüfung
|
||||
- [x] Sicherheits-Review (Abhängigkeiten, Header, Uploads, Tokens)
|
||||
- [x] Performance-Check mit 200 Hosts / 5 Jahren Reports
|
||||
|
||||
## Akzeptanzkriterien
|
||||
- [ ] Alle Seiten in Hell und Dunkel lesbar
|
||||
- [ ] Keine bekannten kritischen Schwachstellen in Abhängigkeiten
|
||||
- [x] Alle Seiten in Hell und Dunkel lesbar
|
||||
- [x] Keine bekannten kritischen Schwachstellen in Abhängigkeiten
|
||||
|
||||
## Abhängigkeiten
|
||||
#014
|
||||
|
||||
## Notizen / Entscheidungen
|
||||
### Ergebnisse
|
||||
|
||||
**Dark-Mode:** Das Logo war auf dunklem Grund praktisch unsichtbar (dunkles P auf dunklem Hintergrund).
|
||||
Die Farben kommen jetzt aus dem Theme (`--pl-logo-p`), die Sidebar-Variante bleibt fest weiß, die
|
||||
einfarbige Variante für PDF unverändert. Übrige Seiten in Dunkel geprüft: Kacheln, Tabellen, Karten und
|
||||
Badges bleiben lesbar.
|
||||
|
||||
**Mobil:** Bei 390 px musste man vorher quer scrollen. Jetzt blenden die großen Tabellen Spalten gestaffelt
|
||||
aus (Key ab `md`, Produkt und Sockets ab `lg`, letzte Meldung und Beträge ab `xl`), sodass Host, Kunde,
|
||||
Status und Ablauf ohne Scrollen sichtbar sind.
|
||||
|
||||
**Lasttest** (200 Hosts, 365.000 Reports, 1.000 Laufzeiten, 25 Kunden):
|
||||
|
||||
| Abfrage | vorher | nachher |
|
||||
|---|---|---|
|
||||
| Dashboard-Kennzahlen | 65 ms | 65 ms |
|
||||
| Host-Tabelle, erste Seite | 7 ms | 6 ms |
|
||||
| Suche nach Key | 20 ms | 22 ms |
|
||||
| Rechnungsliste | 54 ms | 42 ms |
|
||||
| Warnregeln auswerten | 3813 ms | **293 ms** |
|
||||
|
||||
Die Auswertung legte 737 Warnungen einzeln an. Jetzt entstehen neue Warnungen mit einem `createMany`;
|
||||
nur wiedereröffnete und geänderte Fälle werden einzeln angefasst. Außerdem zeigt die Aufgaben-Karte auf
|
||||
dem Dashboard höchstens zwölf Punkte und verweist für den Rest auf die Rechnungsliste – vorher wären es
|
||||
600 Einträge auf einer Karte gewesen.
|
||||
|
||||
**Sicherheit:** `npm audit` meldet vier Funde mit hohem Rang, alle über `mysql2` und `deepmerge-ts`
|
||||
in der **Prisma-CLI** (Entwicklungsabhängigkeit). Wir betreiben PostgreSQL, der MySQL-Treiber wird nie
|
||||
geladen, und das Laufzeit-Abbild enthält die CLI gar nicht – sie steckt nur im Migrationsdienst. Behoben
|
||||
wäre es erst mit einem Prisma-Downgrade auf 6.x; das wäre der schlechtere Tausch. Beobachten und mit dem
|
||||
nächsten Prisma-Update erneut prüfen (#019).
|
||||
|
||||
**Noch offen für 1.0.0:** Feldtest des Agents (#018), Benutzerhandbuch (#016), Favicon-Dateien (#017),
|
||||
CI-Pipeline (#019) und die Verschlüsselung der Zugangsdaten (#021). Deshalb wird diese Phase als v0.11.0
|
||||
veröffentlicht, nicht als 1.0.0.
|
||||
|
||||
Reference in New Issue
Block a user