RBAC-10: mandant und modulaktivierung in authorize #108

Closed
patrick wants to merge 0 commits from feature/rbac-10-mandant-modulaktivierung-authorize into integration/gesamtprojekt
pull from: feature/rbac-10-mandant-modulaktivierung-authorize
Owner

RBAC-10: POST /authorize nimmt den Mandanten entgegen und bindet modulgebundene Rechte an die Modulaktivierung (fail closed).

Umsetzung

  • Enforcer.AuthorizeRequest: mit Mandant AuthorizeForTenant (Feature-Flag), ohne Mandant nur Grundrecht, nie fuer modulgebundene Rechte (tenant_required); Grund module_inactive/denied/tenant_required in der Antwort
  • policyapi: Slug-Pruefung (400), optionale Bindung des Service-Tokens an Mandanten (NEXARCH_POLICY_ALLOWED_TENANTS, 403), NEXARCH_POLICY_FLAG_CACHE_TTL_SECONDS
  • Migration 0012_dms_module_scopes (up/down): 38 dms.*-Regeln an das Flag dms gebunden
  • DMS policyclient: sendet den Mandanten (Token, sonst Instanz-Mandant), Cache je Mandant; App verlangt NEXARCH_DMS_APP_TENANT_SLUG bei aktivem Policy-Endpunkt

Pruefungen (Entwicklungshost 204, Wegwerf-Cluster)

  • Core policy, policyapi, flag, rbac, moduletrust, auth gruen; DMS policyclient, apiwiring, cmis, cmd/app gruen; go vet, gofmt, Port-/Routenskripte, migrations-fresh-check.sh (Core Registry 30) ok
  • Ende-zu-Ende scripts/e2e-core-dms.sh: 10 Teilfaelle bestanden (Modul aktiv 200, abgewaehlt 403, Mandant Pflicht, Token-Bindung, Ausfall 503)
  • 3 Fix-Iterationen, alle im Test-/Importcode

Grenzen

Rolle bleibt Angabe des Moduls; policy_rules gelten fuer alle Mandanten gleich; ohne ALLOWED_TENANTS darf jeder Token-Inhaber jeden gueltigen Mandanten angeben; Flag dms muss vor dem Ausrollen je Mandant gesetzt werden. Details: docs/RBAC-10-PRUEFPROTOKOLL.md.

Basis: integration/gesamtprojekt. Kein Merge.

🤖 Generated with Claude Code

RBAC-10: `POST /authorize` nimmt den Mandanten entgegen und bindet modulgebundene Rechte an die Modulaktivierung (fail closed). ## Umsetzung - `Enforcer.AuthorizeRequest`: mit Mandant `AuthorizeForTenant` (Feature-Flag), ohne Mandant nur Grundrecht, nie fuer modulgebundene Rechte (`tenant_required`); Grund `module_inactive`/`denied`/`tenant_required` in der Antwort - `policyapi`: Slug-Pruefung (400), optionale Bindung des Service-Tokens an Mandanten (`NEXARCH_POLICY_ALLOWED_TENANTS`, 403), `NEXARCH_POLICY_FLAG_CACHE_TTL_SECONDS` - Migration `0012_dms_module_scopes` (up/down): 38 `dms.*`-Regeln an das Flag `dms` gebunden - DMS `policyclient`: sendet den Mandanten (Token, sonst Instanz-Mandant), Cache je Mandant; App verlangt `NEXARCH_DMS_APP_TENANT_SLUG` bei aktivem Policy-Endpunkt ## Pruefungen (Entwicklungshost 204, Wegwerf-Cluster) - Core `policy`, `policyapi`, `flag`, `rbac`, `moduletrust`, `auth` gruen; DMS `policyclient`, `apiwiring`, `cmis`, `cmd/app` gruen; `go vet`, `gofmt`, Port-/Routenskripte, `migrations-fresh-check.sh` (Core Registry 30) ok - Ende-zu-Ende `scripts/e2e-core-dms.sh`: 10 Teilfaelle bestanden (Modul aktiv 200, abgewaehlt 403, Mandant Pflicht, Token-Bindung, Ausfall 503) - 3 Fix-Iterationen, alle im Test-/Importcode ## Grenzen Rolle bleibt Angabe des Moduls; `policy_rules` gelten fuer alle Mandanten gleich; ohne `ALLOWED_TENANTS` darf jeder Token-Inhaber jeden gueltigen Mandanten angeben; Flag `dms` muss vor dem Ausrollen je Mandant gesetzt werden. Details: `docs/RBAC-10-PRUEFPROTOKOLL.md`. Basis: `integration/gesamtprojekt`. Kein Merge. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 5 commits 2026-09-21 23:44:25 +02:00
RBAC-10: mandant und modulaktivierung in authorize
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
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
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
b3ba0fdfa6
POST /authorize nimmt optional den Mandanten entgegen und wertet modulgebundene Rechte ueber AuthorizeForTenant aus (fail closed). Mandant ist Pflicht fuer Rechte mit Modul-Bindung, das Service-Token laesst sich auf Mandanten einschraenken. Migration 0012 bindet die dms.*-Rechte an das Flag dms. Der DMS-policyclient sendet den Mandanten mit und trennt den Cache je Mandant.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
RBAC-10: imports in policy-api, struktur des EnforceConfig
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
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
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
824e2d8b10
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
RBAC-10: testkorrektur (nicht gewaehrtes recht)
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
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
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
1f812104c4
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
RBAC-10: e2e-test schliesst den pool erst nach dem aufraeumen
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
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
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
d086914abe
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
RBAC-10: pruefprotokoll und betriebsdoku
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
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 / 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
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
665735aae1
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
patrick closed this pull request 2026-09-25 23:30:56 +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#108