# 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) ```prisma // ============================================================================ // 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()) } ```