# Post-Cleanup Report: Entfernte API-Endpunkte **Datum:** 2026-04-12 **Scope:** Suche nach verwaisten Referenzen auf die am selben Tag entfernten Routen und Endpunkte (siehe `wiki/z-archive/unused-api-endpoints.md`). --- ## 1. Zusammenfassung | Kategorie | Funde | Handlungsbedarf | |-----------|-------|-----------------| | Verwaiste Frontend-Komponenten (RBAC Export/Import) | 3 Dateien | **Hoch** — Code ruft gelöschte Backend-Endpunkte auf | | Datenmodell-Referenz auf entfernten i18n-Endpunkt | 1 Stelle | **Hoch** — `frontend_options` zeigt auf nicht mehr existierenden Pfad | | Billing filter-values (User-View) | 1 Stelle | **Kein** — Endpunkt existiert noch (nur Admin-Variante entfernt) | | Wiki-Dokumentation mit Verweisen auf gelöschte Module | 1 Datei | **Niedrig** — Doku-Aktualisierung | | Analyse-Artefakte (CSV/TXT) | 2 Dateien | **Keine** — Einmalige Analyse-Skripte | --- ## 2. Detaillierte Funde und Handlungsempfehlungen ### 2.1 RBAC Export/Import — Frontend-Code ohne Backend (HOCH) **Problem:** Die gelöschte Route `routeAdminRbacExport.py` bediente die Endpunkte `/api/mandates/{id}/rbac/export`, `/api/admin/rbac/global/export` etc. Im Frontend existieren noch: | Datei | Beschreibung | |-------|-------------| | `frontend_nyla/src/hooks/useRbacExportImport.ts` | Hook mit API-Calls zu `/api/mandates/{id}/rbac/export`, `/api/admin/rbac/global/export`, `/api/features/instances/{id}/rbac/export`, und den zugehörigen Import-Endpunkten | | `frontend_nyla/src/components/RbacExportImport/RbacExportImport.tsx` | UI-Komponente (Export-Button, Import-Upload, Vorschau, Ergebnis-Modal) | | `frontend_nyla/src/components/RbacExportImport/index.ts` | Re-Export | | `frontend_nyla/src/components/RbacExportImport/RbacExportImport.module.css` | Styles | **Prüfung:** Die Komponente `RbacExportImport` wird aktuell **nirgendwo importiert oder eingebunden** — sie ist toter Code. **Empfehlung:** - **Option A (empfohlen):** Alle vier Dateien löschen (`useRbacExportImport.ts`, `RbacExportImport.tsx`, `index.ts`, `RbacExportImport.module.css`). Der Code ist vollständig verwaist. - **Option B:** Falls RBAC-Export/Import in Zukunft wieder gebraucht wird, die Dateien in einen `_archive`-Ordner verschieben. --- ### 2.2 Datenmodell `datamodelUam.py` — Verweis auf gelöschten i18n-Endpunkt (HOCH) **Problem:** In `gateway/modules/datamodels/datamodelUam.py` (Zeile 246–252) verweist das Feld `language` des User-Modells auf den entfernten Endpunkt: ``` "frontend_options": "/api/i18n/user-language-options" ``` Dieser Endpunkt (`GET /user-language-options` in `routeI18n.py`) wurde entfernt. **Auswirkung:** Wenn das Frontend `frontend_options` dynamisch auflöst (z. B. im FormGenerator), wird der Select-Dropdown für die Sprachauswahl beim User-Profil leer bleiben oder einen 404-Fehler auslösen. **Empfehlung:** - Prüfen, ob `frontend_options` tatsächlich dynamisch aufgelöst wird (FormGenerator-Logik). - Falls ja: Entweder den Endpunkt wiederherstellen oder `frontend_options` auf einen existierenden Endpunkt umleiten (z. B. `GET /api/i18n/sets` mit Mapping auf `{value, label}`-Format). - Falls nein (statische Anzeige): Den `frontend_options`-Wert durch eine statische Liste ersetzen oder entfernen. --- ### 2.3 Billing filter-values — Erledigt (2026-04-13) **Befund (alt):** `BillingDataView.tsx` rief `/api/billing/view/users/transactions/filter-values` auf. **Update:** Im Rahmen der Unified Filter API Migration (2026-04-13) wurde das gesamte `/filter-values`-Pattern eliminiert. `BillingDataView.tsx` nutzt jetzt `GET /api/billing/view/users/transactions?mode=filterValues&column=xxx`. Der separate Endpunkt existiert nicht mehr. --- ### 2.4 FormGeneratorTable — Unified Filter API (aktualisiert 2026-04-13) **Befund (alt):** `FormGeneratorTable.tsx` baute generisch `{apiEndpoint}/filter-values`-URLs zusammen. **Update:** Das `/filter-values`-Sub-Pfad-Pattern wurde komplett durch Query-Parameter auf dem Haupt-Endpunkt ersetzt: - `GET {apiEndpoint}?mode=filterValues&column=xxx` — Distinct-Werte für Spaltenfilter - `GET {apiEndpoint}?mode=ids&pagination={filters}` — Alle gefilterten IDs (für "Select All Filtered") Alle separaten `/filter-values`-Endpunkte in Core-Routes und Feature-Routes (Trustee, RealEstate) wurden entfernt. Siehe `wiki/b-reference/frontend-nyla/formgenerator.md` für die aktuelle Dokumentation. --- ### 2.5 Wiki-Dokumentation — Verweis auf gelöschte `routeSecurityAdmin.py` (NIEDRIG) **Datei:** `wiki/b-reference/platform/database-architecture.md` In Zeile 251 und 270 wird `routeSecurityAdmin.py` als Admin-DB-Listing-Modul erwähnt. **Empfehlung:** Die betroffenen Abschnitte aktualisieren — entweder den Verweis entfernen oder als „entfernt am 2026-04-12" markieren. --- ### 2.6 SharePoint folder-options — Funktioniert weiterhin **Befund:** `NeutralizationView.tsx` und `TrusteeExpenseImportView.tsx` rufen `GET /api/sharepoint/folder-options?connectionReference=...` auf. Dieser Endpunkt wurde **beibehalten** — nur die alten Pfade mit `/{connectionId}/...` wurden entfernt. **Empfehlung:** Kein Handlungsbedarf. --- ### 2.7 ClickUp — Funktioniert weiterhin **Befund:** `workflowApi.ts` ruft `GET /api/clickup/{connectionId}/teams/{teamId}` auf. Dieser Endpunkt ist einer der fünf beibehaltenen Pfade. **Empfehlung:** Kein Handlungsbedarf. --- ### 2.8 Analyse-Artefakte **Dateien:** - `gateway/scripts/import_analysis.csv` - `gateway/scripts/function_imports_analysis.txt` Diese enthalten Referenzen auf gelöschte Module, sind aber einmalige Analyse-Outputs. **Empfehlung:** Optional löschen oder in `z-archive` verschieben, um Verwirrung zu vermeiden. --- ## 3. Priorisierte Aktionsliste | Prio | Aktion | Status | |------|--------|--------| | 1 | `datamodelUam.py`: `frontend_options` auf `/api/i18n/codes` umgestellt + FormGenerator-Mapping erweitert (`code`/`id` Fallback) | **Erledigt** | | 2 | Frontend: `RbacExportImport`-Komponente + Hook gelöscht (4 Dateien) | **Erledigt** | | 3 | Wiki: `database-architecture.md` aktualisiert (routeSecurityAdmin-Verweis entfernt) | **Erledigt** | | 4 | Analyse-Artefakte gelöscht (`import_analysis.csv`, `function_imports_analysis.txt`) | **Erledigt** | --- ## 4. Verifizierung - **Gateway-Import-Test:** `python -c "import app; print('ok')"` → Exit-Code 0, Ausgabe `ok`. - **Keine Laufzeitfehler** durch gelöschte Module (aiohttp/langchain_core-Fehler sind vorbestehend und betreffen optionale Features). - **Kein Frontend-Code** ruft die vollständig gelöschten Routen (Messaging, SecurityAdmin) auf. - **Kein Bot/LLM-Code** referenziert entfernte Endpunkte.