Files
Laufzettel/docs/issues/README.md
T
Florian WildeandClaude Opus 5 f3950847f3
Prüfung / pruefung (push) Waiting to run
Prüfung / e2e (push) Blocked by required conditions
feat(laeufe): Uebergabeprotokoll als PDF (#041)
Neben "Drucken" steht am Lauf "Als PDF", im Archiv an jedem Treffer "Protokoll
als PDF" — dasselbe Blatt als fertige Datei, zum Verschicken oder Abheften.
Unten darauf jetzt zwei Unterschriftsfelder mit Zeile fuer Ort, Datum und Namen;
wo eine Vier-Augen-Freigabe erteilt wurde, steht sie mit im Kopf.

Erzeugt wird es, indem der Server seine eigene Druckansicht ueber 127.0.0.1
laedt und druckt — mit dem Sitzungscookie des Anfragenden. Damit gibt es genau
eine Vorlage fuer Papier und Datei, und fuer das PDF gilt dieselbe Rechte- und
Mandantenpruefung wie fuer die Seite. Ein zweites Layout waere billiger und
wuerde frueher oder spaeter abweichen, ohne dass es jemandem auffaellt.

Ein eigener Browser-Kontext je PDF, kein geteilter: er traegt die fremde
Sitzung, und ein geteilter gaebe sie an das naechste PDF weiter. Gespeichert
wird nichts — ein abgelegtes PDF waere eine zweite Wahrheit neben dem Lauf.
Ein erzeugtes Passwort steht auch hier nie darauf, geprueft am extrahierten
Text des fertigen PDF und nicht an den Bytes: der Inhalt ist komprimiert, dort
nichts zu finden bewiese nichts.

Chromium bleibt optional, und die gemessene Zahl ist der Grund: das
Laufzeitbild waechst von 370 MB auf 1,52 GB, Alpines chromium kostet allein
1,13 GB. Er kommt nur mit `--build-arg MIT_PDF=1` beziehungsweise
`deploy/install.sh --mit-pdf` mit. Fehlt er, erscheint der Knopf gar nicht
erst — ein Knopf, der zuverlaessig in eine Fehlermeldung fuehrt, ist schlimmer
als keiner. Ein direkter Aufruf bekommt 503 mit einer Meldung, die sagt, was
fehlt und wo es steht; ein leeres PDF gibt es in keinem Fall.

Meine Schaetzung lag um das Dreieinhalbfache daneben: "+328 MB" war das
.apk-Paket, nicht das Bild, und stand schon im Dockerfile-Kommentar, bevor ich
gebaut hatte. Jetzt steht die gemessene Zahl an drei Stellen.

1545 Vitest-Tests (vorher 1526): 15 in tests/pdf.test.ts, die den Handler echt
fahren, 3 in tests/pdf-grenze.test.ts fuer die Obergrenze mit gestelltem
Browser, einer in tests/archiv.test.ts. Dazu drei E2E-Ablaeufe; volle Suite
gruen mit 118 bestanden. Ein Blatt wurde wirklich erzeugt und angesehen.

Sechs Gegenproben, alle angeschlagen — darunter ein echtes Passwort auf dem
Blatt und die Freigabe des Zaehlers aus dem finally genommen, der Fall, in dem
ein Fehlschlag die PDF-Erzeugung bis zum Neustart leise stilllegt.

Closes #41

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-10-25 11:14:25 +01:00

5.2 KiB
Raw Blame History

Issues

Diese Dateien sind die Quelle; pnpm issues:sync spiegelt sie in den Gitea-Tracker. pnpm pruefe:doku erzwingt, dass Dateien und diese Übersicht übereinstimmen.

Nr. Titel Status Meilenstein Geschätzt Tatsächlich
#001 Phase 1: MVP in Arbeit v0.1.0 – –
#002 Phase 2: Verzeichnis-Alternativen, Bausteine, Anhänge in Arbeit v0.2.0 76 h –
#003 Phase 3: Protokoll, bedingte Schritte, Freigabe offen v0.3.0 – –
#004 Phase 4: Aktionen, Connectors, REST-API offen v0.4.0 – –
#005 M0 – Gerüst, Prozess, Design-Token erledigt v0.1.0 6 h 1 h 25 min
#006 M1 – Datenmodell erledigt v0.1.0 5 h 1 h 10 min
#007 M2 – Auth, Rollen, Benutzer erledigt v0.1.0 8 h 1 h 35 min
#008 M3 – Betriebsmodus und Kunden erledigt v0.1.0 6 h 1 h 20 min
#009 M4 – Vorlagen-Versionierung im Service erledigt v0.1.0 6 h 1 h 20 min
#010 M5 – Vorlagen-Editor erledigt v0.1.0 10 h 2 h 10 min
#011 M6 – Mitarbeiter, Abteilungen, Geräte erledigt v0.1.0 9 h 2 h 15 min
#012 M7 – Platzhalter, Namensregeln, Escaping erledigt v0.1.0 8 h 2 h 30 min
#013 M8 – Läufe: Service und Abarbeitung erledigt v0.1.0 14 h 3 h 05 min
#014 M9 – QR-Tags, Geräteseite, Etiketten, Scanner erledigt v0.1.0 12 h 3 h 35 min
#015 M10 – Dashboard und Archiv erledigt v0.1.0 8 h 2 h 20 min
#016 M11 – Verzeichnis und LDAP-Abgleich erledigt v0.1.0 12 h 3 h 25 min
#017 M12 – Seed der sieben Vorlagen erledigt v0.1.0 8 h 1 h 30 min
#018 M13 – E2E-Tests, Anleitung, PDF erledigt v0.1.0 14 h 2 h 15 min
#019 M14 – Betriebswege und Release v0.1.0 erledigt v0.1.0 10 h 5 h 25 min
#020 Vorgesetzter auch für von Hand angelegte Personen erledigt v0.2.0 3 h 1 h 20 min
#021 Stabiler Schlüssel für Seed-Vorlagen erledigt v0.2.0 2 h 55 min
#022 Schnellstart je Gerätetyp pflegen erledigt v0.2.0 3 h 1 h 10 min
#023 Protokoll ansehen erledigt v0.2.0 4 h 1 h 50 min
#024 Proxmox-Einzeiler auf einem echten PVE-Host gegenprüfen offen v0.3.0 2 h –
#025 Healthcheck gibt die rohe Datenbankfehlermeldung heraus erledigt v0.2.0 1 h 25 min
#026 Zwei Konventionen präzisieren, die strenger klingen als sie gemeint sind erledigt v0.2.0 1 h 20 min
#027 Die Editor-Abläufe lassen ihre Vorlagen stehen erledigt v0.2.0 1 h 2 h 10 min
#028 M15 – Quellenarten und Microsoft-Graph-Quelle erledigt v0.2.0 10 h 4 h 10 min
#029 M16 – SCIM-Endpunkt als Alternative zum Abgleich erledigt v0.2.0 12 h 4 h 05 min
#030 M17 – Wiederverwendbare Bausteine erledigt v0.2.0 12 h 2 h 25 min
#031 M18 – Abteilungsspezifische Zusatzabschnitte erledigt v0.2.0 8 h 1 h 35 min
#032 M19 – Anhänge und Fotos an Schritten erledigt v0.2.0 10 h 3 h 05 min
#033 M20 – Live-Aktualisierung per SSE statt Polling erledigt v0.2.0 6 h 1 h 40 min
#034 M21 – Benachrichtigungen per Mail und Webhook erledigt v0.2.0 10 h 3 h 30 min
#035 M22 – Mitarbeiter-Selbstauskunft erledigt v0.2.0 8 h 2 h 50 min
#036 Reviewbefunde aus der Durchsicht von Phase 2 erledigt v0.2.0 4 h 3 h 40 min
#037 Zwei Nachzügler aus der Durchsicht von Phase 2 erledigt v0.2.0 2 h 1 h 50 min
#038 Die E2E-Abläufe laufen in keinem Tor und waren monatelang rot erledigt v0.2.0 3 h 1 h 35 min
#039 M23 – Bedingte Schritte und Abschnitte erledigt v0.3.0 12 h 5 h 20 min
#040 M24 – Vier-Augen-Freigabe erledigt v0.3.0 8 h 3 h 30 min
#041 M25 – PDF-Übergabeprotokoll mit Unterschrift erledigt v0.3.0 8 h 4 h 10 min
#042 M26 – Weitere Schritt-Typen offen v0.3.0 6 h –
Summe 272 h 86 h 55 min