← Code-Übersicht

0018_supervision_gateway_evidence.sql

Pfad: migrations/0018_supervision_gateway_evidence.sql

Ext: sql

Größe: 4943 Bytes

Geändert: 2026-07-16 18:10:12+02

UPDATE dokumentation
SET body = body || $progress$

## Supervisionsfortschritt 2026-07-16 (Offline-Gateway)
- Reproduzierbares `bin/quality-gates` eingefuehrt: Secret-/Grossdatei-, YAML-, Syntax-, PHPUnit-, PHPStan-, Node- und LOC-Gate.
- Aktueller Lauf: 216 Versionskandidaten ohne Fund, 65 PHPUnit-Tests/155 Assertions, PHPStan Level 8 ohne Fehler, 9 Node-Tests und LOC gruen.
$progress$,
    updated_at = now()
WHERE slug = 'task-rechnungstests-und-fehlerinjektion';

UPDATE dokumentation
SET body = body || $progress$

## Supervisionsfortschritt 2026-07-16 (Betriebsalarm)
- `InvoiceLogAlertChecker` und CLI alarmieren `AUTH`, `UNKNOWN` und defektes Auditformat fail-closed.
- Ausgabe ist strikt auf Run-ID, Fehlercode und Phase begrenzt; ein Canary-Secret bleibt nachweislich aus dem Ergebnis entfernt.
$progress$,
    updated_at = now()
WHERE slug = 'task-fehlerklassifikation-logging-und-datenschutz';

UPDATE dokumentation
SET body = body || $progress$

## Supervisionsfortschritt 2026-07-16 (Runbook)
- Versioniertes Betriebsrunbook fuer Installation, Readiness, Restart, Reconciliation, Upgrade, Incident, Rotation und Roll-forward-Rollback ergaenzt.
- Die produktive Installation und der reale Login bleiben ohne die ausgeschlossene externe Wetell-Konfiguration offen.
$progress$,
    updated_at = now()
WHERE slug = 'task-betriebsreife-deployment-und-abhaengigkeiten';

UPDATE dokumentation
SET body = body || $progress$

## Supervisionsfortschritt 2026-07-16 (Quality-Gateway)
- Reproduzierbares Offline-Gateway und Vorabscan fuer Secrets, Runtime-Artefakte und Dateien ueber 5 MiB sind versioniert und gruen.
- Erstcommit, immutable Release-ID und Rollbackbeleg bleiben bis zum finalen externen E2E gesperrt.
$progress$,
    updated_at = now()
WHERE slug = 'task-versionskontrolle-und-reproduzierbare-quality-toolchain';

UPDATE dokumentation
SET body = $body$# Vollstaendige Supervision: Gesamtbefund

**Stand:** 2026-07-16  
**Bewertung:** NICHT EINSATZBEREIT fuer unbeaufsichtigte externe Buchungen  
**Scope:** F01-F18 ohne Credential-Task F11

## Faktisch gruene Nachweise

- Offline-Gateway: 65 PHPUnit-Tests/155 Assertions, PHPStan Level 8, 9 Node-Tests, PHP-Syntax, YAML und LOC ohne Fehler.
- Secret-/Grossdatei-Gate: 216 Versionskandidaten ohne Fund; Credentials, Rechnungs-PDFs, State und Logs sind ausgeschlossen.
- F01-F04: kanonische Identitaet, exakte Dezimalbetraege, Full-Lock-State, atomare Persistenz, Retry und Remote-Recovery sind getestet.
- F05: offizieller Lexware-`purchaseinvoice`-Vertrag, exakter Kontaktabgleich, Konflikterkennung und idempotenter Dateiupload sind offline getestet.
- F06-F08: HTTPS-Allowlist, Redirectpruefung, PDF-Magic/Ende/Groesse, eine Browserinstanz, Context pro Job und aktive Adapterbindung sind getestet.
- F09, F10, F12 und F13 sind erledigt: Doku read-only, GET ohne Historiennebeneffekt, driftfreie Migrationen und globale Code-Gates.
- F15-F18 besitzen Redaction/Alarmierung, Betriebsrunbook, kongruente Doku und reproduzierbare Toolchains als belegten Zwischenstand.

## Externe Blocker und bewusst offene Gateways

- F11 ist auf Benutzeranweisung vollstaendig ausgeschlossen; Credential-Dateien, Inhalte und Rechte wurden nicht veraendert.
- Eine reale Wetell-Anmeldung ist ohne vorhandene `credentials/wetell.json` nicht ausfuehrbar.
- Der offizielle Lexware-Host ist aus dieser Umgebung bereits vor HTTP/TLS nicht erreichbar (`curl 28`, `HTTP 000`).
- Daher fehlen reales Wetell-PDF, feldweiser Lieferantenbeleg, isoliertes Lexware-Testtenant-Posting und finaler Restart-/Rollback-E2E.
- Kein Erstcommit und keine Einsatzbereit-Freigabe, solange diese Nachweise fehlen.

## Findings

| ID | Prioritaet | Status |
|---|---|---|
| F01 | P0 | IN UMSETZUNG - externer Exactly-once-E2E offen |
| F02 | P0 | IN UMSETZUNG - realer Duplikatabgleich offen |
| F03 | P0 | IN UMSETZUNG - reales Lieferanten-PDF offen |
| F04 | P0 | IN UMSETZUNG - externer Crashlauf offen |
| F05 | P0 | IN UMSETZUNG - Lexware nicht erreichbar |
| F06 | P0 | IN UMSETZUNG - realer Wetell-Download offen |
| F07 | P1 | IN UMSETZUNG - Installations-/Lastdrill offen |
| F08 | P1 | IN UMSETZUNG - reale Sessionmatrix offen |
| F09 | P0 | ERLEDIGT |
| F10 | P0 | ERLEDIGT - akzeptiertes internes Demo-Risiko |
| F11 | P0 | AUSGESCHLOSSEN |
| F12 | P0 | ERLEDIGT |
| F13 | P1 | ERLEDIGT |
| F14 | P1 | IN UMSETZUNG - externer E2E offen |
| F15 | P1 | IN UMSETZUNG - Betriebsintegration des Alarms offen |
| F16 | P1 | IN UMSETZUNG - Installation/Drills offen |
| F17 | P1 | IN UMSETZUNG - externe Fachabnahme offen |
| F18 | P2 | IN UMSETZUNG - Erstcommit/Release/Rollback offen |

## Release-Regel

Einsatzbereit ist erst zulaessig, wenn alle nicht ausgeschlossenen P0-Gateways unabhaengig gruen sind und ein isolierter Lauf Download, Extraktion, Kontakt, Exactly-once-Posting, Restart und Reconciliation faktisch belegt.
$body$,
    updated_at = now()
WHERE slug = 'task-supervision-gesamtbefund';