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>
60 lines
2.7 KiB
Markdown
60 lines
2.7 KiB
Markdown
# #015 Feinschliff für 1.0
|
||
**Status:** erledigt
|
||
**Meilenstein:** v0.11.0
|
||
**Labels:** ui, sicherheit
|
||
**Geschätzt:** 6 h **Tatsächlich:** 0 h 35 min
|
||
|
||
## Ziel
|
||
Produktionsreife: Dark-Mode, Mobilansicht, Barrierefreiheit und Sicherheitsprüfung.
|
||
|
||
## Aufgaben
|
||
- [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
|
||
- [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.
|