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

stacklok / toolhive / 24531375418
66%

Build:
DEFAULT BRANCH: main
Ran 16 Apr 2026 08:11PM UTC
Jobs 1
Files 635
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

16 Apr 2026 08:05PM UTC coverage: 66.098% (-0.04%) from 66.139%
24531375418

push

github

web-flow
Replace groups parameter with variadic parents on entity factory (#4901)

CreatePrincipalEntity previously accepted groups []string and
internally created THVGroup entities with empty parent sets. This
caused a merge-order hazard: dynamically created THVGroup entities
overwrote any static ones loaded from entities_json, severing
parent relationships defined there (e.g. a group that is a child
of a role in a transitive hierarchy).

Refactor CreatePrincipalEntity to accept parents ...cedar.EntityUID
so callers pass pre-built parent UIDs. The function no longer inserts
separate THVGroup entities into the entity map, preserving the static
entity hierarchy from entities_json. Add the same variadic parents
parameter to CreateResourceEntity for server-scoped policies (#4769).

CreateEntitiesForRequest still converts groups to THVGroup parent UIDs
on the principal but the entity map now contains exactly 3 entries
(principal, action, resource) instead of 3+N.

E2E tested in a Kind cluster with real Okta and Entra ID tokens.
Proxy debug logs confirm the refactored entity hierarchy:

  Okta JWT: { "groups": ["Everyone", "engineering"] }
  Entra JWT: { "roles": ["mcp-admin", "developer"] }

  Both produce entityCount:3 with THVGroup parent UIDs on the
  principal entity. Cedar policies using "principal in THVGroup::..."
  evaluate correctly -- the parent UIDs are sufficient for Cedar's
  "in" operator without separate THVGroup entities in the map.

Fixes #4765

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

16 of 16 new or added lines in 1 file covered. (100.0%)

39 existing lines in 4 files now uncovered.

57498 of 86989 relevant lines covered (66.1%)

62.7 hits per line

Coverage Regressions

Lines Coverage ∆ File
14
74.44
-5.19% pkg/client/config.go
11
69.23
-14.1% pkg/client/discovery.go
8
20.11
-2.87% pkg/client/manager.go
6
76.15
-5.5% pkg/secrets/keyring/keyctl_linux.go
Jobs
ID Job ID Ran Files Coverage
1 24531375418.1 16 Apr 2026 08:11PM UTC 635
66.1
GitHub Action Run
Source Files on build 24531375418
  • Tree
  • List 635
  • Changed 6
  • Source Changed 2
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24531375418
  • 34e877d5 on github
  • Prev Build on main (#24531349707)
  • Next Build on main (#24531431879)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc