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

30 lines
1.7 KiB
Markdown
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)
```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())
}
```