• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stacklok / toolhive / 29749964578
69%

Build:
DEFAULT BRANCH: main
Ran 20 Jul 2026 02:23PM UTC
Jobs 1
Files 806
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Jul 2026 02:17PM UTC coverage: 68.73% (+0.07%) from 68.66%
29749964578

push

github

web-flow
Normalize opt-in multi-valued JWT claims for Cedar (#5880)

OAuth scope claims arrive in different shapes across identity providers:
Entra and Keycloak emit them as one space-delimited string, while Okta
emits a JSON array. The Cedar authorizer maps a string to a Cedar String
and an array to a Set, and no single policy expression matches element
membership across both shapes — a type mismatch errors and the policy is
silently ignored, so a policy authored for one IdP fails closed for
another.

Add an opt-in MultiValuedClaims config field naming the JWT claims to
normalize. For each listed claim, the authorizer exposes two forms:

  - claim_<name> is normalized to a space-delimited string (arrays are
    joined, strings pass through unchanged) so existing string-membership
    policies match uniformly across IdPs; and
  - a companion Cedar Set is exposed as claimset_<name> for exact-element
    membership via contains/containsAll/containsAny.

Both surface on the principal entity and the request context. The
claimset_ prefix is reserved and cannot be shadowed by a JWT claim, since
all claims are prefixed with claim_. The field is opt-in: with it empty,
output is byte-identical to before, so existing deployments are unaffected.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

57 of 65 new or added lines in 1 file covered. (87.69%)

20 existing lines in 4 files now uncovered.

75301 of 109561 relevant lines covered (68.73%)

71.46 hits per line

Uncovered Changes

Lines Coverage ∆ File
8
96.36
-1.01% pkg/authz/authorizers/cedar/core.go

Coverage Regressions

Lines Coverage ∆ File
6
73.96
-1.78% pkg/runner/config.go
6
76.15
-5.5% pkg/secrets/keyring/keyctl_linux.go
6
80.56
-1.41% pkg/transport/proxy/httpsse/http_proxy.go
2
82.29
-0.21% pkg/vmcp/composer/workflow_engine.go
Jobs
ID Job ID Ran Files Coverage
1 29749964578.1 20 Jul 2026 02:23PM UTC 806
68.73
GitHub Action Run
Source Files on build 29749964578
  • Tree
  • List 806
  • Changed 10
  • Source Changed 1
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29749964578
  • f0ffba74 on github
  • Prev Build on main (#29740184376)
  • Next Build on main (#29750174539)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc