docs: 362 Architektur-Fehler — alle Routes+Services+Models komplett gelesen
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user