130 lines
6.3 KiB
Markdown
130 lines
6.3 KiB
Markdown
# 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 — KEIN Handlungsbedarf
|
||
|
||
**Befund:** `BillingDataView.tsx` ruft `/api/billing/view/users/transactions/filter-values` auf. Dieser Endpunkt existiert weiterhin in `routeBilling.py` (Zeile 1805). Es wurde nur der **Admin**-Endpunkt `GET /admin/transactions/{targetMandateId}/filter-values` entfernt, der im Frontend nirgends referenziert war.
|
||
|
||
**Empfehlung:** Kein Handlungsbedarf.
|
||
|
||
---
|
||
|
||
### 2.4 FormGeneratorTable — Generisches filter-values-Pattern
|
||
|
||
**Befund:** `FormGeneratorTable.tsx` baut generisch `{apiEndpoint}/filter-values`-URLs zusammen. Das ist ein allgemeines Pattern — jede Route, die als `apiEndpoint` übergeben wird, muss einen `/filter-values`-Subpfad anbieten.
|
||
|
||
**Empfehlung:** Kein direkter Handlungsbedarf durch die Cleanup-Aktion. Aber: Falls in Zukunft Endpunkte entfernt werden, die als `apiEndpoint` im FormGenerator genutzt werden, muss der zugehörige `filter-values`-Pfad mitberücksichtigt werden.
|
||
|
||
---
|
||
|
||
### 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.
|