Baut auf #418 (Basis-Branch fix/issue-369-rbac). Nach dem Merge von #418 den PR auf main umhaengen; der Diff enthaelt dann nur diesen einen Commit.
Aenderung
workflow/internal/bearerauth: setzt X-User-Role aus den Token-Claims. Ein vom Client gesendeter X-User-Role wird immer entfernt (auch im Uebergangsmodus).
taskapi, connectorsetupapi: Policy-Abfrage mit dieser Rolle, ohne Rolle user.
Migration 0029 (noch nicht gemergt, daher direkt angepasst): connect.setup.write nur noch fuer tenant_admin. workflow.task.write bleibt bei user, weil Bearbeiter ihre Aufgaben selbst setzen.
fail-closed: ai-app, workflow-app, connect-app starten ohne NEXARCH_<MODUL>_APP_POLICY_URL nicht mehr, ausser NEXARCH_<MODUL>_APP_POLICY_DISABLED=1 (Warnung im Log).
Breaking beim Deploy: ohne Policy-URL (oder …_POLICY_DISABLED=1) startet keiner der drei Dienste.
connect-app: die Rolle kommt erst mit #419 (connect/internal/bearerauth, dort ist die gleiche Aenderung als eigener Commit). Bis dahin gilt dort user, also darf niemand connect.setup.write.
ai-app wird per Service-Token von Modulen gerufen, ohne Nutzerrolle; es fragt weiter mit user.
statusapi fragt weiter mit fester Rolle user (nicht Teil dieses PR).
Tests (131)
workflow: bearerauth (Rolle nur aus Token, Client-Rolle entfernt), taskapi, pflichttestgate; connect: connectorsetupapi, statusapi; ai: cmd/ai-app (Policy erforderlich ausser DISABLED), semanticsearchapi; go vet und gofmt sauber. Nicht gelaufen: Tests mit echter Policy-API und DB-Tests der Migration (Aenderung ist ein entfernter VALUES-Eintrag).
**Baut auf #418** (Basis-Branch `fix/issue-369-rbac`). Nach dem Merge von #418 den PR auf `main` umhaengen; der Diff enthaelt dann nur diesen einen Commit.
## Aenderung
- `workflow/internal/bearerauth`: setzt `X-User-Role` aus den Token-Claims. Ein vom Client gesendeter `X-User-Role` wird immer entfernt (auch im Uebergangsmodus).
- `taskapi`, `connectorsetupapi`: Policy-Abfrage mit dieser Rolle, ohne Rolle `user`.
- Migration 0029 (noch nicht gemergt, daher direkt angepasst): `connect.setup.write` nur noch fuer `tenant_admin`. `workflow.task.write` bleibt bei `user`, weil Bearbeiter ihre Aufgaben selbst setzen.
- fail-closed: `ai-app`, `workflow-app`, `connect-app` starten ohne `NEXARCH_<MODUL>_APP_POLICY_URL` nicht mehr, ausser `NEXARCH_<MODUL>_APP_POLICY_DISABLED=1` (Warnung im Log).
- Doku: `docs/BETRIEB-PORTAL.md`, `workflow/docs/ENG-11-PRUEFPROTOKOLL.md`.
## Auswirkung
- **Breaking beim Deploy:** ohne Policy-URL (oder `…_POLICY_DISABLED=1`) startet keiner der drei Dienste.
- `connect-app`: die Rolle kommt erst mit #419 (`connect/internal/bearerauth`, dort ist die gleiche Aenderung als eigener Commit). Bis dahin gilt dort `user`, also darf niemand `connect.setup.write`.
- `ai-app` wird per Service-Token von Modulen gerufen, ohne Nutzerrolle; es fragt weiter mit `user`.
- `statusapi` fragt weiter mit fester Rolle `user` (nicht Teil dieses PR).
## Tests (131)
workflow: `bearerauth` (Rolle nur aus Token, Client-Rolle entfernt), `taskapi`, `pflichttestgate`; connect: `connectorsetupapi`, `statusapi`; ai: `cmd/ai-app` (Policy erforderlich ausser DISABLED), `semanticsearchapi`; `go vet` und `gofmt` sauber. Nicht gelaufen: Tests mit echter Policy-API und DB-Tests der Migration (Aenderung ist ein entfernter VALUES-Eintrag).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick
changed target branch from fix/issue-369-rbac to main2026-10-28 23:29:12 +01:00
workflow bearerauth setzt X-User-Role nur aus den Claims (Client-Header werden
entfernt); taskapi und connectorsetupapi fragen mit dieser Rolle, Default user.
Migration 0029: connect.setup.write nur fuer tenant_admin.
ai-app, workflow-app, connect-app starten ohne POLICY_URL nicht mehr, ausser
mit NEXARCH_<MODUL>_APP_POLICY_DISABLED=1.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
patrick
merged commit 1b095507f3 into main2026-10-28 23:29:22 +01:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Baut auf #418 (Basis-Branch
fix/issue-369-rbac). Nach dem Merge von #418 den PR aufmainumhaengen; der Diff enthaelt dann nur diesen einen Commit.Aenderung
workflow/internal/bearerauth: setztX-User-Roleaus den Token-Claims. Ein vom Client gesendeterX-User-Rolewird immer entfernt (auch im Uebergangsmodus).taskapi,connectorsetupapi: Policy-Abfrage mit dieser Rolle, ohne Rolleuser.connect.setup.writenur noch fuertenant_admin.workflow.task.writebleibt beiuser, weil Bearbeiter ihre Aufgaben selbst setzen.ai-app,workflow-app,connect-appstarten ohneNEXARCH_<MODUL>_APP_POLICY_URLnicht mehr, ausserNEXARCH_<MODUL>_APP_POLICY_DISABLED=1(Warnung im Log).docs/BETRIEB-PORTAL.md,workflow/docs/ENG-11-PRUEFPROTOKOLL.md.Auswirkung
…_POLICY_DISABLED=1) startet keiner der drei Dienste.connect-app: die Rolle kommt erst mit #419 (connect/internal/bearerauth, dort ist die gleiche Aenderung als eigener Commit). Bis dahin gilt dortuser, also darf niemandconnect.setup.write.ai-appwird per Service-Token von Modulen gerufen, ohne Nutzerrolle; es fragt weiter mituser.statusapifragt weiter mit fester Rolleuser(nicht Teil dieses PR).Tests (131)
workflow:
bearerauth(Rolle nur aus Token, Client-Rolle entfernt),taskapi,pflichttestgate; connect:connectorsetupapi,statusapi; ai:cmd/ai-app(Policy erforderlich ausser DISABLED),semanticsearchapi;go vetundgofmtsauber. Nicht gelaufen: Tests mit echter Policy-API und DB-Tests der Migration (Aenderung ist ein entfernter VALUES-Eintrag).🤖 Generated with Claude Code