Universal CSV Import: Restarbeiten Validierung, Parität Dry-Run, UI-Fehlerhinweise #71

Closed
opened 2026-04-11 07:15:52 +02:00 by Lars · 1 comment
Owner

Kontext

Universal CSV (Issue #21) ist auf Prod migriert. Verbindliche Agent-Doku: .claude/docs/technical/UNIVERSAL_CSV_IMPORT_AGENT_GUIDE.md.

Offene Punkte

1. Admin „Format prüfen“ – Parität mit gespeichertem Template

  • Aktuell kann der Dry-Run import_row_processing weglassen; Aggregation wird erst beim Speichern / echten Import voll geprüft.
  • Ziel: Optional dieselbe Validierung wie Create/Update (inkl. Zeilenaggregation-Spec), oder dokumentiertes Verhalten in der UI erklären.

2. Nutzer-CSV-Mappings (Profil)

  • Beim Copy/Insert aus Systemvorlage läuft nicht automatisch validate_csv_template (nur klassische Mapping-Checks wo vorhanden).
  • Ziel: Nachziehen der strukturellen Validierung (Signatur, Felder, type_conversions, Row-Processing) wo sinnvoll, um inkonsistente Profil-Mappings früh zu erkennen.

3. Import-UI – strukturierte Fehler

  • Backend liefert angereicherte error_details (z. B. hint, code über enrich_row_error).
  • Ziel: In der Nutzer-Import-Oberfläche prominenter anzeigen (nicht nur generische Meldung).

Akzeptanz

  • Dry-Run und gespeicherte Vorlage verhalten sich nachvollziehbar dokumentiert oder technisch angeglichen.
  • Profil-Mappings: Validierung oder bewusstes „Known limitation“ mit Issue-Verweis.
  • UI zeigt mindestens einen klaren Hinweis pro Zeilenfehler, wenn hint/code vorliegt.

Schätzung

M: 1–2 Tage (je nach Umfang UI + csv_import Router).

## Kontext Universal CSV (Issue #21) ist auf Prod migriert. Verbindliche Agent-Doku: `.claude/docs/technical/UNIVERSAL_CSV_IMPORT_AGENT_GUIDE.md`. ## Offene Punkte ### 1. Admin „Format prüfen“ – Parität mit gespeichertem Template - Aktuell kann der Dry-Run `import_row_processing` weglassen; Aggregation wird erst beim Speichern / echten Import voll geprüft. - **Ziel:** Optional dieselbe Validierung wie Create/Update (inkl. Zeilenaggregation-Spec), oder dokumentiertes Verhalten in der UI erklären. ### 2. Nutzer-CSV-Mappings (Profil) - Beim Copy/Insert aus Systemvorlage läuft nicht automatisch `validate_csv_template` (nur klassische Mapping-Checks wo vorhanden). - **Ziel:** Nachziehen der strukturellen Validierung (Signatur, Felder, `type_conversions`, Row-Processing) wo sinnvoll, um inkonsistente Profil-Mappings früh zu erkennen. ### 3. Import-UI – strukturierte Fehler - Backend liefert angereicherte `error_details` (z. B. `hint`, `code` über `enrich_row_error`). - **Ziel:** In der Nutzer-Import-Oberfläche prominenter anzeigen (nicht nur generische Meldung). ## Akzeptanz - [ ] Dry-Run und gespeicherte Vorlage verhalten sich nachvollziehbar dokumentiert oder technisch angeglichen. - [ ] Profil-Mappings: Validierung oder bewusstes „Known limitation“ mit Issue-Verweis. - [ ] UI zeigt mindestens einen klaren Hinweis pro Zeilenfehler, wenn `hint`/`code` vorliegt. ## Schätzung M: 1–2 Tage (je nach Umfang UI + csv_import Router).
Author
Owner

Implementierung abgeschlossen (2026-07-24)

1. Admin „Format prüfen“ inkl. import_row_processing

  • AdminCsvTemplateEditorPage: resolveEditorImportRowProcessing() — dieselbe Spec wie beim Speichern
  • Dry-Run/Format-Check nutzt konsistente Vorlage inkl. Aggregation (group_by / aggregates)

2. Profil-Mappings validieren

  • csv_import.py: _validate_mapping_config / _ensure_mapping_valid bei Copy und Import
  • Neuer Endpoint: GET /api/csv/mappings/{id}/validate
  • api.js: validateCsvMapping(); formatFastApiDetail für verschachtelte Validierungsfehler

3. Nutzer-UI: strukturierte Fehler

  • Neue Komponente CsvImportErrorDetails.jsx (Zeile, code, hint)
  • UniversalCsvImportPage zeigt error_details statt JSON-Dump

Tests & Doku

  • backend/tests/test_csv_mapping_validation.py — pytest grün
  • Agent-Guide: .claude/docs/technical/UNIVERSAL_CSV_IMPORT_AGENT_GUIDE.md §4 aktualisiert

Betroffene Dateien: backend/routers/csv_import.py, frontend/src/pages/AdminCsvTemplateEditorPage.jsx, frontend/src/pages/UniversalCsvImportPage.jsx, frontend/src/components/CsvImportErrorDetails.jsx, frontend/src/utils/api.js

**Implementierung abgeschlossen (2026-07-24)** ### 1. Admin „Format prüfen“ inkl. `import_row_processing` - `AdminCsvTemplateEditorPage`: `resolveEditorImportRowProcessing()` — dieselbe Spec wie beim Speichern - Dry-Run/Format-Check nutzt konsistente Vorlage inkl. Aggregation (`group_by` / `aggregates`) ### 2. Profil-Mappings validieren - `csv_import.py`: `_validate_mapping_config` / `_ensure_mapping_valid` bei **Copy** und **Import** - Neuer Endpoint: `GET /api/csv/mappings/{id}/validate` - `api.js`: `validateCsvMapping()`; `formatFastApiDetail` für verschachtelte Validierungsfehler ### 3. Nutzer-UI: strukturierte Fehler - Neue Komponente `CsvImportErrorDetails.jsx` (Zeile, code, hint) - `UniversalCsvImportPage` zeigt `error_details` statt JSON-Dump ### Tests & Doku - `backend/tests/test_csv_mapping_validation.py` — pytest grün - Agent-Guide: `.claude/docs/technical/UNIVERSAL_CSV_IMPORT_AGENT_GUIDE.md` §4 aktualisiert **Betroffene Dateien:** `backend/routers/csv_import.py`, `frontend/src/pages/AdminCsvTemplateEditorPage.jsx`, `frontend/src/pages/UniversalCsvImportPage.jsx`, `frontend/src/components/CsvImportErrorDetails.jsx`, `frontend/src/utils/api.js`
Lars closed this issue 2026-07-24 16:57:32 +02:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Lars/mitai-jinkendo#71
No description provided.