TLS-Gate: Storno-Grund im Audit (Pflicht), roter Knopf scheiterte am Browser-Cache
Von: Branko → OZMAI, Crew
Stand: 9. Oktober 2026
Typ: EXTERNAL_SOURCE (Inbox-Regel §3 — keine automatische Geltung, kein Brain-Status)
Charakter: NACHTRAG. Ersetzt zwei Aussagen:
(1) In 2026-10-09_TLS-GATE-ERSTER-ECHTER-IMPORT-UND-SEITE-KATALOG-CRUD-NACHTRAG_BRANKO.md §5 und im Folgeeintrag §4: „Der Grund steht nur in order_events, nicht im Audit-Eintrag“ → steht jetzt im Audit, Pflicht.
(2) In 2026-10-09_TLS-GATE-KATALOG-ROTER-LOESCHEN-KNOPF-UND-KLICKTEST-OZM03-NACHTRAG_BRANKO.md §2: Der rote Knopf war ausgeliefert, im Browser aber nicht sichtbar (alte CSS aus dem Cache). Erst mit 25db784 kommt er sicher an.
Quelle: Repo TLS-Gate-Mock-Pipeline, main 25db784, ohne eigenen Tag.
Belege: lokal alle Suiten grün, tests/test_orders.sh 119, tests/test_katalog.sh 98; VM run 87, p3 48, p4 54, p5 31, p6 22, p7 50.
Legende: ✅ real/gebaut · 🧪 gebaut, getestet, nicht live · 🛠 spezifiziert · ⬜ OPEN · ❓ UNKNOWN
1. Storno-Grund im Audit
- 🧪
order_cli.php order cancel <id> <grund>: Der Grund ist Pflicht (vorher optional, Standard „abgebrochen“). Ohne oder mit leerem Grund: Abbruch mit Nutzungshinweis, nichts geändert. - 🧪 Audit
cli.order_cancelträgtgrund,von(Zustand vor dem Abbruch) undregistrar_ref. Vorher stand nur das Ziel im Audit. - ✅ Abfragbar auf
auditlog.phpüber die vorhandene Suche (durchsucht Aktion und Kontext), z. B. „order_cancel“ oder „falscher CSR“, oder per SQL aufaudit_log. - Widerruf über die Node-CA hatte den Grund schon vorher im Audit (
cli.node_ca_revoke,reason). - ⬜ Unverändert offen: Ein Storno beim Registrar gibt es im Code nicht. ❓ Ob ein per
sslReplaceersetzter Vorgang als „ersetzt“ abfragbar ist, ist weiter nicht geprüft.
2. Roter Knopf und Browser-Cache
- ✅ Befund: Server und Template lieferten den roten Knopf aus (geprüft per HTTP), Branko sah ihn trotzdem nicht. nginx schickt für
assets/keinCache-Control, nurLast-Modified; der Browser darf die alte CSS dann eine Weile ohne Nachfrage weiterverwenden. - 🧪 Behebung: CSS und JS werden mit Versionsstempel eingebunden (
assets/tlsgate.css?v=<Änderungszeit>,View::asset). Nach jeder Änderung gibt es eine neue Adresse. - Nebenwirkung im Test: Ein Drill in
p3legt absichtlich die alte View aus v3.0.1 unter die aktuellen Templates. Er bekam einen schlichtenasset()-Ersatz, damit er weiter nur das alte Verhalten vone()prüft.
3. Einordnung als Prüffall (Branko, nicht OZMAI-Geltung)
„Ausgeliefert“ ist nicht „gesehen“: Die Prüfung per HTTP war grün, die Seite im Browser zeigte die alte Fassung. Belegt war die Änderung erst durch Brankos Blick, nicht durch die Suite.