docs: 362 Architektur-Fehler — alle Routes+Services+Models komplett gelesen

This commit is contained in:
Agent Zero
2026-08-22 23:17:48 +02:00
parent c50cd58d9e
commit dfd22916ef
+78
View File
@@ -2900,3 +2900,81 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Problem:** assign_user_to_tenant hat kein Audit-Log. User-Tenant-Zuweisung ist sicherheitsrelevant.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
### ARCH-350: contact.py — indexed_at Spalte vor __table_args__
- **Datei:** app/models/contact.py:50
- **Problem:** `indexed_at` Spalte wird vor `__table_args__` definiert — SQLAlchemy Anti-Pattern.
- **Schweregrad:** Low
- **Status:** ⏳ Nicht gefixt
### ARCH-351: contact.py — IBAN/BIC als Plaintext
- **Datei:** app/models/contact.py:170
- **Problem:** `bank_account` (IBAN) und `bic` werden als Plaintext gespeichert. Sensitive Finanzdaten.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
### ARCH-352: contact.py — vat_code/fiscal_code als Plaintext
- **Datei:** app/models/contact.py:160
- **Problem:** `vat_code` (USt-IdNr.) und `fiscal_code` (Steuernummer) als Plaintext. Sensitive Steuerdaten.
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
### ARCH-353: webhook.py — secret als Plaintext
- **Datei:** app/models/webhook.py:30
- **Problem:** `secret` wird als Plaintext in DB gespeichert. Sollte verschlüsselt werden.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
### ARCH-354: system_settings.py — tax_number/vat_id/iban/bic als Plaintext
- **Datei:** app/models/system_settings.py:35
- **Problem:** `tax_number`, `vat_id`, `iban`, `bic` werden als Plaintext gespeichert. Sensitive Unternehmensdaten.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
### ARCH-355: bank_account.py — iban/bic als Plaintext
- **Datei:** app/models/bank_account.py:20
- **Problem:** `iban` und `bic` als Plaintext. Sensitive Finanzdaten.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
### ARCH-356: compliance.py — ComplianceIncident ohne OwnedMixin
- **Datei:** app/models/compliance.py
- **Problem:** ComplianceIncident hat kein OwnedMixin (kein owner_id). Entity-Permissions nicht möglich.
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
### ARCH-357: audit.py — search_tsv Spalte vor __table_args__
- **Datei:** app/models/audit.py:30
- **Problem:** `search_tsv` Spalte wird vor `__table_args__` definiert — SQLAlchemy Anti-Pattern.
- **Schweregrad:** Low
- **Status:** ⏳ Nicht gefixt
### ARCH-358: group.py — UserGroup.deleted_at vor __table_args__
- **Datei:** app/models/group.py:40
- **Problem:** `deleted_at` Spalte wird vor `__table_args__` definiert — SQLAlchemy Anti-Pattern.
- **Schweregrad:** Low
- **Status:** ⏳ Nicht gefixt
### ARCH-359: notification.py — NotificationType.deleted_at vor __table_args__
- **Datei:** app/models/notification.py:60
- **Problem:** `deleted_at` Spalte wird vor `__table_args__` definiert — SQLAlchemy Anti-Pattern.
- **Schweregrad:** Low
- **Status:** ⏳ Nicht gefixt
### ARCH-360: ai_conversation.py — AIConversation/AIMessage sollten entfernt sein (Phase 2)
- **Datei:** app/models/ai_conversation.py
- **Problem:** AIConversation/AIMessage existieren noch, aber Phase 2 hat AI Chat in Kommunikation integriert und 5 AI-Tabellen gedropped. Diese Models sollten entfernt werden.
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
### ARCH-361: attachment.py — Attachment parallel zu EntityAttachment (Doppelarchitektur)
- **Datei:** app/models/attachment.py
- **Problem:** Attachment Model existiert parallel zu EntityAttachment. Doppelarchitektur — zwei Modelle für ähnliche Funktionalität.
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
### ARCH-362: address.py — Address-Tabelle für Bank-Accounts, Contacts nutzen inline Felder
- **Datei:** app/models/address.py:10
- **Problem:** Bekannte Inkonsistenz: Address-Tabelle wird für Bank-Accounts genutzt, Contacts nutzen inline Address-Felder. Doppelarchitektur.
- **Schweregrad:** Low
- **Status:** ⏳ Nicht gefixt