Init: RoggioApp Architecture, Prisma Schema, API MVP
This commit is contained in:
+29
@@ -0,0 +1,29 @@
|
||||
# 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())
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user