#015 Feinschliff für 1.0 #15

Closed
opened 2026-09-17 19:43:03 +00:00 by florian.wilde · 0 comments
Owner

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

Akzeptanzkriterien

  • Alle Seiten in Hell und Dunkel lesbar
  • 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.


Quelle: docs/issues/015-feinschliff-v1.md – dort wird dieses Issue gepflegt.

## 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. --- Quelle: `docs/issues/015-feinschliff-v1.md` – dort wird dieses Issue gepflegt.
florian.wilde added this to the v1.0.0 milestone 2026-09-17 19:43:03 +00:00
florian.wilde added the uisicherheit labels 2026-09-17 19:43:03 +00:00
florian.wilde modified the milestone from v1.0.0 to v0.11.0 2026-09-17 21:27:28 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: florian.wilde/ProxLedger#15