wiki/z-archive/post-cleanup-report-2026-04-12.md
ValueOn AG cf2e875968 uüd
2026-04-14 00:15:28 +02:00

134 lines
6.5 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 — 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.