Unveränderter Stand von certvia/dev (a48c5fb) plus Craftvia-Spezifikation und Brandbook unter docs/craftvia/. ISMS-Module werden im Folgecommit entfernt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2.9 KiB
2.9 KiB
Kickoff-Prompt — Lane D: Test, Cutover & Abnahme
Du übernimmst Lane D (Integration/Abnahme) der Umstellung MinIO → Garage. Lies docs/KONZEPT-garage-migration.md (v. a. §7 Runbook, §8 Rollback, §9 Abnahmekriterien). Randbedingung: nur Test-Instanzen, keine Datenmigration — Neu-Deploy.
Repo & Branch
- origin:
git.certvia.de/msolarczek/certvia— Basis-Branchdev. - Zweiter Remote (interner Coolify-Test):
local-gitea=gitea.192.168.1.155.sslip.io/msolarczek/ISMS-Tool. Push aufdevlöst den Test-Deploy aus. - Deploy-Ziel: interne Coolify-Instanz,
certvia.192.168.1.155.sslip.io.
Ziel
Die integrierten Ergebnisse aus Lane A–C auf der Test-Instanz per Neu-Deploy in Betrieb nehmen und formal abnehmen — plus abgenommenes Runbook (auch für spätere Prod).
Aufgaben
- Cutover (Runbook §7) an der Test-Instanz durchspielen:
- Im Compose
minio→garage+garage-provision; Volumesgarage_meta/garage_data. - Coolify-Env:
S3_ENDPOINT=http://garage:3900,S3_REGION=us-east-1,GARAGE_RPC_SECRET,GARAGE_ADMIN_TOKEN(literal!),S3_ACCESS_KEY/S3_SECRET_KEY= provisionierter Garage-Key. - Deploy; Garage „ready",
garage-provisionlegt Bucket/Key/Rechte an. - Optional DB-Reset (wie in bisherigen Deploys), falls alte Objekt-Referenzen stören.
- Im Compose
- End-to-End-Abnahme (§9) — alle grün:
- Upload (Richtlinie/Nachweis) → Objekt in Garage,
<tenantId>/uploads/…-Präfix korrekt. - Download (
/files/[...key]) inkl. korrektem Dateinamen/Content-Type. - Backup-Export
.cvb(CVB1-Header), Persistenz + Download. - DSGVO-ZIP erzeugt + lesbar.
- Restore → Datenintegrität + Mandanten-Isolation.
- Backup-Historie: List + Aufräumen (Delete-Prefix).
- Negativfall: fehlender Bucket → sprechender Konfigfehler (kein stiller CreateBucket).
scripts/test-backup-*.ts+scripts/test-garage-storage.tsgrün gegen die Instanz.
- Upload (Richtlinie/Nachweis) → Objekt in Garage,
- Runbook & Rollback in
docs/DEPLOY-COOLIFY.mdfinalisieren (Schritt-für-Schritt, inkl. „garage_metasichern"). minio-Service + Volumes erst nach erfolgreicher Abnahme entfernen (bis dahin Rollback-Sicherheitsnetz).
Vorgaben
- Keine echten Secrets in Chat/Repo/Logs (
GARAGE_*, S3-Key). In Coolify literal setzen (Interpolationsfalle). - Bei „Container weg ohne Logs" die bekannte Log-Capture-Technik nutzen (Logs während des Deploys in Dateien mitschreiben; siehe Deployment-Erfahrungen).
- Gefundene Bugs an die jeweilige Lane (A/B/C) zurückspielen, nicht selbst quer patchen.
Definition of Done
- Test-Instanz läuft auf Garage, alle Abnahmekriterien (§9) abgehakt.
- Runbook + Rollback dokumentiert und einmal real durchgespielt.
minioentfernt (oder bewusst als Netz belassen, dokumentiert). Freigabe für spätere Prod.
Abhängigkeiten
Integriert Lane A + B + C. PM koordiniert Reihenfolge (A→B, C parallel) und Go für die Abnahme.