wiki/z-archive/post-cleanup-report-2026-04-12.md
2026-04-12 18:32:37 +02:00

130 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 246252) 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.