workflow: Pflichttest-Gate fuer bearerauth #415

Merged
patrick merged 1 commits from feat/workflow-gate-bearerauth into main 2026-10-28 22:15:59 +01:00
3 changed files with 12 additions and 1 deletions

No files matched your search

+3 -1
View File
@@ -63,7 +63,9 @@ aendert — **jede geaenderte `.go`-Datei muss von einer geaenderten oder neuen
- **Auth-nahe Logik:** `workflow/internal/svcauth/` (Service-Token-Vergleich in
konstanter Zeit), `workflow/internal/moduleadapter/` (prueft `X-Service-Token`
gegen `svcauth.Equal` — der tatsaechliche Durchsetzungspunkt)
gegen `svcauth.Equal` — der tatsaechliche Durchsetzungspunkt),
`workflow/internal/bearerauth/` (prueft das Bearer-Token der Frontends gegen
die Core-JWKS; `X-User-Id` nur noch ueber den Uebergangsschalter)
- **Tenant-Scoping:** `workflow/internal/tenantregistryclient/` (fragt Core TEN-01,
muss bei Fehler fail-closed bleiben), `workflow/internal/backchannel/` und
`workflow/internal/backchannelapi/` (extern erreichbarer Eingang, der den
@@ -18,6 +18,7 @@ import (
// workflow/docs/TESTSTRATEGIE.md Abschnitt 4.
var sensitivePathPatterns = []*regexp.Regexp{
regexp.MustCompile(`(^|/)workflow/internal/moduleadapter/`),
regexp.MustCompile(`(^|/)workflow/internal/bearerauth/`),
regexp.MustCompile(`(^|/)workflow/internal/backchannel/`),
regexp.MustCompile(`(^|/)workflow/internal/backchannelapi/`),
regexp.MustCompile(`(^|/)workflow/internal/dualcheck/`),
@@ -35,6 +35,7 @@ func TestCheckDiff_IgnoresNonSensitivePaths(t *testing.T) {
func TestCheckDiff_CoversAllSensitivePackages(t *testing.T) {
files := []string{
"workflow/internal/moduleadapter/x.go",
"workflow/internal/bearerauth/x.go",
"workflow/internal/backchannel/x.go",
"workflow/internal/backchannelapi/x.go",
"workflow/internal/dualcheck/x.go",
@@ -45,3 +46,10 @@ func TestCheckDiff_CoversAllSensitivePackages(t *testing.T) {
t.Fatalf("erwartet %d verstoesse (je package einer), habe %d: %+v", len(files), len(violations), violations)
}
}
func TestCheckDiff_FlagsBearerAuthChangeWithoutTest(t *testing.T) {
violations := CheckDiff([]string{"workflow/internal/bearerauth/bearerauth.go"})
if len(violations) != 1 || violations[0].Package != "workflow/internal/bearerauth" {
t.Fatalf("erwartet 1 verstoss fuer bearerauth, habe: %+v", violations)
}
}