Files
Christoph Kroczek 6e6cb0dc8d M0: arc42-Konzeptdokument, Gherkin-Anforderungen und OpenAPI-Vertrag
- doc/architecture.md: arc42-Detaildokument mit Mermaid-Diagrammen
  (Bausteinsicht, Klassendiagramm, Statusmodell, 5 Sequenzdiagramme),
  Speicherkonzept, DEC-01..19-Entscheidungen mit Trade-offs
- doc/requirements/: 7 Features als Gherkin-Szenarien (TDD-Grundlage)
  mit Traceability-Tabellen Szenario <-> Stdlib-Testname
- doc/openapi.yaml: API-Vertrag fuer alle 9 Endpunkte (Quelle der Wahrheit)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 15:20:48 +02:00

2.7 KiB

Feature: Automatischer Import aus dem überwachten Ordner

Als Nutzer möchte ich Dateien einfach im Import-Ordner ablegen, damit sie ohne manuellen Eingriff verarbeitet werden.

Funktionalität: Automatischer Import aus dem überwachten Ordner

  Szenario: Neue Datei wird automatisch erkannt und verarbeitet
    Angenommen der Watcher überwacht den Import-Ordner
    Wenn eine PDF-Datei im Import-Ordner gespeichert wird
    Dann wird die Datei nach Abschluss des Schreibvorgangs in das Staging übernommen
    Und ein Event "DocumentReceived" mit origin "import_folder" wurde aufgezeichnet
    Und die Datei liegt nicht mehr im Import-Ordner

  Szenario: Unvollständig geschriebene Datei wird nicht vorzeitig übernommen
    Angenommen eine Datei wird langsam in den Import-Ordner geschrieben
    Wenn sich Größe oder Änderungszeit innerhalb der Stabilitätsfrist noch ändern
    Dann wird die Datei noch nicht übernommen
    Und erst nach unveränderter Stabilitätsfrist beginnt die Verarbeitung

  Szenario: Beim Start vorhandene Dateien werden übernommen
    Angenommen im Import-Ordner liegen Dateien, während das System nicht läuft
    Wenn das System startet
    Dann werden diese Dateien durch den Start-Scan erkannt und verarbeitet

  Szenario: Periodischer Rescan fängt verpasste Ereignisse
    Angenommen eine Datei wurde vom Dateisystem-Watcher nicht gemeldet
    Wenn der periodische Rescan läuft
    Dann wird die Datei erkannt und verarbeitet

  Szenario: Duplikat aus dem Import-Ordner wird aussortiert
    Angenommen ein bereits importiertes Dokument mit bekanntem SHA-256-Hash
    Wenn eine byte-identische Datei im Import-Ordner gespeichert wird
    Dann wird die Datei nach import/rejected/ verschoben
    Und eine Warnung mit der existing_document_id wird geloggt
    Und es wurde kein neues Aggregat angelegt

  Szenario: Nicht unterstützte und versteckte Dateien werden ignoriert
    Angenommen der Watcher überwacht den Import-Ordner
    Wenn eine .docx-, .part- oder versteckte Datei dort gespeichert wird
    Dann wird sie ignoriert und verbleibt unverändert

Traceability

Szenario Go-Test (Paket internal/importer)
Neue Datei wird automatisch erkannt und verarbeitet TestImporter_NewFileIsIngested
Unvollständig geschriebene Datei wird nicht vorzeitig übernommen TestImporter_WaitsForStableFile
Beim Start vorhandene Dateien werden übernommen TestImporter_StartupScanPicksUpExistingFiles
Periodischer Rescan fängt verpasste Ereignisse TestImporter_RescanPicksUpMissedFile
Duplikat aus dem Import-Ordner wird aussortiert TestImporter_DuplicateMovedToRejected
Nicht unterstützte und versteckte Dateien werden ignoriert TestImporter_IgnoresUnsupportedAndHiddenFiles