Assessor_2.0/docs/PLATFORM_NEUTRAL_ENGINE.md

2.7 KiB

Plattformneutrale Engine und Browseradapter

Stand: 2026-07-17

Zweck

Die ASSESSOR-Kernlogik soll heute in der lokalen React-/Tauri-Anwendung und später im Backend eines internen Servers ausführbar sein. Deshalb verarbeitet die Engine keine Browser-File-Objekte und greift nicht direkt auf DOM, localStorage oder Download-APIs zu.

Schichten

React-Dateiauswahl
  -> Browser-File-Adapter
  -> ImportSource (Metadaten + Uint8Array)
  -> plattformneutrale Importengine
       -> TextDecoderAdapter
       -> MarkupDocumentAdapter
       -> Formatparser
       -> ImportDocument
       -> Tabellenanalyse und Profilwahl

Plattformneutraler Kern

  • src/domain/import-source.ts definiert binäre Importquellen ohne Browserobjekte.
  • src/importers/engine.ts ist der zentrale Engine-Einstieg für Browser, Tests und ein zukünftiges Backend.
  • src/importers/runtime-adapters.ts definiert Verträge für Textdekodierung und HTML-/XML-Strukturextraktion.
  • CSV, JSON und Excel arbeiten direkt auf Text beziehungsweise Bytes.
  • HTML und XML erhalten bereits dekodierte, inerte Strukturen vom Markupadapter.

Browserkomposition

Unter src/platform/browser liegen die aktuellen Browserimplementierungen:

  • Umwandlung von File in ImportSource
  • UTF-8-Dekodierung mit Windows-1252-Fallback
  • DOM-basierte, inerte HTML- und XML-Auswertung
  • localStorage-Persistenzadapter
  • Browser-Downloadadapter

Der bisherige Aufruf importFile(file, options) bleibt als dünne Browser-Kompatibilitätsschicht erhalten. Ein zukünftiges Backend ruft stattdessen importSource(source, options, adapters) mit serverseitigen Adaptern auf.

Weitere Plattformgrenzen

  • Reviewpersistenz hängt nur vom StorageAdapter ab.
  • Exporte geben Textartefakte an einen DownloadAdapter weiter.
  • Snapshots und Dashboardexporte verwenden einen injizierbaren Clock.
  • IDs der Import- und Analyseobjekte bleiben deterministisch und benötigen keinen Zufallszahlengenerator.

Sicherheitsgrenze

Importierte HTML-Inhalte werden ausschließlich vom Browser-Markupadapter gelesen. Aktive Elemente werden vor der Tabellenextraktion entfernt und nie in die React-Oberfläche eingesetzt oder ausgeführt. Excel-Formeln und VBA bleiben deaktiviert. Die bestehenden Local-only-Prüfungen verhindern weiterhin Netzwerkfähigkeiten und prüfen zusätzlich, dass Kernmodule keine Browser-, React- oder Tauri-Abhängigkeiten einführen.

Verifikation

Die plattformneutralen Engine-Tests erstellen reine Bytequellen und injizieren Testadapter. Sie benötigen weder ein Browser-File-Objekt noch einen DOM-Zugriff durch die Engine. Die bisherigen Browserimporte bleiben über ihre Integrations- und Workflowtests abgedeckt.