documentation/projekt/TODO.md

3.3 KiB

To-Do-Liste - Payload CMS Multi-Tenant Projekt

Server: sv-payload (LXC 700) - 10.10.181.100 Frontend-Tasks: Siehe FRONTEND.md (sv-frontend, LXC 704)


Zusammenfassung: Offene Tasks (Payload-Server)

Hohe Priorität

Status Task Bereich
[ ] SMTP-Credentials in .env konfigurieren E-Mail

Mittlere Priorität

Status Task Bereich
[ ] Media-Backup zu S3/MinIO Backup
[ ] CDN-Integration (Cloudflare) Caching
[x] CI/CD Pipeline erweitern (Lint/Test/Build) DevOps
[x] Security Scanning (CodeQL, Dependency Audit) DevOps
[x] Staging-Deployment DevOps
[x] Memory-Problem lösen (Swap) Infrastruktur
[ ] PM2 Cluster Mode testen Infrastruktur
[ ] Payload/Next Releases auf Next.js 16 Support beobachten Tech Debt

Niedrige Priorität

Status Task Bereich
[ ] Monitoring: Sentry, Prometheus, Grafana Monitoring
[x] AuditLogs Retention (90 Tage Cron) Data Retention
[x] Email-Log Cleanup Cron Data Retention
[x] Media-Orphan-Cleanup Data Retention
[x] Consent-Logs Archivierung Data Retention
[ ] Dashboard-Widget für Email-Status Admin UX
[ ] TypeScript Strict Mode Tech Debt
[x] E2E Tests für kritische Flows Testing

Dokumentation

Status Task
[x] DEPLOYMENT.md erstellen

Legende

  • Offen
  • Erledigt
  • [~] In Bearbeitung
  • [!] Blockiert

Offene Aufgaben (Detail)

Analytics Integration

  • Umami-Server auf sv-analytics einrichten
  • Website-IDs für alle 4 Tenants erstellen
  • src/config/analytics.ts mit Website-IDs
  • UmamiScript.tsx implementieren
  • Umami Script in Root Layout einbinden (Multi-Tenant)
  • useAnalytics.ts Hook für Custom Events
  • analytics.server.ts für Server-Side Events
  • Event-Tracking in Newsletter/CTA integrieren
  • GoogleConsentMode.tsx implementieren
  • Google Consent Mode v2 mit Orestbida Cookie-Banner
  • useGclid.ts Hook für GCLID-Erfassung
  • google-ads.ts Client-Side Conversion Tracking
  • google-ads.server.ts Server-Side Conversion API
  • Enhanced Conversions mit gehashten E-Mails

Backup-System

  • Media-Backup zu S3/MinIO
  • Disaster Recovery Plan

Monitoring & Logging

  • Sentry Error Tracking
  • Prometheus Metrics
  • Grafana Dashboard

Build & Infrastructure

  • Memory-Problem gelöst (4GB Swap via ZFS ZVOL)
  • PM2 Cluster Mode testen

Testing & CI/CD

  • CI/CD Pipeline (.github/workflows/ci.yml)
  • Staging-Deployment (.github/workflows/deploy-staging.yml)
  • E2E Tests (tests/e2e/)

Data Retention

  • Automatische Datenbereinigung (src/lib/retention/)
  • Cron-Job für Email-Log Cleanup (90 Tage)
  • AuditLogs Retention Policy (90 Tage)
  • Consent-Logs Archivierung (3 Jahre, expiresAt-basiert)
  • Media-Orphan-Cleanup

Hinweise

  1. Tenant-Isolation bei localhost: API gibt 403 zurück wenn kein Tenant zur Domain passt (gewollt)
  2. GraphQL Playground deaktiviert: Route entfernt
  3. PM2 Cluster Mode: Aktuell 1 Instanz, für Skalierung instances: "max" setzen

Letzte Aktualisierung: 29.12.2025