Files
RoggioApp/Brainstorm/260426/19_Vault_Implementierung_MVP.md
T
2026-04-26 19:42:42 +02:00

1.7 KiB
Executable File

RoggioApp - Vault Implementierung (MVP Step 1)

Die MVP-Strategie für den Datenschutz-Split

Wir bauen nicht sofort eine zweite physische Datenbank und einen VPN-Tunnel auf. Das würde uns am Anfang massiv ausbremsen. Wir simulieren die Architektur zuerst logisch, bevor wir sie physisch trennen.

Schritt 1 (Jetzt): Die logische Trennung (Separate Table)

In unserer aktuellen Prisma-Datenbank (Hetzner/Cloud) legen wir eine eigenständige Tabelle Vault an.

  • Warum: So zwingen wir unseren Backend-Code vom ersten Tag an dazu, so zu tun, als lägen die Daten auf einem anderen Server. Die Logik "Hole Token -> Lade Daten aus Vault" wird in Code gegossen.
  • Der Vorteil: Wenn wir später den echten On-Premise-Server hinstellen, müssen wir den Backend-Code nicht mehr anfassen. Wir ändern nur die Datenbank-URL für die Vault-Tabelle auf deine lokale IP um.

Schritt 2 (Später): Die physische Trennung

Sobald der On-Premise-Server steht, lösen wir die Tabelle Vault aus Prisma heraus und schieben sie in eine eigene, kleine SQLite/Postgres-Instanz auf deinem HomeAssistant-Server.

Anpassung für Prisma (Mock-Vault)

// ============================================================================
// DER VAULT (Logisch getrennt - Später On-Premise)
// ============================================================================
model VaultData {
  id          String   @id @default(uuid())
  entityType  String   @db.VarChar(50) // e.g. "Person", "Booking"
  entityId    String   // Die ID der Person oder Buchung in der Cloud
  
  // Die sensiblen Daten (verschlüsselt!)
  secureData  String   @db.Text 

  createdAt   DateTime @default(now())
}