Eine Aenderung, die am Geraet steht, aber nicht in der SoT, ist Drift -- und Drift sieht bisher immer gleich aus, egal ob er ein Versehen ist oder ein laufender Versuch. Wer testen wollte, hatte die Wahl zwischen "Compliance kaputt" und "gar nicht testen". gc-transaktion.py macht die Absicht sichtbar, ohne die Governance aufzuweichen: der Change geht weiterhin ausschliesslich ueber Golden Config, die Compliance meldet den Drift weiterhin -- neu ist, dass `status` ihn zuordnen kann, "erwartet (offene Transaktion)" statt "unerklaert". Und dass er ein Ablaufdatum hat. Drei Regeln erzwingt das Werkzeug: --expires ist Pflicht (eine unbefristete Ausnahme ist undokumentierter Drift mit besserem Gewissen), der Scope ist eine ComplianceRule und kein Freibrief (Drift ausserhalb wird ausdruecklich als nicht abgedeckt gemeldet), und es gibt genau eine offene Transaktion je Geraet -- sonst ist beim Rollback nicht mehr entscheidbar, wohin zurueck. Der Commit wird verweigert, solange der Scope noch driftet: dann waere die SoT gar nicht nachgezogen worden. Zwei bewusste Grenzen: der Rollback pusht nicht selbst, sondern schreibt einen Vorschlag zum Pruefen (add-Zeilen aus einem /export legen neu an, statt zu aendern), und der Snapshot enthaelt nur den Scope-Abschnitt. Der Vollexport enthielt Firewall, Adressen, Benutzerliste und Skriptquellen -- nichts davon braucht der Rueckbau, und die Akten liegen im Git. Erste Akte ist der ether3-Trunk: ap1 haengt testweise am Sideboard auf core ether3, und dieser Port traegt bisher keines der sieben VLANs. Deploy steht noch aus -- er wurde in dieser Session vom Berechtigungs-Klassifikator blockiert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
15 lines
469 B
JSON
15 lines
469 B
JSON
{
|
|
"change_id": "TEST-ether3-trunk-ap1-sideboard",
|
|
"device": "crs326-core",
|
|
"scope": "bridge-vlan",
|
|
"match_config": [
|
|
"/interface bridge vlan"
|
|
],
|
|
"reason": "ap1 testweise am Sideboard, Uplink auf core ether3 statt ether15 (TP25 Standorttest)",
|
|
"started": "2026-08-21",
|
|
"expires": "2026-09-04",
|
|
"state": "open",
|
|
"snapshot": "docs/transaktionen/TEST-ether3-trunk-ap1-sideboard.snapshot.rsc",
|
|
"device_backup": "vor-ether3-trunk-20260821.backup"
|
|
}
|