Basis: Certvia dev@a48c5fb als Fundament für Craftvia
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>
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# 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-Branch **`dev`**.
|
||||
- Zweiter Remote (interner Coolify-Test): `local-gitea` = `gitea.192.168.1.155.sslip.io/msolarczek/ISMS-Tool`. Push auf `dev` lö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
|
||||
1. **Cutover (Runbook §7)** an der Test-Instanz durchspielen:
|
||||
- Im Compose `minio` → `garage` + `garage-provision`; Volumes `garage_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-provision` legt Bucket/Key/Rechte an.
|
||||
- Optional DB-Reset (wie in bisherigen Deploys), falls alte Objekt-Referenzen stören.
|
||||
2. **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.ts` grün gegen die Instanz.
|
||||
3. **Runbook & Rollback** in `docs/DEPLOY-COOLIFY.md` finalisieren (Schritt-für-Schritt, inkl. „`garage_meta` sichern").
|
||||
4. **`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.
|
||||
- `minio` entfernt (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.
|
||||
Reference in New Issue
Block a user