Assessor_2.0/docs/IMPORT_INTERMEDIATE_MODEL.md

55 lines
2.7 KiB
Markdown

# Universelles Import-Zwischenmodell
Stand: 2026-07-17
Schema-Version: 1
## Zweck
Das Import-Zwischenmodell ist die gemeinsame technische Ausgabe aller Dateiparser. CSV, HTML, Excel, JSON und XML werden zunächst ausschließlich dekodiert und strukturell beschrieben. Werkzeugerkennung, Feldzuordnung, Normalisierung und Darstellung bauen erst danach auf diesem Ergebnis auf.
Damit bleibt die Dateidekodierung unabhängig von Purple Knight, PingCastle, CIS-CAT, Maester oder zukünftigen Quellenprofilen.
## Verarbeitungskette
```text
Quelldatei
-> formatspezifischer Parser
-> ImportDocument
-> gemeinsamer Kompatibilitätsadapter
-> bestehende Tabellenanalyse und Oberfläche
-> künftig: Erkennungs- und Mapping-Engine
```
## Kernstruktur
Ein `ImportDocument` enthält:
- Datei- und Formatmetadaten
- Status `complete`, `partial` oder `failed`
- Tabellen beziehungsweise Sheets
- explizite Spalten, Zeilen und Zellen
- unveränderte JSON-fähige Rohwerte und dekodierte Textwerte
- erkannte Zelltypen
- Kopfzeilenkandidaten mit Konfidenz und Begründung
- Quellpositionen wie Zeile, Spalte, Excel-Zellreferenz, Objektpfad oder HTML-Selektor
- strukturierte Parserdiagnosen
- bewusst verworfene Inhalte mit Begründung
Das verbindliche TypeScript-Schema steht in `src/domain/import-intermediate.ts`. Gemeinsame Erzeugung und Rückwärtskompatibilität liegen in `src/importers/intermediate.ts`.
## Formatbesonderheiten
- CSV hält Trennzeichen und ursprüngliche Textwerte fest. Nicht geschlossene Anführungszeichen ergeben einen Teilimport mit Warnung.
- HTML entfernt aktive beziehungsweise nicht benötigte Elemente vor der Tabellenauswertung und dokumentiert deren Anzahl als verworfenen Inhalt.
- Excel verarbeitet keine VBA-Inhalte und gibt keine Formeln als importierten Zellinhalt weiter. Rohwerte, formatierte Werte, Sheet-Sichtbarkeit und Zellreferenzen bleiben getrennt erhalten.
- JSON hält den vollständigen Originaltext fest und überführt Objekte, Arrays oder Einzelwerte in eine gemeinsame Tabellenansicht.
- XML gibt Elementpfade, Attribute und direkte Textwerte aus. Nicht wohlgeformtes XML erzeugt eine strukturierte Fehlerdiagnose.
## Kompatibilität
Die bestehende Anwendung erwartet weiterhin `ImportedDataset` und `DatasetSheet`. Der zentrale Adapter erzeugt diese Sicht aus dem `ImportDocument`; das Zwischenmodell bleibt zusätzlich im Feld `intermediate` erhalten. Dadurch funktionieren Oberfläche, Profile, Filter und Exporte weiter, ohne dass Parser Fach- oder React-Logik enthalten.
## Abgrenzung
Das Zwischenmodell ist weder das kanonische Finding-Modell noch ein Datenbankschema. Es beschreibt, was technisch in einer Datei gefunden wurde. Semantische Rollen, Scannererkennung, normalisierte Findings und Persistenz folgen in späteren Phasen.