From c3c9034650bb72d3671096378e04ddd1d50e1c92 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 26 Sep 2026 19:40:24 +0000 Subject: [PATCH] Gesamtprojekt: Nachtrag 43 -- SHL-02 Portal-Katalog-Erweiterung mit echten Rechten gemergt Co-Authored-By: Claude Sonnet 5 --- docs/GESAMTPROJEKT-PRUEFPROTOKOLL.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/GESAMTPROJEKT-PRUEFPROTOKOLL.md b/docs/GESAMTPROJEKT-PRUEFPROTOKOLL.md index 38561866..7491241c 100644 --- a/docs/GESAMTPROJEKT-PRUEFPROTOKOLL.md +++ b/docs/GESAMTPROJEKT-PRUEFPROTOKOLL.md @@ -1098,3 +1098,23 @@ Migrationskollision `workflow/migrations/tenant/0004` (drei verschiedene Migrati - Core-Admin: `core.tenant.read`, `core.tenant.admin` (Echte Durchsetzung real nur für Mail (`mail.message.read`) und Connect (`connect.status.read`) getestet.) + +## Nachtrag 43 — SHL-02: Portal-Katalog-Erweiterung (echte Rechte) + +Datum: 2026-09-26. Merge von PR #214 (`feature/shl-02-portal-katalog-erweiterung`) nach `main`. + +**Ausgangslage:** Erster Versuch, den Portal-Katalog (`web/portal/config/modules.json`) auf über 20 Apps zu erweitern, wurde zu Recht abgebrochen — die 6 bestehenden Einträge nutzten erfundene `permission`-Werte, die real nirgends in Core's `policy_rules`-Katalog existierten. RBAC-12 (PR #213, Nachtrag 42) hat das behoben: 28 echte, granulare Rechte für Mail/Workflow/AI/Connect/Core-Admin angelegt (DMS hatte schon echte Rechte). Dieser Merge zieht die Portal-Erweiterung mit den jetzt echten Schlüsseln nach. + +**Ergebnis:** Katalog von 6 auf 12 Einträge erweitert, ausschließlich mit real existierenden `policy_rules`-Schlüsseln. Neun Apps bewusst ausgelassen (kein passendes reales Recht vorhanden, nicht erfunden): `account`, `audit-log`, `compliance-reports`, `dms2-import`, `kennzahlen-dashboard`, `lic-admin`, `notifications`, `retention-admin`, `status-page`. Neuer Test (`web/portal/lib/modules.test.ts`) prüft jeden Katalog-Eintrag gegen die reale Rechte-Liste, damit kein erfundener Schlüssel mehr unbemerkt durchrutscht. + +**Offener, ehrlich dokumentierter Vorbehalt (aus RBAC-12 übernommen):** echte Durchsetzung existiert bisher nur für `mail.message.read` und `connect.status.read`. Die Workflow-, AI- und Core-Admin-Kacheln sind technisch für jeden mit irgendeinem gültigen Recht sichtbar, bis die Durchsetzung dort nachgezogen wird (separates, noch offenes Nachfolgewerk). + +**Verifikation (Host 204, frischer Klon `/root/merge-shl02`):** +- `go build`/`go vet` (Core-Modul): sauber +- `web/portal`: 12/12 Vitest PASS, `tsc --noEmit` sauber (nach dem etablierten `@nexarch/shl`-Symlink→Kopie-Fix), `next build` erfolgreich +- `check-port-defaults.sh`: PASS +- `e2e-core-dms.sh`: PASS (`TestCoreE2E_TokenJWKSAndPolicy`, 10/10 Unterfälle) +- `gesamt-token-smoke.sh`: **45/45 bestanden, GESAMT-FEHLER=0**, Rückbau-Snapshot identisch +- `migrations-fresh-check.sh`: an bekannter, vorbestehender `TEST_TENANT_DSN_B`-Umgebungslücke abgebrochen (keine Regression durch diesen Merge) + +**Neuer main-Head:** `925f8d6214adbc4d53b3cc2e300d75df7dfb9d54` (vorher `89a1c62b8bcb0cd81e6e57780e13414cd6c480df`). Kein Deploy — Rollout auf 131 bleibt separat.