INT-09: cmis-kompatible schnittstelle (optional) #93

Closed
patrick wants to merge 0 commits from feature/int-09-cmis-schnittstelle-dms into integration/dms-gesamtstand
pull from: feature/int-09-cmis-schnittstelle-dms
Owner

Basis: PR #92 (INT-01); der Diff enthaelt dessen Commits mit.

Optionale CMIS-1.1-Schnittstelle (Browser Binding, JSON) als duenne Uebersetzungsschicht ueber der REST-API: jede Anfrage laeuft in-process durch dieselbe Authentifizierungs-, Rechte- und Mandantenkette wie ein direkter REST-Zugriff. Aktivierung per NEXARCH_DMS_APP_CMIS_ENABLED=true, sonst keine CMIS-Route. Neu in REST: GET /documents/{id} und GET /folders/{id}. Doku: dms/docs/CMIS.md, Protokoll: dms/docs/INT-09-PRUEFPROTOKOLL.md.

Pruefungen (Host 131, frischer Klon, echtes Postgres)

  • Pruefung 1, Test mit CMIS-Referenzclient (OpenCMIS): offen. Auf 131 fehlt ein JDK/der Client, eine Installation ist nicht freigegeben. Ersatzweise Protokolltests der Anfragefolge eines Browser-Binding-Clients (eigener Code, ersetzt die Interoperabilitaetspruefung nicht).
  • Pruefung 2, Rechte identisch zu REST: bestanden. 4 Endpunkte x 6 Identitaeten (Eigentuemer, Fremder, ohne Token, abgelaufen, anderer Mandant, manipuliert) liefern ueber REST und CMIS denselben Status; gefaelschter caller neben fremdem Token 403; Core-Policy verweigert/erteilt/faellt aus: je 403/200/503 wie REST. Architekturtest: internal/cmis nutzt nur die Standardbibliothek (kein Datenzugriff an der REST-Kette vorbei).
  • Pruefung 3, Deaktivierung: bestanden. Ohne Schalter alle CMIS-Adressen 404, REST-Inhalt und openapi.json unveraendert.
  • go build, go vet, go test ./... (2 Volllaeufe), gofmt -l, check-port-defaults.sh, check-route-prefixes.sh: sauber. Fix-Iterationen: 2 (je 1).

Offen

  • Referenzclient-Lauf (siehe oben); kein Test gegen echten Core (JWKS/Policy-Stub wie bei INT-01).
  • Ordner-Endpunkte haben in REST keine Eigentuemerpruefung (Stand INT-01), CMIS erbt das; Details fuer INT-15 im Protokoll.

Kein Merge, kein Deploy.

Generated with Claude Code

Basis: PR #92 (INT-01); der Diff enthaelt dessen Commits mit. Optionale CMIS-1.1-Schnittstelle (Browser Binding, JSON) als duenne Uebersetzungsschicht ueber der REST-API: jede Anfrage laeuft in-process durch dieselbe Authentifizierungs-, Rechte- und Mandantenkette wie ein direkter REST-Zugriff. Aktivierung per `NEXARCH_DMS_APP_CMIS_ENABLED=true`, sonst keine CMIS-Route. Neu in REST: `GET /documents/{id}` und `GET /folders/{id}`. Doku: `dms/docs/CMIS.md`, Protokoll: `dms/docs/INT-09-PRUEFPROTOKOLL.md`. ## Pruefungen (Host 131, frischer Klon, echtes Postgres) - Pruefung 1, Test mit CMIS-Referenzclient (OpenCMIS): **offen**. Auf 131 fehlt ein JDK/der Client, eine Installation ist nicht freigegeben. Ersatzweise Protokolltests der Anfragefolge eines Browser-Binding-Clients (eigener Code, ersetzt die Interoperabilitaetspruefung nicht). - Pruefung 2, Rechte identisch zu REST: bestanden. 4 Endpunkte x 6 Identitaeten (Eigentuemer, Fremder, ohne Token, abgelaufen, anderer Mandant, manipuliert) liefern ueber REST und CMIS denselben Status; gefaelschter `caller` neben fremdem Token 403; Core-Policy verweigert/erteilt/faellt aus: je 403/200/503 wie REST. Architekturtest: `internal/cmis` nutzt nur die Standardbibliothek (kein Datenzugriff an der REST-Kette vorbei). - Pruefung 3, Deaktivierung: bestanden. Ohne Schalter alle CMIS-Adressen 404, REST-Inhalt und openapi.json unveraendert. - `go build`, `go vet`, `go test ./...` (2 Volllaeufe), `gofmt -l`, `check-port-defaults.sh`, `check-route-prefixes.sh`: sauber. Fix-Iterationen: 2 (je 1). ## Offen - Referenzclient-Lauf (siehe oben); kein Test gegen echten Core (JWKS/Policy-Stub wie bei INT-01). - Ordner-Endpunkte haben in REST keine Eigentuemerpruefung (Stand INT-01), CMIS erbt das; Details fuer INT-15 im Protokoll. Kein Merge, kein Deploy. Generated with [Claude Code](https://claude.com/claude-code)
patrick added 13 commits 2026-09-21 00:15:37 +02:00
INT-01: rest-api v1 mit core-jwt-identitaet, openapi und einheitlichem fehlerformat
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
b44c2df15f
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
INT-01: imports, testkorrekturen, complete-status 200
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
06641331da
INT-01: qa02-gate prueft api-auth, betriebsdoku fuer identitaets-variablen
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
6151cbe2ed
INT-01: rechtematrix-test ueber alle dokumentendpunkte
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
83bf82ecc5
INT-01: gofmt
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
5274226d37
INT-01: pruefprotokoll
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
3a92535976
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
INT-09: cmis-kompatible schnittstelle (optional)
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
74f99a3e81
CMIS 1.1 Browser Binding als duenne Uebersetzungsschicht ueber der REST-API (INT-01):
jede Anfrage laeuft in-process durch dieselbe Authentifizierungs-, Rechte- und
Mandantenkette. Optional per NEXARCH_DMS_APP_CMIS_ENABLED. Neu in REST:
GET /documents/{id} und GET /folders/{id}.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
INT-09: test-inhalt je nutzer eindeutig (dublettenerkennung)
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
805e654b3a
INT-09: caller-spoofing-test, cmis-doku
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
52f7ee72b4
INT-09: API.md verweist auf CMIS, Dokument-Metadaten als Beispiel
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
5cbcaff85f
INT-09: gofmt
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
bdc567d071
INT-09: architekturtest, cmis nutzt nur standardbibliothek
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
56f6681109
INT-09: pruefprotokoll
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
4ec5998b4c
patrick added 1 commit 2026-09-21 00:15:38 +02:00
INT-09: pruefprotokoll
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
4ec5998b4c
patrick closed this pull request 2026-09-25 23:31:00 +02:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#93