Files
Laufzettel/docs/anleitung
Florian WildeandClaude Opus 5 1be73b266c
Prüfung / pruefung (pull_request) Canceled after 0s
Prüfung / e2e (pull_request) Canceled after 0s
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s
feat(laeufe): Live-Aktualisierung per Ereignisstrom statt Polling (#53)
Die Abarbeitungsansicht fragte alle zehn Sekunden nach dem Zustand. Jetzt
melden vier Datenbank-Trigger `NOTIFY lauf_geaendert, '<laufId>'`, eine
LISTEN-Verbindung je Prozess hoert zu, und der Route Handler schiebt
weiter. Gemessen: der Haken des Kollegen ist nach 485 ms beim Zuschauer
(am Handy 487 ms), vorher bis zu zehn Sekunden. Zwanzig offene Laschen
kosten nichts mehr statt zwanzig Abfragen je zehn Sekunden.

Das Ereignis kommt aus der Datenbank und nicht aus dem Dienst, aus
demselben Grund, aus dem auch die Regeln dort stehen: ein Trigger sieht
auch den Seed, eine Migration und die Reparatur per psql. Und NOTIFY
erreicht jede Instanz der Anwendung, ohne einen zweiten Dienst.

Welche Tabellen melden, haengt an dem, was `laufZustand` liefert — nicht
daran, was das Issue vorgeschlagen hat. Mit Triggern nur auf
Schrittergebnis und Lauf waere der Strom ein **Rueckschritt** gewesen:
das Polling verglich den ganzen Stand und sah deshalb auch Kommentare,
ein Strom sieht nur, was gemeldet wird. Der Kommentar des Kollegen waere
nie angekommen, und die Seite haette ausgesehen wie immer. Es melden
jetzt vier Tabellen, und `laufZustand` traegt `anzahlAnhaenge` — ein
Ereignis ohne Entsprechung im Zustand loest nichts aus.

Das Polling bleibt als Rueckfall an **derselben** Adresse, unterschieden
nur am Accept-Kopf: eine Rechtepruefung, ein Lesemodell, eine Nutzlast.
Ein zweiter Endpunkt waere eine zweite Stelle, an der jemand
rechtErforderlich vergessen kann. Bei erreichter Obergrenze antwortet
der Handler gewoehnlich mit JSON; EventSource meldet darauf einen Fehler
und versucht es nicht wieder, also faellt der Client von sich aus
zurueck — ohne Sonderfall.

Nebenbei zwei Fehler in docs/betrieb/reverse-proxy.md behoben, beide aus
#52: `client_max_body_size 8m` bei `ANHANG_MAX_MB=10` haette ein
10-MB-Foto mit 413 abgewiesen, bevor die eigene Meldung zum Zuge kommt.

Closes #53

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-10-05 22:50:32 +02:00
..

Laufzettel — Anleitung

Laufzettel ist eine Checkliste für wiederkehrende IT-Arbeiten. Ein Redakteur schreibt einmal auf, was bei einer PC-Neuinstallation, einem Onboarding oder einem Patchday zu tun ist — das ist eine Vorlage. Aus einer veröffentlichten Vorlage entsteht ein Lauf: die Abschrift für einen bestimmten Fall, mit einem bestimmten Gerät und einer bestimmten Person. Den Lauf arbeitet ein Techniker Schritt für Schritt ab, oft am Handy, direkt am Gerät. Am Ende wird er abgeschlossen und archiviert und ändert sich nie wieder.

Auf jedem Gerät klebt ein QR-Aufkleber. Wer ihn scannt, landet auf der Geräteseite und sieht, was dort zu tun ist und was dort schon getan wurde. Der Code auf dem Aufkleber wird nie geändert und nie an ein zweites Gerät vergeben — er ist die einzige Angabe am Gerät, die Jahre hält.

Die Übersicht nach dem Anmelden mit den Blöcken „Überfällig“, „Mir zugewiesen“ und „Zuletzt bearbeitet“

Wer welches Kapitel braucht

Techniker — du arbeitest Läufe ab, scannst Aufkleber und druckst Etiketten:

Administrator oder Redakteur — du richtest ein und pflegst:

Zwei Betriebsmodi

Laufzettel läuft in einem von zwei Modi. Der Modus entscheidet, ob es eine Kundenebene gibt, und ändert einige Beschriftungen.

Modus Für wen Kundenebene
Intern eine Firma und ihre eigenen Mitarbeiter unsichtbar
Dienstleistung IT-Dienstleister mit mehreren Kunden sichtbar: Kundenliste, Kundenwahl, Kürzel auf dem Etikett

Im Modus Intern heißt der Menüpunkt „Mitarbeiter & Geräte“, im Modus Dienstleistung „Personen & Geräte“; dort kommt außerdem „Kunden“ dazu, und das Verzeichnis fällt weg. Wo diese Anleitung „Person“ schreibt, heißt es im Modus Intern auch „Mitarbeiter“ — gemeint ist dasselbe. Umgestellt wird der Modus unter Admin, siehe Kapitel 07.

Drei Zusagen, die überall gelten

  1. Eine veröffentlichte Version wird nie verändert. Sonst zeigte ein alter Lauf Schritte, die es damals nicht gab. „Bearbeiten“ erzeugt stattdessen eine Kopie als Entwurf.
  2. Ein archivierter Lauf ist schreibgeschützt. Kein Haken, keine Notiz, kein Kommentar geht danach noch. Nur ein Administrator holt ihn zurück.
  3. Gelöscht wird fast nichts. Geräte, Abteilungen, Vorlagen und Kunden werden archiviert, Personen nur deaktiviert. Ein archivierter Lauf muss auch in zehn Jahren noch sagen können, für wen er lief.