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

stacklok / toolhive / 35605414532
71%

Build:
DEFAULT BRANCH: main
Ran 21 Sep 2026 01:33PM UTC
Jobs 1
Files 934
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

21 Sep 2026 01:24PM UTC coverage: 70.868% (-0.02%) from 70.883%
35605414532

push

github

web-flow
Merge commit from fork

* Authorize completion and subscription references

The direct proxy's authorization middleware classified completion/complete
and subscriptions/listen as protocol-level methods with an empty
feature/operation pair, which skips the authorizer entirely. Both methods
name a capability policy can already decide on: a completion request
references a concrete prompt or resource template, and a subscription
request lists resource URIs the backend registers for change notifications.
An identity denied a prompt or resource could therefore reach backend
completion candidates for it, or observe its existence and change timing,
through methods no policy was ever consulted about.

Neither classification could be expressed as a static feature/operation
pair: completion's feature depends on the reference type in the body, and a
subscription names many resources at once. Both are moved out of
MCPMethodToFeatureOperation into derivedAuthorizers, which derives the
checks from the request body and is consulted before the static map, so no
always-allowed entry can shadow them. A prompt reference requires the same
get decision prompts/get requires; a resource reference and every
subscribed URI require the same read decision resources/read requires.

Requests whose authorization target cannot be established are denied rather
than authorized under an empty identifier, and a subscription list is
admitted as a unit so the backend never registers a set that differs from
the one authorized. Derived checks pass no arguments: Cedar namespaces
arguments as arg_*, and the parser hands completion its entire params map,
so forwarding it would let a caller forge values for a policy condition the
real prompts/get could not satisfy.

Two behaviors change for existing deployments. A resource-template
reference is authorized as the template string, its own Cedar entity id, so
a policy naming only concrete URIs no longer permits template completions.
The legacy bar... (continued)

111 of 116 new or added lines in 2 files covered. (95.69%)

57 existing lines in 3 files now uncovered.

83920 of 118418 relevant lines covered (70.87%)

107.67 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
94.12
pkg/authz/derived_authz.go

Coverage Regressions

Lines Coverage ∆ File
48
59.83
-4.79% pkg/workloads/manager.go
6
72.34
-6.38% pkg/secrets/keyring/keyctl_linux.go
3
0.0
-100.0% pkg/workloads/sysproc_unix.go
Jobs
ID Job ID Ran Files Coverage
1 35605414532.1 21 Sep 2026 01:33PM UTC 934
70.87
GitHub Action Run
Source Files on build 35605414532
  • Tree
  • List 934
  • Changed 8
  • Source Changed 1
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35605414532
  • e4e757ba on github
  • Prev Build on main (#35603749476)
  • Next Build on main (#35608955848)
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