1.7 KiB
Executable File
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())
}