diff --git a/docs/test-bugs.md b/docs/test-bugs.md index a0c3edc..0470945 100644 --- a/docs/test-bugs.md +++ b/docs/test-bugs.md @@ -1124,3 +1124,33 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te - **Problem:** `loop = asyncio.new_event_loop()` für S3 fallback — erstellt einen neuen Event Loop in einem async Kontext. Kann zu Deadlocks führen wenn bereits ein Loop läuft. - **Schweregrad:** Medium - **Status:** ⏳ Nicht gefixt + +### ARCH-053: audit.py — datetime.utcnow() naive datetime in retention cleanup +- **Datei:** app/routes/audit.py:179 +- **Problem:** `datetime.utcnow() - timedelta(days=retention_days)` verwendet naive datetime. AGENTS.md verbietet naive datetime — TIMESTAMPTZ only. Sollte `datetime.now(UTC)` sein. +- **Schweregrad:** Medium +- **Status:** ⏳ Nicht gefixt + +### ARCH-054: entity_permissions.py — _check_entity_ownership greift auf falsche Datenstruktur +- **Datei:** app/routes/entity_permissions.py:259 +- **Problem:** `model_info = ENTITY_MODELS.get(entity_type)` gibt eine Model-Klasse zurück, nicht ein dict. `model_info["model"]` wirft TypeError. Sollte `model = ENTITY_MODELS.get(entity_type)` sein. +- **Schweregrad:** High +- **Status:** ⏳ Nicht gefixt + +### ARCH-055: errors.py — error.userAgent statt error.user_agent +- **Datei:** app/routes/errors.py:124 +- **Problem:** `error.userAgent` im extra dict — aber das Pydantic model ErrorReport hat `user_agent` als field name, nicht `userAgent`. AttributeError zur Laufzeit. +- **Schweregrad:** Medium +- **Status:** ⏳ Nicht gefixt + +### ARCH-056: roles.py — hardcoded SYSTEM_PERMISSIONS dupliziert permission_registry.py +- **Datei:** app/routes/roles.py:38-70 +- **Problem:** `SYSTEM_PERMISSIONS` Liste ist hardcoded und dupliziert `CORE_PERMISSIONS` aus `app/core/permission_registry.py`. Änderungen an permission_registry werden nicht in roles.py reflektiert. +- **Schweregrad:** Medium +- **Status:** ⏳ Nicht gefixt + +### ARCH-057: roles.py — Zugriff auf private Variable registry._plugins +- **Datei:** app/routes/roles.py:87 +- **Problem:** `registry._plugins.items()` greift auf eine private Variable zu. Sollte eine öffentliche Methode wie `registry.list_discovered()` oder `registry.get_all_plugins()` verwenden. +- **Schweregrad:** Low +- **Status:** ⏳ Nicht gefixt