Feingranulare Rechte statt fester Rollen, ein automatischer Weg ins Cluster und das Schließen der ersten Sicherheitslücken.
Umgesetzt
RBAC Phase 1–5: Datenmodell, @RequirePermission in allen Bereichen, alte Rollen entfernt, Rollenverwaltung im Frontend (139ea6fd bis 335c572d, 2026-08-26)
Gitea-Actions-Workflows für Backend- und Frontend-Image, Postgres als StatefulSet, Migration beim Start, Admin-Seed beim Deploy (a1d3abe6, 41c82d7d, 80890a5f, 76a9e9c3, 05876838)
MFA (TOTP), Profilseite, Entra-ID-SSO, Etikettendruck mit QR-Code (62004483, 8432313f)
Zwei Sicherheitsaudits am 2026-09-02: Rechteausweitung über Rollen, SSO-MFA-Umgehung, Magic-Bytes, öffentliches Swagger, fail-closed PermissionsGuard, JWT-Mindestlänge, Sicherheits-Header (1b16b499, b7ff92ab, 19d5e5d6, f57cffe6, 4bd7e979, 33fa7680, 7bd2a3dc)
Folgefehler behoben: Login durch CSP blockiert, @Public-Routen gesperrt, Redirect-Schleife in proxy.ts (c95e1c4b, cd24523e, 1e537587)
Grundlage
ARCHITECTURE.md Abschnitte 3 und 9, docs/pruefung-2026-09.md.
Status
Code: ja · Geprüft: ja · Gemergt: ja · Produktiv: ja
Stand: 2026-10-16 (Quelle: git origin/main b48fb157, Cluster-Abfrage 2026-10-16, Session-Status vs-code-ff, Memory)
Im Cluster läuft seit 2026-10-12 das Backend-Image sha-f5b1964 (Commit f5b19642) und ein Frontend-Image vom 2026-10-12 03:23 UTC. Alles ab Paket 0 (10cbe9bf) ist gebaut, aber nicht ausgerollt.
## Ziel
Feingranulare Rechte statt fester Rollen, ein automatischer Weg ins Cluster und das Schließen der ersten Sicherheitslücken.
## Umgesetzt
- [x] RBAC Phase 1–5: Datenmodell, `@RequirePermission` in allen Bereichen, alte Rollen entfernt, Rollenverwaltung im Frontend (139ea6fd bis 335c572d, 2026-08-26)
- [x] Gitea-Actions-Workflows für Backend- und Frontend-Image, Postgres als StatefulSet, Migration beim Start, Admin-Seed beim Deploy (a1d3abe6, 41c82d7d, 80890a5f, 76a9e9c3, 05876838)
- [x] MFA (TOTP), Profilseite, Entra-ID-SSO, Etikettendruck mit QR-Code (62004483, 8432313f)
- [x] Härtung: Brute-Force-Schutz, Auth-Audit, kritische Rechte-Lücke, Admin-Lockout-Schutz, Sofort-Sperre deaktivierter Nutzer (f1298eff, 5a1015c4, adfbc2ab)
- [x] Zwei Sicherheitsaudits am 2026-09-02: Rechteausweitung über Rollen, SSO-MFA-Umgehung, Magic-Bytes, öffentliches Swagger, fail-closed `PermissionsGuard`, JWT-Mindestlänge, Sicherheits-Header (1b16b499, b7ff92ab, 19d5e5d6, f57cffe6, 4bd7e979, 33fa7680, 7bd2a3dc)
- [x] Folgefehler behoben: Login durch CSP blockiert, `@Public`-Routen gesperrt, Redirect-Schleife in `proxy.ts` (c95e1c4b, cd24523e, 1e537587)
## Grundlage
`ARCHITECTURE.md` Abschnitte 3 und 9, `docs/pruefung-2026-09.md`.
## Status
Code: ja · Geprüft: ja · Gemergt: ja · Produktiv: ja
Stand: 2026-10-16 (Quelle: git origin/main b48fb157, Cluster-Abfrage 2026-10-16, Session-Status vs-code-ff, Memory)
Im Cluster läuft seit 2026-10-12 das Backend-Image `sha-f5b1964` (Commit f5b19642) und ein Frontend-Image vom 2026-10-12 03:23 UTC. Alles ab Paket 0 (10cbe9bf) ist gebaut, aber nicht ausgerollt.
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.
Ziel
Feingranulare Rechte statt fester Rollen, ein automatischer Weg ins Cluster und das Schließen der ersten Sicherheitslücken.
Umgesetzt
@RequirePermissionin allen Bereichen, alte Rollen entfernt, Rollenverwaltung im Frontend (139ea6fdbis335c572d, 2026-08-26)a1d3abe6,41c82d7d,80890a5f,76a9e9c3,05876838)62004483,8432313f)f1298eff,5a1015c4,adfbc2ab)PermissionsGuard, JWT-Mindestlänge, Sicherheits-Header (1b16b499,b7ff92ab,19d5e5d6,f57cffe6,4bd7e979,33fa7680,7bd2a3dc)@Public-Routen gesperrt, Redirect-Schleife inproxy.ts(c95e1c4b,cd24523e,1e537587)Grundlage
ARCHITECTURE.mdAbschnitte 3 und 9,docs/pruefung-2026-09.md.Status
Code: ja · Geprüft: ja · Gemergt: ja · Produktiv: ja
Stand: 2026-10-16 (Quelle: git origin/main
b48fb157, Cluster-Abfrage 2026-10-16, Session-Status vs-code-ff, Memory)Im Cluster läuft seit 2026-10-12 das Backend-Image
sha-f5b1964(Commitf5b19642) und ein Frontend-Image vom 2026-10-12 03:23 UTC. Alles ab Paket 0 (10cbe9bf) ist gebaut, aber nicht ausgerollt.