Der Entwicklungsserver warnte bei jedem Start: „Package pg can't be external".
Die Ursache lag im Abhängigkeitsbaum - wir pinnten pg auf 8.13.1,
@prisma/adapter-pg verlangt ^8.16.3, also lagen zwei Kopien nebeneinander und
Next konnte pg nicht als extern behandeln. Unser Pin steht jetzt auf 8.23.0,
@types/pg entsprechend.
Damit wurde eine zweite Warnung sichtbar, gleiche Art: der generierte Client
verweist auf @prisma/client/runtime, und Next löst das aus dem
Projektverzeichnis auf - dort lag es aber nicht. @prisma/client ist jetzt auch
in web deklariert.
Beide Warnungen sind nachgeprüft weg, mit einem Dev-Server auf eigenem Port und
zwei Seitenaufrufen.
Nebenbei: Next hatte meine Wegwerf-Verzeichnisse von den Zeitmessungen
(.next-mess1 bis .next-pg2) in die include-Liste von web/tsconfig.json
geschrieben. Zurückgesetzt auf den ursprünglichen Stand.
Der Worker hängt am Discord-Gateway und schreibt alle 30 Sekunden sein
Lebenszeichen in die Datenbank, damit /api/health im Web-Container den
Gateway-Zustand kennt, ohne selbst mit Discord zu sprechen. healthcheck.js
prüft genau dieses Lebenszeichen. Der eigentliche Rollen-Abgleich kommt in
Phase 1.
Der PDF-Dienst rendert die Druckansicht über Playwright. Kein PDF-Layout von
Hand, die Gestaltung kommt aus @media print der Seite selbst. Er kennt keine
Rechte: wer darf, entscheidet die Web-App, bevor sie hier anfragt, und schickt
das Sitzungs-Cookie des Abrufers mit, damit die gerenderte Seite dessen
Freigabestufe sieht.