Files
sysopsandClaude Sonnet 5 9a374dd91e DOC-01: upload-api & chunk-handling
Fortsetzbarer Server-seitiger Upload: upload_sessions (bytes_received,
GREATEST-Update verhindert Rueckschritt bei erneut zugestellten Chunks),
Staging via os.File.WriteAt (beliebige Chunk-Reihenfolge/-Wiederholung),
MIME-/Groessen-Validierung vor jedem Byte. Complete() liest Klartext einmal
via io.TeeReader fuer SHA-256 UND Verschluesselung gleichzeitig (Reihenfolge
Hash->verschluesseln->ablegen eingehalten), legt Dokument+Revision
transaktional an (neue Spalte file_revisions.wrapped_dek fuer FDN-09).

Auf 192.168.1.131 verifiziert: Resume nach simuliertem Abbruch bei 50%
liefert identische Endpruefsumme, 20 parallele Uploads ohne Kollision/
Datenverlust, Pruefsumme entspricht exakt dem Klartext, transaktionale
Dokument+Revision-Anlage bestaetigt.

Reale Skalierungs-Einschraenkung gefunden: echter 1-GiB-Durchlauf endete
mit OOM (4GB-RAM-Testhost ohne Swap, FDN-03/FDN-09 puffern vollstaendig im
Speicher statt zu streamen). Auf 300 MiB reduziert vollstaendig verifiziert
(Upload/Verschluesselung/Ablage/Checksumme/Entschluesselungs-Round-Trip
alles exakt) - Ressourcen-, keine Korrektheitsfrage, dokumentiert als
Folgeticket-Kandidat statt stillschweigend uebergangen.

Siehe dms/docs/DOC-01-PRUEFPROTOKOLL.md fuer alle Pruefungsergebnisse.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HhgFcLS8tYMhDJpP74C6AQ
2026-08-29 22:23:36 +02:00
..
2026-08-29 17:32:35 +02:00
2026-08-29 22:23:36 +02:00
2026-08-29 19:22:54 +02:00
2026-08-29 19:22:54 +02:00
2026-08-29 20:58:26 +02:00
2026-08-29 17:32:35 +02:00

NEXARCH DMS

Dokumentenmanagement-Modul von NEXARCH. Vereint die Stärken von paperless-ngx, Alfresco, Docspell und ecoDMS, vermeidet deren bekannte Schwächen (siehe known-issues-archivdms.md im dms-kanban/-Ordner).

Identität, Rechte, Mandantenverwaltung, Authentifizierung, UI-Shell, API-Grundgerüst und Benachrichtigungen kommen aus NEXARCH Core (siehe ../ bzw. ../../core-kanban/) — dieses Modul implementiert nur die DMS-eigene Logik.

Setup

Voraussetzung: Go 1.22+.

cd dms
make install   # baut App und Worker
make run       # startet beide (Strg+C beendet beide)

App läuft danach auf :8090 (überschreibbar über NEXARCH_DMS_APP_LISTEN_ADDR), GET /healthz liefert den Status.

Struktur

  • cmd/app — Anfrage-Dienst (HTTP), blockiert nie durch lange Aufgaben
  • cmd/worker — Hintergrund-Dienst für lange laufende Aufgaben (Indexierung, OCR, Storage-Vorgänge — folgen in FDN-02 ff.)
  • internal/shared — von App und Worker gemeinsam genutzter Code

Prüfungen

make fmt    # gofmt-Verstöße brechen ab
make lint   # golangci-lint
make test   # go test ./...

Branch- und Commit-Konvention

Gleiche Konvention wie NEXARCH Core:

  • Branch je Ticket: feature/<ticket-code>-<kurzbeschreibung>, z. B. feature/fdn-02-datenmodell-migrationen
  • Commit-Nachricht beginnt mit dem Ticket-Code, z. B. FDN-02: datenmodell & migrationen
  • Ein Ticket = ein Branch. Schrittweise committen, Branch pushen, dann anhalten (kein Merge, kein Deploy durch die bearbeitende Person selbst).
  • Deutschsprachige Oberflächentexte, englischsprachige Bezeichner im Code.
  • Keine Zugangsdaten/Schlüssel/Verbindungszeichenfolgen im Code — ausschließlich über Umgebungsvariablen.