Files
nexarch/dms
rootandClaude Sonnet 5 eb8b47eff9 workflow VOR-06: Breaking-Change-Reparatur web/mail-search (X-Tenant-Slug fehlte)
Fixt zwei bestehende Aufrufer der Backchannel-API, die durch VOR-06s
Tenant-Pflichtfeld sonst brechen wuerden:
- web/mail-search/lib/caseContext.ts + app/api/case-context/route.ts:
  tenant-Query-Parameter ergaenzt, X-Tenant-Slug-Header an die
  Workflow-Rueckkanal-API durchgereicht (analog zum bestehenden
  tenant-Muster in app/api/search/route.ts)
- CaseContextPanel.tsx + page.tsx: tenant-Prop durchgereicht
- Tests entsprechend aktualisiert (caseContext.test.ts, route.test.ts,
  CaseContextPanel.test.tsx)

web/workflow-cases/caseoverviewapi ruft backchannel.ForObject NICHT
auf (nur strukturell aehnlich) -- kein Breaking Change dort, geprueft
und bestaetigt unveraendert.

Vorbestehender, separater Bug (nicht Teil dieses Fixes): der
user-Query-Parameter wird vom Client nie gesendet, obwohl die Route
ihn verlangt -- betraf die Route schon vor VOR-06.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-26 09:47:12 +00:00
..
2026-09-24 09:40:31 +02:00
2026-08-29 20:58:26 +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 :8600 (überschreibbar über NEXARCH_DMS_APP_LISTEN_ADDR), GET /healthz liefert den Status. Der Worker liefert Metriken auf :8601 (NEXARCH_DMS_WORKER_METRICS_ADDR). Portbereich des DMS laut deploy/ports.tsv: 8600–8699; Prüfung: scripts/check-port-defaults.sh.

Fachliche Routen (z. B. POST /retention/destroy-callback) liegen unter dem Präfix /api/dms/v1 (NEXARCH_DMS_APP_ROUTE_PREFIX, Register deploy/routes.tsv, Prüfung scripts/check-route-prefixes.sh); nur /healthz und /metrics bleiben auf Wurzelebene. Die bei archive registrierte Rückruf-URL (NEXARCH_DMS_APP_RETENTION_CALLBACK_URL) muss den Präfix enthalten.

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.