Add AI workspace reviews
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
## Kritische Architekturprobleme
|
||||
|
||||
### 1. Fataler Tenant-Isolation-Fehler
|
||||
|
||||
Das Datenmodell nennt sowohl `organisation_id` als auch `tenant_id`, aber ohne klare Abgrenzung. Dies ist ein **kritischer Designfehler**:
|
||||
|
||||
```
|
||||
# Problem in data-model-v0.1.md:
|
||||
"Von Anfang an vorbereiten:
|
||||
- organisation_id
|
||||
- tenant_id"
|
||||
```
|
||||
|
||||
**Warum kritisch:**
|
||||
- Unklare Hierarchie zwischen Organisation und Tenant
|
||||
- Potenzielle Tenant-Leaks durch falsche Filterung
|
||||
- Kein explizites Constraint-Modell definiert
|
||||
|
||||
**Lösung erforderlich:** Eine klare Entscheidung - entweder Organisation ODER Tenant, nicht beides halbherzig.
|
||||
|
||||
### 2. Secrets-Management ohne Implementierung
|
||||
|
||||
Das Security-Dokument behauptet:
|
||||
```
|
||||
"Secrets werden nur über einen Secret-Service gelesen/geschrieben"
|
||||
```
|
||||
|
||||
Aber:
|
||||
- Kein Secret-Service definiert
|
||||
- Registrar-Account hat "Zugangsdaten/API-Referenzen" direkt im Modell
|
||||
- Keine Encryption-at-Rest-Strategie
|
||||
|
||||
**Risiko:** Passwörter landen im Klartext in der Datenbank.
|
||||
|
||||
### 3. Audit-Log Hash-Chain ist Pseudo-Security
|
||||
|
||||
ADR 0014 schlägt eine Hash-Chain vor, aber:
|
||||
- Kein Schutz gegen DB-Admin-Manipulation
|
||||
- Hash-Algorithm nicht spezifiziert
|
||||
- "V1 bereitet vor" = wird nicht implementiert
|
||||
|
||||
**Problem:** Security-Theater ohne echten Schutz. Ein DB-Admin kann die gesamte Chain neu berechnen.
|
||||
|
||||
### 4. Dead Letter Queue ohne Retention-Strategie
|
||||
|
||||
ADR 0017 fordert Dead Letter Queues, aber:
|
||||
- Keine maximale Retention definiert
|
||||
- Potenzielle Speicher-Explosion
|
||||
- DSGVO-Konflikt bei personenbezogenen Daten in fehlgeschlagenen Jobs
|
||||
|
||||
### 5. Fehlende Core-Domain-Boundaries
|
||||
|
||||
Das Datenmodell mischt alles:
|
||||
- Billing (Rechnung, Zahlung)
|
||||
- Provisioning (Server, Hostingpaket)
|
||||
- CRM (Kunde, Ticket)
|
||||
- Registry (Domain, Registrar)
|
||||
|
||||
**Problem:** Keine Bounded Contexts = massive Kopplung, unmöglich zu skalieren.
|
||||
|
||||
### 6. Reconciliation ohne Event-Sourcing
|
||||
|
||||
ADR 0017 fordert Reconciliation, aber das Datenmodell hat keine Event-Historie. Wie soll man reconcilen ohne zu wissen, was passiert ist?
|
||||
|
||||
### 7. Security-Rollen ohne Scope-Definition
|
||||
|
||||
"Staff/Support" hat Zugriff auf "operative Daten" - was heißt das konkret?
|
||||
- Kann Support Passwörter sehen?
|
||||
- Kann Support Rechnungen ändern?
|
||||
- Kann Support Server-Zugänge einsehen?
|
||||
|
||||
### 8. Single Point of Failure: tenant_id
|
||||
|
||||
Alles hängt an einem einzigen Feld. Ein fehlerhafter Query-Scope = Datenleck über alle Mandanten.
|
||||
|
||||
**Fehlende Sicherheitsschicht:**
|
||||
- Kein Row-Level-Security auf DB-Ebene
|
||||
- Keine Tenant-Context-Validierung
|
||||
- Kein Fail-Safe-Mechanismus
|
||||
|
||||
### 9. Dokument-Objekt ohne Storage-Strategy
|
||||
|
||||
"Dokument" hat "Hashes" und "Archivinformationen", aber:
|
||||
- Wo werden Dateien gespeichert?
|
||||
- Wie wird Tenant-Isolation im Filesystem sichergestellt?
|
||||
- Was passiert bei Löschanfragen?
|
||||
|
||||
### 10. Keine Migrationsstrategie für Multi-Tenancy
|
||||
|
||||
"V1 arbeitet als Single-Tenant" aber "Struktur vorbereitet" - das ist ein Widerspruch. Entweder man designed multi-tenant von Anfang an oder man plant eine Migration. Beides fehlt.
|
||||
|
||||
## Fazit
|
||||
|
||||
Die Architektur versucht, zu viele Probleme gleichzeitig zu lösen, ohne eines davon richtig zu durchdenken. Kritischster Punkt: Die Tenant-Isolation ist nur oberflächlich geplant und wird mit hoher Wahrscheinlichkeit zu Datenleaks führen.
|
||||
Reference in New Issue
Block a user