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

stacklok / toolhive / 31706922139
71%

Build:
DEFAULT BRANCH: main
Ran 13 Aug 2026 01:57PM UTC
Jobs 1
Files 875
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

13 Aug 2026 01:49PM UTC coverage: 70.279% (-0.05%) from 70.325%
31706922139

push

github

web-flow
fix(authz): make Cedar URI entity IDs collision-free (#6239)

* fix(authz): make Cedar URI entity IDs collision-free

authorizeResourceRead sanitized resource URIs into Cedar entity IDs
by rewriting reserved characters to "_". The mapping is many-to-one:
"file:///etc/passwd" and "file://_etc/passwd" both became
"file____etc_passwd", and "mcp://srv/config:admin" and
"mcp://srv/config/admin" both became "mcp___srv_config_admin". A
policy grant on one entity ID therefore authorized every URI in the
collision class.

Entities are built programmatically via cedar.NewEntityUID, which
accepts any string, so no rewriting is needed. Use the exact URI as
the entity ID and drop the sanitizer. Attribute-based policies
(resource.name / resource.uri) already matched on the exact URI and
are unaffected. Policies that referenced sanitized IDs must be
updated to name the exact URI.

Added TestAuthorizeResourceReadEntityIDsCollisionFree: a grant on an
exact URI authorizes that URI and denies the URI that used to
collide with it.

Signed-off-by: Sasha Mitchell <sash.t.mitchell@gmail.com>

* docs(authz): document exact-URI Cedar resource entity IDs

Address review: docs/authz.md now shows Resource::"file:///..." form,
notes that policy IDs are exact URIs, and mentions Cedar string escaping
for " and \. Soften the authorizeResourceRead comment accordingly.

Signed-off-by: Sasha Mitchell <sash.t.mitchell@gmail.com>

---------

Signed-off-by: Sasha Mitchell <sash.t.mitchell@gmail.com>

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

66 existing lines in 3 files now uncovered.

84617 of 120401 relevant lines covered (70.28%)

98.8 hits per line

Coverage Regressions

Lines Coverage ∆ File
59
62.08
-4.56% pkg/workloads/manager.go
5
0.0
-100.0% pkg/workloads/sysproc_unix.go
2
82.27
-0.21% pkg/vmcp/composer/workflow_engine.go
Jobs
ID Job ID Ran Files Coverage
1 31706922139.1 13 Aug 2026 01:57PM UTC 875
70.28
GitHub Action Run
Source Files on build 31706922139
  • Tree
  • List 875
  • Changed 6
  • Source Changed 1
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #31706922139
  • bacac58a on github
  • Prev Build on main (#31706784393)
  • Next Build on main (#31707681646)
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