Update module github.com/stacklok/toolhive to v0.31.0#195
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
Contributor
Author
ℹ️ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
5800e36 to
901cce6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v0.30.0→v0.31.0Release Notes
stacklok/toolhive (github.com/stacklok/toolhive)
v0.31.0Compare Source
What's Changed
df4cb1cby @renovate[bot] in #5461Full Changelog: stacklok/toolhive@v0.30.1...v0.31.0
v0.30.1Compare Source
📝 Generated release notes for
v0.30.1🚀 Toolhive v0.30.1 is live!
A security-and-resilience focused release: local MCP servers now isolate their network by default, shared
MCPAuthzConfigreferences are enforced end-to-end across every workload kind, OAuth-backed workloads self-recover from transient refresh failures, and OIDC gains per-provider subject-claim selection — alongside the continuing vMCP interface refactor.thv runand REST-API-created workloads now isolate the container network from the host unless you opt out; servers that reach the host, do proxy-unaware/non-HTTP outbound, or run offline may need action (migration guide) (#5583)authzConfigRefon aVirtualMCPServernow fails reconciliation — the reference is finally enforced at runtime, but because vMCP authz is Cedar-only, a ref to a non-cedarv1MCPAuthzConfig(previously a silent no-op) now setsAuthzConfigRefValidated=Falseand stops updating the workload (migration guide) (#5580)Migration guide: Network isolation default flip
Who is affected:
thv runusers and REST API (thv serve) consumers whose servers talk to the host (e.g.host.docker.internal), do non-HTTP or proxy-unaware outbound (notably some Node/npxservers), run under a restrictive permission profile, or run in constrained/offline environments. Already-running servers are unaffected until restarted. Kubernetes/operator behavior is unchanged — the operator does not consume this flag or field.Before (v0.30.0)
After (v0.30.1)
For the REST API, the
network_isolationfield changed fromboolto an optional*bool— an omitted field now means enabled:Migration steps
--isolate-network=false(full opt-out) or--allow-docker-gateway(keep isolation, allow the host gateway)."network_isolation": falseexplicitly for workloads that must not be isolated.network_isolationexplicitly — omitting it will enable isolation on a workload that previously had it off (round-trip GET→modify→PUT clients are unaffected, since GET always returns an explicit value).PR: #5583
Migration guide: VirtualMCPServer non-Cedar authzConfigRef
Who is affected: Operator users with an existing
VirtualMCPServerwhosespec.incomingAuth.authzConfigRefpoints at anMCPAuthzConfigof a type other thancedarv1(e.g. a CEL config). Previously such a reference was a documented no-op and reconciled cleanly while silently enforcing no authorization. It now fails reconciliation. References to acedarv1config, inlinespec.incomingAuth.authzConfig, or no ref at all are unaffected. The CRD schema is unchanged (only theauthzConfigReffield description was updated).Before
After
Migration steps
kubectl get virtualmcpserver -A -o json | jq -r '.items[] | select(.spec.incomingAuth.authzConfigRef != null) | "\(.metadata.namespace)/\(.metadata.name) -> \(.spec.incomingAuth.authzConfigRef.name)"'.MCPAuthzConfig, checkspec.type. If it iscedarv1, no action is needed.cedarv1MCPAuthzConfigand point the ref at it, or move it inline underspec.incomingAuth.authzConfig(Cedar). These two are mutually exclusive.authzConfigRefentirely (the controller clears the hash and condition).AuthzConfigRefValidated=TrueandReady=True. Note: an already-running pod keeps its last-applied policy (fail-stale, not fail-open).PR: #5580 — Part of #4778
🆕 New Features
MCPAuthzConfigreferences (spec.authzConfigRef) are now resolved and enforced at runtime across MCPServer and MCPRemoteProxy (backend-agnostic:cedarv1andhttpv1) and VirtualMCPServer (Cedar-only), instead of being reference-tracked no-ops (#5563, #5564, #5580, foundation #5559)subjectClaim(Go config andsubjectClaimon the CRD) to select which validated ID-token claim is the subject — fixing IdPs wheresubisn't stable, such as Entra/Azure AD's rotatingsub(useoid) (#5589)operator.defaultRedis(orglobal.redisin an umbrella chart); workloads without an explicitspec.sessionStoragefall back to it, and per-CR storage always wins (#5595)Eventobjects from theMCPOIDCConfig,MCPExternalAuthConfig, andMCPAuthzConfigcontrollers, sokubectl describeshows why a config was rejected or which workloads block its deletion (#5514)WithDialControloption on the vMCPNewHTTPBackendClientlets embedders install a per-connection dialer hook for SSRF / DNS-rebinding defense without abandoning the built-in auth registry and RoundTripper chain (#5551)NewKubernetesBackendRegistryconstructor gives embedders one-call, live Kubernetes-driven backend discovery without importing the vMCP watch substrate (#5542)PlatformUserIDfield onauth.PrincipalInfoand an exportedNewEmbeddedAuthServerWithStorageconstructor lay the OSS groundwork for per-user-keyed upstream token storage (no runtime change for standalone OSS) (#5575)🐛 Bug Fixes
auth_retryingstatus with tunable cadence and ceiling, instead of going permanently dead (#5350)seccompProfile: RuntimeDefaultandcapabilities.drop: [ALL]are set in the base security context, not just on OpenShift (#5555)thv stopandthv rmnow free an orphaned proxy port and stop the proxy even when the workload's status file is missing, instead of silently leaving a port-holding process (#5394)X-Api-Key) are once again forwarded to backends on the vMCP Serve path, fixing a regression from the legacy path (#5561)MCPOIDCConfigcontroller is now the sole owner of itsReferencingWorkloadsstatus, removing a merge-patch-vs-PUT clobber hazard and an append-only staleness bug (#5544)SecretEnvVarsare now wired intoMCPServerandMCPRemoteProxy(previously onlyVirtualMCPServer), so OBO middleware can read its credential at startup in builds with a registered handler (inert in stock builds) (#5540)🧹 Misc
thv mcp servecommand andthv serve --experimental-mcp*flags are gone; use the authenticated REST/OpenAPI API instead (thv mcp call/thv mcp listdebug commands are retained) (#5591)vmcpserver construction through the domain core (core.New+Serve) as the single live path; no CLI/operator change, but out-of-tree Go embedders ofpkg/vmcp/servermust now supplyConfig.Aggregatorand useConfig.Authzrather thanConfig.AuthzMiddleware(#5556)--enable-optimizerkeeps advertisingfind_tool/call_toolonceserver.Newroutes throughServe(#5543)v1beta1testbuilder and added reconciler/scheme test helpers across MCPServer, MCPRemoteProxy, EmbeddingServer, and VirtualMCPServer (#5565, #5566, #5576, #5578, #5579, #5577, #5584)TestWorkloadFromContainerInfostate writes and fixed a data race inTestMCPAuthzConfigReconciler_watchHandlers(#5549, #5558)gh apiscript (#5552, #5548)SECURITY.mdand fixed a contributing-guide link (#5547, #5587)📦 Dependencies
github.com/stacklok/toolhive-corego.mongodb.org/mongo-drivergithub.com/google/go-containerregistrygithub.com/shirou/gopsutil/v4github.com/redis/go-redis/v9github.com/stacklok/toolhive-cataloggolangci/golangci-lint-actionanthropics/claude-code-action2fee155👋 Welcome to our newest contributor: @kriptoburak 🎉
Full commit log
What's Changed
New Contributors
Full Changelog: stacklok/toolhive@v0.30.0...v0.30.1
🔗 Full changelog: stacklok/toolhive@v0.30.0...v0.30.1
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.