Compare commits
base: modelcontextprotocol:v1.0.0
modelcontextprotocol:main
modelcontextprotocol:v1.8.1
modelcontextprotocol:v1.8.0
modelcontextprotocol:v1.7.9
modelcontextprotocol:v1.7.8
modelcontextprotocol:v1.7.7
modelcontextprotocol:v1.7.6
modelcontextprotocol:v1.7.5
modelcontextprotocol:v1.7.4
modelcontextprotocol:v1.7.3
modelcontextprotocol:v1.7.2
modelcontextprotocol:v1.7.1
modelcontextprotocol:v1.7.0
modelcontextprotocol:v1.6.0
modelcontextprotocol:v1.5.0
modelcontextprotocol:v1.4.1
modelcontextprotocol:v1.4.0
modelcontextprotocol:v1.3.10
modelcontextprotocol:v1.3.9
modelcontextprotocol:v1.3.8
modelcontextprotocol:v1.3.7
modelcontextprotocol:v1.3.6
modelcontextprotocol:v1.3.5
modelcontextprotocol:v1.3.4
modelcontextprotocol:v1.3.3
modelcontextprotocol:v1.3.2
modelcontextprotocol:v1.3.1
modelcontextprotocol:v1.3.0
modelcontextprotocol:v1.2.3
modelcontextprotocol:v1.2.2
modelcontextprotocol:v1.2.1
modelcontextprotocol:v1.2.0
modelcontextprotocol:v1.1.0
modelcontextprotocol:v1.0.0
modelcontextprotocol:v0.0.3
modelcontextprotocol:v0.0.2
modelcontextprotocol:v0.0.1
..
compare: modelcontextprotocol:main
modelcontextprotocol:main
modelcontextprotocol:v1.8.1
modelcontextprotocol:v1.8.0
modelcontextprotocol:v1.7.9
modelcontextprotocol:v1.7.8
modelcontextprotocol:v1.7.7
modelcontextprotocol:v1.7.6
modelcontextprotocol:v1.7.5
modelcontextprotocol:v1.7.4
modelcontextprotocol:v1.7.3
modelcontextprotocol:v1.7.2
modelcontextprotocol:v1.7.1
modelcontextprotocol:v1.7.0
modelcontextprotocol:v1.6.0
modelcontextprotocol:v1.5.0
modelcontextprotocol:v1.4.1
modelcontextprotocol:v1.4.0
modelcontextprotocol:v1.3.10
modelcontextprotocol:v1.3.9
modelcontextprotocol:v1.3.8
modelcontextprotocol:v1.3.7
modelcontextprotocol:v1.3.6
modelcontextprotocol:v1.3.5
modelcontextprotocol:v1.3.4
modelcontextprotocol:v1.3.3
modelcontextprotocol:v1.3.2
modelcontextprotocol:v1.3.1
modelcontextprotocol:v1.3.0
modelcontextprotocol:v1.2.3
modelcontextprotocol:v1.2.2
modelcontextprotocol:v1.2.1
modelcontextprotocol:v1.2.0
modelcontextprotocol:v1.1.0
modelcontextprotocol:v1.0.0
modelcontextprotocol:v0.0.3
modelcontextprotocol:v0.0.2
modelcontextprotocol:v0.0.1
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d1dcaf3fb3 |
fix(publisher): tolerate transient device-flow failures during login polling (#1588)
Some checks failed
Follow-up to my analysis on #1543. Heads up on the shape first: this builds on #1290's poll-loop seams and github wont let me target a fork branch, so the diff shows its two commits too. Review only the last commit, the first two are #1290 unchanged, credit to @developer-ishan. Happy to rebase whichever way #1290 goes, or split differently if that's easier to review. What it does. pollForToken treats every non-pending answer as terminal, so one flaky response kills a login the user may already have approved in the browser. This spends a small grace budget (2 polls) on incorrect_device_code before giving up, retries 5xx with a growing backoff, and returns status plus body on other non-200s instead of dying inside json.Unmarshal on an html error page. Terminal errors now carry error_description and error_uri, and a timeout that happens after polling recovered reports a plain timeout, not a stale error from minutes earlier. Also honours the interval and expires_in GitHub returns with the device code (RFC 8628 3.2) instead of hardcoding 5/900, clamped (60s / 3600s) so a misbehaving response can't stall the CLI or overflow the duration math. One thing I changed my mind on from the issue comment: I wrote there that the client should wait one interval before the first poll. Dropped that. My own repro test showed 40s of clean polling before authorize, so the propagation theory doesn't hold, and the grace retry covers the same window without taxing every fast login. First poll stays immediate, pinned by a test. Root cause note: I can't prove the GitHub-side race (cli/cli#9302 is the same error class but was closed on an unconfirmed "platform race"). So this isn't claimed as a root-cause fix, it makes the login recoverable if the condition is transient and diagnosable if it isn't. Btw incorrect_device_code is a GitHub extension, not an RFC 8628 3.5 code, so there's no spec retry semantic being violated by the grace polls. ## Test 12 new tests in github_at_device_flow_internal_test.go, all green with -race (33 in the package). #1290's four tests pass unmodified. golangci-lint clean in the touched files under both v2.11.4 (this branch's CI pin) and v2.13.1 (what main pins now). ## AI Disclosure AI assistance (Claude) was used for issue research and during development. All changes were reviewed and tested by the author. Fixes #1543 --------- Co-authored-by: developer-ishan <igupta@groupon.com> Co-authored-by: Ishan Gupta <62565307+developer-ishan@users.noreply.github.com> Co-authored-by: developer-ishan <guptaishan849@gmail.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> |
||
|
|
73aebc1526 |
fix(publisher): treat GitHub device-flow slow_down as retriable (#1290)
## Summary - Handle GitHub's OAuth device-flow `slow_down` response per [RFC 8628 §3.5](https://datatracker.ietf.org/doc/html/rfc8628#section-3.5) — treat it as retriable and bump the polling interval by 5 seconds, instead of bailing with a fatal error. Fixes #1289. ## Why `pollForToken` in `cmd/publisher/auth/github-at.go` only treats `authorization_pending` as retriable. Every other response from GitHub's token endpoint — including the non-terminal `slow_down` signal — falls through to: ```go return "", fmt.Errorf("token request failed: %s", tokenResp.Error) ``` So users hitting GitHub's polling rate-limit get: ``` Error: login failed: error polling for token: token request failed: slow_down ``` …and have to re-run `mcp-publisher login github` from scratch, which is especially painful because `slow_down` is more likely when the user takes more than a few seconds to enter and authorize the device code. Per RFC 8628 §3.5, `slow_down` is defined as: > A variant of "authorization_pending", the authorization request is still pending and polling should continue, but the interval MUST be increased by 5 seconds for this and all subsequent requests. ## Change Treat `slow_down` the same as `authorization_pending` but increase `interval` by 5 seconds before sleeping, matching the RFC exactly. A possible follow-up (not in this PR, to keep the diff minimal): seed the initial `interval` from `DeviceCodeResponse.Interval` (already parsed but currently unused) instead of hardcoding `5`. Happy to do that here or as a separate PR if preferred. ## Test plan - [x] `go build ./cmd/publisher/...` — clean - [x] `go test ./cmd/publisher/auth/...` — passes - [x] `gofmt -d` and `go vet ./cmd/publisher/auth/...` — clean - [ ] CI `make check` (lint + integration tests) I could not exercise `pollForToken` from a unit test without refactoring `GitHubAccessTokenURL` to be injectable, which felt out of scope for a bug-fix PR. Glad to add that refactor + a table-driven test for `authorization_pending` / `slow_down` / fatal errors in a follow-up if maintainers want it. --------- Co-authored-by: developer-ishan <igupta@groupon.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
cabf0607b6 |
build(deps): bump google.golang.org/grpc from 1.83.1 to 1.83.2 in /deploy (#1630)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.83.1 to 1.83.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/grpc/grpc-go/releases">google.golang.org/grpc's releases</a>.</em></p> <blockquote> <h2>Release 1.83.2</h2> <h1>Security</h1> <ul> <li>server: Reject requests missing both <code>:authority</code> and <code>Host</code> headers with HTTP 400 and status <code>Internal</code>. (<a href="https://redirect.github.com/grpc/grpc-go/pull/9365">grpc/grpc-go#9365</a>) <ul> <li>Special Thanks: <a href="https://github.com/winklemad"><code>@winklemad</code></a></li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
c7411aeaba |
build(deps): bump the go-dependencies group with 2 updates (#1634)
Bumps the go-dependencies group with 2 updates: [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry) and [golang.org/x/mod](https://github.com/golang/mod). Updates `github.com/google/go-containerregistry` from 0.22.0 to 0.22.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/go-containerregistry/releases">github.com/google/go-containerregistry's releases</a>.</em></p> <blockquote> <h2>v0.22.1</h2> <h2>What's Changed</h2> <ul> <li>Reject non-canonical IP literals in all SSRF guards by <a href="https://github.com/shaggyinsomniac"><code>@shaggyinsomniac</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2426">google/go-containerregistry#2426</a></li> <li>daemon: fix stale docker/docker reference in WithClient docs by <a href="https://github.com/BobDu"><code>@BobDu</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2428">google/go-containerregistry#2428</a></li> <li>build(deps): bump the go-deps group across 2 directories with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2422">google/go-containerregistry#2422</a></li> <li>authn: do not overwrite AuthConfig.Auth when username and password are empty by <a href="https://github.com/nileshpatil6"><code>@nileshpatil6</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2420">google/go-containerregistry#2420</a></li> <li>build(deps): bump the actions group across 1 directory with 8 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2423">google/go-containerregistry#2423</a></li> <li>Support pulling images by sha512 digest by <a href="https://github.com/BobDu"><code>@BobDu</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2427">google/go-containerregistry#2427</a></li> <li>Allow empty label and annotation values in crane mutate by <a href="https://github.com/theadsingh"><code>@theadsingh</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2418">google/go-containerregistry#2418</a></li> <li>fix(build): Use dependencies.gitSource in cloudbuild_v2.yaml by <a href="https://github.com/tprussak"><code>@tprussak</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2434">google/go-containerregistry#2434</a></li> <li>validate: support index attestation manifests and empty configs by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2414">google/go-containerregistry#2414</a></li> <li>name: improve error when parsing a reference with a URL scheme by <a href="https://github.com/locker95"><code>@locker95</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2431">google/go-containerregistry#2431</a></li> <li>fix(build): install binaries to /ko-app and add to PATH (<a href="https://redirect.github.com/google/go-containerregistry/issues/2424">#2424</a>) by <a href="https://github.com/tprussak"><code>@tprussak</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2436">google/go-containerregistry#2436</a></li> <li>fix(release): honor declared Go toolchain by <a href="https://github.com/rksharma-owg"><code>@rksharma-owg</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2435">google/go-containerregistry#2435</a></li> <li>remote: apply checkRedirectSSRF to writer-side HTTP clients by <a href="https://github.com/locker95"><code>@locker95</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2432">google/go-containerregistry#2432</a></li> <li>flatten: preserve config and layer media types when flattening by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2438">google/go-containerregistry#2438</a></li> <li>fix(mutate): make Time layer updates lazy by <a href="https://github.com/amarkdotdev"><code>@amarkdotdev</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2429">google/go-containerregistry#2429</a></li> <li>build(deps): bump the go-deps group across 2 directories with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2439">google/go-containerregistry#2439</a></li> <li>remote: copy manifest annotations to referrers fallback tag descriptors by <a href="https://github.com/codysoyland"><code>@codysoyland</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2441">google/go-containerregistry#2441</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/shaggyinsomniac"><code>@shaggyinsomniac</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2426">google/go-containerregistry#2426</a></li> <li><a href="https://github.com/BobDu"><code>@BobDu</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2428">google/go-containerregistry#2428</a></li> <li><a href="https://github.com/nileshpatil6"><code>@nileshpatil6</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2420">google/go-containerregistry#2420</a></li> <li><a href="https://github.com/theadsingh"><code>@theadsingh</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2418">google/go-containerregistry#2418</a></li> <li><a href="https://github.com/locker95"><code>@locker95</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2431">google/go-containerregistry#2431</a></li> <li><a href="https://github.com/rksharma-owg"><code>@rksharma-owg</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2435">google/go-containerregistry#2435</a></li> <li><a href="https://github.com/codysoyland"><code>@codysoyland</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2441">google/go-containerregistry#2441</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/google/go-containerregistry/compare/v0.22.0...v0.22.1">https://github.com/google/go-containerregistry/compare/v0.22.0...v0.22.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
739b70e8bc |
fix: fail safely in registry admin scripts (#1622)
The takedown script previously treated any nonempty `ALL_VERSIONS` value, including `false`, as permission to delete every version. Require exactly `true` when the variable is set, and reject other values before sending a request. Enable strict shell error handling in the auth helper so a failed identity-token command stops execution before exchanging an empty token. Validation: `bash -n` and `git diff --check` passed. Mocked command checks confirmed that `false`, `1`, and `TRUE` are rejected before network access, and that identity-token retrieval failure stops before the token exchange. The updated scripts also completed the authorized takedown associated with #1563; public API reads confirmed the deleted record and removal from default results. |
||
|
|
dd4b2939e3 |
test: isolates temp test fixtures (#1569)
## Motivation and Context Replace shared temp paths with `t.TempDir()`` so each test gets its own cleanup-scoped directory. - This avoids leftover files and cross-test interference. No production code changed. ## How Has This Been Tested? GitHub CI passed. - https://github.com/yowainwright/registry/pull/1 ## Breaking Changes No breaking changes; just tests. ## Types of changes - [x] chore ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context Small test-only cleanup. No production code paths are changed. Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
068a97a2f8 |
fix: identify submitted server version in publish diagnostics (#1621)
Publishing a manifest with a stale version currently produces a duplicate-version error without identifying the version that was submitted. This made a request containing `0.4.5` look like a rejected publication of `0.4.6` in #1615. Include the submitted `name@version` in the CLI output before sending the request and in the API duplicate-version error. HTTP 400, the response structure, and duplicate-rejection behavior remain unchanged. The service wraps the existing error sentinel so `errors.Is` continues to work. Adds a CLI regression test for a failed publication and updates the API duplicate-error assertion. Validation: - Publish command tests passed (`go test ./cmd/publisher/commands -run TestPublishCommand -count=1`). - `git diff --check` passed. - API endpoint tests were attempted but could not run because PostgreSQL was unavailable on localhost:5432; Docker was also unavailable locally. Related to #1615. |
||
|
|
d3fbdc61ce |
ci: detect more invalid server publish paths (#1620)
## Summary - detect publish attempts under `data/data/servers/` - detect server-looking JSON files directly under `data/` - keep the stage-one and privileged stage-two classifiers in sync ## Testing - verified both new patterns against PRs #1600 and #1589 - verified ordinary files such as `data/example.json` remain unmatched - ran `git diff --check` |
||
|
|
5271ba5075 |
docs: add PulseFeed MCP Drift Watch to community projects (#1581)
One line in `docs/community-projects.md` under **Other**, following the format in *Adding Your Project*. **What it is.** A daily external diff of the whole registry population — 25,122 entries as of today — recording what changed in a server *after* it was listed rather than whether it is safe right now: package ownership transferred, an install script added in a later version, repository link removed, package unpublished, a removed name republished by someone else. **Why the distinction matters.** A rug pull is clean at review time by construction: the package collects installs for weeks, then ships the patch. Detecting that needs yesterday's snapshot to exist, which is why the series starts on 2026-07-30 and cannot be reconstructed after the fact. The registry's own moderation policy notes it relies on downstream consumers for this kind of check. **Free, no key, no account:** JSON and RSS feeds filterable to your own package list, a README badge, and webhook alerts. Every day's manifest of dataset digests is timestamped into Bitcoin via OpenTimestamps, so the series can be shown to have existed on a given date by anyone, without trusting us. Placed next to `polygraph` as the nearest precedent for an independent security project in this list. All links in the entry were checked before opening this PR. Nothing else in the file is touched. |
||
|
|
974a523857 |
docs: carry two modelcontextprotocol.io fixes back upstream (#1590)
Both were already fixed on https://modelcontextprotocol.io; this copy is behind. - `faq.mdx`: capitalize PyPI correctly in the abuse reporting steps. https://github.com/modelcontextprotocol/modelcontextprotocol/pull/3153 - `remote-servers.mdx`: recommend Streamable HTTP and link the deprecated features page. The 2026-07-28 draft reclassifies the HTTP+SSE transport as deprecated under the feature lifecycle policy, so SSE should no longer be presented as an equal option. https://github.com/modelcontextprotocol/modelcontextprotocol/pull/3064 ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed |
||
|
|
1d1eb91e51 |
build(deps): bump github.com/coreos/go-oidc/v3 from 3.20.0 to 3.21.0 in the go-dependencies group (#1619)
Bumps the go-dependencies group with 1 update:
[github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc).
Updates `github.com/coreos/go-oidc/v3` from 3.20.0 to 3.21.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/coreos/go-oidc/releases">github.com/coreos/go-oidc/v3's
releases</a>.</em></p>
<blockquote>
<h2>v3.21.0</h2>
<h2>What's Changed</h2>
<ul>
<li>oidc: ignore JWKs with unsupported key types rather than failing by
<a href="https://github.com/nicoske"><code>@nicoske</code></a> in <a
href="https://redirect.github.com/coreos/go-oidc/pull/499">coreos/go-oidc#499</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/nicoske"><code>@nicoske</code></a> made
their first contribution in <a
href="https://redirect.github.com/coreos/go-oidc/pull/499">coreos/go-oidc#499</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/coreos/go-oidc/compare/v3.20.0...v3.21.0">https://github.com/coreos/go-oidc/compare/v3.20.0...v3.21.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="
|
||
|
|
99c9439d6f |
chore: group Dependabot updates (#1618)
## Summary - group all root Go module updates into one weekly PR - group all deployment Go module updates into a separate weekly PR - keep GitHub Actions updates in their own weekly group - leave Docker updates independent ## Validation - parsed `.github/dependabot.yml` successfully as YAML - `git diff --check` passes Co-authored-by: Radoslav Dimitrov <rado@Radoslavs-MacBook-Pro.local> |
||
|
|
30ca36e42e |
build(deps): bump github.com/google/go-containerregistry from 0.21.9 to 0.22.0 (#1576)
Bumps [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry) from 0.21.9 to 0.22.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/go-containerregistry/releases">github.com/google/go-containerregistry's releases</a>.</em></p> <blockquote> <h2>v0.22.0</h2> <h2>What's Changed</h2> <ul> <li>mutate: let Time and Canonical take tarball.LayerOption by <a href="https://github.com/mzihlmann"><code>@mzihlmann</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2403">google/go-containerregistry#2403</a></li> <li>build: add multi-architecture Cloud Build configurations for crane, gcrane, and krane by <a href="https://github.com/tprussak"><code>@tprussak</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2412">google/go-containerregistry#2412</a></li> <li>remote: resolve push-check credentials against the repository by <a href="https://github.com/mzihlmann"><code>@mzihlmann</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2411">google/go-containerregistry#2411</a></li> <li>Allow single-character repository paths by <a href="https://github.com/semx"><code>@semx</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2407">google/go-containerregistry#2407</a></li> <li>fix: add missing substitutions and workspace cleanup to new build files by <a href="https://github.com/tprussak"><code>@tprussak</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2413">google/go-containerregistry#2413</a></li> <li>remote: retry failed Puller and Pusher initialization by <a href="https://github.com/iahsanGill"><code>@iahsanGill</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2406">google/go-containerregistry#2406</a></li> <li>build(deps): bump the actions group across 1 directory with 8 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2405">google/go-containerregistry#2405</a></li> <li>build(deps): bump the go-deps group across 1 directory with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2415">google/go-containerregistry#2415</a></li> <li>go.mod: bump Go version + add toolchain directive to replace .go-version file by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2416">google/go-containerregistry#2416</a></li> <li>fix: Fix new build options and provenance by <a href="https://github.com/tprussak"><code>@tprussak</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2417">google/go-containerregistry#2417</a></li> <li>fix(build): unify new build flow into cloudbuild_v2.yaml by <a href="https://github.com/tprussak"><code>@tprussak</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2419">google/go-containerregistry#2419</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/mzihlmann"><code>@mzihlmann</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2403">google/go-containerregistry#2403</a></li> <li><a href="https://github.com/tprussak"><code>@tprussak</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2412">google/go-containerregistry#2412</a></li> <li><a href="https://github.com/semx"><code>@semx</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2407">google/go-containerregistry#2407</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/google/go-containerregistry/compare/v0.21.9...v0.21.10">https://github.com/google/go-containerregistry/compare/v0.21.9...v0.21.10</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
f98e367dd9 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.259.0 to 3.261.0 in /deploy (#1606)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.259.0 to 3.261.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.261.0</h2> <h2>3.261.0 (2026-09-02)</h2> <h3>Features</h3> <ul> <li>[engine] Support state migration callbacks on resource registrations <a href="https://redirect.github.com/pulumi/pulumi/pull/24328">#24328</a></li> <li>[cli/env] Add <code>pulumi env setup {aws,azure,gcp}</code> to configure cloud OIDC trust and create the ESC environments that use it <a href="https://redirect.github.com/pulumi/pulumi/pull/23911">#23911</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[engine] Report a clear error instead of panicking when the stack's state contains a custom resource with no ID <a href="https://redirect.github.com/pulumi/pulumi/pull/24438">#24438</a></li> <li>[cli] Show the agent account's claim URL instead of an inaccessible View Live link when running on ephemeral agent credentials <a href="https://redirect.github.com/pulumi/pulumi/pull/24476">#24476</a></li> <li>[pcl] Fix a crash when binding a schema property with an integer constant value <a href="https://redirect.github.com/pulumi/pulumi/pull/24480">#24480</a></li> <li>[cli/policy] Avoid hanging when policy pack fails to start up <a href="https://redirect.github.com/pulumi/pulumi/pull/24492">#24492</a></li> <li>[pkg/testing] Fix ProgramTest for providers whose Go module or NuGet package has a double-digit major version <a href="https://redirect.github.com/pulumi/pulumi/pull/24499">#24499</a></li> <li>[sdk] Fix serialization of secret unknowns in NodeJS, Python and PCL <a href="https://redirect.github.com/pulumi/pulumi/pull/24500">#24500</a></li> <li>[engine] Ignore internal property keys (those starting with an underscore) when generating and checking update plans <a href="https://redirect.github.com/pulumi/pulumi/pull/24532">#24532</a></li> </ul> <h3>Improvements</h3> <ul> <li>[sdkgen] Generate precise Python output types for discriminated unions. An array of a union was typed <code>Sequence[Any]</code> and a scalar union <code>Any</code>, while the matching getters on the generated Args classes were already typed <a href="https://redirect.github.com/pulumi/pulumi/pull/24485">#24485</a></li> <li>[sdk/python] Resolve a union value to its member by matching the value's wire shape, so unions whose members carry no constant properties serialize and translate with the right member's property names <a href="https://redirect.github.com/pulumi/pulumi/pull/24484">#24484</a></li> <li>[sdkgen/python] Accept a generated output type wherever the classes-and-dicts input types accept its Args class or TypedDict, so a resource's output can be passed to another resource's input without a type error <a href="https://redirect.github.com/pulumi/pulumi/pull/24507">#24507</a></li> <li>[engine] Send previously persisted outputs to a provider's Check on update, gated by a new sends_old_outputs_to_check handshake capability <a href="https://redirect.github.com/pulumi/pulumi/pull/24524">#24524</a></li> <li>[sdk/python] Add helper methods to transform ResourceOptions to InvokeOptions <a href="https://redirect.github.com/pulumi/pulumi/pull/24533">#24533</a></li> </ul> <h3>Miscellaneous</h3> <ul> <li>[java] Upgrade java to v1.36.3 <a href="https://redirect.github.com/pulumi/pulumi/pull/24509">#24509</a></li> <li>[yaml] Upgrade yaml to v1.38.5 <a href="https://redirect.github.com/pulumi/pulumi/pull/24509">#24509</a></li> <li>[sdk/dotnet] Upgrade dotnet to v3.113.1 <a href="https://redirect.github.com/pulumi/pulumi/pull/24512">#24512</a></li> </ul> <h2>v3.260.0</h2> <h2>3.260.0 (2026-08-28)</h2> <h3>Features</h3> <ul> <li>[cli/deployment] Make <code>pulumi deployment settings get</code> render every source kind and show environment variable values, changing the <code>--output=json</code> shape of <code>environmentVariables</code> from a list of names to a list of objects <a href="https://redirect.github.com/pulumi/pulumi/pull/24284">#24284</a></li> <li>[sdk/go] Support Go 1.27 <a href="https://redirect.github.com/pulumi/pulumi/pull/24401">#24401</a></li> <li>[cli/state] Add <code>pulumi state promote</code> to turn stateful snippets into Pulumi program code <a href="https://redirect.github.com/pulumi/pulumi/pull/24453">#24453</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[engine] Replace resources whose deletedWith target is being replaced, instead of leaving them orphaned in state <a href="https://redirect.github.com/pulumi/pulumi/pull/23818">#23818</a></li> <li>[sdk/python] Serialize typed object stack outputs with their wire-format (camelCase) property names, matching other language SDKs <a href="https://redirect.github.com/pulumi/pulumi/pull/24246">#24246</a></li> <li>[cli/neo] Cancelling a task now interrupts a running local tool call instead of waiting for it to finish <a href="https://redirect.github.com/pulumi/pulumi/pull/24268">#24268</a></li> <li>[programgen/python] Access schema properties whose names contain hyphens as attributes under their Python names instead of subscripting <a href="https://redirect.github.com/pulumi/pulumi/pull/24300">#24300</a></li> <li>[programgen/go] Generate valid struct field names for properties whose names contain hyphens <a href="https://redirect.github.com/pulumi/pulumi/pull/24300">#24300</a></li> <li>[sdkgen/nodejs] Quote property names that are not legal identifiers (e.g. kebab-case) in generated declarations and use bracket access for them <a href="https://redirect.github.com/pulumi/pulumi/pull/24300">#24300</a></li> <li>[cli/neo] Cancelling a local tool call no longer leaves the TUI stuck on "Thinking..." with input blocked <a href="https://redirect.github.com/pulumi/pulumi/pull/24318">#24318</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.261.0 (2026-09-02)</h2> <h3>Features</h3> <ul> <li>[engine] Support state migration callbacks on resource registrations <a href="https://redirect.github.com/pulumi/pulumi/pull/24328">#24328</a></li> <li>[cli/env] Add <code>pulumi env setup {aws,azure,gcp}</code> to configure cloud OIDC trust and create the ESC environments that use it <a href="https://redirect.github.com/pulumi/pulumi/pull/23911">#23911</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[engine] Report a clear error instead of panicking when the stack's state contains a custom resource with no ID <a href="https://redirect.github.com/pulumi/pulumi/pull/24438">#24438</a></li> <li>[cli] Show the agent account's claim URL instead of an inaccessible View Live link when running on ephemeral agent credentials <a href="https://redirect.github.com/pulumi/pulumi/pull/24476">#24476</a></li> <li>[pcl] Fix a crash when binding a schema property with an integer constant value <a href="https://redirect.github.com/pulumi/pulumi/pull/24480">#24480</a></li> <li>[cli/policy] Avoid hanging when policy pack fails to start up <a href="https://redirect.github.com/pulumi/pulumi/pull/24492">#24492</a></li> <li>[pkg/testing] Fix ProgramTest for providers whose Go module or NuGet package has a double-digit major version <a href="https://redirect.github.com/pulumi/pulumi/pull/24499">#24499</a></li> <li>[sdk] Fix serialization of secret unknowns in NodeJS, Python and PCL <a href="https://redirect.github.com/pulumi/pulumi/pull/24500">#24500</a></li> <li>[engine] Ignore internal property keys (those starting with an underscore) when generating and checking update plans <a href="https://redirect.github.com/pulumi/pulumi/pull/24532">#24532</a></li> </ul> <h3>Improvements</h3> <ul> <li>[sdkgen] Generate precise Python output types for discriminated unions. An array of a union was typed <code>Sequence[Any]</code> and a scalar union <code>Any</code>, while the matching getters on the generated Args classes were already typed <a href="https://redirect.github.com/pulumi/pulumi/pull/24485">#24485</a></li> <li>[sdk/python] Resolve a union value to its member by matching the value's wire shape, so unions whose members carry no constant properties serialize and translate with the right member's property names <a href="https://redirect.github.com/pulumi/pulumi/pull/24484">#24484</a></li> <li>[sdkgen/python] Accept a generated output type wherever the classes-and-dicts input types accept its Args class or TypedDict, so a resource's output can be passed to another resource's input without a type error <a href="https://redirect.github.com/pulumi/pulumi/pull/24507">#24507</a></li> <li>[engine] Send previously persisted outputs to a provider's Check on update, gated by a new sends_old_outputs_to_check handshake capability <a href="https://redirect.github.com/pulumi/pulumi/pull/24524">#24524</a></li> <li>[sdk/python] Add helper methods to transform ResourceOptions to InvokeOptions <a href="https://redirect.github.com/pulumi/pulumi/pull/24533">#24533</a></li> </ul> <h3>Miscellaneous</h3> <ul> <li>[java] Upgrade java to v1.36.3 <a href="https://redirect.github.com/pulumi/pulumi/pull/24509">#24509</a></li> <li>[yaml] Upgrade yaml to v1.38.5 <a href="https://redirect.github.com/pulumi/pulumi/pull/24509">#24509</a></li> <li>[sdk/dotnet] Upgrade dotnet to v3.113.1 <a href="https://redirect.github.com/pulumi/pulumi/pull/24512">#24512</a></li> </ul> <h2>3.260.0 (2026-08-28)</h2> <h3>Features</h3> <ul> <li>[cli/deployment] Make <code>pulumi deployment settings get</code> render every source kind and show environment variable values, changing the <code>--output=json</code> shape of <code>environmentVariables</code> from a list of names to a list of objects <a href="https://redirect.github.com/pulumi/pulumi/pull/24284">#24284</a></li> <li>[sdk/go] Support Go 1.27 <a href="https://redirect.github.com/pulumi/pulumi/pull/24401">#24401</a></li> <li>[cli/state] Add <code>pulumi state promote</code> to turn stateful snippets into Pulumi program code <a href="https://redirect.github.com/pulumi/pulumi/pull/24453">#24453</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[engine] Replace resources whose deletedWith target is being replaced, instead of leaving them orphaned in state <a href="https://redirect.github.com/pulumi/pulumi/pull/23818">#23818</a></li> <li>[sdk/python] Serialize typed object stack outputs with their wire-format (camelCase) property names, matching other language SDKs <a href="https://redirect.github.com/pulumi/pulumi/pull/24246">#24246</a></li> <li>[cli/neo] Cancelling a task now interrupts a running local tool call instead of waiting for it to finish <a href="https://redirect.github.com/pulumi/pulumi/pull/24268">#24268</a></li> <li>[programgen/python] Access schema properties whose names contain hyphens as attributes under their Python names instead of subscripting <a href="https://redirect.github.com/pulumi/pulumi/pull/24300">#24300</a></li> <li>[programgen/go] Generate valid struct field names for properties whose names contain hyphens <a href="https://redirect.github.com/pulumi/pulumi/pull/24300">#24300</a></li> <li>[sdkgen/nodejs] Quote property names that are not legal identifiers (e.g. kebab-case) in generated declarations and use bracket access for them <a href="https://redirect.github.com/pulumi/pulumi/pull/24300">#24300</a></li> <li>[cli/neo] Cancelling a local tool call no longer leaves the TUI stuck on "Thinking..." with input blocked <a href="https://redirect.github.com/pulumi/pulumi/pull/24318">#24318</a></li> <li>[sdk/go] Use resolved environment names when evaluating ESC imports <a href="https://redirect.github.com/pulumi/pulumi/pull/24375">#24375</a></li> <li>[codegen/pcl] Allow output-typed values for the id attribute of a read resource <a href="https://redirect.github.com/pulumi/pulumi/pull/24386">#24386</a></li> <li>[sdkgen/nodejs] Register resolvers for output-only properties in generated Resource.get so they resolve as unknown during preview when the id is unknown <a href="https://redirect.github.com/pulumi/pulumi/pull/24386">#24386</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
e166f76f06 |
build(deps): bump the opentelemetry group across 1 directory with 6 updates (#1607)
Bumps the opentelemetry group with 2 updates in the / directory: [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib) and [go.opentelemetry.io/otel/exporters/prometheus](https://github.com/open-telemetry/opentelemetry-go). Updates `go.opentelemetry.io/contrib/instrumentation/runtime` from 0.70.0 to 0.71.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md">go.opentelemetry.io/contrib/instrumentation/runtime's changelog</a>.</em></p> <blockquote> <h2>[1.46.0/2.5.3/0.71.0/0.37.3/0.26.0/0.20.1/0.16.3/0.18.0] - 2026-08-25</h2> <p>This release is the last to support [Go 1.25]. The next release will require at least [Go 1.26].</p> <h3>Added</h3> <ul> <li>Add support for the <code>aws.ec2</code> resource detector in <code>go.opentelemetry.io/contrib/otelconf/x</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9139">#9139</a>)</li> <li>Support testing of [Go 1.27]. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9524">#9524</a>)</li> <li>Add <code>go.opentelemetry.io/contrib/detectors/docker</code>, a resource detector for Docker, ported from <code>processor/resourcedetectionprocessor/internal/docker</code> in opentelemetry-collector-contrib. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9001">#9001</a>)</li> <li>Add <code>S3AttributeBuilder</code> to <code>go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws</code> that sets S3-specific span attributes following the OpenTelemetry S3 semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9292">#9292</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li>Deprecate <code>go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho</code>. Use <code>github.com/labstack/echo-opentelemetry</code> instead. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9136">#9136</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Record <code>error.type</code> attribute on server spans in <code>go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful</code> when a request is cancelled or ends in a 5xx error. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9387">#9387</a>)</li> <li>Report <code>ot-baggage-*</code> extraction errors from <code>go.opentelemetry.io/contrib/propagators/ot</code> to <code>otel.Handle</code> instead of silently discarding them, while still attaching the successfully parsed baggage members to the context. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9395">#9395</a>)</li> <li>Set <code>error.type</code> on the <code>rpc.client.call.duration</code> and <code>rpc.server.call.duration</code> metrics in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code> when the RPC fails with a non-OK status, per the RPC semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9429">#9429</a>)</li> <li>Reject OTLP exporter headers with an empty <code>name</code> in <code>go.opentelemetry.io/contrib/otelconf</code>, <code>go.opentelemetry.io/contrib/otelconf/x</code>, and <code>go.opentelemetry.io/contrib/otelconf/v0.3.0</code>, instead of forwarding invalid header names to OTLP exporters. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9102">#9102</a>)</li> <li><code>go.opentelemetry.io/contrib/detectors/aws/lambda</code> no longer returns an error when run outside of an AWS Lambda environment, matching the no-op behavior of other resource detectors. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9464">#9464</a>)</li> <li>Convert Prometheus untyped metrics to OTLP Gauges in <code>go.opentelemetry.io/contrib/bridges/prometheus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9099">#9099</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
d08e70b32a |
build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.14.0 to 1.14.1 (#1608)
Bumps [github.com/Azure/azure-sdk-for-go/sdk/azidentity](https://github.com/Azure/azure-sdk-for-go) from 1.14.0 to 1.14.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Azure/azure-sdk-for-go/releases">github.com/Azure/azure-sdk-for-go/sdk/azidentity's releases</a>.</em></p> <blockquote> <h2>sdk/azidentity/v1.14.1</h2> <h2>1.14.1 (2026-08-27)</h2> <h3>Other Changes</h3> <ul> <li>Upgraded dependencies</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
00d5aaad79 |
build(deps): bump github.com/pulumi/pulumi-kubernetes/sdk/v4 from 4.33.0 to 4.34.0 in /deploy (#1609)
Bumps [github.com/pulumi/pulumi-kubernetes/sdk/v4](https://github.com/pulumi/pulumi-kubernetes) from 4.33.0 to 4.34.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/releases">github.com/pulumi/pulumi-kubernetes/sdk/v4's releases</a>.</em></p> <blockquote> <h2>v4.34.0</h2> <h2>What's Changed</h2> <ul> <li>Generate extension-parameterized SDKs from Kubernetes CRDs by <a href="https://github.com/guineveresaenger"><code>@guineveresaenger</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4437">pulumi/pulumi-kubernetes#4437</a></li> <li>Fix waitFor JSONPath filters using !=, >= and <= by <a href="https://github.com/matanbaruch"><code>@matanbaruch</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4524">pulumi/pulumi-kubernetes#4524</a></li> <li>Alias base-provider tokens on extension-served resources by <a href="https://github.com/guineveresaenger"><code>@guineveresaenger</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4559">pulumi/pulumi-kubernetes#4559</a></li> <li>Upgrade to Kubernetes v1.37 by <a href="https://github.com/guineveresaenger"><code>@guineveresaenger</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4570">pulumi/pulumi-kubernetes#4570</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/matanbaruch"><code>@matanbaruch</code></a> made their first contribution in <a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4524">pulumi/pulumi-kubernetes#4524</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pulumi/pulumi-kubernetes/compare/v4.33.0...v4.34.0">https://github.com/pulumi/pulumi-kubernetes/compare/v4.33.0...v4.34.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/blob/master/CHANGELOG.md">github.com/pulumi/pulumi-kubernetes/sdk/v4's changelog</a>.</em></p> <blockquote> <h2>4.34.0 (August 27, 2026)</h2> <h3>Added</h3> <ul> <li>Support adding CustomResourceDefinitions as an extension of the base <code>kubernetes</code> provider via <code>pulumi package add <provider> --extension</code>. Extension-served resources alias their <code>kubernetes:</code>-namespaced token, so state written by a crd2pulumi-generated SDK is adopted rather than replaced.</li> </ul> <h3>Changed</h3> <ul> <li>Upgrade Kubernetes schema and libraries to v1.36.3.</li> <li>Upgrade Kubernetes schema and libraries to v1.36.4.</li> <li>Upgrade Kubernetes schema and libraries to v1.37.0. See the <a href="https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.37.md">Kubernetes 1.37 release notes</a> for upstream API changes.</li> </ul> <h3>Fixed</h3> <ul> <li> <p>Restore <code>scheduling.k8s.io/v1alpha1</code> <code>Workload</code>, which the Kubernetes 1.36 upgrade dropped from the SDKs, and retain <code>scheduling.k8s.io/v1alpha2</code> <code>PodGroup</code> and <code>Workload</code>, which Kubernetes 1.37 removes from its OpenAPI specification. Both remain available to clusters that still serve them, and <code>scheduling.k8s.io/v1beta1</code> now aliases the older versions so that existing resources migrate in place rather than being replaced.</p> </li> <li> <p><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4524">#4524</a> Fix <code>pulumi.com/waitFor</code> rejecting JSONPath filters that use <code>!=</code>, <code>>=</code> or <code><=</code>. The expression was split on every <code>=</code> that was not part of <code>==</code>, so <code>jsonpath={.status.conditions[?(@.type!="Failed")].status}=True</code> failed to parse. The path and value are now separated structurally, which also allows braces inside string literals. Comparing one path against another (<code>jsonpath={.status.readyReplicas}={.spec.replicas}</code>) is still unsupported, but now reports an error instead of silently never matching.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
57b19e27d2 |
build(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.1 (#1616)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.82.1 to 1.83.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/grpc/grpc-go/releases">google.golang.org/grpc's releases</a>.</em></p> <blockquote> <h2>Release 1.83.1</h2> <h1>Security</h1> <ul> <li>xds/rbac: Fix a bug where nested <code>Principal</code> or <code>Permission</code> rules with <code>:scheme</code> or <code>grpc-</code> prefixed header matchers were not rejected, which could cause DENY rules to fail open. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9258">#9258</a>) <ul> <li>Special Thanks: <a href="https://github.com/nvxbug"><code>@nvxbug</code></a></li> </ul> </li> <li>xds/rbac: Fix a bug where the <code>host</code> header matcher was not being replaced with <code>:authority</code> in nested <code>Principal</code> or <code>Permission</code> rules. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9258">#9258</a>) <ul> <li>Special Thanks: <a href="https://github.com/nvxbug"><code>@nvxbug</code></a></li> </ul> </li> <li>xds/rbac: Fix a bug where a header matcher whose name was not lowercase, such as <code>X-Role</code>, matched no header, which could cause DENY rules to fail open. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9332">#9332</a>) <ul> <li>Special Thanks: <a href="https://github.com/alimony"><code>@alimony</code></a></li> </ul> </li> <li>xds/rbac: Fix a bug where a <code>:scheme</code> or <code>grpc-</code> prefixed header matcher was accepted when its name was not lowercase. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9332">#9332</a>) <ul> <li>Special Thanks: <a href="https://github.com/alimony"><code>@alimony</code></a></li> </ul> </li> <li>xds/rbac: Fix a bug where a <code>Host</code> header matcher was not replaced with <code>:authority</code>. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9332">#9332</a>) <ul> <li>Special Thanks: <a href="https://github.com/alimony"><code>@alimony</code></a></li> </ul> </li> </ul> <h1>Performance</h1> <ul> <li>transport: Restrict memory overhead of buffering small data frames. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9331">#9331</a>)</li> </ul> <h2>Release 1.83.0</h2> <h1>Security</h1> <ul> <li>server: Stop reading from connections when flooded by HTTP/2 frames to mitigate resource exhaustion. The default value for this limit is 100 frames, excluding DATA and HEADERS, and may be changed by setting environment variable <code>GRPC_GO_EXPERIMENTAL_CONTROL_BUFFER_THROTTLE_LIMIT</code>.</li> <li>xds/rbac: Support <code>Metadata</code> and <code>RequestedServerName</code> permissions matcher fields. If present in a DENY rule, previously these would be ignored and fail-open.</li> <li>xds/rbac: Fix panic when parsing unsupported fields in <code>NotRule</code>/<code>NotId</code> permissions.</li> <li>xds/rbac: Support the deprecated <code>source_ip</code> principal identifier by treating it as equivalent to <code>direct_remote_ip</code>.</li> <li>xds: Fix panic when parsing route header matchers configured with empty <code>exact_match</code>, <code>prefix_match</code>, or <code>suffix_match</code> strings. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9223">#9223</a>)</li> </ul> <h1>New Features</h1> <ul> <li>xds/googlec2p: Enable DirectPath over Interconnect support for on-premises clients via the <code>force-xds</code> target URI query parameter. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9133">#9133</a>)</li> <li>xds: Enable xDS configuration to control which fields get propagated from ORCA backend metric reports to LRS load reports. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9145">#9145</a>)</li> <li>authz: Add <code>OnPolicyUpdate</code> callback to <code>FileWatcherOptions</code> to notify when an authz policy is loaded or updated. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9142">#9142</a>) <ul> <li>Special Thanks: <a href="https://github.com/hnefatl"><code>@hnefatl</code></a></li> </ul> </li> <li>xds: Add support for the GCP Authentication HTTP Filter, which automatically fetches and attaches GCP Service Account Identity JWT tokens to outgoing RPCs. <ul> <li>This feature can be enabled by setting environment variable <code>GRPC_EXPERIMENTAL_XDS_GCP_AUTHENTICATION_FILTER=true</code>. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9119">#9119</a>)</li> </ul> </li> <li>xds: Add support for xDS-based HTTP CONNECT proxies. <ul> <li>This feature can be enabled by setting environment variable <code>GRPC_EXPERIMENTAL_XDS_HTTP_CONNECT=true</code>. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9151">#9151</a>)</li> </ul> </li> <li>xds: Add support for <code>contains_match</code> in route header matchers. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9223">#9223</a>)</li> </ul> <h1>Bug Fixes</h1> <ul> <li>credentials/alts: Fix panic when processing malformed frames by validating that the message frame length exceeds the message type field size. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9197">#9197</a>)</li> <li>grpc: Fix compilation on Plan 9 targets (<code>GOOS=plan9</code>), broken since v1.81.0. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9255">#9255</a>) <ul> <li>Special Thanks: <a href="https://github.com/Yusufihsangorgel"><code>@Yusufihsangorgel</code></a></li> </ul> </li> </ul> <h2>Release 1.82.2</h2> <h1>Security</h1> <ul> <li>server: Reject requests missing both <code>:authority</code> and <code>Host</code> headers with HTTP 400 and status <code>Internal</code>. (<a href="https://redirect.github.com/grpc/grpc-go/pull/9365">grpc/grpc-go#9365</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
da98ceced3 |
build(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.1 in /deploy (#1617)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.82.1 to 1.83.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/grpc/grpc-go/releases">google.golang.org/grpc's releases</a>.</em></p> <blockquote> <h2>Release 1.83.1</h2> <h1>Security</h1> <ul> <li>xds/rbac: Fix a bug where nested <code>Principal</code> or <code>Permission</code> rules with <code>:scheme</code> or <code>grpc-</code> prefixed header matchers were not rejected, which could cause DENY rules to fail open. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9258">#9258</a>) <ul> <li>Special Thanks: <a href="https://github.com/nvxbug"><code>@nvxbug</code></a></li> </ul> </li> <li>xds/rbac: Fix a bug where the <code>host</code> header matcher was not being replaced with <code>:authority</code> in nested <code>Principal</code> or <code>Permission</code> rules. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9258">#9258</a>) <ul> <li>Special Thanks: <a href="https://github.com/nvxbug"><code>@nvxbug</code></a></li> </ul> </li> <li>xds/rbac: Fix a bug where a header matcher whose name was not lowercase, such as <code>X-Role</code>, matched no header, which could cause DENY rules to fail open. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9332">#9332</a>) <ul> <li>Special Thanks: <a href="https://github.com/alimony"><code>@alimony</code></a></li> </ul> </li> <li>xds/rbac: Fix a bug where a <code>:scheme</code> or <code>grpc-</code> prefixed header matcher was accepted when its name was not lowercase. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9332">#9332</a>) <ul> <li>Special Thanks: <a href="https://github.com/alimony"><code>@alimony</code></a></li> </ul> </li> <li>xds/rbac: Fix a bug where a <code>Host</code> header matcher was not replaced with <code>:authority</code>. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9332">#9332</a>) <ul> <li>Special Thanks: <a href="https://github.com/alimony"><code>@alimony</code></a></li> </ul> </li> </ul> <h1>Performance</h1> <ul> <li>transport: Restrict memory overhead of buffering small data frames. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9331">#9331</a>)</li> </ul> <h2>Release 1.83.0</h2> <h1>Security</h1> <ul> <li>server: Stop reading from connections when flooded by HTTP/2 frames to mitigate resource exhaustion. The default value for this limit is 100 frames, excluding DATA and HEADERS, and may be changed by setting environment variable <code>GRPC_GO_EXPERIMENTAL_CONTROL_BUFFER_THROTTLE_LIMIT</code>.</li> <li>xds/rbac: Support <code>Metadata</code> and <code>RequestedServerName</code> permissions matcher fields. If present in a DENY rule, previously these would be ignored and fail-open.</li> <li>xds/rbac: Fix panic when parsing unsupported fields in <code>NotRule</code>/<code>NotId</code> permissions.</li> <li>xds/rbac: Support the deprecated <code>source_ip</code> principal identifier by treating it as equivalent to <code>direct_remote_ip</code>.</li> <li>xds: Fix panic when parsing route header matchers configured with empty <code>exact_match</code>, <code>prefix_match</code>, or <code>suffix_match</code> strings. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9223">#9223</a>)</li> </ul> <h1>New Features</h1> <ul> <li>xds/googlec2p: Enable DirectPath over Interconnect support for on-premises clients via the <code>force-xds</code> target URI query parameter. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9133">#9133</a>)</li> <li>xds: Enable xDS configuration to control which fields get propagated from ORCA backend metric reports to LRS load reports. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9145">#9145</a>)</li> <li>authz: Add <code>OnPolicyUpdate</code> callback to <code>FileWatcherOptions</code> to notify when an authz policy is loaded or updated. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9142">#9142</a>) <ul> <li>Special Thanks: <a href="https://github.com/hnefatl"><code>@hnefatl</code></a></li> </ul> </li> <li>xds: Add support for the GCP Authentication HTTP Filter, which automatically fetches and attaches GCP Service Account Identity JWT tokens to outgoing RPCs. <ul> <li>This feature can be enabled by setting environment variable <code>GRPC_EXPERIMENTAL_XDS_GCP_AUTHENTICATION_FILTER=true</code>. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9119">#9119</a>)</li> </ul> </li> <li>xds: Add support for xDS-based HTTP CONNECT proxies. <ul> <li>This feature can be enabled by setting environment variable <code>GRPC_EXPERIMENTAL_XDS_HTTP_CONNECT=true</code>. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9151">#9151</a>)</li> </ul> </li> <li>xds: Add support for <code>contains_match</code> in route header matchers. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9223">#9223</a>)</li> </ul> <h1>Bug Fixes</h1> <ul> <li>credentials/alts: Fix panic when processing malformed frames by validating that the message frame length exceeds the message type field size. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9197">#9197</a>)</li> <li>grpc: Fix compilation on Plan 9 targets (<code>GOOS=plan9</code>), broken since v1.81.0. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9255">#9255</a>) <ul> <li>Special Thanks: <a href="https://github.com/Yusufihsangorgel"><code>@Yusufihsangorgel</code></a></li> </ul> </li> </ul> <h2>Release 1.82.2</h2> <h1>Security</h1> <ul> <li>server: Reject requests missing both <code>:authority</code> and <code>Host</code> headers with HTTP 400 and status <code>Internal</code>. (<a href="https://redirect.github.com/grpc/grpc-go/pull/9365">grpc/grpc-go#9365</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
71f3a1b62e |
build(deps): bump anchore/sbom-action from 0.24.0 to 0.24.2 in the actions group (#1610)
Bumps the actions group with 1 update: [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `anchore/sbom-action` from 0.24.0 to 0.24.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anchore/sbom-action/releases">anchore/sbom-action's releases</a>.</em></p> <blockquote> <h2>v0.24.2</h2> <h3>Added Features</h3> <ul> <li>bump eslint from 10.8.1 to 10.9.0 [<a href="https://redirect.github.com/anchore/sbom-action/pull/724">#724</a> <a href="https://github.com/dependabot"><code>@dependabot</code></a>]</li> </ul> <h3>Additional Changes</h3> <ul> <li>add makefile target to bump syft [<a href="https://redirect.github.com/anchore/sbom-action/pull/620">#620</a> <a href="https://github.com/willmurphyscode"><code>@willmurphyscode</code></a>]</li> <li>update zizmor workflow triggers [<a href="https://redirect.github.com/anchore/sbom-action/pull/624">#624</a> <a href="https://github.com/wagoodman"><code>@wagoodman</code></a>]</li> <li>require zizmor security events [<a href="https://redirect.github.com/anchore/sbom-action/pull/621">#621</a> <a href="https://github.com/wagoodman"><code>@wagoodman</code></a>]</li> </ul> <p><strong><a href="https://github.com/anchore/sbom-action/compare/v0.24.0...v0.24.2">(Full Changelog)</a></strong></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
6036804f1c |
build(deps): bump the opentelemetry group across 1 directory with 6 updates (#1530)
Bumps the opentelemetry group with 2 updates in the / directory: [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib) and [go.opentelemetry.io/otel/exporters/prometheus](https://github.com/open-telemetry/opentelemetry-go). Updates `go.opentelemetry.io/contrib/instrumentation/runtime` from 0.69.0 to 0.70.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md">go.opentelemetry.io/contrib/instrumentation/runtime's changelog</a>.</em></p> <blockquote> <h2>[1.45.0/2.5.2/0.70.0/0.37.2/0.25.0/0.20.0/0.16.2/0.17.0] - 2026-08-03</h2> <h3>Added</h3> <ul> <li>Add <code>go.opentelemetry.io/contrib/detectors/ibmcloud/vpc</code>, a new resource detector for IBM Cloud VPC virtual server instances, ported from <code>github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor/internal/ibmcloud/vpc</code>. Detects <code>cloud.provider</code>, <code>cloud.platform</code>, <code>cloud.region</code>, <code>cloud.availability_zone</code>, <code>cloud.account.id</code>, <code>cloud.resource_id</code>, <code>host.id</code>, <code>host.image.id</code>, <code>host.image.name</code>, <code>host.name</code>, and <code>host.type</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9011">#9011</a>)</li> <li>Add <code>go.opentelemetry.io/contrib/detectors/k8sapi</code>, a new resource detector that queries the Kubernetes API. Detects <code>k8s.node.name</code> and <code>k8s.node.uid</code> when <code>K8S_NODE_NAME</code> is set via the downward API, and <code>k8s.cluster.uid</code> derived from the kube-system namespace UID (works on any Kubernetes distribution). (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9108">#9108</a>)</li> <li>Add new <code>elasticbeanstalk</code> resource detector for AWS Elastic Beanstalk, ported from <code>processor/resourcedetectionprocessor/internal/aws/elasticbeanstalk</code> in opentelemetry-collector-contrib. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8993">#8993</a>)</li> <li>The resource created by <code>go.opentelemetry.io/contrib/otelconf</code> now includes <a href="https://pkg.go.dev/go.opentelemetry.io/otel/sdk/resource#Default">default SDK attributes</a>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8990">#8990</a>)</li> <li>Add support for the <code>aws.ecs</code> resource detector in <code>go.opentelemetry.io/contrib/otelconf/x</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8915">#8915</a>)</li> <li>Add support for the <code>aws.eks</code> resource detector in <code>go.opentelemetry.io/contrib/otelconf/x</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9138">#9138</a>)</li> <li>Add support for the <code>azure.vm</code> resource detector in <code>go.opentelemetry.io/contrib/otelconf/x</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9074">#9074</a>)</li> <li>Add support for the <code>gcp</code> resource detector in <code>go.opentelemetry.io/contrib/otelconf/x</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9137">#9137</a>)</li> <li>Add <code>go.opentelemetry.io/contrib/detectors/azure/azureappservice</code>, a new resource detector for Azure App Service. Detects <code>cloud.*</code>, <code>service.name</code>, <code>azure.resource_group.name</code>, <code>azure.app_service.instance.id</code>, and <code>deployment.environment.name</code> from the <code>WEBSITE_*</code> and <code>REGION_NAME</code> environment variables. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9289">#9289</a>)</li> <li>Add <code>azurecontainerapps</code> resource detector for Azure Container Apps. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8939">#8939</a>)</li> <li>Add <code>go.opentelemetry.io/contrib/detectors/azure/azurefunctions</code>, a new resource detector for Azure Functions. Detects <code>cloud.*</code>, <code>service.name</code>, <code>azure.resource_group.name</code>, <code>faas.instance</code>, and <code>deployment.environment.name</code> from the <code>FUNCTIONS_*</code>, <code>WEBSITE_*</code>, <code>CONTAINER_NAME</code>, and <code>REGION_NAME</code> environment variables. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9290">#9290</a>)</li> <li>Add <code>NewResourceDetector</code> along with the <code>WithAttributeFilter</code> and <code>WithTagKeyFilter</code> options in <code>go.opentelemetry.io/contrib/detectors/azure/azurevm</code>. <code>WithAttributeFilter</code> restricts the returned resource to the attributes the filter accepts. <code>WithTagKeyFilter</code> opts in to <code>azure.tag.<name></code> attributes for the VM tags whose keys satisfy the provided predicate; no VM tags are emitted without it. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9162">#9162</a>)</li> <li>Add <code>go.opentelemetry.io/contrib/detectors/vultr</code> — a new resource detector for Vultr Cloud Compute instances, ported from <code>processor/resourcedetectionprocessor/internal/vultr</code> in <code>opentelemetry-collector-contrib</code>. Detects <code>cloud.provider</code>, <code>cloud.platform</code>, <code>cloud.region</code>, <code>host.id</code>, and <code>host.name</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8995">#8995</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Upgrade <code>go.opentelemetry.io/otel/semconv</code> to <code>v1.43.0</code>, including updates across instrumentation and detector modules. See <a href="https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.43.0">semantic-conventions v1.43.0 release</a> for complete details. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9337">#9337</a>)</li> <li>Upgrade <code>go.opentelemetry.io/otel/semconv</code> to <code>v1.42.0</code>, including updates across instrumentation and detector modules. See <a href="https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.42.0">semantic-conventions v1.42.0 release</a> for complete details. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9196">#9196</a>)</li> <li>Use direct normalized-key lookups in <code>Carrier.Get</code> and <code>Carrier.Keys</code> in <code>go.opentelemetry.io/contrib/propagators/envcar</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9112">#9112</a>)</li> <li>Update log bridge conversions to use attribute key-values instead of the removed log key-values in <code>go.opentelemetry.io/contrib/bridges/otellogr</code>, <code>go.opentelemetry.io/contrib/bridges/otellogrus</code>, <code>go.opentelemetry.io/contrib/bridges/otelslog</code>, and <code>go.opentelemetry.io/contrib/bridges/otelzap</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9180">#9180</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9076">#9076</a>)</li> <li>Set <code>error.type</code> attribute instead of adding <code>exception</code> span events in <code>go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8977">#8977</a>)</li> <li>Prefer the gRPC dial target over the resolved peer IP for the <code>server.address</code> and <code>server.port</code> attributes in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8904">#8904</a>)</li> <li>The detector in <code>go.opentelemetry.io/contrib/detectors/azure/azurevm</code> now also detects <code>cloud.account.id</code>, <code>cloud.availability_zone</code>, <code>azure.vm.name</code>, <code>azure.vm.size</code>, <code>azure.vm.scaleset.name</code>, and <code>azure.resource_group.name</code>, and prefers <code>osProfile.computerName</code> for <code>host.name</code> (falling back to the VM name), reconciling it with the collector-contrib Azure resource detector. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9162">#9162</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix Prometheus reader resource label filter configuration in <code>go.opentelemetry.io/contrib/otelconf/v0.2.0</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9062">#9062</a>)</li> <li>Apply <code>resource.detection/development.attributes.included</code> and <code>excluded</code> filtering to resource detector attributes in <code>go.opentelemetry.io/contrib/otelconf/x</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9131">#9131</a>)</li> <li>Honor the context configured with <code>WithContext</code> when constructing resources in <code>go.opentelemetry.io/contrib/otelconf</code> and <code>go.opentelemetry.io/contrib/otelconf/x</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9160">#9160</a>)</li> <li>Handle nil response bodies from custom <code>RoundTripper</code> implementations in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> without panicking. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9184">#9184</a>)</li> <li>Fix incorrect (overestimated) sum calculation for runtime histograms in <code>go.opentelemetry.io/contrib/instrumentation/runtime</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9063">#9063</a>)</li> <li>Fix <code>Severity.UnmarshalText</code> round trip for positive <code>FATAL</code> offsets above the named range in <code>go.opentelemetry.io/contrib/processors/minsev</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9197">#9197</a>)</li> <li>Reduce binary size by fetching ConfigMaps via <code>rest.HTTPClientFor</code> instead of the Kubernetes clientset in <code>go.opentelemetry.io/contrib/detectors/aws/eks</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9284">#9284</a>)</li> <li><code>TextMapPropagator</code> in <code>go.opentelemetry.io/contrib/propagators/autoprop</code> returns the no-op propagator for empty input, matching the behavior of <code>none</code>. An unknown <code>OTEL_PROPAGATORS</code> value still returns an error with a nil propagator so <code>NewTextMapPropagator</code> falls back to the default TraceContext and Baggage propagators instead of disabling propagation. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9163">#9163</a>)</li> <li>Preserve error-valued attributes nested in a group as grouped attributes instead of silently dropping them in <code>go.opentelemetry.io/contrib/bridges/otelslog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9238">#9238</a>)</li> <li>Fix a data race in <code>go.opentelemetry.io/contrib/bridges/otelslog</code> where concurrent <code>Handle</code> calls could corrupt each other's log attributes because <code>kvBuffer.KeyValues</code> returned a slice aliasing a shared buffer. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9229">#9229</a>)</li> <li>Avoid a panic in <code>go.opentelemetry.io/contrib/bridges/otelzap</code> when a malformed error field contains a nil or non-error value. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9068">#9068</a>)</li> <li>Use <code>azure.container_app.instance.id</code> instead of <code>service.instance.id</code> for the replica name detected by <code>go.opentelemetry.io/contrib/detectors/azure/azurecontainerapps</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9208">#9208</a>)</li> <li>Preserve the underlying metadata errors returned with partial resources from <code>go.opentelemetry.io/contrib/detectors/gcp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9069">#9069</a>)</li> <li>Copy <code>MultipartForm</code> back to the request <code>otelmux.Middleware</code> was given after the wrapped handler returns, so <code>net/http</code> can find and remove the temp files <code>ParseMultipartForm</code> created on the context-derived request copy, when <code>otelmux.Middleware</code> wraps a handler directly, in <code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code>. This does not cover a handler panic, nor the common <code>router.Use(...)</code> integration, where <code>gorilla/mux</code>'s own routing step makes an additional request copy the middleware cannot write back through; see <a href="https://redirect.github.com/gorilla/mux/pull/777">gorilla/mux#777</a>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9361">#9361</a>)</li> <li>Report the <code>b3</code> header from <code>Fields()</code> for the default <code>B3Unspecified</code> single-header injection encoding, matching what <code>Inject</code> writes, in <code>go.opentelemetry.io/contrib/propagators/b3</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9273">#9273</a>)</li> <li>Fix <code>go.opentelemetry.io/contrib/propagators/aws/xray</code> producing deterministic trace and span IDs when the seed read from <code>crypto/rand</code> silently failed, by switching to <code>math/rand/v2</code>'s concurrency-safe top-level generator. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9359">#9359</a>)</li> <li>Strip connection number suffix from connection ID in <code>go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/v2/mongo/otelmongo</code> to prevent unbounded metric cardinality. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9352">#9352</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
3c1ee7d272 |
build(deps): bump github.com/google/go-containerregistry from 0.21.8 to 0.21.9 (#1531)
Bumps [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry) from 0.21.8 to 0.21.9. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/go-containerregistry/releases">github.com/google/go-containerregistry's releases</a>.</em></p> <blockquote> <h2>v0.21.9</h2> <h2>What's Changed</h2> <ul> <li>actions: pin slsa generator by version by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2395">google/go-containerregistry#2395</a></li> <li>fix: prevent data race on scope refreshes within remote.writer by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2396">google/go-containerregistry#2396</a></li> <li>fix: remove '.' from unsafe path prefixes by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2400">google/go-containerregistry#2400</a></li> <li>build(deps): bump the actions group with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2398">google/go-containerregistry#2398</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/google/go-containerregistry/compare/v0.21.8...v0.21.9">https://github.com/google/go-containerregistry/compare/v0.21.8...v0.21.9</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
5022e04399 |
ci: widen the publish-attempt path list (#1560)
#1524 tried to publish by adding `data/servers/io.decisionrules/server.json`. The detector ran fine and logged: ``` Non-publish file changed: data/servers/io.decisionrules/server.json PR #1524 match=false ``` The path list only knew `servers/**` at the repo root and exactly `data/seed.json`. Putting the file under `data/servers/` is a natural guess given `data/seed.json` exists, and it fell straight through. Adds `data/servers/**` plus root-level `server.json` / `servers.json`. `find` confirms nothing legitimate lives at any of those paths today. The list stays explicit rather than becoming a broad `**/server.json` glob. The classifier only flags a PR when *every* changed file matches, which makes widening asymmetric: too narrow silently misses spam, too broad auto-closes a legitimate single-file PR. Both copies of the list (stage 1 and stage 2) are updated identically, with a comment on each pointing at the other. ## Testing `actionlint` clean. macOS ships bash 3.2, so I extracted the literal `if [[ ... ]]` condition from each workflow file and ran it under bash 5 in Docker — testing the shipped text rather than a retyped copy. Both copies are byte-identical and agree: ``` MATCH data/servers/io.decisionrules/server.json # PR 1524 MATCH servers/com.aradia/x.json # PR 1549 MATCH data/seed.json MATCH server.json MATCH servers.json keep internal/api/handler.go keep internal/servers/service.go keep data/servers.md keep docs/README.md ``` Also dry-ran the full classifier against all 35 currently-open PRs from untrusted authors: **0 would be closed**. No legitimate open PR is affected. ## Known remaining gap (deliberately not fixed here) The detector does not run at all for authors new to GitHub. This repo's Actions approval policy is `first_time_contributors_new_to_github`, so their fork PRs sit in `action_required` until a maintainer approves the run. That is why #1549 was never flagged. I'm leaving that alone for now because the numbers don't justify the fix. Since the automation landed on 2026-07-09 it has had **71 detect runs: 70 ran, 1 was gated**. It has correctly closed 3 publish attempts (SAGE, Diagram Generation API, Kairos Signal) and missed 2 — one to the path bug this PR fixes, one to the gate. So the gate costs roughly one missed PR every six weeks, and those get closed manually within a day. The only ways around it are `pull_request_target` (runs untrusted PRs in a privileged context — one future `actions/checkout` from being a privilege-escalation hole) or a scheduled sweep (works, but trades the two-stage design for cron semantics and a ~15 min delay). Neither seems worth it at that rate. Happy to open a follow-up if you'd rather close the gap. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
8759d9d8c0 |
ci: bump golangci-lint to v2.13.1 to fix panic on Go 1.27 (#1561)
CI is red on `main` and on every open PR (including the Dependabot PRs #1531, #1552–#1554) with: ``` panic: file requires newer Go version go1.27 (application built with go1.26) golangci-lint exit with code 2 ``` ## Cause `actions/setup-go` with `go-version: 'stable'` started resolving to **go1.27.0**. The pinned golangci-lint **v2.11.4** release binary is built with **go1.26**, and its `go/types` refuses to typecheck source files declaring a newer language version. Nothing in the failing PRs is at fault. ## Fix Bump to **golangci-lint v2.13.1**, whose release binaries are built with go1.27, so linting works under `stable` again. That bump also pulls in newer linter versions, which surface 57 findings this tree did not have before. Handled as follows: | Linter | Count | Resolution | |---|---|---| | `goconst` | 50 | 39 were repeated literals in `_test.go` files — goconst started counting those in v2.12.0 (golangci-lint#6480 exposed `ignore-tests`). Fixture data like `"1.0.0"` (89 occurrences) is not a missing constant, so `goconst.ignore-tests: true`. The other 11 were real duplication in production code (OpenAPI tags, the `bearer` security scheme name, `$ref`, `http`/`https`) and became named constants. | | `gosec` G710 | 1 | **True positive, fixed.** See below. | | `staticcheck` SA1019 | 6 | Go 1.26 deprecated `ecdsa.PublicKey.X/Y` and `PrivateKey.D`. Annotated with the same targeted `nolint` + rationale already used for `ScalarBaseMult` in `cmd/publisher/auth/common.go`. | ### The open redirect is real `TrailingSlashMiddleware` copied the entire `*url.URL` before rewriting the path. For an absolute-form request URI — legal for a Go HTTP server to parse, e.g. `GET http://evil.com/foo/ HTTP/1.1` — `r.URL.Scheme` and `r.URL.Host` are populated, and they were echoed straight back in the `Location` header. The redirect target is now built from the cleaned path and query alone. The existing `path.Clean` hardening for GHSA-v8vw-gw5j-w7m6 (protocol-relative `//evil.com/`) is unchanged. ### Also Switched `gomodguard` → `gomodguard_v2`; the former is deprecated as of v2.12.0 and was emitting a warning on every run. ## Verification - `golangci-lint v2.13.1` against this tree: **0 issues**, no deprecation warnings - `make validate`: all validations passed - `go build ./...` and tests for every touched package pass (DB-backed tests need Postgres; left to CI) ## Note on migrating the ecdsa key paths Moving those six sites to `PublicKey.Bytes` / `ParseUncompressedPublicKey` / `crypto/ecdh` touches key parsing and signature verification. It should be its own reviewed PR rather than riding along on a CI unblock. Happy to open one. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|
|
4ec2ed3f9f |
build(deps): bump golang.org/x/mod from 0.38.0 to 0.40.0 (#1552)
Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.38.0 to 0.40.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
17dec17a41 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.255.0 to 3.257.0 in /deploy (#1553)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.255.0 to 3.257.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.257.0</h2> <h2>3.257.0 (2026-08-13)</h2> <h3>Features</h3> <ul> <li>[cli] Offer to create a first project after logging in to an account with no stacks <a href="https://redirect.github.com/pulumi/pulumi/pull/24133">#24133</a></li> <li>[cli/do] Auto-assign identifiers to existing stack resources in <code>pulumi do</code> input expressions, and add <code>pulumi do show-resources</code> to list them <a href="https://redirect.github.com/pulumi/pulumi/pull/24184">#24184</a></li> <li>[cli/do] Make "<code>pulumi do <pkg> <resource> patch <name></code> work in stateful mode, overlaying the supplied inputs onto the existing snippet" <a href="https://redirect.github.com/pulumi/pulumi/pull/24295">#24295</a></li> <li>[cli/state] Implement <code>pulumi state get</code> to show individual resources <a href="https://redirect.github.com/pulumi/pulumi/pull/24191">#24191</a></li> <li>[cli/do] Fall back to an auto-created project and stack under PULUMI_HOME when <code>pulumi do</code> is invoked outside of a Pulumi project <a href="https://redirect.github.com/pulumi/pulumi/pull/24231">#24231</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[sdkgen/go] Generated output-form invokes pass their arguments to the core SDK without resolving them first, so invoke dependencies can be inferred from arguments; generated SDKs now require pulumi SDK v3.255.0 or later <a href="https://redirect.github.com/pulumi/pulumi/pull/24060">#24060</a></li> <li>[cli] Make '<code>pulumi stack history events --summary</code> report the program errors from the language host <a href="https://redirect.github.com/pulumi/pulumi/pull/24111">#24111</a></li> <li>[cli/cloud] <code>pulumi api</code>: repeated <code>-H</code>/<code>--header</code> values for the same header name now all reach the wire, instead of each one silently overwriting the last <a href="https://redirect.github.com/pulumi/pulumi/pull/24180">#24180</a></li> <li>[cli/package] Maintain <code>--server</code> when adding to the packages section of Pulumi.yaml <a href="https://redirect.github.com/pulumi/pulumi/pull/24189">#24189</a></li> <li>[sdk/go] Fix panics in hooks to not crash the entire process <a href="https://redirect.github.com/pulumi/pulumi/pull/24218">#24218</a></li> <li>[programgen/go] <code>for</code> expressions are now generated as Go loops <a href="https://redirect.github.com/pulumi/pulumi/pull/24228">#24228</a></li> <li>[programgen/go] Fix invalid <code>_ := index</code> statement emitted for resources with a numeric <code>range</code> whose value variable is unused <a href="https://redirect.github.com/pulumi/pulumi/pull/24227">#24227</a></li> <li>[sdk/python] Report an error instead of hanging when a Python resource depends on its own parent <a href="https://redirect.github.com/pulumi/pulumi/pull/24230">#24230</a></li> <li>[sdkgen/go] Generate the missing Go input types for resource input properties that are deeply nested collections of object types <a href="https://redirect.github.com/pulumi/pulumi/pull/24236">#24236</a></li> <li>[programgen/go] Rename properties that collide with reserved names (e.g. <code>elementType</code>) the same way SDK codegen does, instead of emitting uncompilable code <a href="https://redirect.github.com/pulumi/pulumi/pull/24235">#24235</a></li> <li>[cli/display] Show the value being added when a refresh or provider diff reports an added property <a href="https://redirect.github.com/pulumi/pulumi/pull/24245">#24245</a></li> <li>[cli/plugin] Track when a plugin was last run so <code>pulumi plugin ls</code> reports an accurate last-used time on all platforms <a href="https://redirect.github.com/pulumi/pulumi/pull/24251">#24251</a></li> <li>[engine] Show secrets in diff display when <code>--show-secrets</code> is passed <a href="https://redirect.github.com/pulumi/pulumi/pull/24253">#24253</a></li> <li>[cli] Exit promptly when a command is cancelled while an HTTP request is being retried <a href="https://redirect.github.com/pulumi/pulumi/pull/24276">#24276</a></li> </ul> <h3>Improvements</h3> <ul> <li>[sdk/nodejs] Improve error message when resource registrations are still pending when pulumi exits <a href="https://redirect.github.com/pulumi/pulumi/pull/24082">#24082</a></li> <li>[cli] Pass the invoked command (e.g. <code>pulumi new</code>) to the browser-based login/signup flow so Pulumi Cloud can attribute signups to the command that triggered them <a href="https://redirect.github.com/pulumi/pulumi/pull/24192">#24192</a></li> </ul> <h3>Miscellaneous</h3> <ul> <li>[sdkgen] Extension-parameterized packages now namespace their resource and function tokens under their own package name rather than the base provider's <a href="https://redirect.github.com/pulumi/pulumi/pull/24143">#24143</a></li> <li>[java] Upgrade java to v1.35.0 <a href="https://redirect.github.com/pulumi/pulumi/pull/24202">#24202</a></li> <li>[backend/diy] The deprecation warning is now an error. PULUMI_DIY_BACKEND_IGNORE_DEPRECATION_WARNING is now PULUMI_DIY_BACKEND_IGNORE_DEPRECATION_ERROR. <a href="https://redirect.github.com/pulumi/pulumi/pull/24216">#24216</a></li> <li>[java] Upgrade java to v1.36.0 <a href="https://redirect.github.com/pulumi/pulumi/pull/24243">#24243</a></li> <li>[sdk/dotnet] Upgrade dotnet to v3.111.1 <a href="https://redirect.github.com/pulumi/pulumi/pull/24249">#24249</a></li> </ul> <h2>v3.256.0</h2> <h2>3.256.0 (2026-08-04)</h2> <h3>Features</h3> <ul> <li>[cli] Add <code>--ignore-protect</code> flag to <code>pulumi up</code>, <code>pulumi preview</code> and <code>pulumi destroy</code> to allow deleting protected resources without unprotecting them in the state first <a href="https://redirect.github.com/pulumi/pulumi/pull/24053">#24053</a></li> <li>[cli/env] Add an optional <code>--export-env-vars</code> flag to the <code>env provider {aws,azure,gcp}-login</code> commands to also set the standard SDK environment variables referencing the login outputs <a href="https://redirect.github.com/pulumi/pulumi/pull/24055">#24055</a></li> <li>[cli] Add a <code>--server</code> flag to <code>pulumi package add</code>, <code>publish</code>, <code>get-schema</code>, <code>get-mapping</code>, <code>gen-sdk</code>, <code>info</code> and <code>pulumi schema check</code> that skips package resolution and uses the given URL as the plugin download URL <a href="https://redirect.github.com/pulumi/pulumi/pull/24107">#24107</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.257.0 (2026-08-13)</h2> <h3>Features</h3> <ul> <li>[cli] Offer to create a first project after logging in to an account with no stacks <a href="https://redirect.github.com/pulumi/pulumi/pull/24133">#24133</a></li> <li>[cli/do] Auto-assign identifiers to existing stack resources in <code>pulumi do</code> input expressions, and add <code>pulumi do show-resources</code> to list them <a href="https://redirect.github.com/pulumi/pulumi/pull/24184">#24184</a></li> <li>[cli/do] Make "<code>pulumi do <pkg> <resource> patch <name></code> work in stateful mode, overlaying the supplied inputs onto the existing snippet" <a href="https://redirect.github.com/pulumi/pulumi/pull/24295">#24295</a></li> <li>[cli/state] Implement <code>pulumi state get</code> to show individual resources <a href="https://redirect.github.com/pulumi/pulumi/pull/24191">#24191</a></li> <li>[cli/do] Fall back to an auto-created project and stack under PULUMI_HOME when <code>pulumi do</code> is invoked outside of a Pulumi project <a href="https://redirect.github.com/pulumi/pulumi/pull/24231">#24231</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[sdkgen/go] Generated output-form invokes pass their arguments to the core SDK without resolving them first, so invoke dependencies can be inferred from arguments; generated SDKs now require pulumi SDK v3.255.0 or later <a href="https://redirect.github.com/pulumi/pulumi/pull/24060">#24060</a></li> <li>[cli] Make '<code>pulumi stack history events --summary</code> report the program errors from the language host <a href="https://redirect.github.com/pulumi/pulumi/pull/24111">#24111</a></li> <li>[cli/cloud] <code>pulumi api</code>: repeated <code>-H</code>/<code>--header</code> values for the same header name now all reach the wire, instead of each one silently overwriting the last <a href="https://redirect.github.com/pulumi/pulumi/pull/24180">#24180</a></li> <li>[cli/package] Maintain <code>--server</code> when adding to the packages section of Pulumi.yaml <a href="https://redirect.github.com/pulumi/pulumi/pull/24189">#24189</a></li> <li>[sdk/go] Fix panics in hooks to not crash the entire process <a href="https://redirect.github.com/pulumi/pulumi/pull/24218">#24218</a></li> <li>[programgen/go] <code>for</code> expressions are now generated as Go loops <a href="https://redirect.github.com/pulumi/pulumi/pull/24228">#24228</a></li> <li>[programgen/go] Fix invalid <code>_ := index</code> statement emitted for resources with a numeric <code>range</code> whose value variable is unused <a href="https://redirect.github.com/pulumi/pulumi/pull/24227">#24227</a></li> <li>[sdk/python] Report an error instead of hanging when a Python resource depends on its own parent <a href="https://redirect.github.com/pulumi/pulumi/pull/24230">#24230</a></li> <li>[sdkgen/go] Generate the missing Go input types for resource input properties that are deeply nested collections of object types <a href="https://redirect.github.com/pulumi/pulumi/pull/24236">#24236</a></li> <li>[programgen/go] Rename properties that collide with reserved names (e.g. <code>elementType</code>) the same way SDK codegen does, instead of emitting uncompilable code <a href="https://redirect.github.com/pulumi/pulumi/pull/24235">#24235</a></li> <li>[cli/display] Show the value being added when a refresh or provider diff reports an added property <a href="https://redirect.github.com/pulumi/pulumi/pull/24245">#24245</a></li> <li>[cli/plugin] Track when a plugin was last run so <code>pulumi plugin ls</code> reports an accurate last-used time on all platforms <a href="https://redirect.github.com/pulumi/pulumi/pull/24251">#24251</a></li> <li>[engine] Show secrets in diff display when <code>--show-secrets</code> is passed <a href="https://redirect.github.com/pulumi/pulumi/pull/24253">#24253</a></li> <li>[cli] Exit promptly when a command is cancelled while an HTTP request is being retried <a href="https://redirect.github.com/pulumi/pulumi/pull/24276">#24276</a></li> </ul> <h3>Improvements</h3> <ul> <li>[sdk/nodejs] Improve error message when resource registrations are still pending when pulumi exits <a href="https://redirect.github.com/pulumi/pulumi/pull/24082">#24082</a></li> <li>[cli] Pass the invoked command (e.g. <code>pulumi new</code>) to the browser-based login/signup flow so Pulumi Cloud can attribute signups to the command that triggered them <a href="https://redirect.github.com/pulumi/pulumi/pull/24192">#24192</a></li> </ul> <h3>Miscellaneous</h3> <ul> <li>[sdkgen] Extension-parameterized packages now namespace their resource and function tokens under their own package name rather than the base provider's <a href="https://redirect.github.com/pulumi/pulumi/pull/24143">#24143</a></li> <li>[java] Upgrade java to v1.35.0 <a href="https://redirect.github.com/pulumi/pulumi/pull/24202">#24202</a></li> <li>[backend/diy] The deprecation warning is now an error. PULUMI_DIY_BACKEND_IGNORE_DEPRECATION_WARNING is now PULUMI_DIY_BACKEND_IGNORE_DEPRECATION_ERROR. <a href="https://redirect.github.com/pulumi/pulumi/pull/24216">#24216</a></li> <li>[java] Upgrade java to v1.36.0 <a href="https://redirect.github.com/pulumi/pulumi/pull/24243">#24243</a></li> <li>[sdk/dotnet] Upgrade dotnet to v3.111.1 <a href="https://redirect.github.com/pulumi/pulumi/pull/24249">#24249</a></li> </ul> <h2>3.256.0 (2026-08-04)</h2> <h3>Features</h3> <ul> <li>[cli] Add <code>--ignore-protect</code> flag to <code>pulumi up</code>, <code>pulumi preview</code> and <code>pulumi destroy</code> to allow deleting protected resources without unprotecting them in the state first <a href="https://redirect.github.com/pulumi/pulumi/pull/24053">#24053</a></li> <li>[cli/env] Add an optional <code>--export-env-vars</code> flag to the <code>env provider {aws,azure,gcp}-login</code> commands to also set the standard SDK environment variables referencing the login outputs <a href="https://redirect.github.com/pulumi/pulumi/pull/24055">#24055</a></li> <li>[cli] Add a <code>--server</code> flag to <code>pulumi package add</code>, <code>publish</code>, <code>get-schema</code>, <code>get-mapping</code>, <code>gen-sdk</code>, <code>info</code> and <code>pulumi schema check</code> that skips package resolution and uses the given URL as the plugin download URL <a href="https://redirect.github.com/pulumi/pulumi/pull/24107">#24107</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[backend/service] Fix <code>pulumi login --insecure</code> not being reflected in the stack's service secrets manager state, which caused TLS verification failures against self-hosted backends using self-signed certificates <a href="https://redirect.github.com/pulumi/pulumi/pull/24134">#24134</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
91cc4aed20 |
build(deps): bump github.com/stretchr/testify from 1.11.1 to 1.12.0 (#1554)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.11.1 to 1.12.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/stretchr/testify/releases">github.com/stretchr/testify's releases</a>.</em></p> <blockquote> <h2>v1.12.0</h2> <h2>What's Changed</h2> <h3>Functional Changes</h3> <ul> <li>assert: make *AssertionFunc types just aliases by <a href="https://github.com/dolmen"><code>@dolmen</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1563">stretchr/testify#1563</a></li> </ul> <h3>Fixes</h3> <ul> <li>mock: avoid panic when expected type is nil in Arguments.Diff by <a href="https://github.com/mutaiib"><code>@mutaiib</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1775">stretchr/testify#1775</a></li> <li>mock: revert to pre-v1.11.0 argument matching behavior for mutating stringers by <a href="https://github.com/brackendawson"><code>@brackendawson</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1786">stretchr/testify#1786</a></li> <li>suite: validate method signatures and continue execution for valid tests by <a href="https://github.com/vyas-git"><code>@vyas-git</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1665">stretchr/testify#1665</a></li> <li>assert.PanicsWithError: report error message by <a href="https://github.com/olivergondza"><code>@olivergondza</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1400">stretchr/testify#1400</a></li> <li>assert: IsIncreasing et al can return false w/out failing by <a href="https://github.com/brackendawson"><code>@brackendawson</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1787">stretchr/testify#1787</a></li> <li>add type to error message of assert.Same by <a href="https://github.com/egawata"><code>@egawata</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1792">stretchr/testify#1792</a></li> <li>mock.AssertExpectationsForObjects fix panic with wrong testObject type. by <a href="https://github.com/brackendawson"><code>@brackendawson</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1795">stretchr/testify#1795</a></li> <li>assert: truncate very long objects in test failure messages by <a href="https://github.com/brackendawson"><code>@brackendawson</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1646">stretchr/testify#1646</a></li> <li>assert: fix NotSubset error messages using %#v instead of %q (fixes <a href="https://redirect.github.com/stretchr/testify/issues/1800">#1800</a>) by <a href="https://github.com/nghiack7"><code>@nghiack7</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1888">stretchr/testify#1888</a></li> <li>suite: prevent panic when SetupTest skips with HandleStats by <a href="https://github.com/blackwell-systems"><code>@blackwell-systems</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1877">stretchr/testify#1877</a></li> </ul> <h3>Documentation, Build & CI</h3> <ul> <li>CI: test also with Go 1.23 by <a href="https://github.com/dolmen"><code>@dolmen</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1783">stretchr/testify#1783</a></li> <li>Vendor unmaintained github.com/pmezard/go-difflib by <a href="https://github.com/brackendawson"><code>@brackendawson</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1708">stretchr/testify#1708</a></li> <li>Promote ccoVeille to maintainer by <a href="https://github.com/brackendawson"><code>@brackendawson</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1784">stretchr/testify#1784</a></li> <li>build(deps): bump actions/setup-go from 5 to 6 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/stretchr/testify/pull/1790">stretchr/testify#1790</a></li> <li>assert.YAMLEq: Document mutlidoc behavior by <a href="https://github.com/brackendawson"><code>@brackendawson</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1791">stretchr/testify#1791</a></li> <li>_codegen: copy dependency github.com/ernesto-jimenez/gogen/imports by <a href="https://github.com/dolmen"><code>@dolmen</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1782">stretchr/testify#1782</a></li> <li>doc: remove ineffective inline code blocks by <a href="https://github.com/brackendawson"><code>@brackendawson</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1714">stretchr/testify#1714</a></li> <li>Tag generated assertions as non-generated in new .gitattributes by <a href="https://github.com/ubunatic"><code>@ubunatic</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1815">stretchr/testify#1815</a></li> <li>chore: vendor go-spew from <a href="https://github.com/davecgh/go-spew">https://github.com/davecgh/go-spew</a> by <a href="https://github.com/ccoVeille"><code>@ccoVeille</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1827">stretchr/testify#1827</a></li> <li>require: fix godoc generation for assertions returning a bool by <a href="https://github.com/Baxromumarov"><code>@Baxromumarov</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1850">stretchr/testify#1850</a></li> <li>docs(require): correct example usage to use assert.CollectT (require.CollectT does not exist) by <a href="https://github.com/a2not"><code>@a2not</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1821">stretchr/testify#1821</a></li> <li>docs: Fix EventuallyWithTf documentation with proper placement of formatting arguments by <a href="https://github.com/a2not"><code>@a2not</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1842">stretchr/testify#1842</a></li> <li>EMERITUS.md: add <a href="https://github.com/tylerb"><code>@tylerb</code></a> by <a href="https://github.com/dolmen"><code>@dolmen</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1812">stretchr/testify#1812</a></li> <li>CI: test also with Go 1.24 by <a href="https://github.com/alexandear"><code>@alexandear</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1856">stretchr/testify#1856</a></li> <li>deps: bump objx to v0.5.3 and remove dependency cycle issue by <a href="https://github.com/ccoVeille"><code>@ccoVeille</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1823">stretchr/testify#1823</a></li> <li>CI: upgrade GitHub Actions and pin hashes by <a href="https://github.com/SuperQ"><code>@SuperQ</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1883">stretchr/testify#1883</a></li> <li>CI: add _readme-gofmt tool to reformat Go code in README by <a href="https://github.com/dolmen"><code>@dolmen</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1889">stretchr/testify#1889</a></li> <li>CI: add check of GitHub Action pinned hashes against tag by <a href="https://github.com/dolmen"><code>@dolmen</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1885">stretchr/testify#1885</a></li> <li>_codegen: modernize by <a href="https://github.com/dolmen"><code>@dolmen</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1890">stretchr/testify#1890</a></li> <li>build(deps): bump actions/checkout from 6.0.2 to 6.0.3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/stretchr/testify/pull/1906">stretchr/testify#1906</a></li> <li>mock: Mock.Return does not exist anymore by <a href="https://github.com/Kentzo"><code>@Kentzo</code></a> in <a href="https://redirect.github.com/stretchr/testify/pull/1905">stretchr/testify#1905</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/mutaiib"><code>@mutaiib</code></a> made their first contribution in <a href="https://redirect.github.com/stretchr/testify/pull/1775">stretchr/testify#1775</a></li> <li><a href="https://github.com/vyas-git"><code>@vyas-git</code></a> made their first contribution in <a href="https://redirect.github.com/stretchr/testify/pull/1665">stretchr/testify#1665</a></li> <li><a href="https://github.com/olivergondza"><code>@olivergondza</code></a> made their first contribution in <a href="https://redirect.github.com/stretchr/testify/pull/1400">stretchr/testify#1400</a></li> <li><a href="https://github.com/egawata"><code>@egawata</code></a> made their first contribution in <a href="https://redirect.github.com/stretchr/testify/pull/1792">stretchr/testify#1792</a></li> <li><a href="https://github.com/ubunatic"><code>@ubunatic</code></a> made their first contribution in <a href="https://redirect.github.com/stretchr/testify/pull/1815">stretchr/testify#1815</a></li> <li><a href="https://github.com/Baxromumarov"><code>@Baxromumarov</code></a> made their first contribution in <a href="https://redirect.github.com/stretchr/testify/pull/1850">stretchr/testify#1850</a></li> <li><a href="https://github.com/a2not"><code>@a2not</code></a> made their first contribution in <a href="https://redirect.github.com/stretchr/testify/pull/1821">stretchr/testify#1821</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
a25f166b4b |
docs: remove stale complete.md and fix remaining stale references (#1522)
Deletes `complete.md` and cleans up the last references to the pre-restructuring docs layout. ## Why `complete.md` goes It is 2,944 lines (31% of all documentation lines in the repo) self-described as *"all documentation from the docs/ directory compiled into a single markdown file"*. But: - **No generator exists.** No make target, no workflow, no script. `grep -rn "complete\.md"` finds **zero** references anywhere in the repo. - **It mirrors a docs tree that no longer exists** — `docs/guides/`, `docs/explanations/`, `docs/concepts/`. - **All 72 of its relative links are broken**, and six of the basenames it references exist nowhere in the repo. - **~14 current docs are missing from it entirely** (`about.mdx`, `authentication.mdx`, `package-types.mdx`, both CHANGELOGs, ...). - **Its `server.json` examples pin the superseded `2025-07-09` schema** (current is `2025-12-11`). The strongest argument is its own last commit. [PR #1278](https://github.com/modelcontextprotocol/registry/pull/1278) closed [issue #767](https://github.com/modelcontextprotocol/registry/issues/767) — a real user-reported CLI flag bug — by editing **only `complete.md`**. A genuine fix landed in a file nobody reads, while the docs a reader would actually find stayed wrong. A generated file with no generator degrades into a trap: authoritative enough that people edit it, with nothing validating it. If the LLM-consumption use case is worth keeping, the right shape is a `make docs-bundle` target plus a `check-docs-bundle` CI job mirroring the existing `check-schema` pattern — happy to do that instead if you would rather keep it. ## Remaining stale references | File | Was | Now | |---|---|---| | `contributing/add-package-registry.md` | Add `docs/guides/publishing/publish-[yourregistry].md`, update `docs/guides/publishing/README.md` | Add a section to `package-types.mdx`. These were the **last live references** to the obsolete `docs/guides/` layout outside `complete.md` | | `administration/maintainer-onboarding.md` | Add them to "Current key maintainers" in README | "Registry Working Group" — the section that actually exists | | `reference/README.md` | Omitted 6 reference docs | Adds `api/extensions.md`, `api/openapi.yaml`, `api/CHANGELOG.md`, `server-json/CHANGELOG.md`, `server-json/CONTRIBUTING.md`, `server-json/draft/` | | `docs/README.md` | Index omitted `community-projects.md` | Listed | | `reference/api/generic-registry-api.md` | `PUT .../versions/{version}` "not implemented by official registry" | It **is** implemented ([edit.go:36](https://github.com/modelcontextprotocol/registry/blob/main/internal/api/handlers/v0/edit.go#L36)), and `official-registry-api.md` already lists it as an admin endpoint | | `reference/api/official-registry-api.md` | Omitted 3 registered routes | Adds `POST /v0.1/validate` (which `mcp-publisher validate` calls), `GET /v0.1/ping`, `GET /v0.1/version`, and notes these plus `/health` are absent from `openapi.yaml` | | `server-json/official-registry-requirements.md` | Per-registry verification → `quickstart.mdx` | → `package-types.mdx`, which has an Ownership Verification section per registry | | `design/design-principles.md` | Sections 1,2,3,4,**6**,7 | Renumbered 1–6 | | `contributing/releasing.md` | Steps 1,2,3,**5**,6 | Renumbered 1–5 | I left the sibling `DELETE` claim in `generic-registry-api.md` alone — it is accurate, no DELETE route is registered (the `http.MethodDelete` hit in `server.go` is CORS config, not a route). ## Staleness banners rather than rewrites **`design/tech-architecture.md`** is substantially fictional. Rather than a vague "may be outdated", the banner lists what I verified is wrong: - Describes Helm-chart deployment; the registry is a plain `Deployment` ([registry.go:65](https://github.com/modelcontextprotocol/registry/blob/main/deploy/pkg/k8s/registry.go#L65)). Helm is used only for third-party components. - Diagram shows a `StatefulSet` on port **27017** — MongoDB's port. The DB is PostgreSQL on 5432 via the CloudNativePG operator. - Documents a `verify-domain` challenge flow (`POST /verify-domain`, `/verify-domain/check`, server-issued tokens) that **was never built**. - Documents `/admin/*` routes that are not registered. - Says the DB stores user auth state and DNS verification records; only `servers` and `server_extensions` tables exist. **`design/roadmap.md`** still says "Phase 1: MVP/Go-Live (Current Focus)" ~11 months after launch. I added a dated note rather than inventing a current phase — that is a working-group call. ## Verification All **101** remaining relative links across every `.md`/`.mdx` in the repo resolve. The only two non-resolving matches are the intentional `[project-name](link)` template placeholder and the moderation link fixed in #1518. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
3e463e52bb |
docs: correct contributor prerequisites and stale dev-env references (#1520)
The README prerequisites were both stale, and the docs restated the Go version in three places. ## Prerequisites: name the source, do not restate the version | README said | Reality | |---|---| | `Go 1.24.x` | `go 1.26` in [go.mod](https://github.com/modelcontextprotocol/registry/blob/main/go.mod) | | `golangci-lint v2.4.0` | `v2.11.4` pinned in [ci.yml:30](https://github.com/modelcontextprotocol/registry/blob/main/.github/workflows/ci.yml#L30) | Rather than swap in fresher numbers — which only resets the clock on the same drift — this **removes the numbers** and names the authoritative file: ``` - **Go** - version per the `go` directive in go.mod; the Go toolchain fetches it for you - **golangci-lint** - version per the `golangci-lint-action` pin in ci.yml, so local lint matches CI ``` The Go version was stated in **three** places, which is exactly why all three drifted together. All three now point at a single source, so the prerequisites list cannot go stale. Two notes on why the numbers earn so little in prose: - **Go corrects itself.** `go.mod` has no `toolchain` directive, so under the default `GOTOOLCHAIN=auto` the toolchain downloads the required version automatically. A contributor on an older Go gets an upgrade, not a failure — it only hard-errors under `GOTOOLCHAIN=local`. (An earlier version of this description said such a contributor "cannot build"; that was too strong.) - **golangci-lint does not.** Version skew here genuinely changes what you see: running CI's config under a newer golangci-lint (2.12.2) surfaces 23 `goconst` findings in `cmd/publisher/commands/validate_test.go` that CI's pinned 2.11.4 does not report. That is why the README now points at the pin rather than a number someone has to keep in sync. ## `make check` does more than documented Documented in three files as "lint, unit tests and integration tests". Actually [`check: dev-down lint validate test-all`](https://github.com/modelcontextprotocol/registry/blob/main/Makefile#L85) — it also runs schema validation and **stops your running `dev-compose` environment**. Worth knowing before running it mid-session. The Makefile's own `##` help string already said this correctly; only the prose was stale. ## Other verified corrections - **README project structure** omitted `cmd/registry/` — the server entry point and ko/goreleaser build target — and `internal/importer/`. - **`tests/integration/README.md`** said the suite launches **MongoDB**. It launches PostgreSQL (`postgres-integration-test`), as the same file admits nine lines later. It also cited `/v0/servers/{server_id}`, a path removed a while ago; the test actually calls `GET /v0/servers` and `GET /v0/servers/{serverName}/versions/latest` ([main.go:210,255](https://github.com/modelcontextprotocol/registry/blob/main/tests/integration/main.go#L210)). - **`scripts/mirror_data/README.md`** pointed at `internal/database/migrations/008_separate_official_metadata.sql`, which does not exist — that migration is `009_`, while `008_` is `clean_invalid_data.sql`. (Migration 008's own header still calls itself "007a", which is how the numbering slipped.) Also swapped two "edit line NN" pointers for identifier names, since both had already drifted (`maxMigration` is at :30 not :24; the connection string at :23 not :17), and corrected the fetch URL from `/v0.1/servers` to the `/v0/servers` the script actually requests. - **`.env.example`** was missing `MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION`, even though the config reads it ([config.go:18](https://github.com/modelcontextprotocol/registry/blob/main/internal/config/config.go#L18)) and README:50 tells contributors to set it while pointing at `.env.example` as *the* reference. - **`docker-compose.yml`** set `MCP_REGISTRY_ENVIRONMENT`, which nothing reads — no `ENVIRONMENT` env tag in `internal/config`, and no other occurrence in the repo. Removed. (The Pulumi-side `mcp-registry:environment` key is a separate, real thing and is untouched.) - **Deleted `CHANGES.md`** — 0 bytes, untouched since the squashed history base, zero references anywhere. ## Verification `docker compose config` validates. `grep` for `Go 1.x` / `golangci-lint vX` across all `.md`/`.mdx` now returns nothing outside `complete.md` (which #1522 deletes). Both `../../README.md#pre-requisites` links resolve and the anchor matches the real `#### Pre-requisites` heading. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
988b078e02 |
docs(deploy): correct config parameter names in deploy README (#1521)
The deploy configuration table named two parameters that **no code reads**, and omitted two that a deploy cannot succeed without. ## Wrong names | Documented | Actual | Evidence | |---|---|---| | `gcpProjectId` | `gcp:project` | [provider.go:30](https://github.com/modelcontextprotocol/registry/blob/main/deploy/pkg/providers/gcp/provider.go#L30) — its error text literally says `Set gcp:project` | | `gcpRegion` | `gcp:region` | [provider.go:36](https://github.com/modelcontextprotocol/registry/blob/main/deploy/pkg/providers/gcp/provider.go#L36), default `us-central1` | `gcpProjectId` and `gcpRegion` appear **nowhere** in `deploy/` outside this table. All three stack files (`Pulumi.gcpProd.yaml`, `Pulumi.gcpStaging.yaml`, `Pulumi.local.yaml`) already use `gcp:project`. ## Missing required secrets Both are `RequireSecret`, so a deploy fails outright without them — yet neither was in the table: - `mcp-registry:jwtPrivateKey` — [registry.go:56](https://github.com/modelcontextprotocol/registry/blob/main/deploy/pkg/k8s/registry.go#L56) - `mcp-registry:googleOauthClientSecret` — [monitoring.go:463](https://github.com/modelcontextprotocol/registry/blob/main/deploy/pkg/k8s/monitoring.go#L463) ## Also - Documents `gcp:credentials` (read at [provider.go:42](https://github.com/modelcontextprotocol/registry/blob/main/deploy/pkg/providers/gcp/provider.go#L42), set in the staging and prod stacks) - Marks which values are secrets - **Adds the namespace prefixes.** The table listed bare names, which is part of why the two wrong ones survived: `gcpProjectId` reads as plausible right up until you notice the real key lives in a different config namespace altogether. ## Verification Checked both directions: - every key now in the table is read by code in `deploy/` (reference counts confirmed per key) - every `conf.*("...")` key found anywhere in `deploy/` now appears in the table 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
43402d8f6f |
fix(publisher): document --algorithm for ECDSA login and fix validate --help (#1519)
Two real defects, plus the CLI reference claims that go with them. ## 1. ECDSA P-384 login instructions cannot work Every "ECDSA P-384" tab ran the *identical* command to the Ed25519 tab. Since `--algorithm` defaults to ed25519 ([login.go:100](https://github.com/modelcontextprotocol/registry/blob/main/cmd/publisher/commands/login.go#L100)), a 96-hex key is rejected outright. Verified against a freshly generated P-384 key: ``` $ mcp-publisher login dns --domain=example.com --private-key=$KEY Signing in process using key algorithm ed25519 Error: failed to get token: failed to sign timestamp: invalid seed length: expected 32 bytes, got 48 $ mcp-publisher login dns --algorithm ecdsap384 --domain=example.com --private-key=$KEY Signing in process using key algorithm ecdsap384 Expected proof record: # works ``` `--algorithm` is registered at [login.go:129](https://github.com/modelcontextprotocol/registry/blob/main/cmd/publisher/commands/login.go#L129) and described correctly by the CLI's own help, but `grep -rn algorithm docs/` had **zero** hits for it. Anyone following the ECDSA path in the docs hit that error with nothing to tell them why. Fixed at all four in-process ECDSA sites (2 in `authentication.mdx`, 2 in `cli/commands.md`), with a note that cloud signing providers derive the algorithm from the key itself so the flag does not apply to them. ## 2. `mcp-publisher validate --help` was broken ``` $ mcp-publisher validate --help Unknown command: validate ... Use 'mcp-publisher <command> --help' for more information about a command. ``` It printed the very instruction that had just failed. `main.go` intercepted `--help` for all subcommands and called `printCommandHelp`, whose switch had no `validate` case — making `ValidateCommand`'s own help block ([validate.go:120-129](https://github.com/modelcontextprotocol/registry/blob/main/cmd/publisher/commands/validate.go#L120)) unreachable. Rather than paste a third copy of the help text, `printCommandHelp` now returns whether it handled the command, and the caller falls through to normal dispatch when it did not. Commands own their own `--help`, and any future command with this shape works automatically. | Command | Before | After | |---|---|---| | `validate --help` | `Unknown command`, exit 0 | prints its help, exit 0 | | `publish --help` | works | works | | `init -h` | works | works | | `bogus --help` | `Unknown command`, exit 0 | `Unknown command`, **exit 1** | ## 3. CLI reference corrections - **`--registry` is not global.** It exists only on `login`; other commands read the URL from the stored token. `publish --registry=URL` silently treats the flag as the `server.json` path. `cmd/publisher/README.md` had exactly this broken example. - **`--token` was undocumented** despite `github-actions.mdx:123` depending on it. Now documented, noting it is `login github` only. - **`init` takes no flags** and does not prompt; it writes `TODO:` placeholders. The reference said `init [options]` and "Prompts for missing required fields". - **Refreshed the `--help` transcript** in `quickstart.mdx`, which listed only 4 of 6 commands. Now byte-for-byte identical to real output (diffed). - **Added `validate`** to the command list in `cmd/publisher/README.md`. ## Verification `go build` and `go test ./cmd/...` pass. All four help paths exercised with exit codes checked. The 23 `goconst` findings in `validate_test.go` are pre-existing — identical count on pristine `main`, none in `main.go`. Quickstart transcript diffed against real output. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
43fbc1dcbd |
fix(admin): use PATCH status endpoints in takedown script and runbook (#1518)
The admin takedown script cannot work as written, and the runbook that
documents it has the same problem.
## The bug
`tools/admin/takedown.sh` sent `PUT` with a `?status=deleted` query
parameter to two routes:
| What the script sent | Reality |
|---|---|
| `PUT /v0/servers/{name}/versions/{version}?status=deleted` | Route
exists, but requires a full `ServerJSON` body and has no `status` query
parameter |
| `PUT /v0/servers/{name}?status=deleted` | **Not registered at all** —
the whole-server takedown path 404s |
The real endpoints are `PATCH
/v0/servers/{name}/versions/{version}/status` and `PATCH
/v0/servers/{name}/status`
([status.go:83](https://github.com/modelcontextprotocol/registry/blob/main/internal/api/handlers/v0/status.go#L83),
[:198](https://github.com/modelcontextprotocol/registry/blob/main/internal/api/handlers/v0/status.go#L198)),
both taking `{"status": ..., "statusMessage": ...}`. `edit.go` even says
so in its own description: use the status endpoint for status changes.
## Script changes
- Send `PATCH` with a JSON body built via `jq`
- **Require `VERSION` or `ALL_VERSIONS=true` explicitly.** Previously a
missing `VERSION` meant "entire server". Since `PATCH .../status`
updates *every* version, an operator who simply forgot `VERSION` would
have taken down the whole server. Now that needs saying out loud.
- Support `STATUS` (default `deleted`) and `STATUS_MESSAGE`, so a
takedown can record its reason
- `set -euo pipefail`, non-zero exit on HTTP errors, and print the
response body so huma error detail is visible instead of being swallowed
## Runbook changes
- `GET /v0/servers/{name}` is not a route — use `GET
.../versions/latest` (which is supported, see
[servers.go:155-178](https://github.com/modelcontextprotocol/registry/blob/main/internal/api/handlers/v0/servers.go#L155))
- Replace the per-version `?status=deleted` loop with the single
all-versions `PATCH .../status` call, which reports `updatedCount`
- Keep the per-version `PUT` loop for *content* edits, which genuinely
has no bulk endpoint, and show that it needs the full body
- Correct the closing note claiming server-wide changes must be applied
per version — true for content, not for status
- Fix the broken `moderation-guidelines.md` link (dead since the docs
restructuring; the file is now
`modelcontextprotocol-io/moderation-policy.mdx`)
## Verification
`shellcheck` clean, `bash -n` clean, and all three guard paths exercised
(no args / neither VERSION nor ALL_VERSIONS / both set). Both `PATCH`
paths confirmed present in `docs/reference/api/openapi.yaml`. I did not
run a live takedown against production.
Kept on `/v0` rather than `/v0.1` to match the existing admin/deploy
convention — happy to switch if you would rather admin tooling target
the frozen version.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
|
||
|
|
69374b08de |
docs: add cargo and crates.io to schema examples (#1511)
The cargo registry type has been live since v1.8.0 (#1207). This PR only updates the schema examples so they match reality. - Add "cargo" to registryType.examples - Add "https://crates.io" to registryBaseUrl.examples No behaviour change. Note: versioned schemas are synced from modelcontextprotocol/static. A follow-up there keeps this durable across schema sync. Co-authored-by: Wolfe-Jam <wolfejam77@gmail.com> |
||
|
|
03aeca562f |
build(deps): bump github.com/go-git/go-git/v6 from 6.0.0-alpha.4 to 6.0.0-alpha.5 in /deploy (#1514)
Bumps [github.com/go-git/go-git/v6](https://github.com/go-git/go-git) from 6.0.0-alpha.4 to 6.0.0-alpha.5. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/go-git/go-git/releases">github.com/go-git/go-git/v6's releases</a>.</em></p> <blockquote> <h2>v6.0.0-alpha.5</h2> <h2>What's Changed</h2> <ul> <li>plumbing: format/packfile, allow injecting a custom ObjectSelector by <a href="https://github.com/Soph"><code>@Soph</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2142">go-git/go-git#2142</a></li> <li>storage: pool .pack file descriptors via internal/packhandle by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2132">go-git/go-git#2132</a></li> <li>build: Update module golang.org/x/crypto to v0.52.0 [SECURITY] (main) by <a href="https://github.com/go-git-renovate"><code>@go-git-renovate</code></a>[bot] in <a href="https://redirect.github.com/go-git/go-git/pull/2148">go-git/go-git#2148</a></li> <li>build: Update module golang.org/x/net to v0.55.0 [SECURITY] (main) by <a href="https://github.com/go-git-renovate"><code>@go-git-renovate</code></a>[bot] in <a href="https://redirect.github.com/go-git/go-git/pull/2151">go-git/go-git#2151</a></li> <li>plumbing, storage: add CloseIdleDescriptors soft-close primitive by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2133">go-git/go-git#2133</a></li> <li>*: harden format parsers against unbounded loops by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2162">go-git/go-git#2162</a></li> <li>storage: pack read optimisations and storage-wide LRU FD pool by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2134">go-git/go-git#2134</a></li> <li>plumbing: format/packfile, fix delta-base parsing bugs by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2163">go-git/go-git#2163</a></li> <li>git: worktree, hoist Config() calls out of per-file loops by <a href="https://github.com/cedric-appdirect"><code>@cedric-appdirect</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1990">go-git/go-git#1990</a></li> <li>storage: filesystem, pool FSObject reads via PackHandle by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2154">go-git/go-git#2154</a></li> <li>plumbing: format/index, accept empty trailing checksum on decode by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2181">go-git/go-git#2181</a></li> <li>build: Update golang (main) by <a href="https://github.com/go-git-renovate"><code>@go-git-renovate</code></a>[bot] in <a href="https://redirect.github.com/go-git/go-git/pull/2182">go-git/go-git#2182</a></li> <li>build: Update module golang.org/x/net to v0.56.0 (main) by <a href="https://github.com/go-git-renovate"><code>@go-git-renovate</code></a>[bot] in <a href="https://redirect.github.com/go-git/go-git/pull/2191">go-git/go-git#2191</a></li> <li>*: speed up multi-pack reads via Index fanout probes by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2147">go-git/go-git#2147</a></li> <li>Fix URL insteadOf to use longest match when multiple values exist by <a href="https://github.com/AriehSchneier"><code>@AriehSchneier</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2189">go-git/go-git#2189</a></li> <li>transport/http, backend, utils/ioutil: fix HTTP data races on the fetch and serve paths by <a href="https://github.com/georg"><code>@georg</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2128">go-git/go-git#2128</a></li> <li>plumbing: protocol/packp, handle shallow-only no-op push in UpdateRequests.Decode by <a href="https://github.com/yuzhuo"><code>@yuzhuo</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2172">go-git/go-git#2172</a></li> <li>git: signer, add context.Context to Sign by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2202">go-git/go-git#2202</a></li> <li>plumbing: transport/http, Expose typed auth error for Azure DevOps /_signin redirects by <a href="https://github.com/jfjrh2014"><code>@jfjrh2014</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2201">go-git/go-git#2201</a></li> <li>plumbing: format, faster diff patch generation by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2186">go-git/go-git#2186</a></li> <li>plumbing: transport, Protocol v2 for upload-pack by <a href="https://github.com/blmayer"><code>@blmayer</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2188">go-git/go-git#2188</a></li> <li>plumbing: pktline, use Scanner for decoding by <a href="https://github.com/aymanbagabas"><code>@aymanbagabas</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2038">go-git/go-git#2038</a></li> <li>internal: server/git, Fix TestGitServer_Timeout flakiness on Windows CI by <a href="https://github.com/aymanbagabas"><code>@aymanbagabas</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2129">go-git/go-git#2129</a></li> <li>plumbing: packp, validate push options to prevent invalid characters by <a href="https://github.com/aymanbagabas"><code>@aymanbagabas</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2057">go-git/go-git#2057</a></li> <li>plumbing: packp/capability, Zero-value-safe types and capability cleanup (1/11) by <a href="https://github.com/aymanbagabas"><code>@aymanbagabas</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2206">go-git/go-git#2206</a></li> <li>plumbing: object, skip path validation in tree diff walk by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2222">go-git/go-git#2222</a></li> <li>plumbing: packp/transport, Slice-based AdvRefs and v1 handling (2/11) by <a href="https://github.com/aymanbagabas"><code>@aymanbagabas</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2225">go-git/go-git#2225</a></li> <li>plumbing: transport, Add options and result struct to GetRemoteRefs (3/11) by <a href="https://github.com/aymanbagabas"><code>@aymanbagabas</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2226">go-git/go-git#2226</a></li> <li>git: Expose AlternatesFS on PlainOpenOptions by <a href="https://github.com/andrew"><code>@andrew</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2101">go-git/go-git#2101</a></li> <li>plumbing: packp, Protocol v2 wire types with caller-owned packfile streaming (4/11) by <a href="https://github.com/aymanbagabas"><code>@aymanbagabas</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2227">go-git/go-git#2227</a></li> <li>plumbing/transport: receive_pack, add ReceivePackHooks with PreReceive/PostReceive by <a href="https://github.com/andrew"><code>@andrew</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2236">go-git/go-git#2236</a></li> <li>plumbing: transport, Protocol v2 session handshake and Command (5/11) by <a href="https://github.com/aymanbagabas"><code>@aymanbagabas</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2228">go-git/go-git#2228</a></li> <li>plumbing: transport, ls-refs over Protocol v2 for GetRemoteRefs (6/11) by <a href="https://github.com/aymanbagabas"><code>@aymanbagabas</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2229">go-git/go-git#2229</a></li> <li>plumbing: transport, fetch over Protocol v2 with caller-owned packfile (7/11) by <a href="https://github.com/aymanbagabas"><code>@aymanbagabas</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2230">go-git/go-git#2230</a></li> <li>plumbing: transport, Wire Protocol v2 across HTTP and share the client core (8/11) by <a href="https://github.com/aymanbagabas"><code>@aymanbagabas</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2231">go-git/go-git#2231</a></li> <li>plumbing: transport, Refactor server-side Protocol v2 onto packp types (9/11) by <a href="https://github.com/aymanbagabas"><code>@aymanbagabas</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2232">go-git/go-git#2232</a></li> <li>plumbing: transport, git archive over HTTP (10/11) by <a href="https://github.com/aymanbagabas"><code>@aymanbagabas</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2233">go-git/go-git#2233</a></li> <li>plumbing: transport, Run the upload-pack suite across v0/v1/v2 (11/11) by <a href="https://github.com/aymanbagabas"><code>@aymanbagabas</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2234">go-git/go-git#2234</a></li> <li>plumbing: optimize Tree.Decode with ReadSlice and io.ReadFull by <a href="https://github.com/Bluebugs"><code>@Bluebugs</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1736">go-git/go-git#1736</a></li> <li>plumbing: object, Isolate tests from host git config. by <a href="https://github.com/cedric-appdirect"><code>@cedric-appdirect</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2122">go-git/go-git#2122</a></li> <li>plumbing: default to wire protocol v2 and close client/server conformance gaps by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2237">go-git/go-git#2237</a></li> <li>build: Update module golang.org/x/text to v0.39.0 (main) by <a href="https://github.com/go-git-renovate"><code>@go-git-renovate</code></a>[bot] in <a href="https://redirect.github.com/go-git/go-git/pull/2241">go-git/go-git#2241</a></li> <li>build: Update golang (main) by <a href="https://github.com/go-git-renovate"><code>@go-git-renovate</code></a>[bot] in <a href="https://redirect.github.com/go-git/go-git/pull/2246">go-git/go-git#2246</a></li> <li>plumbing: object, include submodules in patches by <a href="https://github.com/upuddu"><code>@upuddu</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2243">go-git/go-git#2243</a></li> <li>storage: dotgit, reject path traversal in reference names by <a href="https://github.com/Sahana2524"><code>@Sahana2524</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2247">go-git/go-git#2247</a></li> <li>plumbing: transport/http, redact credentials in error messages by <a href="https://github.com/Sahana2524"><code>@Sahana2524</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2252">go-git/go-git#2252</a></li> <li>git: worktree, checkout reuse a single os.Root per reset. by <a href="https://github.com/cedric-appdirect"><code>@cedric-appdirect</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2259">go-git/go-git#2259</a></li> <li>git: Worktree: Add stores index entires with backslashes on Windows by <a href="https://github.com/joshblum"><code>@joshblum</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2253">go-git/go-git#2253</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
4508c48f80 |
Fix broken relative links in releasing docs (#1517)
The three deployment links in `docs/contributing/releasing.md` use `../../../`, which resolves above the repository root and 404s on GitHub. The file lives in `docs/contributing/`, so the repo root is two levels up and `../../` is correct. This fixes the links to `deploy-production.yml`, `deploy-staging.yml`, and `deploy/README.md` (all three targets exist at the repo root). No content change. |
||
|
|
f36b7dd4af |
chore(deploy): promote production to 1.8.1 (#1510)
## Summary
Promote the production registry image from `1.8.0` to
[`1.8.1`](https://github.com/modelcontextprotocol/registry/releases/tag/v1.8.1).
This release includes #1509, which adds a short ingress cache and a
scoped rate-limit increase for the exact public registry-list endpoints.
## Staging verification
- release tag points to `
|
||
|
|
f52dc8525a |
fix(deploy): cache bulk registry reads (#1509)
## Summary - cache successful public list responses for `/v0/servers` and `/v0.1/servers` at ingress-nginx for 30 seconds - give only those exact cached paths a 600 RPM per-controller budget - preserve the existing 180 RPM limit for publish, auth, mutation, detail, and other routes - expose `X-Registry-Cache` to make cache MISS/HIT behavior directly observable ## Why Production ingress logs show that the current 180 RPM per-controller limit rejects legitimate bulk pagination before it reaches the application. The affected traffic is overwhelmingly registry-list reads, not publishing. A ten-minute production sample contained 17,836 successful list responses but only 3,188 unique URLs: 82.1% were repeated requests, representing roughly 1 GB of duplicate response bodies. Raising the list limit without caching would increase pressure on the application and its shared PostgreSQL pool. The short ingress cache absorbs repeated cursor-page reads before raising their scoped client budget. Publish latency is a separate concern. Reducing read pressure may help indirectly, but slow external package validation is intentionally out of scope for this PR. Relates to #826. ## Safety - caching is limited to exact public GET list paths and keyed by host plus full request URI - only 200 responses are cached - cache lifetime is 30 seconds; newly published entries can therefore take up to 30 seconds to appear on a cached page - cache locking coalesces simultaneous misses - stale cached responses may be served while refreshing or during transient upstream 5xx/timeouts - each ingress replica uses at most 1 GB of ephemeral on-disk cache ## Validation - `go test ./...` in `deploy/` - `go vet ./...` in `deploy/` - `git diff --check` - ingress-nginx chart 4.13.0 in a disposable kind cluster - generated NGINX configuration passed `nginx -t` - repeated list request verified `X-Registry-Cache: MISS` followed by `HIT` - non-list route verified uncached - exact list locations verified with the higher rate zone while the catch-all retained 180 RPM Nothing was applied to production during investigation or validation. |
||
|
|
2b09bde534 |
docs: remove stale build.sh reference from publisher Key Files (#1504)
The Key Files list in `cmd/publisher/README.md` includes a bullet for `build.sh`, but there is no `build.sh` anywhere in the repo. The publisher is built with `make publisher`, which runs `go build -o bin/mcp-publisher ./cmd/publisher` (Makefile), so there is no separate cross-platform build script. The other three entries in the same list (`main.go`, `commands/`, `auth/`) all exist. This removes the stale bullet so the list matches the actual files in the directory. |
||
|
|
5c19656cb9 |
fix(auth): reject github.io domains in DNS/HTTP token exchange (org namespace takeover) (#1506)
## Summary - The GitHub token method grants `io.github.<org>/*` publish rights **only to org Owners** (active `admin` membership — `github_at.go`). - The DNS/HTTP token methods grant `reversed(domain)/*` for any proven domain, with no `github.io` special-casing and an empty `BlockedNamespaces` list. - `<org>.github.io` is served by GitHub Pages from the `<org>/<org>.github.io` repository. **Push access to that one repository** — routinely held by ordinary org members, a much weaker bar than Owner — is enough to serve a key at `/.well-known/mcp-registry-auth`, exchange it for a JWT, and publish under the org's entire `io.github.<org>/*` namespace. - Reject `github.io` (and subdomains) at the shared `ValidateDomainAndTimestamp` seam used by both DNS and HTTP exchange; `io.github.*` publishers already have the GitHub method. ## Impact if unsolved Any org member with write access to the org's GitHub Pages repo (or an attacker compromising such a member) can mint MCP packages under the org's trusted namespace — supply-chain poisoning of every downstream user who installs `<org>`'s servers from the registry, bypassing the deliberate Owner-only gate. ## Test plan - New `TestValidateDomainAndTimestampRejectsGitHubPages`: rejects `my-org.github.io` (incl. mixed case and subdomains), still allows lookalikes (`github.io.evil-example.com`, `my-org.github.io.example.com`) and ordinary domains. - Full `internal/api/handlers/v0/auth` package passes. Made with [Cursor](https://cursor.com) Signed-off-by: SashaMIT <sash@ela.city> Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|
|
0f78916eee |
build(deps): bump docker/login-action from 4.4.0 to 4.6.0 in the actions group (#1492)
Bumps the actions group with 1 update: [docker/login-action](https://github.com/docker/login-action). Updates `docker/login-action` from 4.4.0 to 4.6.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/docker/login-action/releases">docker/login-action's releases</a>.</em></p> <blockquote> <h2>v4.6.0</h2> <ul> <li>Harden buildx scoped config path handling by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/1059">docker/login-action#1059</a></li> <li>Bump <code>@aws-sdk/client-ecr</code> and <code>@aws-sdk/client-ecr-public</code> to 3.1095.0 in <a href="https://redirect.github.com/docker/login-action/pull/1051">docker/login-action#1051</a></li> <li>Bump js-yaml from 5.2.1 to 5.2.2 in <a href="https://redirect.github.com/docker/login-action/pull/1057">docker/login-action#1057</a></li> <li>Bump postcss from 8.5.10 to 8.5.22 in <a href="https://redirect.github.com/docker/login-action/pull/1056">docker/login-action#1056</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v4.5.2...v4.6.0">https://github.com/docker/login-action/compare/v4.5.2...v4.6.0</a></p> <h2>v4.5.2</h2> <ul> <li>Surface Docker Hub OIDC error responses by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/1058">docker/login-action#1058</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v4.5.1...v4.5.2">https://github.com/docker/login-action/compare/v4.5.1...v4.5.2</a></p> <h2>v4.5.1</h2> <ul> <li>Support <code>dhi.io</code> as Docker Hub OIDC registry by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/1054">docker/login-action#1054</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v4.5.0...v4.5.1">https://github.com/docker/login-action/compare/v4.5.0...v4.5.1</a></p> <h2>v4.5.0</h2> <ul> <li><a href="https://github.com/docker/login-action#docker-hub">Docker Hub OIDC</a> login support by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/1048">docker/login-action#1048</a></li> <li>Bump <code>@aws-sdk/client-ecr</code> and <code>@aws-sdk/client-ecr-public</code> to 3.1091.0 in <a href="https://redirect.github.com/docker/login-action/pull/1037">docker/login-action#1037</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.92.0 to 0.94.0 in <a href="https://redirect.github.com/docker/login-action/pull/1044">docker/login-action#1044</a> <a href="https://redirect.github.com/docker/login-action/pull/1050">docker/login-action#1050</a></li> <li>Bump brace-expansion from 1.1.13 to 1.1.16 in <a href="https://redirect.github.com/docker/login-action/pull/1046">docker/login-action#1046</a></li> <li>Bump js-yaml from 5.2.0 to 5.2.1 in <a href="https://redirect.github.com/docker/login-action/pull/1038">docker/login-action#1038</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v4.4.0...v4.5.0">https://github.com/docker/login-action/compare/v4.4.0...v4.5.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
34f0bb99f3 |
build(deps): bump cloud.google.com/go/kms from 1.32.0 to 1.33.0 (#1491)
Bumps [cloud.google.com/go/kms](https://github.com/googleapis/google-cloud-go) from 1.32.0 to 1.33.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-cloud-go/releases">cloud.google.com/go/kms's releases</a>.</em></p> <blockquote> <h2>video: v1.33.0</h2> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/video/v1.32.0...video/v1.33.0">1.33.0</a> (2026-07-13)</h2> <h3>Features</h3> <ul> <li><strong>o11y:</strong> Regenerate clients for LRO tracing (<a href="https://redirect.github.com/googleapis/google-cloud-go/issues/20107">#20107</a>) (<a href=" |
||
|
|
ac340e0b88 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.253.0 to 3.255.0 in /deploy (#1490)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.253.0 to 3.255.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.255.0</h2> <h2>3.255.0 (2026-07-28)</h2> <h3>Features</h3> <ul> <li>[cli] Add an <code>--extension</code> flag to package commands for extension-parameterized packages, reinstalled from <code>Pulumi.yaml</code> on <code>pulumi install</code></li> <li>[cli] Project files to disk and surface their paths as environment variables for all output formats when opening an ESC environment <a href="https://redirect.github.com/pulumi/pulumi/pull/23993">#23993</a></li> <li>[engine] Resolve an invoke's provider from the <code>providers</code> option of the parent named on the request, matching the resolution applied to resource registrations <a href="https://redirect.github.com/pulumi/pulumi/pull/24016">#24016</a></li> <li>[cli/do] Add <code>--resources</code> to refer to existing resources in state in <code>do</code> input expressions <a href="https://redirect.github.com/pulumi/pulumi/pull/24037">#24037</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[programgen/nodejs] Parent an invoke written inside a component to that component, so it resolves the component's providers <a href="https://redirect.github.com/pulumi/pulumi/pull/24017">#24017</a></li> <li>[pcl] Apply the <code>providers</code> option of a <code>component</code> block to the resources and invokes it declares <a href="https://redirect.github.com/pulumi/pulumi/pull/24016">#24016</a></li> <li>[cli/import] Fix import file generation when parent resources share names <a href="https://redirect.github.com/pulumi/pulumi/pull/24069">#24069</a></li> <li>[cli] Fix parallel <code>pulumi install</code> processes sharing a <code>PULUMI_HOME</code> intermittently failing with a missing provider executable error <a href="https://redirect.github.com/pulumi/pulumi/pull/24080">#24080</a></li> <li>[sdk/python] Allow Construct and Call methods to run concurrently in provider servers <a href="https://redirect.github.com/pulumi/pulumi/pull/24081">#24081</a></li> </ul> <h3>Improvements</h3> <ul> <li>[engine] Support strings containing non-UTF8 bytes flowing between providers, the engine, state, and languages that opt in (Go and PCL initially) <a href="https://redirect.github.com/pulumi/pulumi/pull/23856">#23856</a></li> <li>[cli] Add a <code>--summary</code> flag to <code>pulumi stack history events</code> that reduces a past update's events to the same summary shape as a live <code>pulumi up --output json</code>, extended with error diagnostics and failed-resource markers <a href="https://redirect.github.com/pulumi/pulumi/pull/23960">#23960</a></li> <li>[protobuf] Allow state converters to supply resource inputs and outputs in ConvertState responses <a href="https://redirect.github.com/pulumi/pulumi/pull/23987">#23987</a></li> <li>[engine] Allow policy packs to point to executable binaries, not just script folders <a href="https://redirect.github.com/pulumi/pulumi/pull/24052">#24052</a></li> <li>[cli/display] The Neo diagnostics link now suggests <code>pulumi neo --debug-update</code> or <code>pulumi neo --debug-preview</code> to investigate the failed operation <a href="https://redirect.github.com/pulumi/pulumi/pull/24075">#24075</a></li> <li>[sdk/python] Allow <code>UV_PROJECT_ENVIRONMENT</code> to override the virtualenv path if uv is used <a href="https://redirect.github.com/pulumi/pulumi/pull/24077">#24077</a></li> <li>[cli] Allow otel traces to be sent over https <a href="https://redirect.github.com/pulumi/pulumi/pull/24078">#24078</a></li> </ul> <h2>v3.254.0</h2> <h2>3.254.0 (2026-07-23)</h2> <h3>Features</h3> <ul> <li>[cli] Add <code>pulumi logs share</code> command for sharing logs with Pulumi <a href="https://redirect.github.com/pulumi/pulumi/pull/22546">#22546</a></li> <li>[cli] Add <code>pulumi stack migrate</code> to migrate a stack from another backend to the currently logged-in backend, including re-encrypting config secrets and stack state under the target secrets provider <a href="https://redirect.github.com/pulumi/pulumi/pull/22902">#22902</a></li> <li>[cli/config] Add an <code>--override-env</code> flag to <code>up</code>, <code>preview</code>, <code>destroy</code>, and <code>refresh</code> to substitute imported environments for a single run without editing the stack config <a href="https://redirect.github.com/pulumi/pulumi/pull/23562">#23562</a></li> <li>[cli] Add <code>pulumi neo acp</code> to run Neo as an Agent Client Protocol agent over stdio for ACP-capable editors, with read-only and plan mode exposed as session config options <a href="https://redirect.github.com/pulumi/pulumi/pull/23886">#23886</a></li> <li>[cli/neo] Retry transient <code>pulumi neo</code> stream and message-send failures, and add <code>pulumi neo resume</code> with chat history <a href="https://redirect.github.com/pulumi/pulumi/pull/23835">#23835</a></li> <li>[cli/neo] Make Ctrl+C clear typed text and preserve Ctrl+A/Ctrl+E line navigation in <code>pulumi neo</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23932">#23932</a></li> <li>[cli/do] Add <code>upsert</code> to do, allowing resources to be statefully created or updated in a stack <a href="https://redirect.github.com/pulumi/pulumi/pull/23813">#23813</a></li> <li>[sdk/python] Add <code>pulumi.run</code> for natively awaited Python program entrypoints that can return stack outputs <a href="https://redirect.github.com/pulumi/pulumi/pull/23945">#23945</a></li> <li>[cli/do] Allow expressions for number inputs <a href="https://redirect.github.com/pulumi/pulumi/pull/23954">#23954</a></li> <li>[cli/do] Allow expressions for boolean inputs <a href="https://redirect.github.com/pulumi/pulumi/pull/23967">#23967</a></li> <li>[cli/policy] Add <code>--runtime-options</code> to <code>pulumi policy new</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23992">#23992</a></li> <li>[cli/do] Add support for stateful create <a href="https://redirect.github.com/pulumi/pulumi/pull/23996">#23996</a></li> <li>[cli/do] Add support for stateful delete <a href="https://redirect.github.com/pulumi/pulumi/pull/24000">#24000</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[sdkgen/go] Fix Go codegen for plain properties nested inside non-plain objects <a href="https://redirect.github.com/pulumi/pulumi/pull/22524">#22524</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.255.0 (2026-07-28)</h2> <h3>Features</h3> <ul> <li>[cli] Add an <code>--extension</code> flag to package commands for extension-parameterized packages, reinstalled from <code>Pulumi.yaml</code> on <code>pulumi install</code></li> <li>[cli] Project files to disk and surface their paths as environment variables for all output formats when opening an ESC environment <a href="https://redirect.github.com/pulumi/pulumi/pull/23993">#23993</a></li> <li>[engine] Resolve an invoke's provider from the <code>providers</code> option of the parent named on the request, matching the resolution applied to resource registrations <a href="https://redirect.github.com/pulumi/pulumi/pull/24016">#24016</a></li> <li>[cli/do] Add <code>--resources</code> to refer to existing resources in state in <code>do</code> input expressions <a href="https://redirect.github.com/pulumi/pulumi/pull/24037">#24037</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[programgen/nodejs] Parent an invoke written inside a component to that component, so it resolves the component's providers <a href="https://redirect.github.com/pulumi/pulumi/pull/24017">#24017</a></li> <li>[pcl] Apply the <code>providers</code> option of a <code>component</code> block to the resources and invokes it declares <a href="https://redirect.github.com/pulumi/pulumi/pull/24016">#24016</a></li> <li>[cli/import] Fix import file generation when parent resources share names <a href="https://redirect.github.com/pulumi/pulumi/pull/24069">#24069</a></li> <li>[cli] Fix parallel <code>pulumi install</code> processes sharing a <code>PULUMI_HOME</code> intermittently failing with a missing provider executable error <a href="https://redirect.github.com/pulumi/pulumi/pull/24080">#24080</a></li> <li>[sdk/python] Allow Construct and Call methods to run concurrently in provider servers <a href="https://redirect.github.com/pulumi/pulumi/pull/24081">#24081</a></li> </ul> <h3>Improvements</h3> <ul> <li>[engine] Support strings containing non-UTF8 bytes flowing between providers, the engine, state, and languages that opt in (Go and PCL initially) <a href="https://redirect.github.com/pulumi/pulumi/pull/23856">#23856</a></li> <li>[cli] Add a <code>--summary</code> flag to <code>pulumi stack history events</code> that reduces a past update's events to the same summary shape as a live <code>pulumi up --output json</code>, extended with error diagnostics and failed-resource markers <a href="https://redirect.github.com/pulumi/pulumi/pull/23960">#23960</a></li> <li>[protobuf] Allow state converters to supply resource inputs and outputs in ConvertState responses <a href="https://redirect.github.com/pulumi/pulumi/pull/23987">#23987</a></li> <li>[engine] Allow policy packs to point to executable binaries, not just script folders <a href="https://redirect.github.com/pulumi/pulumi/pull/24052">#24052</a></li> <li>[cli/display] The Neo diagnostics link now suggests <code>pulumi neo --debug-update</code> or <code>pulumi neo --debug-preview</code> to investigate the failed operation <a href="https://redirect.github.com/pulumi/pulumi/pull/24075">#24075</a></li> <li>[sdk/python] Allow <code>UV_PROJECT_ENVIRONMENT</code> to override the virtualenv path if uv is used <a href="https://redirect.github.com/pulumi/pulumi/pull/24077">#24077</a></li> <li>[cli] Allow otel traces to be sent over https <a href="https://redirect.github.com/pulumi/pulumi/pull/24078">#24078</a></li> </ul> <h2>3.254.0 (2026-07-23)</h2> <h3>Features</h3> <ul> <li>[cli] Add <code>pulumi logs share</code> command for sharing logs with Pulumi <a href="https://redirect.github.com/pulumi/pulumi/pull/22546">#22546</a></li> <li>[cli] Add <code>pulumi stack migrate</code> to migrate a stack from another backend to the currently logged-in backend, including re-encrypting config secrets and stack state under the target secrets provider <a href="https://redirect.github.com/pulumi/pulumi/pull/22902">#22902</a></li> <li>[cli/config] Add an <code>--override-env</code> flag to <code>up</code>, <code>preview</code>, <code>destroy</code>, and <code>refresh</code> to substitute imported environments for a single run without editing the stack config <a href="https://redirect.github.com/pulumi/pulumi/pull/23562">#23562</a></li> <li>[cli] Add <code>pulumi neo acp</code> to run Neo as an Agent Client Protocol agent over stdio for ACP-capable editors, with read-only and plan mode exposed as session config options <a href="https://redirect.github.com/pulumi/pulumi/pull/23886">#23886</a></li> <li>[cli/neo] Retry transient <code>pulumi neo</code> stream and message-send failures, and add <code>pulumi neo resume</code> with chat history <a href="https://redirect.github.com/pulumi/pulumi/pull/23835">#23835</a></li> <li>[cli/neo] Make Ctrl+C clear typed text and preserve Ctrl+A/Ctrl+E line navigation in <code>pulumi neo</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23932">#23932</a></li> <li>[cli/do] Add <code>upsert</code> to do, allowing resources to be statefully created or updated in a stack <a href="https://redirect.github.com/pulumi/pulumi/pull/23813">#23813</a></li> <li>[sdk/python] Add <code>pulumi.run</code> for natively awaited Python program entrypoints that can return stack outputs <a href="https://redirect.github.com/pulumi/pulumi/pull/23945">#23945</a></li> <li>[cli/do] Allow expressions for number inputs <a href="https://redirect.github.com/pulumi/pulumi/pull/23954">#23954</a></li> <li>[cli/do] Allow expressions for boolean inputs <a href="https://redirect.github.com/pulumi/pulumi/pull/23967">#23967</a></li> <li>[cli/policy] Add <code>--runtime-options</code> to <code>pulumi policy new</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23992">#23992</a></li> <li>[cli/do] Add support for stateful create <a href="https://redirect.github.com/pulumi/pulumi/pull/23996">#23996</a></li> <li>[cli/do] Add support for stateful delete <a href="https://redirect.github.com/pulumi/pulumi/pull/24000">#24000</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[sdkgen/go] Fix Go codegen for plain properties nested inside non-plain objects <a href="https://redirect.github.com/pulumi/pulumi/pull/22524">#22524</a></li> <li>[cli/neo] Keep <code>pulumi neo</code> connected during quiet periods when the event stream only receives keep-alive heartbeats <a href="https://redirect.github.com/pulumi/pulumi/pull/23935">#23935</a></li> <li>[engine] Validate snippets before persisting them <a href="https://redirect.github.com/pulumi/pulumi/pull/23920">#23920</a></li> <li>[backend] Fix dangling ReplaceWith references in the journal replayer <a href="https://redirect.github.com/pulumi/pulumi/pull/23927">#23927</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
4e1f96a716 |
build(deps): bump github.com/danielgtaylor/huma/v2 from 2.39.0 to 2.39.1 (#1489)
Bumps [github.com/danielgtaylor/huma/v2](https://github.com/danielgtaylor/huma) from 2.39.0 to 2.39.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/danielgtaylor/huma/releases">github.com/danielgtaylor/huma/v2's releases</a>.</em></p> <blockquote> <h1>v2.39.1</h1> <h2>Overview</h2> <p>A patch release: correctness fixes for resolvers, validation, and response handling, plus a dependency refresh.</p> <h3>Response Status Visible to Middleware Again</h3> <p><code>WithContext</code> context propagation in v2.39.0 copied the response status by value, so middleware that called <code>WithContext</code> and then read <code>Status()</code> after <code>next()</code> always saw <code>0</code> instead of the status the handler set, breaking access logging and telemetry. The status is now shared by every context copy across all adapters, restoring the pre-2.39 invariant while keeping context propagation intact. (<a href="https://redirect.github.com/danielgtaylor/huma/issues/1081">#1081</a>)</p> <h3>Resolvers & Defaults in Arrays and Maps</h3> <ul> <li>Nested resolvers now run for fixed-size arrays (<code>[2]Item</code>), not just slices (<a href="https://redirect.github.com/danielgtaylor/huma/issues/1076">#1076</a>)</li> <li>A resolver on a named collection type (e.g. <code>type Coords [2]float64</code>) no longer panics, and is no longer conflated with a resolver on its element type, which previously ran the element's resolver twice and the collection's never (<a href="https://redirect.github.com/danielgtaylor/huma/issues/1082">#1082</a>)</li> <li>Values reached through a map are now written back after being walked, so applying a default no longer panics with <code>reflect: reflect.Value.Set using unaddressable value</code> and resolver mutations are no longer silently discarded (<a href="https://redirect.github.com/danielgtaylor/huma/issues/1082">#1082</a>)</li> </ul> <h3>Stricter <code>email</code> and <code>uri</code> Formats</h3> <p>Validation for two string formats is tighter, so payloads that previously passed may now return <code>422</code>:</p> <ul> <li><code>email</code> / <code>idn-email</code> accept an addr-spec only; full mailbox forms with a display name (<code>Name <user@example.com></code>) are rejected</li> <li><code>uri</code> / <code>iri</code> require an absolute URI with a non-empty scheme, while relative references remain valid under <code>uri-reference</code> / <code>iri-reference</code> (<a href="https://redirect.github.com/danielgtaylor/huma/issues/1068">#1068</a>)</li> </ul> <h3>Validation Robustness</h3> <ul> <li>An unresolvable schema <code>$ref</code> during <code>Validate</code> now reports <code>expected schema $ref to resolve: ...</code> instead of panicking on a nil dereference, covering discriminators and <code>map[string]any</code> / <code>map[any]any</code> values (<a href="https://redirect.github.com/danielgtaylor/huma/issues/1065">#1065</a>)</li> <li>Named numeric slice parameters (e.g. <code>type IDs []int64</code>) are built with their declared element type and validated with item, length, and uniqueness constraints intact (<a href="https://redirect.github.com/danielgtaylor/huma/issues/1074">#1074</a>)</li> </ul> <h2>Other Fixes</h2> <ul> <li>Resolver errors that wrap a <code>HeadersError</code> now contribute their headers to the response, matching the handler error path (<a href="https://redirect.github.com/danielgtaylor/huma/issues/1070">#1070</a>)</li> <li>A nil interface response body no longer panics in the schema link transformer (<a href="https://redirect.github.com/danielgtaylor/huma/issues/1072">#1072</a>)</li> <li>Dependencies updated (<a href="https://redirect.github.com/danielgtaylor/huma/issues/1066">#1066</a>)</li> </ul> <h2>What's Changed</h2> <ul> <li>fix: do not panic on unresolved schema $ref during Validate by <a href="https://github.com/baiyuxi930826"><code>@baiyuxi930826</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1065">danielgtaylor/huma#1065</a></li> <li>chore: update dependencies by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1066">danielgtaylor/huma#1066</a></li> <li>fix: tighten format email and uri validation by <a href="https://github.com/baiyuxi930826"><code>@baiyuxi930826</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1068">danielgtaylor/huma#1068</a></li> <li>fix: preserve wrapped resolver error metadata by <a href="https://github.com/ggmolly"><code>@ggmolly</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1070">danielgtaylor/huma#1070</a></li> <li>fix: handle nil interface response bodies by <a href="https://github.com/ggmolly"><code>@ggmolly</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1072">danielgtaylor/huma#1072</a></li> <li>fix: parse named numeric slice parameters by <a href="https://github.com/ggmolly"><code>@ggmolly</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1074">danielgtaylor/huma#1074</a></li> <li>fix: share response status across WithContext copies by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1081">danielgtaylor/huma#1081</a></li> <li>fix: run nested resolvers in fixed arrays by <a href="https://github.com/ggmolly"><code>@ggmolly</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1076">danielgtaylor/huma#1076</a></li> <li>fix: distinguish collection and element matches when walking input by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1082">danielgtaylor/huma#1082</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/baiyuxi930826"><code>@baiyuxi930826</code></a> made their first contribution in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1065">danielgtaylor/huma#1065</a></li> <li><a href="https://github.com/ggmolly"><code>@ggmolly</code></a> made their first contribution in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1070">danielgtaylor/huma#1070</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/danielgtaylor/huma/compare/v2.39.0...v2.39.1">https://github.com/danielgtaylor/huma/compare/v2.39.0...v2.39.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
2a28830156 |
docs: remove Tadas as WG Lead (#1493)
Per discussion with @rdimitrov, removing my listing as WG Lead of Registry so I can free up some time to work on [AI Catalog](https://github.com/Agent-Card/ai-catalog) and [Server Cards](https://github.com/modelcontextprotocol/experimental-ext-server-card). FYI @BobDickinson @pree-dew Co-authored-by: Tadas Antanavicius <jon@tadasant.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
4000b09953 |
build(deps): bump github.com/google/go-containerregistry from 0.21.7 to 0.21.8 (#1507)
Bumps [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry) from 0.21.7 to 0.21.8. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/go-containerregistry/releases">github.com/google/go-containerregistry's releases</a>.</em></p> <blockquote> <h2>v0.21.8</h2> <p>The artifacts attached to this release are missing SLSA provenance, see <a href="https://redirect.github.com/google/go-containerregistry/issues/2390">#2390</a>.</p> <h2>What's Changed</h2> <ul> <li>build(deps): bump the go-deps group across 1 directory with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2353">google/go-containerregistry#2353</a></li> <li>build(deps): bump golang.org/x/crypto from 0.45.0 to 0.52.0 in /cmd/krane by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2367">google/go-containerregistry#2367</a></li> <li>build(deps): bump golang.org/x/crypto from 0.50.0 to 0.52.0 in /pkg/authn/k8schain by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2368">google/go-containerregistry#2368</a></li> <li>build(deps): bump golang.org/x/net from 0.49.0 to 0.55.0 in /pkg/authn/kubernetes by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2363">google/go-containerregistry#2363</a></li> <li>build(deps): bump the go-deps group across 3 directories with 7 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2377">google/go-containerregistry#2377</a></li> <li>build(deps): bump the actions group across 1 directory with 5 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2375">google/go-containerregistry#2375</a></li> <li>Reject unsafe Windows archive paths in Extract by <a href="https://github.com/Haihan-Jiang"><code>@Haihan-Jiang</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2330">google/go-containerregistry#2330</a></li> <li>feat(goreleaser): add loong64 build support for crane/gcrane/krane by <a href="https://github.com/xuxiaowei-com-cn"><code>@xuxiaowei-com-cn</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2358">google/go-containerregistry#2358</a></li> <li>Document tag and digest reference semantics by <a href="https://github.com/Haihan-Jiang"><code>@Haihan-Jiang</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2325">google/go-containerregistry#2325</a></li> <li>remote: release pull limiter slot when body is read to EOF by <a href="https://github.com/knQzx"><code>@knQzx</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2373">google/go-containerregistry#2373</a></li> <li>tarball: bounds-check layer index in uncompressed LayerByDiffID by <a href="https://github.com/arpitjain099"><code>@arpitjain099</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2370">google/go-containerregistry#2370</a></li> <li>authn: read Podman auth from XDG config by <a href="https://github.com/vigneshakaviki"><code>@vigneshakaviki</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2379">google/go-containerregistry#2379</a></li> <li>transport: per-host bearer token exchange on cross-host redirect by <a href="https://github.com/amitzig"><code>@amitzig</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2360">google/go-containerregistry#2360</a></li> <li>mutate: bounds-check layer index when building rebase addendums by <a href="https://github.com/arpitjain099"><code>@arpitjain099</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2371">google/go-containerregistry#2371</a></li> <li>fix(daemon): copy ExposedPorts from source config in computeImageConfig by <a href="https://github.com/x64vps"><code>@x64vps</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2356">google/go-containerregistry#2356</a></li> <li>feat(remote): add WithReferrersTagFallback option by <a href="https://github.com/kevinmdavis"><code>@kevinmdavis</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2366">google/go-containerregistry#2366</a></li> <li>mutate: apply opaque-directory whiteouts (.wh..wh..opq) in Extract by <a href="https://github.com/sadmanf"><code>@sadmanf</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2372">google/go-containerregistry#2372</a></li> <li>tarball: use correct file extension for zstd/uncompressed by <a href="https://github.com/milas"><code>@milas</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2382">google/go-containerregistry#2382</a></li> <li>build(deps): bump github.com/moby/moby/client from 0.5.0 to 0.5.1 in the go-deps group across 1 directory by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2380">google/go-containerregistry#2380</a></li> <li>actions: update actions to be pinned by hash by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2384">google/go-containerregistry#2384</a></li> <li>Bump go version to 1.26.5 by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2388">google/go-containerregistry#2388</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/xuxiaowei-com-cn"><code>@xuxiaowei-com-cn</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2358">google/go-containerregistry#2358</a></li> <li><a href="https://github.com/knQzx"><code>@knQzx</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2373">google/go-containerregistry#2373</a></li> <li><a href="https://github.com/arpitjain099"><code>@arpitjain099</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2370">google/go-containerregistry#2370</a></li> <li><a href="https://github.com/vigneshakaviki"><code>@vigneshakaviki</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2379">google/go-containerregistry#2379</a></li> <li><a href="https://github.com/amitzig"><code>@amitzig</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2360">google/go-containerregistry#2360</a></li> <li><a href="https://github.com/x64vps"><code>@x64vps</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2356">google/go-containerregistry#2356</a></li> <li><a href="https://github.com/kevinmdavis"><code>@kevinmdavis</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2366">google/go-containerregistry#2366</a></li> <li><a href="https://github.com/sadmanf"><code>@sadmanf</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2372">google/go-containerregistry#2372</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/google/go-containerregistry/compare/v0.21.7...v0.21.8">https://github.com/google/go-containerregistry/compare/v0.21.7...v0.21.8</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
0b5cc0f6a9 |
build(deps): consolidate open dependabot updates (#1482)
Consolidates the five open dependabot PRs into a single change so they can be reviewed and merged together. Each bump was reproduced against current `main` (`go get` + `go mod tidy` for Go modules; the exact SHA pins applied for the actions group), rather than merging the individual branches, to avoid stale `go.sum` conflicts. ## Root module (`go.mod`) | Dependency | From | To | Supersedes | |---|---|---|---| | `google.golang.org/grpc` | 1.82.0 | 1.82.1 | #1479 | | `github.com/prometheus/client_golang` | 1.23.2 | 1.24.1 | #1475 | | `github.com/danielgtaylor/huma/v2` | 2.38.0 | 2.39.0 | #1474 | ## Deploy module (`deploy/go.mod`) | Dependency | From | To | Supersedes | |---|---|---|---| | `github.com/pulumi/pulumi-kubernetes/sdk/v4` | 4.32.0 | 4.33.0 | #1449 | ## GitHub Actions (#1476) - `actions/setup-go` SHA bumped across `ci.yml`, `release.yml`, `deploy-production.yml`, `deploy-staging.yml` - `actions/download-artifact` v4 → v8.0.1 in `close-invalid-publish-prs.yml` `go mod tidy` re-resolved transitive dependencies in both modules accordingly. ## Verification - `go build ./...` passes (root + deploy) - `go vet ./...` passes - `govulncheck ./...` reports no `golang.org/x/text` finding (the GO-2026-5970 fix from #1481 is preserved; tidy pulled x/text to v0.40.0) ## Follow-up Once this merges, the five superseded PRs (#1479, #1475, #1474, #1449, #1476) can be closed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
b25ab9b93a |
build(deps): bump google.golang.org/grpc from 1.81.1 to 1.82.1 in /deploy (#1480)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.81.1 to 1.82.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/grpc/grpc-go/releases">google.golang.org/grpc's releases</a>.</em></p> <blockquote> <h2>Release 1.82.1</h2> <h1>Security</h1> <ul> <li>server: Stop reading from the connection when flooded by HTTP/2 frames. The default value for this limit is 100 frames, excluding DATA and HEADERS, and may be changed by setting environment variable <code>GRPC_GO_EXPERIMENTAL_CONTROL_BUFFER_THROTTLE_LIMIT</code>.</li> <li>xds/rbac: Support <code>Metadata</code> and <code>RequestedServerName</code> permissions matcher fields. If present in a DENY rule, previously these would be ignored and fail-open.</li> <li>xds/rbac: Fix panic when parsing unsupported fields in <code>NotRule</code>/<code>NotId</code> permissions.</li> <li>xds/rbac: Support the deprecated <code>source_ip</code> principal identifier by treating it as equivalent to <code>direct_remote_ip</code>.</li> </ul> <h2>Release 1.82.0</h2> <h1>Behavior Changes</h1> <ul> <li>server: Remove support for <code>GRPC_GO_EXPERIMENTAL_DISABLE_STRICT_PATH_CHECKING</code> environment varibale. Strict incoming RPC path validation (which has been the default since <code>v1.79.3</code>) can no longer be disabled. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9112">#9112</a>)</li> <li>transport: Add environment variable to change the default max header list size from <code>16MB</code> to <code>8KB</code>. This may be enabled by setting <code>GRPC_GO_EXPERIMENTAL_ENABLE_8KB_DEFAULT_HEADER_LIST_SIZE=true</code>. This will be enabled by default in a subsequent release. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9019">#9019</a>)</li> <li>balancer: Load Balancing policy registry is now case-sensitive. Set <code>GRPC_GO_EXPERIMENTAL_CASE_SENSITIVE_BALANCER_REGISTRIES=false</code> (and file an issue) to revert to case-insensitive behavior. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9017">#9017</a>)</li> </ul> <h1>New Features</h1> <ul> <li>experimental/stats: Expose a new API, <code>NewContextWithLabelCallback</code>, to register a callback that is invoked when telemetry labels are added. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8877">#8877</a>) <ul> <li>Special Thanks: <a href="https://github.com/seth-epps"><code>@seth-epps</code></a></li> </ul> </li> <li>client: Return a portion of the response body in the error message, when the client receives an unexpected non-gRPC HTTP response, to make debugging easier. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8929">#8929</a>) <ul> <li>Special Thanks: <a href="https://github.com/chengxilo"><code>@chengxilo</code></a></li> </ul> </li> <li>server: Add environment variable <code>GRPC_GO_SERVER_GOROUTINE_LABELS</code> that controls setting <code>runtime/pprof.Labels</code> on goroutines spawned by the server. Set <code>GRPC_GO_SERVER_GOROUTINE_LABELS=grpc.method=true</code> to add the <code>grpc.method</code> label on goroutines spawned to handle incoming requests. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9082">#9082</a>) <ul> <li>Special Thanks: <a href="https://github.com/dfinkel"><code>@dfinkel</code></a></li> </ul> </li> </ul> <h1>Bug Fixes</h1> <ul> <li>xds/server: Fix a memory leak of HTTP filter instances occurring when route configurations are updated in-place during a Route Discovery Service (RDS) update. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9138">#9138</a>)</li> <li>grpc: In the deprecated <code>gzip</code> Compressor (used via the deprecated <code>WithCompressor</code> dial option), enforce the <code>MaxRecvMsgSize</code> limit on the decompressed message buffer, preventing excessive memory allocation from highly compressed payloads. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9114">#9114</a>) <ul> <li>Special Thanks: <a href="https://github.com/evilgensec"><code>@evilgensec</code></a></li> </ul> </li> <li>stats/opentelemetry: Record retry attempts, <code>grpc.previous-rpc-attempts</code>, at the call level and not the attempt level. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8923">#8923</a>)</li> <li>encoding: Ensure <code>Close()</code> is always called on readers returned from <code>Compressor.Decompress</code> if possible. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9135">#9135</a>)</li> <li>channelz: Fix the <code>LastMessageSentTimestamp</code> and <code>LastMessageReceivedTimestamp</code> fields in <code>SocketMetrics</code> to ensure they contain correct timestamp values. (<a href="https://redirect.github.com/grpc/grpc-go/issues/9109">#9109</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
8d3517519f |
fix(deps): bump golang.org/x/text to v0.39.0 (GO-2026-5970) (#1481)
## Problem The **Build, Lint, and Validate** CI job is failing on every open PR (#1480, #1474, #1449) and on `main`. The failing step is `govulncheck`: ``` Vulnerability #1: GO-2026-5970 Infinite loop on invalid input in golang.org/x/text Found in: golang.org/x/text@v0.38.0 Fixed in: golang.org/x/text@v0.39.0 ``` This is **not** caused by any of those PRs' changes — `govulncheck-action` fetches the live vulnerability database at runtime, so when GO-2026-5970 was published, every branch based on the current `main` started failing. The vulnerable symbol is reachable via: - `auth.DefaultHTTPKeyFetcher.FetchKey` → `http.Client.Do` - `database.NewTestDB` → `pgx.Connect` so the scan exits with code 3. ## Fix Bump the (indirect) `golang.org/x/text` dependency from `v0.38.0` to the fixed `v0.39.0` and `go mod tidy`. ## Verification - `govulncheck ./...` no longer reports GO-2026-5970 (confirmed locally). - `go build ./...` passes. ## Note The `deploy/` module pins `golang.org/x/text@v0.37.0`, which is also < v0.39.0. It is a separate module and is **not** scanned by this CI job (govulncheck runs `./...` in the root module only), so it does not block CI. Worth a follow-up bump for hygiene, but out of scope here. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
5cbf3320e8 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.251.0 to 3.253.0 in /deploy (#1448)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.251.0 to 3.253.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.253.0</h2> <h2>3.253.0 (2026-07-14)</h2> <h3>Features</h3> <ul> <li>[auto/go] Support --import-pending-creates for refresh command in Go Automation API for preview refresh and refresh operations <a href="https://redirect.github.com/pulumi/pulumi/pull/23833">#23833</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[sdk] Precompose filenames to NFC on macOS when matching ignore patterns during archive creation, mirroring git's core.precomposeunicode so composed patterns match decomposed filenames <a href="https://redirect.github.com/pulumi/pulumi/pull/23566">#23566</a></li> <li>[cli] Respect the -v log level again so that without -v only warnings and errors are written to stderr <a href="https://redirect.github.com/pulumi/pulumi/pull/23910">#23910</a></li> <li>[codegen] Correctly generate provider resources declared inside PCL components for Node.js, Python and Go <a href="https://redirect.github.com/pulumi/pulumi/pull/23904">#23904</a></li> </ul> <h3>Improvements</h3> <ul> <li>[cli] Add a <code>--version</code> flag to the <code>pulumi</code> command that prints the version, same as <code>pulumi version</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23898">#23898</a></li> <li>[cli] Align <code>env</code> commands with the CLI naming guidelines, making <code>list</code>, <code>remove</code> and <code>move</code> the canonical names with <code>ls</code>, <code>rm</code>, <code>delete</code> and <code>mv</code> kept as aliases <a href="https://redirect.github.com/pulumi/pulumi/pull/23901">#23901</a></li> </ul> <h2>v3.252.0</h2> <h2>3.252.0 (2026-07-13)</h2> <h3>Features</h3> <ul> <li>[auto] Add <code>import</code> to the generated automation APIs for NodeJS, Python and Go <a href="https://redirect.github.com/pulumi/pulumi/pull/23876">#23876</a></li> <li>[cli] Improve the error message when using Pulumi ESC with a DIY backend to suggest logging into Pulumi Cloud <a href="https://redirect.github.com/pulumi/pulumi/pull/23811">#23811</a></li> <li>[cli] Show command name for cli commands when running any command that lists logs <a href="https://redirect.github.com/pulumi/pulumi/pull/23889">#23889</a></li> <li>[cli/display] Render strings containing non-UTF8 bytes as b"<!-- raw HTML omitted -->" in diffs and JSON output <a href="https://redirect.github.com/pulumi/pulumi/pull/23870">#23870</a></li> <li>[cli/env] Add a <code>--reason</code> flag to <code>pulumi env open-request</code> to explain the request to approvers <a href="https://redirect.github.com/pulumi/pulumi/pull/23802">#23802</a></li> <li>[cli/state] Improve the error message when a resource URN is not found in the state for <code>pulumi state</code> commands, suggesting close-matching URNs and how to list the URNs in the stack <a href="https://redirect.github.com/pulumi/pulumi/pull/23812">#23812</a></li> <li>[pcl] Allow binding hooks to a resource's <code>onError</code> option <a href="https://redirect.github.com/pulumi/pulumi/pull/23838">#23838</a></li> <li>[sdk/nodejs] Add a <code>production</code> runtime option for Node.js projects. When set to <code>true</code> in <code>Pulumi.yaml</code>, <code>pulumi install</code> skips <code>devDependencies</code> (npm <code>--production</code>, pnpm <code>--production</code>, yarn <code>--production</code>). <a href="https://redirect.github.com/pulumi/pulumi/pull/23849">#23849</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[cli] Exit with a non-zero code when a command group such as <code>pulumi env</code> is given an unknown subcommand or no subcommand at all <a href="https://redirect.github.com/pulumi/pulumi/pull/23814">#23814</a></li> <li>[cli] Fix a panic when displaying a stack-level policy violation <a href="https://redirect.github.com/pulumi/pulumi/pull/23692">#23692</a></li> <li>[cli] Make reading non-secret stack outputs and running <code>pulumi about</code> no longer require the passphrase for passphrase-encrypted stacks <a href="https://redirect.github.com/pulumi/pulumi/pull/23820">#23820</a></li> <li>[cli] Avoid <code>pulumi logs <command></code> showing the log for the currently running command <a href="https://redirect.github.com/pulumi/pulumi/pull/23887">#23887</a></li> <li>[cli/do] Fix calling delete on PF resources that need read called first <a href="https://redirect.github.com/pulumi/pulumi/pull/23837">#23837</a></li> <li>[cli/env] Submit the change request created by <code>pulumi env open-request</code> so it is pending approval instead of being left as an unsubmitted draft <a href="https://redirect.github.com/pulumi/pulumi/pull/23802">#23802</a></li> <li>[cli/neo] Fix the initial prompt sometimes rendering above the welcome banner in <code>pulumi neo</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23831">#23831</a></li> <li>[engine] Fix importing a resource whose import identifier differs from its canonical ID causes the resource to be deleted on a subsequent update <a href="https://redirect.github.com/pulumi/pulumi/pull/23834">#23834</a></li> <li>[programgen] Deduplicate identical apply arguments to avoid unnecessary Promise.all/pulumi.all/Output.All in generated code <a href="https://redirect.github.com/pulumi/pulumi/pull/22293">#22293</a></li> <li>[sdk] Failed resource registrations will return faulted outputs, not unknown outputs <a href="https://redirect.github.com/pulumi/pulumi/pull/23844">#23844</a></li> <li>[sdk/nodejs] Fix empty node_modules folders in serialized function archives when using pnpm or symlinked workspace packages <a href="https://redirect.github.com/pulumi/pulumi/pull/23866">#23866</a></li> </ul> <h3>Miscellaneous</h3> <ul> <li>[sdk/nodejs] Report the TypeScript version in <code>pulumi about</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23850">#23850</a></li> <li>[sdk/nodejs] Update OpenTelemetry dependencies <a href="https://redirect.github.com/pulumi/pulumi/pull/23855">#23855</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.253.0 (2026-07-14)</h2> <h3>Features</h3> <ul> <li>[auto/go] Support --import-pending-creates for refresh command in Go Automation API for preview refresh and refresh operations <a href="https://redirect.github.com/pulumi/pulumi/pull/23833">#23833</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[sdk] Precompose filenames to NFC on macOS when matching ignore patterns during archive creation, mirroring git's core.precomposeunicode so composed patterns match decomposed filenames <a href="https://redirect.github.com/pulumi/pulumi/pull/23566">#23566</a></li> <li>[cli] Respect the -v log level again so that without -v only warnings and errors are written to stderr <a href="https://redirect.github.com/pulumi/pulumi/pull/23910">#23910</a></li> <li>[codegen] Correctly generate provider resources declared inside PCL components for Node.js, Python and Go <a href="https://redirect.github.com/pulumi/pulumi/pull/23904">#23904</a></li> </ul> <h3>Improvements</h3> <ul> <li>[cli] Add a <code>--version</code> flag to the <code>pulumi</code> command that prints the version, same as <code>pulumi version</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23898">#23898</a></li> <li>[cli] Align <code>env</code> commands with the CLI naming guidelines, making <code>list</code>, <code>remove</code> and <code>move</code> the canonical names with <code>ls</code>, <code>rm</code>, <code>delete</code> and <code>mv</code> kept as aliases <a href="https://redirect.github.com/pulumi/pulumi/pull/23901">#23901</a></li> </ul> <h2>3.252.0 (2026-07-13)</h2> <h3>Features</h3> <ul> <li>[auto] Add <code>import</code> to the generated automation APIs for NodeJS, Python and Go <a href="https://redirect.github.com/pulumi/pulumi/pull/23876">#23876</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[cli] Exit with a non-zero code when a command group such as <code>pulumi env</code> is given an unknown subcommand or no subcommand at all <a href="https://redirect.github.com/pulumi/pulumi/pull/23814">#23814</a></li> <li>[cli] Fix a panic when displaying a stack-level policy violation <a href="https://redirect.github.com/pulumi/pulumi/pull/23692">#23692</a></li> <li>[cli] Make reading non-secret stack outputs and running <code>pulumi about</code> no longer require the passphrase for passphrase-encrypted stacks <a href="https://redirect.github.com/pulumi/pulumi/pull/23820">#23820</a></li> <li>[cli] Avoid <code>pulumi logs <command></code> showing the log for the currently running command <a href="https://redirect.github.com/pulumi/pulumi/pull/23887">#23887</a></li> </ul> <h3>Improvements</h3> <ul> <li>[cli] Improve the error message when using Pulumi ESC with a DIY backend to suggest logging into Pulumi Cloud <a href="https://redirect.github.com/pulumi/pulumi/pull/23811">#23811</a></li> <li>[cli] Show command name for cli commands when running any command that lists logs <a href="https://redirect.github.com/pulumi/pulumi/pull/23889">#23889</a></li> <li>[cli/display] Render strings containing non-UTF8 bytes as b"<!-- raw HTML omitted -->" in diffs and JSON output <a href="https://redirect.github.com/pulumi/pulumi/pull/23870">#23870</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[cli/do] Fix calling delete on PF resources that need read called first <a href="https://redirect.github.com/pulumi/pulumi/pull/23837">#23837</a></li> <li>[cli/env] Submit the change request created by <code>pulumi env open-request</code> so it is pending approval instead of being left as an unsubmitted draft <a href="https://redirect.github.com/pulumi/pulumi/pull/23802">#23802</a></li> </ul> <h3>Improvements</h3> <ul> <li>[cli/env] Add a <code>--reason</code> flag to <code>pulumi env open-request</code> to explain the request to approvers <a href="https://redirect.github.com/pulumi/pulumi/pull/23802">#23802</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[cli/neo] Fix the initial prompt sometimes rendering above the welcome banner in <code>pulumi neo</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23831">#23831</a></li> </ul> <h3>Improvements</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
2271214bd8 |
build(deps): bump cloud.google.com/go/kms from 1.31.0 to 1.32.0 (#1447)
Bumps [cloud.google.com/go/kms](https://github.com/googleapis/google-cloud-go) from 1.31.0 to 1.32.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-cloud-go/releases">cloud.google.com/go/kms's releases</a>.</em></p> <blockquote> <h2>kms: v1.32.0</h2> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/kms/v1.31.0...kms/v1.32.0">1.32.0</a> (2026-07-13)</h2> <h3>Features</h3> <ul> <li><strong>o11y:</strong> Regenerate clients for LRO tracing (<a href="https://redirect.github.com/googleapis/google-cloud-go/issues/20107">#20107</a>) (<a href=" |
||
|
|
29e32c39dc |
deploy: update prod to v1.8.0 (#1443)
Promotes production to the [`v1.8.0`](https://github.com/modelcontextprotocol/registry/releases/tag/v1.8.0) release. - `deploy/Pulumi.gcpProd.yaml` → `imageTag: 1.8.0` (one line). - The release build for `v1.8.0` completed successfully, so the image is present in ghcr. - **Merging this triggers `deploy-production.yml`** (it's path-filtered to `deploy/Pulumi.gcpProd.yaml`); the PR itself doesn't deploy. ### Notable behavior changes in v1.8.0 - **Org-namespace publishing now requires org Owner** (via GitHub login / PAT). Member-level publishers lose org publish — intended tightening. - Stricter validation may reject some previously-accepted package metadata / names (#1310, #1331, #1411). - New: cargo (crates.io) package registry support (#1207). ### After merge - Confirm prod `/v0/version` reports `1.8.0` before treating the rollout as done. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
d813d2b805 |
fix(validators): distinguish a missing package from a missing version on PyPI/NPM (#1411)
Fixes #553. The PyPI and npm validators fetch the version-specific metadata endpoint (`/pypi/{name}/{version}/json` and the npm equivalent) and report any non-200 as `<pkg> not found`. That endpoint 404s for two different reasons though: the package doesn't exist, or it exists and only the *version* is missing (e.g. a release that hasn't propagated yet). So a valid package reads as gone: ```diff - PyPI package 'requests' not found (status: 404) + PyPI package 'requests' exists, but version '99.99.99' was not found (status: 404). A newly published release can take a moment to appear on PyPI. Wait and retry, or publish version '99.99.99' before registering it ``` On a version 404 it probes the package-level endpoint (`/pypi/{name}/json`, `/{name}`) with a `HEAD` to tell the two apart, and reports 429/5xx as transient rather than "not found". `HEAD` so it reads a status without pulling the whole packument. The probe carries its own 3s deadline: it only refines the error message, so a hung probe must not stretch the validator past the ~10s-per-registry budget the publish path assumes. Same probe-and-classify shape as the existing cargo validator. The fetch is split into `validatePyPIPackage` / `validateNPMPackage` behind `export_test.go` so the branches are testable with `httptest`, the same seam cargo uses. ### Testing - [x] hermetic `httptest` for the status matrix (version-missing, package-missing, 5xx, 429, inconclusive probe, positive path, scoped npm); the mocks pin the expected method per endpoint (`GET` fetch, `HEAD` probe) - [x] hermetic deadline test: a hung probe is cut off at ~3s and reported as inconclusive, not "not found" - [x] existing live package tests still pass, now also hitting the HEAD probe; on a live 429/5xx they now `t.Skip` as inconclusive instead of flaking (deliberate: CI runs these against the real registries with no short-mode gating) - [x] `gofmt` / `go vet` / `golangci-lint` clean Out of scope: auto-retry for the propagation race, and SSRF redirect-pinning parity for the pypi/npm clients (pre-existing, shared with nuget). |
||
|
|
5d736c7c6c |
test(api): remove placeholder CORS test superseded by #1436 (#1441)
Follow-up to #1436. `internal/api/cors_test.go` was a placeholder: both `TestCORSHeaders` and `TestCORSHeaderValues` construct `api.NewServer(...)`, discard it, and then assert against a locally-built `http.HandlerFunc` that has no CORS middleware — so they never exercised the real stack. `TestCORSHeaderValues` only `t.Log`s; `TestCORSHeaders`'s only real assertion (preflight status in {200,204}) ran against a bare handler that always returns 200. The comments admit as much ("this is a bit of a hack", "verified via integration tests"). That empty coverage is exactly why the missing `PATCH` in the CORS `AllowedMethods` (fixed in #1436) went unnoticed. #1436 added `TestCORSPreflightAllowedMethods`, which drives the real wrapped handler through the new `Server.Handler()` accessor and asserts every routed method — including PATCH — is allowed. With that in place the placeholder carries no remaining coverage, so this PR removes it. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
3a39b665ac |
fix(api): allow PATCH in CORS so browsers can call the status endpoints (#1436)
The status endpoints (PATCH /v0/servers/{name}/status and the
per-version one) are served with PATCH, but the CORS middleware's
AllowedMethods lists GET/POST/PUT/DELETE/OPTIONS and never PATCH. So a
cross-origin browser preflight for those endpoints comes back without
the allow headers and the browser blocks the actual request. One-line
fix: add PATCH to the allowed methods.
While here, the existing CORS test turned out to be a placeholder that
never reaches the real wrapped handler (its own comments say so), which
is why this went unnoticed. Added a small Handler() accessor and a
proper preflight test that asserts each routed method including PATCH is
allowed.
|
||
|
|
c36b521bf1 |
fix: reject mangled publisher metadata (#1310)
## Summary - add a publisher preflight that rejects non-UTF-8 `server.json` bytes before parsing - reject unpaired UTF-16 surrogate escapes inside JSON string fields before publish/validate requests are sent - keep valid non-ASCII descriptions, including em dashes, round-tripping through the publish path - make the publisher test token helper set `USERPROFILE` as well as `HOME` so Windows tests use the temp home directory Closes #1306. ## To verify - `go test ./cmd/publisher/commands -run "TestPublishCommand_(Success|PreservesNonASCIIDescription|RejectsInvalidUTF8ServerJSON|RejectsUnpairedSurrogateEscape)$" -count=1` - `go test ./cmd/publisher/commands -run TestPublishCommand -count=1` - `go test ./cmd/publisher/commands -run TestValidateCommand -count=1` - `git diff --check` Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
2d3262c8aa |
fix(ci): re-validate author association via REST in close-invalid-publish-prs (#1440)
## What Stage 2 of the auto-close automation (`close-invalid-publish-prs.yml`) re-derived the PR author association with: ```bash gh pr view "$PR_NUMBER" --json authorAssociation --jq '.authorAssociation' ``` But `gh pr view --json` has **no** `authorAssociation` field. `gh` exits non-zero with `Unknown JSON field: "authorAssociation"`, and because the step runs under `set -euo pipefail`, the whole job aborts **before** it comments, labels, or closes. Flagged PRs therefore stayed open. ## Why it went unnoticed - **Stage 1 (detect) was fine** — it reads `author_association` from the event payload (`github.event.pull_request.author_association`), which is valid. - Only the **stage-2 re-derivation** was broken. - Every prior stage-2 run showed "success" because those PRs weren't flagged: with no artifact, stage 2 exits early at the artifact check and never reaches the broken line. - **[PR #1438](https://github.com/modelcontextprotocol/registry/pull/1438) was the first genuine publish-attempt PR** since the automation landed (#1393), so it was the first to exercise the bug — [run `29178568034`](https://github.com/modelcontextprotocol/registry/actions/runs/29178568034) failed on exactly this line. ## Fix Fetch `author_association` from the REST pulls endpoint, which does expose it (verified: returns `FIRST_TIME_CONTRIBUTOR` for #1438): ```bash gh api "repos/$GH_REPO/pulls/$PR_NUMBER" --jq '.author_association' ``` Both `$GH_REPO` and `$PR_NUMBER` are already-sanitized env vars, so no new injection surface. ## Follow-up Stage 2 is idempotent (guarded by the `invalid` label), so once merged a maintainer can re-run it — or simply re-open/re-close — to clean up #1438. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
3fe10fc4c6 |
docs: add polygraph to community projects (#1421)
Adds polygraph (https://polygraph.so) to the **Other** section of `docs/community-projects.md`, per the *Adding Your Project* instructions (one-line entry). polygraph publishes independent behavioral security grades (A–F) for MCP servers from an open, reproducible harness (https://github.com/polygraphso/litmus) — it exercises a server's live tool surface and grades what it does (tool-output injection, undeclared egress, sensitive-data handling, adversarial-input robustness), then publishes the results as an adoption-ranked index with per-server reports. It reads the official registry to discover and version servers, and adds the independent ratings layer this project's docs note downstream aggregators can provide. One-line entry only; no code or schema changes. |
||
|
|
9e762b03c7 |
docs(auth): document fine-grained PAT permission for org publishing (+ pagination-cap test) (#1435)
Follow-up to #1383, surfaced while validating that change end-to-end against staging. ## Why #1383 hardened org-namespace publishing to require Owner (`admin`) role, read via `GET /user/memberships/orgs`. Validating on staging revealed a gap: the docs only mention the classic `read:org` scope, but a **fine-grained PAT** (GitHub's recommended token type) needs a *different* permission to expose org membership. Without it, GitHub returns no org memberships for the token, so the exchange silently grants only the personal namespace — with no hint why org publishing "doesn't work." This is **not** a code bug (the behavior is fail-closed and correct given GitHub's response); it's a documentation/UX gap. ## What - **Docs** (`authentication.mdx`, `github-actions.mdx`): spell out both token types — - Classic PAT → `read:org` scope - Fine-grained PAT → **Organization permissions → Members → Read-only** (the equivalent), noting a fine-grained PAT is bound to a single resource owner. - Also clarified `read:user` is not required. - **Test** (`github_at_test.go`): cover the `maxOrgMembershipPages` pagination cap — when every page is full, the exchange **fails closed** (no token) rather than returning a possibly-truncated org grant. This path was previously untested. - **Comment** (`github_at.go`): qualify the `X-GitHub-SSO` 403 check as best-effort — we have not confirmed the memberships *list* endpoint emits that header on SSO enforcement (it may just omit the org). The check is safe either way, but the comment no longer overstates it as a guarantee. ## Verification (live, against staging) Confirmed by exchanging real tokens for `rdimitrov` on `staging.registry.modelcontextprotocol.io`: - **Classic `read:org` PAT** across 16 real org memberships → the JWT granted exactly the 8 **admin** orgs + personal namespace, and **zero** of the 8 **member** orgs (incl. `stacklok`, `modelcontextprotocol`) — the core #1383 behavior, working. - **Fine-grained PAT**: without Members:read → personal namespace only (fail-closed); after adding Members:read → the org (Owner) namespace is granted. This is what the new docs describe. No runtime behavior change here beyond the added test; the docs and comment are the substance. --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
5da9b4c8bf |
build(deps): bump golang.org/x/crypto from 0.51.0 to 0.52.0 (#1433)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.51.0 to 0.52.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
2bc37b1999 |
fix(auth): grant org namespace only to org Owners, not all members (#1383)
## The bug (scoped to `github-at`)
When you exchange a GitHub OAuth/PAT token for a registry JWT, the
handler granted `io.github.<org>/*` publish permission for **every**
organization you belong to. It derived that list from [`GET
/users/{username}/orgs`](https://docs.github.com/en/rest/orgs/orgs#list-organizations-for-a-user),
which:
1. returns only **public** org memberships, and
2. carries **no role** — an org Owner and a brand-new member look
identical.
So membership was silently treated as publishing authority. Anyone who
is (or whose public membership lists them as) a member of `acme` could
publish — and, because publish is a pure namespace-glob with no
per-server ownership check, **overwrite** — any server under
`io.github.acme/*`.
## The fix
Switch to [`GET
/user/memberships/orgs`](https://docs.github.com/en/rest/orgs/members#list-organization-memberships-for-the-authenticated-user),
which returns the **authenticated caller's role** per org (and includes
private memberships), and grant the org namespace only when the role is
`admin` (org Owner).
- **Personal namespaces are unchanged** — you always get
`io.github.<your-username>/*`.
- **Org namespaces now require Owner.** GitHub has no org-level
"maintainer" role; org membership is either `admin` (Owner) or `member`.
We grant only on `admin`.
- **`read:org` is the only scope needed.** A minimal token without it
still authenticates and still publishes to your personal namespace; a
genuine missing-scope `403` from the memberships call is treated as "no
admin orgs" rather than a hard failure, so we don't push anyone to
over-scope a token. A `403`/`429` that is actually a rate limit
(`X-RateLimit-Remaining: 0` / `Retry-After`) fails closed instead, so a
throttle can't silently strip a real Owner's org grant. Critically, the
token needs **no repository scopes** — the registry never reads or
writes code, so an org Owner can hand CI a near-powerless `read:org`
token.
The authorization decision stays stateless and delegated to GitHub — no
new storage, no new endpoints, no schema changes — consistent with
[design principle #2](docs/design/design-principles.md) (minimal
operational burden).
### Containing the CI token
The registry-side change makes the org Owner the only one who can mint
org-namespace authority. But if that Owner drops the resulting PAT into
a plain repo secret, **every repository writer** can reach it (via
branch/tag pushes that run repo-controlled build/test code in the
privileged job) — quietly re-widening publish access beyond Owners.
External fork contributors still cannot reach it by default (no secrets
on fork PRs, no branch push), barring misconfigurations like
`pull_request_target`-with-checkout or self-hosted runners on public
repos.
`docs/modelcontextprotocol-io/github-actions.mdx` documents how to
contain that blast radius:
- store the token as a **GitHub Actions Environment secret** (the PAT
example uses `environment:`),
- restrict that environment to the default branch / release tags and
require PR reviews on it, so only reviewed, maintainer-approved code can
reach the token,
- optionally add a **required environment reviewer** for explicit
per-publish approval,
- and avoid the two footguns (`pull_request_target` checkout,
self-hosted runners on public repos).
This shrinks *who holds* the org credential; it does not change the fact
that an authorized publish can still overwrite a different server in the
same namespace until per-server publisher ownership exists (the
follow-up noted below).
## Why this shape, given the alternatives
[Pree's
writeup](https://github.com/modelcontextprotocol/registry/issues/982#issuecomment-3982959559)
([Notion analysis
doc](https://www.notion.so/MCP-Registry-Authorization-Model-Analysis-Issue-982-31736f79f74980bc90c6e53de1c564c5))
is the clearest framing of the problem and the option space, laying out
three broad solutions:
- **Approach A — GitHub App as the authority layer.** Strong model, but
its natural unit of authority is a *repo*, so it needs a repo→server
mapping to authorize a namespace. The safe, flexible version of that
mapping is registry-managed state — which collapses into Approach B.
It's also GitHub-only.
- **Approach B — a registry-managed grants table** (OIDC bootstrap, or
device-flow admin check). The most capable and provider-agnostic option,
and probably where v1 wants to go. But it introduces exactly the
"registry manages an authorization database" layer we wanted to avoid
taking on right now: revocation, sync, audit, migration.
- **Approach C — scoped bearer tokens (npm-style).** Good ergonomics,
but again implies issuance/storage the registry would own.
The two-property test (does the registry control the decision? is it
granted through an act requiring real authority?) is the right lens.
This change satisfies it **without** new state: the registry makes the
decision (it filters on role), and the authority is real (live GitHub
Owner role, re-checked on every short-lived token exchange).
**What this deliberately gives up**, so reviewers can weigh it honestly:
- **Owners are always in the loop.** Only org Owners can publish org
servers; there's no delegated "this team can publish this server" — that
needs Approach B's state. Reduced flexibility in exchange for zero new
infrastructure.
- **Blast radius within an org is unchanged.** An Owner (or Owner-scoped
CI token) can still overwrite *any* server under the org namespace,
because there's still no per-server publisher ownership. That
hijack-an-existing-server problem is real but **orthogonal** to this fix
and belongs in its own change (record publisher identity per server;
enforce it on update) — a follow-up to take alongside the OIDC hardening
below.
- **OIDC is untouched and remains coarser.** The `github-oidc` path
still grants the whole `io.github.<owner>/*` namespace to any workflow
with `id-token: write`, i.e. effectively anyone with write access to any
repo in the org, and it excludes non-Actions CI (Jenkins/GitLab can't
mint GitHub Actions OIDC). The admin-PAT path here is the
higher-assurance option for org publishing; OIDC stays as a
lower-assurance Actions convenience to be tightened separately.
## Revocation
The registry JWT is **5-minute, no-refresh** (per #264/#273), so loss of
Owner status propagates within minutes on the next token exchange, with
no revocation list to maintain.
## Tests
`go test ./internal/api/handlers/v0/auth/...` passes, including:
- member-role org is **not** granted; only admin orgs are
- a missing-scope `403` (no `read:org`) still yields the personal
namespace and no error
- an admin org on a **later page** of memberships is still granted
(pagination correctness)
- a `5xx` from the memberships call **fails closed** (no token issued)
rather than degrading to personal-only
- a rate-limit `403` (`X-RateLimit-Remaining: 0` / `Retry-After`)
**fails closed** — not mistaken for a missing-scope `403`
- existing org/name-validation tests updated to the new endpoint + role
shape
`gofmt`/`go vet`/`golangci-lint` (CI-pinned v2.11.4) clean; CI green on
all checks.
## Live verification
Confirmed end-to-end against real `api.github.com` (not just mocks) by
exercising this branch's `ExchangeToken` and decoding the `permissions`
claim of the returned JWT.
A dedicated org, **Tadasant Test Org** (login `Tadasant-Test-Org`), is
Owned by one account and has a second account joined as a plain
**member**. Both memberships are `active`, verified via the same
endpoint the fix uses (`GET /user/memberships/orgs/{org}`):
| Token (role) | `io.github.Tadasant-Test-Org/*` granted? | Other
patterns granted |
|---|---|---|
| Owner (`admin`) | ✅ yes | personal `io.github.<owner>/*` |
| member | ❌ no | personal `io.github.<member>/*` + the orgs that
account actually Owns |
The member case is the meaningful one: that membership is **active and
returned** by `GET /user/memberships/orgs`, and is excluded purely
because its role is `member`, not `admin`. Under the previous `GET
/users/{username}/orgs` behavior (membership = authority, no role), the
same active membership **would have granted** the org namespace. The
role filter is also selective rather than blanket-deny — the member
account still receives the namespaces of the orgs where it genuinely
holds Owner.
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com>
|
||
|
|
224e23dc2c |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.248.0 to 3.251.0 in /deploy (#1431)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.248.0 to 3.251.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.251.0</h2> <h2>3.251.0 (2026-07-08)</h2> <h3>Bug Fixes</h3> <ul> <li>[cli] Show a <code>retain</code> marker for retain-on-delete resources in <code>--diff</code> output <a href="https://redirect.github.com/pulumi/pulumi/pull/23754">#23754</a></li> <li>[cli] Don't miscopy out archives <a href="https://redirect.github.com/pulumi/pulumi/pull/23798">#23798</a></li> </ul> <h3>Miscellaneous</h3> <ul> <li>[cli] Add <code>pulumi neo --debug-update</code> and <code>pulumi neo --debug-preview</code> flags to investigate a failed update or preview, suggested in the failure output <a href="https://redirect.github.com/pulumi/pulumi/pull/23499">#23499</a></li> </ul> <h3>Improvements</h3> <ul> <li>[cli/convert] Add an <code>ecosystem</code> field to converter mapping requests so a converter can request mappings for the ecosystem it consumes rather than its own name <a href="https://redirect.github.com/pulumi/pulumi/pull/23804">#23804</a></li> <li>[cli/deployment] <code>pulumi deployment settings</code> no longer writes the local <code>Pulumi.<stack>.deploy.yaml</code> file: the experimental <code>init</code>, <code>pull</code>, <code>configure</code>, and <code>env</code> subcommands have been removed, and the CLI no longer calls the deployment-settings encrypt endpoint. <code>get</code>/<code>edit</code>/<code>destroy</code> continue to manage settings directly in Pulumi Cloud <a href="https://redirect.github.com/pulumi/pulumi/pull/23480">#23480</a></li> <li>[cli/deployment] The deployment settings file (<code>Pulumi.<stack>.deploy.yaml</code>) has been removed entirely. The experimental <code>pulumi deployment settings push</code> (<code>update</code>/<code>up</code>) command, the <code>--config-file</code> flag, and the SDK helpers that read the file have been removed. Manage deployment settings directly in Pulumi Cloud with <code>pulumi deployment settings get</code>, <code>edit</code>, and <code>destroy</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23480">#23480</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[cli/display] Prevent plugin debug logs from appearing as raw JSON in the CLI's output when logging with <code>--logtostderr</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23633">#23633</a></li> </ul> <h3>Improvements</h3> <ul> <li>[cli/env] Report the new revision number when an environment definition is updated (e.g. <code>pulumi env edit</code>, <code>pulumi env provider</code>, <code>pulumi env version rollback</code>) <a href="https://redirect.github.com/pulumi/pulumi/pull/23799">#23799</a></li> </ul> <h3>Miscellaneous</h3> <ul> <li>[cli/env] Fold the Pulumi ESC engine and CLI into the pulumi/pulumi monorepo, removing the sdk↔esc Go module cycle. Internal refactor with no user-facing behavior change; <code>pulumi env</code>/<code>pulumi esc</code> are unaffected. <a href="https://redirect.github.com/pulumi/pulumi/pull/23746">#23746</a></li> </ul> <h3>Improvements</h3> <ul> <li>[cli/import] Support importing resources under parameterized providers from a converter or import file <a href="https://redirect.github.com/pulumi/pulumi/pull/23763">#23763</a></li> <li>[cli/import] Support importing resources under extension-parameterized providers <a href="https://redirect.github.com/pulumi/pulumi/pull/23779">#23779</a></li> </ul> <h3>Features</h3> <ul> <li>[engine] Add <code>TargetSnippets</code> to deployment options to target snippets by UUID. <a href="https://redirect.github.com/pulumi/pulumi/pull/23745">#23745</a></li> </ul> <h3>Improvements</h3> <ul> <li>[engine] Add OpenTelemetry spans to the StackReference read path so performance traces can pinpoint slow snapshot fetches, deserialization, or secret decryption <a href="https://redirect.github.com/pulumi/pulumi/pull/23787">#23787</a></li> </ul> <h3>Features</h3> <ul> <li>[programgen/pcl] Invoke functions declared with multi-argument inputs using positional arguments in PCL <a href="https://redirect.github.com/pulumi/pulumi/pull/23571">#23571</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[sdk/nodejs] Don't include the version in module paths when serializing functions when using pnpm <a href="https://redirect.github.com/pulumi/pulumi/pull/23767">#23767</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.251.0 (2026-07-08)</h2> <h3>Bug Fixes</h3> <ul> <li>[cli] Show a <code>retain</code> marker for retain-on-delete resources in <code>--diff</code> output <a href="https://redirect.github.com/pulumi/pulumi/pull/23754">#23754</a></li> <li>[cli] Don't miscopy out archives <a href="https://redirect.github.com/pulumi/pulumi/pull/23798">#23798</a></li> </ul> <h3>Miscellaneous</h3> <ul> <li>[cli] Add <code>pulumi neo --debug-update</code> and <code>pulumi neo --debug-preview</code> flags to investigate a failed update or preview, suggested in the failure output <a href="https://redirect.github.com/pulumi/pulumi/pull/23499">#23499</a></li> </ul> <h3>Improvements</h3> <ul> <li>[cli/convert] Add an <code>ecosystem</code> field to converter mapping requests so a converter can request mappings for the ecosystem it consumes rather than its own name <a href="https://redirect.github.com/pulumi/pulumi/pull/23804">#23804</a></li> <li>[cli/deployment] <code>pulumi deployment settings</code> no longer writes the local <code>Pulumi.<stack>.deploy.yaml</code> file: the experimental <code>init</code>, <code>pull</code>, <code>configure</code>, and <code>env</code> subcommands have been removed, and the CLI no longer calls the deployment-settings encrypt endpoint. <code>get</code>/<code>edit</code>/<code>destroy</code> continue to manage settings directly in Pulumi Cloud <a href="https://redirect.github.com/pulumi/pulumi/pull/23480">#23480</a></li> <li>[cli/deployment] The deployment settings file (<code>Pulumi.<stack>.deploy.yaml</code>) has been removed entirely. The experimental <code>pulumi deployment settings push</code> (<code>update</code>/<code>up</code>) command, the <code>--config-file</code> flag, and the SDK helpers that read the file have been removed. Manage deployment settings directly in Pulumi Cloud with <code>pulumi deployment settings get</code>, <code>edit</code>, and <code>destroy</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23480">#23480</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[cli/display] Prevent plugin debug logs from appearing as raw JSON in the CLI's output when logging with <code>--logtostderr</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23633">#23633</a></li> </ul> <h3>Improvements</h3> <ul> <li>[cli/env] Report the new revision number when an environment definition is updated (e.g. <code>pulumi env edit</code>, <code>pulumi env provider</code>, <code>pulumi env version rollback</code>) <a href="https://redirect.github.com/pulumi/pulumi/pull/23799">#23799</a></li> </ul> <h3>Miscellaneous</h3> <ul> <li>[cli/env] Fold the Pulumi ESC engine and CLI into the pulumi/pulumi monorepo, removing the sdk↔esc Go module cycle. Internal refactor with no user-facing behavior change; <code>pulumi env</code>/<code>pulumi esc</code> are unaffected. <a href="https://redirect.github.com/pulumi/pulumi/pull/23746">#23746</a></li> </ul> <h3>Improvements</h3> <ul> <li>[cli/import] Support importing resources under parameterized providers from a converter or import file <a href="https://redirect.github.com/pulumi/pulumi/pull/23763">#23763</a></li> <li>[cli/import] Support importing resources under extension-parameterized providers <a href="https://redirect.github.com/pulumi/pulumi/pull/23779">#23779</a></li> </ul> <h3>Features</h3> <ul> <li>[engine] Add <code>TargetSnippets</code> to deployment options to target snippets by UUID. <a href="https://redirect.github.com/pulumi/pulumi/pull/23745">#23745</a></li> </ul> <h3>Improvements</h3> <ul> <li>[engine] Add OpenTelemetry spans to the StackReference read path so performance traces can pinpoint slow snapshot fetches, deserialization, or secret decryption <a href="https://redirect.github.com/pulumi/pulumi/pull/23787">#23787</a></li> </ul> <h3>Features</h3> <ul> <li>[programgen/pcl] Invoke functions declared with multi-argument inputs using positional arguments in PCL <a href="https://redirect.github.com/pulumi/pulumi/pull/23571">#23571</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[sdk/nodejs] Don't include the version in module paths when serializing functions when using pnpm <a href="https://redirect.github.com/pulumi/pulumi/pull/23767">#23767</a></li> <li>[sdk/nodejs] Support pnpm 11 <a href="https://redirect.github.com/pulumi/pulumi/pull/23815">#23815</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
7f647ef44f |
build(deps): bump the actions group across 1 directory with 4 updates (#1430)
Bumps the actions group with 4 updates in the / directory: [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action), [ko-build/setup-ko](https://github.com/ko-build/setup-ko), [docker/login-action](https://github.com/docker/login-action) and [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action). Updates `golangci/golangci-lint-action` from 9.2.1 to 9.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/golangci/golangci-lint-action/releases">golangci/golangci-lint-action's releases</a>.</em></p> <blockquote> <h2>v9.3.0</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <h3>Changes</h3> <ul> <li>feat: add no-run-logs-group as experimental option by <a href="https://github.com/ldez"><code>@ldez</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1403">golangci/golangci-lint-action#1403</a></li> </ul> <h3>Dependencies</h3> <ul> <li>build(deps): bump github/codeql-action from 4.35.4 to 4.35.5 in the github-actions group by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1395">golangci/golangci-lint-action#1395</a></li> <li>build(deps): bump tmp from 0.2.5 to 0.2.6 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1397">golangci/golangci-lint-action#1397</a></li> <li>build(deps): bump github/codeql-action from 4.35.5 to 4.36.0 in the github-actions group by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1398">golangci/golangci-lint-action#1398</a></li> <li>build(deps): bump tmp from 0.2.6 to 0.2.7 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1399">golangci/golangci-lint-action#1399</a></li> <li>build(deps-dev): bump js-yaml from 4.1.1 to 4.2.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1400">golangci/golangci-lint-action#1400</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/golangci/golangci-lint-action/compare/v9.2.1...v9.3.0">https://github.com/golangci/golangci-lint-action/compare/v9.2.1...v9.3.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
5cc44d091c |
build(deps): bump github.com/coreos/go-oidc/v3 from 3.19.0 to 3.20.0 (#1429)
Bumps [github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc) from 3.19.0 to 3.20.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/coreos/go-oidc/releases">github.com/coreos/go-oidc/v3's releases</a>.</em></p> <blockquote> <h2>v3.20.0</h2> <h2>What's Changed</h2> <ul> <li>oidc: modernize with new Go APIs by <a href="https://github.com/ericchiang"><code>@ericchiang</code></a> in <a href="https://redirect.github.com/coreos/go-oidc/pull/487">coreos/go-oidc#487</a></li> <li>oidc: improve documentation for APIs by <a href="https://github.com/ericchiang"><code>@ericchiang</code></a> in <a href="https://redirect.github.com/coreos/go-oidc/pull/488">coreos/go-oidc#488</a></li> <li>SECURITY.md: add a security policy and point to project-level reporting by <a href="https://github.com/ericchiang"><code>@ericchiang</code></a> in <a href="https://redirect.github.com/coreos/go-oidc/pull/489">coreos/go-oidc#489</a></li> <li>oidc: ignore JWKs with unknown signing algorithms rather than failing by <a href="https://github.com/ericchiang"><code>@ericchiang</code></a> in <a href="https://redirect.github.com/coreos/go-oidc/pull/491">coreos/go-oidc#491</a></li> <li>readme: update README and docs by <a href="https://github.com/ericchiang"><code>@ericchiang</code></a> in <a href="https://redirect.github.com/coreos/go-oidc/pull/492">coreos/go-oidc#492</a></li> <li>oidc: add API for determining when issuer URLs mismatch by <a href="https://github.com/ericchiang"><code>@ericchiang</code></a> in <a href="https://redirect.github.com/coreos/go-oidc/pull/493">coreos/go-oidc#493</a></li> <li>oidc: add constants for "email" and "profile" scopes by <a href="https://github.com/ericchiang"><code>@ericchiang</code></a> in <a href="https://redirect.github.com/coreos/go-oidc/pull/494">coreos/go-oidc#494</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/coreos/go-oidc/compare/v3.19.0...v3.20.0">https://github.com/coreos/go-oidc/compare/v3.19.0...v3.20.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
f3162dbc1e |
build(deps): bump golang.org/x/mod from 0.37.0 to 0.38.0 (#1428)
Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.37.0 to 0.38.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
65aab79997 |
ci: auto-close PRs that try to publish servers via the repo (#1393)
## Summary We keep getting PRs (e.g. #1385, #1368, #1367, #1363, #1354) that try to "publish" an MCP server by adding files under `servers/` or editing `data/seed.json`. That isn't how publishing works — servers are published with the `mcp-publisher` CLI against the live registry API. This adds automation that detects those PRs, comments with a pointer to the publishing quickstart, labels them `invalid`, and closes them. ## How it works (two stages, no `pull_request_target`) `pull_request_target` is intentionally avoided. Instead: - **Stage 1 — `detect-invalid-publish-prs.yml`** runs on `pull_request` (opened/reopened) with a **read-only** token. It only reads the changed file paths and, if the PR *exclusively* touches `servers/**` and/or `data/seed.json` (and the author isn't a MEMBER/OWNER/COLLABORATOR), records just the PR number as a short-lived artifact. It can't comment or close anything. - **Stage 2 — `close-invalid-publish-prs.yml`** runs via `workflow_run` in the trusted base-repo context (write token). It picks up the flagged PR number, **independently re-validates** the PR from the API (still open, external author, files still match, not already labeled), then comments, labels `invalid`, and closes. ### Trust boundary The only thing crossing from the untrusted stage to the privileged stage is the **PR number**, sanitized to digits only. Stage 2 never trusts stage 1's verdict — it re-derives every decision. Neither stage ever checks out or runs PR code. ### Safety against false positives - Fires only when a PR touches *exclusively* `servers/**` and/or `data/seed.json` — a real code PR that also happens to touch seed data is left alone. - Skips `MEMBER`/`OWNER`/`COLLABORATOR` authors, so maintainers editing dev seed data aren't auto-closed. - Idempotent: skips PRs already labeled `invalid` (e.g. if a maintainer reopens one). ## Notes - Like any `pull_request`/`workflow_run` automation, this only takes effect **once merged to `main`** — it is not retroactive and won't run on this PR. The currently-open offending PRs should be closed manually. - Pinned action SHAs match the repo's existing convention (`upload-artifact` reuses the SHA already in `ci.yml`). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
535941a30e |
build(deps): bump github.com/pulumi/pulumi-kubernetes/sdk/v4 from 4.31.1 to 4.32.0 in /deploy (#1353)
Bumps [github.com/pulumi/pulumi-kubernetes/sdk/v4](https://github.com/pulumi/pulumi-kubernetes) from 4.31.1 to 4.32.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/releases">github.com/pulumi/pulumi-kubernetes/sdk/v4's releases</a>.</em></p> <blockquote> <h2>v4.32.0</h2> <p>No release notes provided.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/blob/master/CHANGELOG.md">github.com/pulumi/pulumi-kubernetes/sdk/v4's changelog</a>.</em></p> <blockquote> <h2>4.32.0 (June 5, 2026)</h2> <h3>Fixed</h3> <ul> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/3176">#3176</a> ensure Helm-installed CRDs can be resolved during preview</li> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/4396">#4396</a> Fix panic when creating a <code>kubernetes.io/service-account-token</code> Secret with a non-existent ServiceAccount.</li> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/4394">#4394</a> Don't fail YAML render when a custom resource's namespace scope can't be determined offline. The resource is rendered without a namespace and a warning is logged, rather than erroring.</li> </ul> <h3>Changed</h3> <ul> <li>Align the documented minimum supported Kubernetes version and local SDK install instructions with current provider behavior.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
44397cbe1d |
Fix broken reference documentation links (#1387)
Summary: - Fix the reference index FAQ link to point at the existing docs FAQ. - Correct package registry guide links from docs/contributing into docs/reference. Validation: - Focused markdown-link-check on the changed docs passed. - Git whitespace check passed. Co-authored-by: kriptoburak <kriptoburak@users.noreply.github.com> |
||
|
|
dda760f0a9 |
build(deps): bump github.com/google/go-containerregistry from 0.21.6 to 0.21.7 (#1373)
Bumps [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry) from 0.21.6 to 0.21.7. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/go-containerregistry/releases">github.com/google/go-containerregistry's releases</a>.</em></p> <blockquote> <h2>v0.21.7</h2> <h2>What's Changed</h2> <ul> <li>tarball: return error instead of panicking on missing rootfs.diff_ids by <a href="https://github.com/iahsanGill"><code>@iahsanGill</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2304">google/go-containerregistry#2304</a></li> <li>gcrane: honor --platform flag in copy by <a href="https://github.com/iahsanGill"><code>@iahsanGill</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2307">google/go-containerregistry#2307</a></li> <li>mutate: verify layer digests in Extract and Time by <a href="https://github.com/momenashrafff"><code>@momenashrafff</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2303">google/go-containerregistry#2303</a></li> <li>tarball: close layer readers during Write by <a href="https://github.com/nandbhat"><code>@nandbhat</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2308">google/go-containerregistry#2308</a></li> <li>build(deps): bump the actions group across 1 directory with 2 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2311">google/go-containerregistry#2311</a></li> <li>build(deps): bump github.com/docker/cli from 29.4.3+incompatible to 29.5.2+incompatible in the go-deps group across 1 directory by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2312">google/go-containerregistry#2312</a></li> <li>BUGFIX: Fail with error when read exceeds maximum by <a href="https://github.com/inteon"><code>@inteon</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2328">google/go-containerregistry#2328</a></li> <li>build(deps): bump the actions group across 1 directory with 2 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2327">google/go-containerregistry#2327</a></li> <li>fix(name): anchor loopback registry detection by <a href="https://github.com/rohan-patnaik"><code>@rohan-patnaik</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2314">google/go-containerregistry#2314</a></li> <li>Reject symlinks in OCI layout blobs by <a href="https://github.com/mosskappa"><code>@mosskappa</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2306">google/go-containerregistry#2306</a></li> <li>fix(crane): avoid creating export tar on pull failure by <a href="https://github.com/Haihan-Jiang"><code>@Haihan-Jiang</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2318">google/go-containerregistry#2318</a></li> <li>feat(kubernetes): allow ignoring pull secrets by <a href="https://github.com/rohan-patnaik"><code>@rohan-patnaik</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2315">google/go-containerregistry#2315</a></li> <li>fix(name): preserve localhost registry references by <a href="https://github.com/rohan-patnaik"><code>@rohan-patnaik</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2316">google/go-containerregistry#2316</a></li> <li>pkg/registry: export ErrNotFound by <a href="https://github.com/malt3"><code>@malt3</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2176">google/go-containerregistry#2176</a></li> <li>pkg/registry: export RedirectError by <a href="https://github.com/malt3"><code>@malt3</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2177">google/go-containerregistry#2177</a></li> <li>build(deps): bump the go-deps group across 1 directory with 2 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2343">google/go-containerregistry#2343</a></li> <li>build(deps): bump the actions group across 1 directory with 2 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2344">google/go-containerregistry#2344</a></li> <li>fix: prevent SSRF in google.List() pagination by <a href="https://github.com/tufstraka"><code>@tufstraka</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2332">google/go-containerregistry#2332</a></li> <li>internal/gzip: fix goroutine leak in ReadCloserLevel by <a href="https://github.com/amarkdotdev"><code>@amarkdotdev</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2347">google/go-containerregistry#2347</a></li> <li>fix(transport): apply refreshed bearer token after cross-host redirect by <a href="https://github.com/64johnlee"><code>@64johnlee</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2337">google/go-containerregistry#2337</a></li> <li>build(deps): bump the go-deps group across 3 directories with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2348">google/go-containerregistry#2348</a></li> <li>fix(tarball): normalize paths when matching files by <a href="https://github.com/bstoll"><code>@bstoll</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2334">google/go-containerregistry#2334</a></li> <li>transport: do not re-attach bearer token after cross-host redirect by <a href="https://github.com/evilgensec"><code>@evilgensec</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2349">google/go-containerregistry#2349</a></li> <li>Bump CI go version to 1.26.4 by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2350">google/go-containerregistry#2350</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/momenashrafff"><code>@momenashrafff</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2303">google/go-containerregistry#2303</a></li> <li><a href="https://github.com/nandbhat"><code>@nandbhat</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2308">google/go-containerregistry#2308</a></li> <li><a href="https://github.com/inteon"><code>@inteon</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2328">google/go-containerregistry#2328</a></li> <li><a href="https://github.com/rohan-patnaik"><code>@rohan-patnaik</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2314">google/go-containerregistry#2314</a></li> <li><a href="https://github.com/mosskappa"><code>@mosskappa</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2306">google/go-containerregistry#2306</a></li> <li><a href="https://github.com/Haihan-Jiang"><code>@Haihan-Jiang</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2318">google/go-containerregistry#2318</a></li> <li><a href="https://github.com/tufstraka"><code>@tufstraka</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2332">google/go-containerregistry#2332</a></li> <li><a href="https://github.com/amarkdotdev"><code>@amarkdotdev</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2347">google/go-containerregistry#2347</a></li> <li><a href="https://github.com/64johnlee"><code>@64johnlee</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2337">google/go-containerregistry#2337</a></li> <li><a href="https://github.com/bstoll"><code>@bstoll</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2334">google/go-containerregistry#2334</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/google/go-containerregistry/compare/v0.21.6...v0.21.7">https://github.com/google/go-containerregistry/compare/v0.21.6...v0.21.7</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
12b31e9d09 |
build(deps): bump github.com/coreos/go-oidc/v3 from 3.18.0 to 3.19.0 (#1374)
Bumps [github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc) from 3.18.0 to 3.19.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/coreos/go-oidc/releases">github.com/coreos/go-oidc/v3's releases</a>.</em></p> <blockquote> <h2>v3.19.0</h2> <h2>What's Changed</h2> <ul> <li>fix: Key refresh should set <code>no-cache</code> to get most up to date keys by <a href="https://github.com/Yanni8"><code>@Yanni8</code></a> in <a href="https://redirect.github.com/coreos/go-oidc/pull/485">coreos/go-oidc#485</a></li> <li>oidc: add support for validating back-channel logout tokens by <a href="https://github.com/ericchiang"><code>@ericchiang</code></a> in <a href="https://redirect.github.com/coreos/go-oidc/pull/486">coreos/go-oidc#486</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Yanni8"><code>@Yanni8</code></a> made their first contribution in <a href="https://redirect.github.com/coreos/go-oidc/pull/485">coreos/go-oidc#485</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/coreos/go-oidc/compare/v3.18.0...v3.19.0">https://github.com/coreos/go-oidc/compare/v3.18.0...v3.19.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
39e33b5d16 |
build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.13.1 to 1.14.0 (#1375)
Bumps [github.com/Azure/azure-sdk-for-go/sdk/azidentity](https://github.com/Azure/azure-sdk-for-go) from 1.13.1 to 1.14.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Azure/azure-sdk-for-go/releases">github.com/Azure/azure-sdk-for-go/sdk/azidentity's releases</a>.</em></p> <blockquote> <h2>sdk/azidentity/v1.14.0</h2> <h2>1.14.0 (2026-06-15)</h2> <h3>Breaking Changes</h3> <blockquote> <p>These changes affect only code written against a beta version such as v1.14.0-beta.3</p> </blockquote> <ul> <li>Removed <code>WorkloadIdentityCredentialOptions.EnableAzureProxy</code>. It will return in v1.15.0-beta.1</li> </ul> <h3>Bugs Fixed</h3> <ul> <li><code>AzureDeveloperCLICredential</code> improved reporting of error messages returned from <code>azd</code></li> </ul> <h3>Other Changes</h3> <ul> <li>Returned <code>azidentity</code> errors include links to the troubleshooting guide when appropriate</li> <li>This module now requires a minimum Go version of 1.25</li> <li>Upgraded dependencies</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
cefa07dfe8 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.244.0 to 3.248.0 in /deploy (#1391)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.244.0 to 3.248.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.248.0</h2> <h2>3.248.0 (2026-06-24)</h2> <h3>Bug Fixes</h3> <ul> <li>[cli] Fix a panic in <code>pulumi package get-schema</code> when binding a schema that references an uninstalled plugin <a href="https://redirect.github.com/pulumi/pulumi/pull/23647">#23647</a></li> </ul> <h3>Improvements</h3> <ul> <li>[cli] Add options to <code>pulumi stack get</code> for parity with bare <code>pulumi stack</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23623">#23623</a></li> <li>[cli] Add <code>--output</code> flag to about and whoami commands <a href="https://redirect.github.com/pulumi/pulumi/pull/23651">#23651</a></li> </ul> <h3>Features</h3> <ul> <li>[engine] Add support for 'snippets', blocks of PCL kept in state to track ad-hoc resources <a href="https://redirect.github.com/pulumi/pulumi/pull/23286">#23286</a></li> <li>[engine] Send the address of a schema loader service to resource providers as part of the provider handshake <a href="https://redirect.github.com/pulumi/pulumi/pull/23645">#23645</a></li> <li>[engine] Send the address of a package resolver service to resource providers as part of the provider handshake <a href="https://redirect.github.com/pulumi/pulumi/pull/23654">#23654</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[programgen] Guard references to conditionally-created (boolean <code>range</code>) resources in generated Python and NodeJS programs so they type-check <a href="https://redirect.github.com/pulumi/pulumi/pull/23634">#23634</a></li> <li>[programgen] Generate map <code>range</code> resource collections as key-indexed maps in Python and NodeJS so they can be indexed by key <a href="https://redirect.github.com/pulumi/pulumi/pull/23639">#23639</a></li> </ul> <h3>Features</h3> <ul> <li>[sdk/nodejs] Add <code>Output.recover</code> to catch and recover from exceptions in outputs <a href="https://redirect.github.com/pulumi/pulumi/pull/23642">#23642</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[sdkgen] Fix extra trailing new lines in comments <a href="https://redirect.github.com/pulumi/pulumi/pull/23619">#23619</a></li> </ul> <h3>Improvements</h3> <ul> <li>[sdkgen] Require callers to pass an explicit schema loader when binding PCL programs and package schemas <a href="https://redirect.github.com/pulumi/pulumi/pull/23672">#23672</a></li> </ul> <h2>v3.247.0</h2> <h2>3.247.0 (2026-06-18)</h2> <h3>Features</h3> <ul> <li>[cli/config] Add --raw flag to <code>pulumi config set</code> to avoid stripping newlines when input is piped through stdin <a href="https://redirect.github.com/pulumi/pulumi/pull/23593">#23593</a></li> <li>[cli/do] Add <code>--provider</code> flag to pull provider config to use from existing provider state <a href="https://redirect.github.com/pulumi/pulumi/pull/23560">#23560</a></li> <li>[cli/engine] Resource providers now receive the active login's API address and access token through PULUMI_API and PULUMI_ACCESS_TOKEN <a href="https://redirect.github.com/pulumi/pulumi/pull/23589">#23589</a></li> <li>[cli/neo] Add a <code>--disable-integrations</code> flag to <code>pulumi neo</code> that runs the task with no integration credentials <a href="https://redirect.github.com/pulumi/pulumi/pull/23531">#23531</a></li> <li>[engine] Send the address of a mapper service to resource providers as part of the provider handshake</li> <li>[programgen/go] Support functions with multiArgumentInputs <a href="https://redirect.github.com/pulumi/pulumi/pull/23554">#23554</a></li> <li>[programgen/python] Support functions with multiArgumentInputs <a href="https://redirect.github.com/pulumi/pulumi/pull/23574">#23574</a></li> <li>[sdk/nodejs] Registered resources can now be retrieved from the mock monitor for test assertions <a href="https://redirect.github.com/pulumi/pulumi/pull/20539">#20539</a></li> <li>[sdk/python] Add <code>Output.recover</code> to catch and recover from exceptions in outputs <a href="https://redirect.github.com/pulumi/pulumi/pull/23591">#23591</a></li> <li>[sdkgen] Adds support for language agnostic cross references in schemas. Use the form <code>{{% ref <target> %}}</code> to reference other schema components in markdown descriptions. Such as `{{% ref <a href="https://redirect.github.com/pulumi/pulumi/pull/21369">#21369</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.248.0 (2026-06-24)</h2> <h3>Bug Fixes</h3> <ul> <li>[cli] Fix a panic in <code>pulumi package get-schema</code> when binding a schema that references an uninstalled plugin <a href="https://redirect.github.com/pulumi/pulumi/pull/23647">#23647</a></li> </ul> <h3>Improvements</h3> <ul> <li>[cli] Add options to <code>pulumi stack get</code> for parity with bare <code>pulumi stack</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23623">#23623</a></li> <li>[cli] Add <code>--output</code> flag to about and whoami commands <a href="https://redirect.github.com/pulumi/pulumi/pull/23651">#23651</a></li> </ul> <h3>Features</h3> <ul> <li>[engine] Add support for 'snippets', blocks of PCL kept in state to track ad-hoc resources <a href="https://redirect.github.com/pulumi/pulumi/pull/23286">#23286</a></li> <li>[engine] Send the address of a schema loader service to resource providers as part of the provider handshake <a href="https://redirect.github.com/pulumi/pulumi/pull/23645">#23645</a></li> <li>[engine] Send the address of a package resolver service to resource providers as part of the provider handshake <a href="https://redirect.github.com/pulumi/pulumi/pull/23654">#23654</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[programgen] Guard references to conditionally-created (boolean <code>range</code>) resources in generated Python and NodeJS programs so they type-check <a href="https://redirect.github.com/pulumi/pulumi/pull/23634">#23634</a></li> <li>[programgen] Generate map <code>range</code> resource collections as key-indexed maps in Python and NodeJS so they can be indexed by key <a href="https://redirect.github.com/pulumi/pulumi/pull/23639">#23639</a></li> </ul> <h3>Features</h3> <ul> <li>[sdk/nodejs] Add <code>Output.recover</code> to catch and recover from exceptions in outputs <a href="https://redirect.github.com/pulumi/pulumi/pull/23642">#23642</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li>[sdkgen] Fix extra trailing new lines in comments <a href="https://redirect.github.com/pulumi/pulumi/pull/23619">#23619</a></li> </ul> <h3>Improvements</h3> <ul> <li>[sdkgen] Require callers to pass an explicit schema loader when binding PCL programs and package schemas <a href="https://redirect.github.com/pulumi/pulumi/pull/23672">#23672</a></li> </ul> <h2>3.247.0 (2026-06-18)</h2> <h3>Bug Fixes</h3> <ul> <li>[cli] Ensure <code>pulumi logout</code> clears the current tokenless backend in coding agent environments <a href="https://redirect.github.com/pulumi/pulumi/pull/23540">#23540</a></li> <li>[cli] Read Git metadata correctly in repositories that enable the worktreeConfig extension, such as those hosted on Azure DevOps <a href="https://redirect.github.com/pulumi/pulumi/pull/23535">#23535</a></li> </ul> <h3>Improvements</h3> <ul> <li>[cli] Respect PULUMI_SKIP_CONFIRMATIONS whenever we ask for confirmation <a href="https://redirect.github.com/pulumi/pulumi/pull/23607">#23607</a></li> <li>[cli] Use list and remove as the canonical names for list/remove commands, with ls and rm as aliases <a href="https://redirect.github.com/pulumi/pulumi/pull/23608">#23608</a></li> </ul> <h3>Features</h3> <ul> <li>[cli/config] Add --raw flag to <code>pulumi config set</code> to avoid stripping newlines when input is piped through stdin <a href="https://redirect.github.com/pulumi/pulumi/pull/23593">#23593</a></li> </ul> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
f54f3b831c |
build(deps): bump the actions group with 2 updates (#1392)
Bumps the actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [actions/setup-go](https://github.com/actions/setup-go). Updates `actions/checkout` from 6 to 7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p> <blockquote> <h2>v7.0.0</h2> <h2>What's Changed</h2> <ul> <li>block checking out fork pr for pull_request_target and workflow_run by <a href="https://github.com/aiqiaoy"><code>@aiqiaoy</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2454">actions/checkout#2454</a></li> <li>Bump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the minor-actions-dependencies group across 1 directory by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/checkout/pull/2458">actions/checkout#2458</a></li> <li>Bump flatted from 3.3.1 to 3.4.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/checkout/pull/2460">actions/checkout#2460</a></li> <li>Bump js-yaml from 4.1.0 to 4.2.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/checkout/pull/2461">actions/checkout#2461</a></li> <li>Bump <code>@actions/core</code> and <code>@actions/tool-cache</code> and Remove uuid by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/checkout/pull/2459">actions/checkout#2459</a></li> <li>upgrade module to esm and update dependencies by <a href="https://github.com/aiqiaoy"><code>@aiqiaoy</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2463">actions/checkout#2463</a></li> <li>Bump the minor-npm-dependencies group across 1 directory with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/checkout/pull/2462">actions/checkout#2462</a></li> <li>getting ready for checkout v7 release by <a href="https://github.com/aiqiaoy"><code>@aiqiaoy</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2464">actions/checkout#2464</a></li> <li>update error wording by <a href="https://github.com/aiqiaoy"><code>@aiqiaoy</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2467">actions/checkout#2467</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/aiqiaoy"><code>@aiqiaoy</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/2454">actions/checkout#2454</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v6.0.3...v7.0.0">https://github.com/actions/checkout/compare/v6.0.3...v7.0.0</a></p> <h2>v6.0.3</h2> <h2>What's Changed</h2> <ul> <li>Update changelog by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2357">actions/checkout#2357</a></li> <li>fix: expand merge commit SHA regex and add SHA-256 test cases by <a href="https://github.com/yaananth"><code>@yaananth</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2414">actions/checkout#2414</a></li> <li>Fix checkout init for SHA-256 repositories by <a href="https://github.com/yaananth"><code>@yaananth</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2439">actions/checkout#2439</a></li> <li>Update changelog for v6.0.3 by <a href="https://github.com/yaananth"><code>@yaananth</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2446">actions/checkout#2446</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/yaananth"><code>@yaananth</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/2414">actions/checkout#2414</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v6...v6.0.3">https://github.com/actions/checkout/compare/v6...v6.0.3</a></p> <h2>v6.0.2</h2> <h2>What's Changed</h2> <ul> <li>Add orchestration_id to git user-agent when ACTIONS_ORCHESTRATION_ID is set by <a href="https://github.com/TingluoHuang"><code>@TingluoHuang</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2355">actions/checkout#2355</a></li> <li>Fix tag handling: preserve annotations and explicit fetch-tags by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2356">actions/checkout#2356</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v6.0.1...v6.0.2">https://github.com/actions/checkout/compare/v6.0.1...v6.0.2</a></p> <h2>v6.0.1</h2> <h2>What's Changed</h2> <ul> <li>Update all references from v5 and v4 to v6 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2314">actions/checkout#2314</a></li> <li>Add worktree support for persist-credentials includeIf by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2327">actions/checkout#2327</a></li> <li>Clarify v6 README by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2328">actions/checkout#2328</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v6...v6.0.1">https://github.com/actions/checkout/compare/v6...v6.0.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
fecef4f9ed |
fix: don't leak internal error detail in GET /v0/servers 500 response (#1338)
## Summary Fixes the information-disclosure regression introduced by #1335 (item 1 of #1337). `ListServersError` passed the raw `err` into `huma.Error500InternalServerError(...)`. huma serializes extra error args into the response body's `errors` array (`ErrorModel.Errors`, `json:"errors,omitempty"`), so on the **public, unauthenticated** `GET /v0/servers` endpoint a genuine DB failure echoed the internal wrapped error from `internal/database/postgres.go` (`error iterating rows: <pgx error>`) back to the client. pgx/pgconn errors can carry SQLSTATE codes, constraint/table/column names, and internal messages (CWE-209). ## Change - Drop `err` from the 500 call so only the generic message is returned; keep `log.Printf` for the server-side detail — matching the sibling handlers (`servers.go:190/220`, `edit.go`, `status.go`). - Add a regression test (`TestListServersError_realFailureDoesNotLeakDetail`) that marshals the 500 error and asserts the internal detail is absent from the client-visible body. Existing tests only asserted status codes, which is why the leak slipped through. The 499 client-cancelled path is unchanged (the client has already disconnected, so nothing is leaked there). ## Test plan - [x] `go test ./internal/api/handlers/v0/... -run ListServersError` (3/3 pass) - [x] `go build ./...`, `go vet`, `golangci-lint` (no new findings in changed files) ## Note This leaves the non-security items in #1337 (correcting the `superfluous WriteHeader` claim, `statusClientClosed` const reuse, broader cancellation-guard scope) for separate follow-up. Closing #1337 here since the only security-impacting item is addressed; reopen/split if you'd prefer to track the nits independently. Closes #1337 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
ef29673221 |
fix: client-cancelled GET /v0/servers returns 499 without error log (#1335)
Maps context.Canceled from ListServers to 499 and skips the error-level log on client disconnect. Merged as-is per maintainer decision; known follow-up tracked in #1337 (500-path error-detail leak + WriteHeader claim correction + nits). |
||
|
|
04623ed925 |
fix(validators): harden mcp-name matching (PyPI/NuGet anchoring, comment-form safe) + cargo follow-ups (#1331)
Registry-wide hardening of the `mcp-name:` ownership-token match, plus the cargo follow-up fixes from the #1330 review — consolidated here per maintainer request. Rebased onto current `main` (the merged #1330 cargo commit drops out), so the diff is just the net-new work. ### Changes - **PyPI/NuGet: boundary-anchored token match.** Replace `strings.Contains(readme, "mcp-name: "+name)` with the shared `containsMCPNameToken`, so a README declaring a longer name (`…/widget-pro`) no longer satisfies an ownership claim for a shorter prefix (`…/widget`). (Cargo already got this in #1330; NPM is unaffected — it compares an exact metadata field.) - **Matcher: treat the HTML comment close as a boundary.** `<!-- mcp-name: NAME-->` / `<!--mcp-name: NAME-->` (any spacing) validate again — the documented hidden-comment form for PyPI/NuGet — while a genuine longer name (`…/widget--pro`) still does not. - **Cargo hardening (review of #1330):** pin scheme+port (not just host) on the README fetch and redirects; a rate-limited/failed crate-version existence probe now reports *transient* instead of "not found"; a 403 with the crate present no longer flatly asserts "no README". - **Docs:** note the token must be followed by a boundary. ### ⚠️ Behavior change for PyPI/NuGet — read before merging The match is **strictly stricter** (verified by fuzz, 2.3M execs: it can only flip pass→fail, never fail→pass). After the comment-close fix, the **only** forms that newly fail are unusual *inline* ones: the token ending a sentence (`…/my-mcp.`) or glued to a trailing `/`. The documented forms (own line, in `<!-- … -->`) are unaffected. **Correcting an earlier claim:** this re-validates on **edits too**, not just new versions — `edit.go → UpdateServer → ValidateUpdateRequest → validateRegistryOwnership` runs the token check on any edit of a live server (only delete-transitions skip it). So an existing PyPI/NuGet server whose README uses one of the breaking inline forms would fail on its next publish *or* edit. Given the v0.1 API-freeze posture, this should land as a deliberate, noted change. ### Testing `go build`, `vet`, `gofmt`, `golangci-lint` (prod files), `check-schema`, `validate-examples` all clean. Hermetic + **live** PyPI/NuGet/cargo suite passes. New: `TestCargoURLAllowed`, a combined-fixture probe-429→transient case, comment-form matcher cases, and `FuzzContainsMCPNameToken` (the strictly-stricter property, 2.3M execs). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
7a6d1bc30a |
fix(cargo): harden README fetch, clarify status handling, strengthen tests (#1330)
Follow-up to #1207, addressing items from the cargo validator review. **Scoped to cargo + shared helpers — no behavior change for existing npm/pypi/nuget/oci/mcpb publishers.** Safe to merge and promote. ### Changes **SSRF hardening of the two-call README retrieval** - Pin the step-2 README URL to an allowed host (`static.crates.io` in prod; the base host under test) *before* fetching, so a metadata response can't steer the validator at an internal/attacker host. - `CheckRedirect` policy pins every redirect hop to the same allowlist (the initial URL being pinned isn't enough if an upstream 3xx is followed). - Cap the README body with `io.LimitReader` (5 MiB). > Not publisher-exploitable today (the URL comes from crates.io), so this is defense-in-depth — but it makes the "host is pinned" guarantee hold in code rather than rely on crates.io's behavior. **Clearer status handling** (previously any non-5xx/non-200 collapsed to "not found") - **429** → reported as transient/retryable, at both the metadata and README steps. - **403** → disambiguated via the crate-version endpoint: genuinely-missing stays "not found"; *exists-but-no-README* gets an actionable "add a README with `mcp-name` and republish" message (mirrors the NuGet validator). This continues the 5xx-vs-403 diagnostic split @P4ST4S started in the #1207 review — thanks! **Shared `containsMCPNameToken` helper** Boundary-anchored ownership-token match (prevents prefix confusion, e.g. a README declaring `io.github.acme/widget-pro` satisfying a claim for `io.github.acme/widget`), used here **by the cargo validator only**. Adopting it in PyPI/NuGet is a separate follow-up because it's a behavior change for those already-live registries. **Tests & docs** Hermetic positive `ServerNameFormats`; combined fixture gains a version-existence endpoint + cases for 403-missing vs 403-no-README, 429, and prefix-confusion rejection; new foreign-README-host (SSRF) test; internal test for the helper. Docs: list `crates.io` in the registry-requirements list + the `Package` model doc. ### Testing `go build`, `go vet`, full `./internal/validators/...` suite (incl. live cargo positive), `make check-schema`, `validate-examples` all pass. No new `golangci-lint` findings. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
227621f1d0 |
build(deps): bump github.com/jackc/pgx/v5 from 5.9.2 to 5.10.0 (#1334)
Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.9.2 to 5.10.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jackc/pgx/blob/master/CHANGELOG.md">github.com/jackc/pgx/v5's changelog</a>.</em></p> <blockquote> <h1>5.10.0 (June 3, 2026)</h1> <p>This release includes a significant amount of hardening against malicious or compromised PostgreSQL servers, contributed by Sean Chittenden at CrowdStrike, Inc. This work bounds binary decoders against attacker-controlled message sizes, caps server-supplied SCRAM iteration counts, adds <code>require_auth</code> to restrict which authentication methods a server may use (mitigating downgrade attacks under <code>sslmode=prefer</code>), and ensures cancellation requests are sent over TLS when the original connection used TLS.</p> <h2>Features</h2> <ul> <li>Add <code>require_auth</code> to restrict accepted server authentication methods (Sean Chittenden at CrowdStrike, Inc.)</li> <li>Add <code>ParseConfigOptions.ConnStringAllowedKeys</code> to restrict allowed connection string keys (Sean Chittenden at CrowdStrike, Inc.)</li> <li>Add <code>StructArgs</code> and <code>StrictStructArgs</code> for <code>@</code>-named queries (Tubelight30)</li> <li>Add <code>ErrConnClosed</code> sentinel error and unwrap it from <code>connLockError</code> (Charlie Tonneslan)</li> <li>pgxpool: check if connection is expired before acquire (arthurdotwork)</li> </ul> <h2>Security Hardening</h2> <ul> <li>Encrypt <code>CancelRequest</code> connection when the primary connection used TLS (Sean Chittenden at CrowdStrike, Inc.)</li> <li>Cap server-supplied SCRAM iteration count (Sean Chittenden at CrowdStrike, Inc.)</li> <li>Default Frontend max message body length to ~1 GiB (Sean Chittenden at CrowdStrike, Inc.)</li> <li>Bound hstore binary decode against malicious server input (Sean Chittenden at CrowdStrike, Inc.)</li> <li>Bound array binary decode element length against remaining message bytes (Sean Chittenden at CrowdStrike, Inc.)</li> <li>Bound array element count against remaining message bytes (Sean Chittenden at CrowdStrike, Inc.)</li> <li>Bound range, multirange, and tsvector binary decoders (Sean Chittenden at CrowdStrike, Inc.)</li> <li>Document secure connection configuration (Sean Chittenden at CrowdStrike, Inc.)</li> <li>Fix panic on malformed geometric text; return an error instead (MaIII)</li> </ul> <h2>Fixes</h2> <ul> <li>Fix scanning <code>"char"</code> (OID 18) into <code>*string</code> in binary format (luongs3)</li> <li>Fix handling of typed-nil <code>driver.Valuer</code> in array and composite codecs (Donncha Fahy)</li> <li>Fix <code>CopyData.Data</code> hex decoding in <code>UnmarshalJSON</code> (Charlie Tonneslan)</li> <li>Fix data race when context is cancelled during connect</li> <li>Fix <code>parseKeywordValueSettings</code> rejecting trailing whitespace (alliasgher)</li> <li>pgconn: preserve full error chain in <code>normalizeTimeoutError</code> (Charlie Tonneslan)</li> <li>pgconn: use a fresh context for the fallback connection in <code>connectPreferred</code> (Charlie Tonneslan)</li> <li>pgxpool: fix <code>MaxLifetimeDestroyCount</code> and ping order for acquire-time expiry check</li> <li>Add missing error check of <code>rows.Err</code> to load types (Jen Altavilla)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
a1ffe33fba |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.243.0 to 3.244.0 in /deploy (#1333)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.243.0 to 3.244.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.244.0</h2> <h2>3.244.0 (2026-05-28)</h2> <h3>Bug Fixes</h3> <ul> <li>[cli/do] Fix top level flags like <code>--logtostderr</code> being recognized when using <code>pulumi do</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23355">#23355</a></li> <li>[cli/install] Distinguish multiple packages with the same plugin</li> <li>[engine] Fix snapshot integrity issue with <code>up --refresh</code></li> <li>[engine] Forward all provider errors to error hooks for retry <a href="https://redirect.github.com/pulumi/pulumi/pull/23347">#23347</a></li> <li>[engine] Trace cancel RPCs sent to plugins during shutdown as children of the active operation instead of emitting separate root spans <a href="https://redirect.github.com/pulumi/pulumi/pull/23362">#23362</a></li> <li>[sdk/python] Merge requirements.txt into pyproject.toml when using uv without a project section <a href="https://redirect.github.com/pulumi/pulumi/pull/23340">#23340</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.244.0 (2026-05-28)</h2> <h3>Bug Fixes</h3> <ul> <li>[cli/do] Fix top level flags like <code>--logtostderr</code> being recognized when using <code>pulumi do</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23355">#23355</a></li> <li>[cli/install] Distinguish multiple packages with the same plugin</li> <li>[engine] Fix snapshot integrity issue with <code>up --refresh</code></li> <li>[engine] Forward all provider errors to error hooks for retry <a href="https://redirect.github.com/pulumi/pulumi/pull/23347">#23347</a></li> <li>[engine] Trace cancel RPCs sent to plugins during shutdown as children of the active operation instead of emitting separate root spans <a href="https://redirect.github.com/pulumi/pulumi/pull/23362">#23362</a></li> <li>[sdk/python] Merge requirements.txt into pyproject.toml when using uv without a project section <a href="https://redirect.github.com/pulumi/pulumi/pull/23340">#23340</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
78bc7006b0 |
build(deps): bump go.opentelemetry.io/contrib/instrumentation/runtime from 0.68.0 to 0.69.0 in the opentelemetry group (#1332)
Bumps the opentelemetry group with 1 update: [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib). Updates `go.opentelemetry.io/contrib/instrumentation/runtime` from 0.68.0 to 0.69.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/releases">go.opentelemetry.io/contrib/instrumentation/runtime's releases</a>.</em></p> <blockquote> <h2>v1.44.0/v2.5.1/v0.69.0/v0.37.1/v0.24.0/v0.19.0/v0.16.1/v0.16.0</h2> <h3>Added</h3> <ul> <li>Add <code>error.type</code> attribute to <code>http.client.request.duration</code> for transport failures in <code>otelhttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8801">#8801</a>)</li> <li>Add examples for prometheus compatibility document. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8716">#8716</a>)</li> <li>Add support for <code>cardinality_limits</code> in <code>PeriodicMetricReader</code> in <code>otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8885">#8885</a>)</li> <li>Add <code>Resource</code> method to <code>SDK</code> in <code>go.opentelemetry.io/contrib/otelconf/x</code> to expose the resolved SDK resource from declarative configuration. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8913">#8913</a>)</li> <li>Add <code>go.opentelemetry.io/contrib/detectors/hetzner</code>, a new resource detector for Hetzner Cloud servers, ported from <code>github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor/internal/hetzner</code>. Detects <code>cloud.provider</code>, <code>cloud.platform</code>, <code>cloud.region</code>, <code>cloud.availability_zone</code>, <code>host.id</code>, and <code>host.name</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8979">#8979</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Set error field as <code>record.SetErr</code> instead of a plain attribute in <code>go.opentelemetry.io/contrib/bridges/otellogrus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8776">#8776</a>)</li> <li>Set the "error" field (e.g. created via <code>zap.Error</code>) as <code>record.SetErr</code> instead of a plain attribute in <code>go.opentelemetry.io/contrib/bridges/otelzap</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8719">#8719</a>)</li> <li>Set fields implementing <code>error</code> interface from <code>slog</code> records as <code>record.SetErr</code> instead of plain attributes in <code>go.opentelemetry.io/contrib/bridges/otelslog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8774">#8774</a>)</li> <li>Set emitted errors in <code>go.opentelemetry.io/contrib/bridges/otellogr</code> as record errors (<code>Record.SetErr</code>) instead of <code>exception.message</code> attributes. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8775">#8775</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix header attributes lost when using sub-spans in <code>go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8797">#8797</a>)</li> <li>Validate <code>encoding</code> configuration for OTLP HTTP exporters in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8772">#8772</a>)</li> <li>Remove the custom body wrapper from the request's body after the request is processed to allow body type comparisons with the original type in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> and <code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/6914">#6914</a>)</li> <li>Unknown or empty HTTP methods now report "_OTHER" instead of "GET" across all HTTP instrumentations to align with OpenTelemetry semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8868">#8868</a>)</li> <li>The default span name formatter in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> now conforms to the OpenTelemetry HTTP semantic conventions for server span names. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8871">#8871</a>) <ul> <li>The default span name is now <code>{method} {route}</code> (e.g. <code>GET /foo/{id}</code>) when a route pattern is available, or <code>{method}</code> (e.g. <code>GET</code>) otherwise.</li> </ul> </li> </ul> <h3>Removed</h3> <ul> <li>Remove the deprecated <code>WithSpanOptions</code> option in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8991">#8991</a>)</li> </ul> <h2>What's Changed</h2> <ul> <li>otelconf: validate encoding configuration for OTLP HTTP exporters by <a href="https://github.com/sonalgaud12"><code>@sonalgaud12</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8772">open-telemetry/opentelemetry-go-contrib#8772</a></li> <li>fix(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.99.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8780">open-telemetry/opentelemetry-go-contrib#8780</a></li> <li>chore(deps): update prom/prometheus docker tag to v3.11.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8779">open-telemetry/opentelemetry-go-contrib#8779</a></li> <li>otellogrus: Set error field as <code>record.SetErr</code> by <a href="https://github.com/sonalgaud12"><code>@sonalgaud12</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8778">open-telemetry/opentelemetry-go-contrib#8778</a></li> <li>chore(deps): update module golang.org/x/sys to v0.43.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8783">open-telemetry/opentelemetry-go-contrib#8783</a></li> <li>chore(deps): update golang.org/x/telemetry digest to 93c7c8a by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8786">open-telemetry/opentelemetry-go-contrib#8786</a></li> <li>chore(deps): update module github.com/mattn/go-isatty to v0.0.21 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8787">open-telemetry/opentelemetry-go-contrib#8787</a></li> <li>chore(deps): update module github.com/mattn/go-runewidth to v0.0.23 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8788">open-telemetry/opentelemetry-go-contrib#8788</a></li> <li>chore(deps): update golang.org/x by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8791">open-telemetry/opentelemetry-go-contrib#8791</a></li> <li>chore(deps): update actions/github-script action to v9 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8795">open-telemetry/opentelemetry-go-contrib#8795</a></li> <li>fix(deps): update golang.org/x by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8794">open-telemetry/opentelemetry-go-contrib#8794</a></li> <li>otelzap: set error field as record.SetErr by <a href="https://github.com/iblancasa"><code>@iblancasa</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8719">open-telemetry/opentelemetry-go-contrib#8719</a></li> <li>fix(deps): update golang.org/x to 746e56f by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8796">open-telemetry/opentelemetry-go-contrib#8796</a></li> <li>chore(deps): update module golang.org/x/arch to v0.26.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8798">open-telemetry/opentelemetry-go-contrib#8798</a></li> <li>Check if otelgrpc metrics are enabled by <a href="https://github.com/dashpole"><code>@dashpole</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8792">open-telemetry/opentelemetry-go-contrib#8792</a></li> <li>chore(deps): update actions/upload-artifact action to v7.0.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8800">open-telemetry/opentelemetry-go-contrib#8800</a></li> <li>Check instrument enabled in deprecatedruntime by <a href="https://github.com/dashpole"><code>@dashpole</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8793">open-telemetry/opentelemetry-go-contrib#8793</a></li> <li>chore(deps): update module github.com/ashanbrown/forbidigo/v2 to v2.3.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8804">open-telemetry/opentelemetry-go-contrib#8804</a></li> <li>chore(deps): update module github.com/ashanbrown/makezero/v2 to v2.2.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8802">open-telemetry/opentelemetry-go-contrib#8802</a></li> <li>chore(deps): update module github.com/manuelarte/funcorder to v0.6.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8803">open-telemetry/opentelemetry-go-contrib#8803</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md">go.opentelemetry.io/contrib/instrumentation/runtime's changelog</a>.</em></p> <blockquote> <h2>[1.44.0/2.5.1/0.69.0/0.37.1/0.24.0/0.19.0/0.16.1/0.16.0] - 2026-05-28</h2> <h3>Added</h3> <ul> <li>Add <code>error.type</code> attribute to <code>http.client.request.duration</code> for transport failures in <code>otelhttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8801">#8801</a>)</li> <li>Add examples for prometheus compatibility document. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8716">#8716</a>)</li> <li>Add support for <code>cardinality_limits</code> in <code>PeriodicMetricReader</code> in <code>otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8885">#8885</a>)</li> <li>Add <code>Resource</code> method to <code>SDK</code> in <code>go.opentelemetry.io/contrib/otelconf/x</code> to expose the resolved SDK resource from declarative configuration. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8913">#8913</a>)</li> <li>Add <code>go.opentelemetry.io/contrib/detectors/hetzner</code>, a new resource detector for Hetzner Cloud servers, ported from <code>github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor/internal/hetzner</code>. Detects <code>cloud.provider</code>, <code>cloud.platform</code>, <code>cloud.region</code>, <code>cloud.availability_zone</code>, <code>host.id</code>, and <code>host.name</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8979">#8979</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Set error field as <code>record.SetErr</code> instead of a plain attribute in <code>go.opentelemetry.io/contrib/bridges/otellogrus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8776">#8776</a>)</li> <li>Set the "error" field (e.g. created via <code>zap.Error</code>) as <code>record.SetErr</code> instead of a plain attribute in <code>go.opentelemetry.io/contrib/bridges/otelzap</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8719">#8719</a>)</li> <li>Set fields implementing <code>error</code> interface from <code>slog</code> records as <code>record.SetErr</code> instead of plain attributes in <code>go.opentelemetry.io/contrib/bridges/otelslog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8774">#8774</a>)</li> <li>Set emitted errors in <code>go.opentelemetry.io/contrib/bridges/otellogr</code> as record errors (<code>Record.SetErr</code>) instead of <code>exception.message</code> attributes. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8775">#8775</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix header attributes lost when using sub-spans in <code>go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8797">#8797</a>)</li> <li>Validate <code>encoding</code> configuration for OTLP HTTP exporters in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8772">#8772</a>)</li> <li>Remove the custom body wrapper from the request's body after the request is processed to allow body type comparisons with the original type in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> and <code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/6914">#6914</a>)</li> <li>Unknown or empty HTTP methods now report "_OTHER" instead of "GET" across all HTTP instrumentations to align with OpenTelemetry semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8868">#8868</a>)</li> <li>The default span name formatter in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> now conforms to the OpenTelemetry HTTP semantic conventions for server span names. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8871">#8871</a>) <ul> <li>The default span name is now <code>{method} {route}</code> (e.g. <code>GET /foo/{id}</code>) when a route pattern is available, or <code>{method}</code> (e.g. <code>GET</code>) otherwise.</li> </ul> </li> </ul> <h3>Removed</h3> <ul> <li>Remove the deprecated <code>WithSpanOptions</code> option in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8991">#8991</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
685e354b2f |
feat: add cargo (crates.io) as a package registry type (#1207)
> **Update — 2026-06-01 (commit 1f3be53)** > > - **All @P4ST4S review feedback addressed** — positive-path hermetic mock + live anchor against `rust-faf-mcp v0.3.1`; 5xx routed as transient; doc comment qualified. See the [close-out comment](https://github.com/modelcontextprotocol/registry/pull/1207#issuecomment-4589711057) for the per-item breakdown. > - **Runtime-model question RESOLVED** — `package-types.mdx` documents cargo and MCPB as both first-class Rust MCP distribution paths (cargo for source-distributed, MCPB for prebuilt-binary). The "Open question" section below was the original draft framing; the doc now ships the resolution. > - **Cargo-specific gotcha discovered and documented** — crates.io strips HTML comments during README rendering, unlike PyPI/NuGet. `package-types.mdx` now spells this out so cargo authors don't ship invisible mcp-name tokens (which is exactly what happened to `rust-faf-mcp v0.3.0`; fixed in v0.3.1). > - **Stale reference removed in this update** — the "Out of scope" line mentioning `docs/guides/publishing/publish-cargo.md` pointed at a path that doesn't exist. The canonical per-type doc is `docs/modelcontextprotocol-io/package-types.mdx`; the Cargo section has been added there directly. > - **Two real-world Rust MCP servers queued for day-one register**: `rust-faf-mcp v0.3.1` (live, end-to-end validated by the new live test) and `perfetto-mcp-rs` ([@0xZOne](https://github.com/0xZOne) in #1055). > - **Tests:** 19/19 cargo tests pass (16 existing + 2 hermetic + 1 live anchor). `make validate` clean. `golangci-lint` 0 issues. --- Adds support for `registryType: cargo` so Rust MCP servers published to crates.io can be registered through the documented validation flow rather than the MCPB binary-packaging workaround. Closes #1055. ## Motivation and Context #1055 noted that crates.io has ~1,800 MCP-related packages with no direct path into the registry — only the MCPB binary-packaging workaround. This PR adds first-class support for cargo as a package registry type: schema + API surface, validator, integration tests, and a documented example. The publishing guide (`docs/guides/publishing/publish-cargo.md`) follows on this branch once the runtime-model direction in **Additional context** is settled. ## How Has This Been Tested? - **`make validate`** — clean. Schema-vs-openapi sync verified; 17/17 examples in `generic-server-json.md` validate against the schema; `expectedServerJSONCount` bumped 16 → 17 to match the new Cargo example. - **`go test ./internal/validators/...`** — passes. 16 cargo validator sub-cases across 4 test functions, run against real crates.io (~2.5s wall): - Input validation rejection paths - Registry-baseURL rejection (4 variants: different host, trailing slash, http-not-https, subdomain typo) - Ownership validation against real crates (`serde`, `tokio`, `rand`) — all correctly rejected for missing `mcp-name` token - Server-name format variations (canonical `io.github.OWNER/REPO`, multi-hyphen, underscore, numeric suffix) - **Positive-path test** — gated on `rust-faf-mcp` v0.2.3+ being published with `mcp-name: io.github.Wolfe-Jam/rust-faf-mcp` in its README. Reserved as a TODO in `cargo_test.go`; uncomments to become the live anchor once that publish lands. - **Local `make test-unit`** — not run due to a Go toolchain version quirk on my workstation (project auto-downloads 1.26.0; my local `go` is 1.25.6, causing compile mismatch). CI will exercise the full PostgreSQL-backed suite. ## Breaking Changes None. This is an additive change — `cargo` joins the supported `registryType` enum alongside `npm`/`pypi`/`nuget`/`oci`/`mcpb`. Existing publishes continue to work unchanged. ## Types of changes - [x] New feature (non-breaking change which adds functionality) - [x] Documentation update (new Cargo example in `generic-server-json.md`) ## Checklist - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context ### Validator design — two-call retrieval on the documented API `internal/validators/registries/cargo.go` mirrors the PyPI validator's README-token approach (substring-match `mcp-name: <serverName>`), with a two-call retrieval pattern to stay on the documented public crates.io API: 1. `GET /api/v1/crates/{name}/{version}/readme` returns 200 OK with a JSON pointer (`{"url": "https://static.crates.io/readmes/.../...html"}`) — crates.io hands us the URL rather than emitting a 302. 2. Follow the pointer to the rendered HTML; substring-match for the token. The two-call pattern stays on the documented public surface. The CDN URL layout is observed-stable, but treating it as the entry point would mean depending on an undocumented path. With two calls, crates.io controls where the README lives — if they move it, the metadata endpoint hands us the new URL. Missing crates and missing versions surface as **403** from the CDN (S3's default for missing keys), not 404. The validator treats any non-200 as "not found" and surfaces the actual status code in the error message. ### Open question — runtime model Cargo's runtime model is genuinely different from npm/PyPI/NuGet. `cargo install` is one-time (binary lands on PATH at `~/.cargo/bin`), not per-invocation like `npx`, `uvx`, or `dnx` (the new one in .NET 10 SDK Preview 6+). The new Cargo example in `generic-server-json.md` annotates this honestly and omits `runtimeHint`. If a different framing is preferred — e.g. recommending **MCPB** (prebuilt binary distribution via GitHub Releases) as the primary path for Rust MCP servers instead of cargo — happy to adjust the documentation accordingly. The schema + validator code in this PR is **additive** and doesn't force a recommendation either way; a Rust author who chooses cargo can use it, and one who prefers MCPB still can. ### Out of scope (deferred) - **`docs/guides/publishing/publish-cargo.md`** — follows on this branch once the runtime-model direction above is settled. - **Publisher CLI `Cargo.toml` autodetect** in `cmd/publisher/commands/init.go` — separate concern, separate PR. - **Positive-path validator test** — gated on `rust-faf-mcp` v0.2.3+ publishing as noted in *How Has This Been Tested?*. --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
5d91ce7c2e |
build(deps): bump the opentelemetry group with 5 updates (#1311) | ||
|
|
3a8e5428db |
build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys from 1.4.0 to 1.5.0 (#1312) | ||
|
|
51f37e8de5 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.242.0 to 3.243.0 in /deploy (#1313) | ||
|
|
224f50288d |
build(deps): bump the actions group with 2 updates (#1314) | ||
|
|
b97cc9fbd6 |
docs: update maintainer/collaborator matrix in README (#1324) | ||
|
|
f0f03c0127 |
build(deps): bump github.com/pulumi/pulumi-kubernetes/sdk/v4 from 4.30.0 to 4.31.1 in /deploy (#1298)
Bumps [github.com/pulumi/pulumi-kubernetes/sdk/v4](https://github.com/pulumi/pulumi-kubernetes) from 4.30.0 to 4.31.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/releases">github.com/pulumi/pulumi-kubernetes/sdk/v4's releases</a>.</em></p> <blockquote> <h2>v4.31.1</h2> <h2>Changed</h2> <ul> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4364">pulumi/pulumi-kubernetes#4364</a> Update github.com/go-git/go-git/v5 to v5.19.1 (SECURITY).</li> <li>Update first-party Pulumi dependencies to v3.242.0. which fixes <a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/4354">pulumi/pulumi-kubernetes#4354</a></li> </ul> <h2>v4.31.0</h2> <h3>Added</h3> <ul> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/2744">#2744</a> Advertise a <code>helm</code> mapping for <code>terraform</code> conversion so <code>pulumi import --from terraform</code> and <code>pulumi convert --from terraform</code> recognize <code>helm_release</code> and emit <code>kubernetes:helm.sh/v3:Release</code>.</li> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/4332">#4332</a> Implement the <code>List</code> provider RPC and advertise <code>listInputs</code> (<code>namespace</code>, <code>name</code>, <code>labelSelector</code>, <code>fieldSelector</code>) on every non-nested resource. <code>namespace</code> is omitted from <code>listInputs</code> on cluster-scoped kinds. See <a href="https://github.com/pulumi/pulumi-kubernetes/blob/HEAD/docs/list-rpc-semantics.md"><code>https://github.com/pulumi/pulumi-kubernetes/blob/HEAD/docs/list-rpc-semantics.md</code></a> for design notes.</li> </ul> <h3>Fixed</h3> <ul> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4261">#4261</a> Fix CRD parameterization: implement <code>Parameterize(Value)</code> so subsequent runs can reconstruct the CRD schema from saved state, and flatten array-of-objects in OpenAPI specs so nested fields like <code>spec.listeners</code> generate typed args.</li> </ul> <h3>Changed</h3> <ul> <li>Upgrade Kubernetes schema and libraries to v1.36.1.</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/blob/master/CHANGELOG.md">github.com/pulumi/pulumi-kubernetes/sdk/v4's changelog</a>.</em></p> <blockquote> <h2>4.31.1 (May 19, 2026)</h2> <h3>Changed</h3> <ul> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4364">#4364</a> Update <code>github.com/go-git/go-git/v5</code> to v5.19.1 (SECURITY).</li> <li>Update first-party Pulumi dependencies to v3.242.0.</li> </ul> <h2>4.31.0 (May 14, 2026)</h2> <h3>Added</h3> <ul> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/2744">#2744</a> Advertise a <code>helm</code> mapping for <code>terraform</code> conversion so <code>pulumi import --from terraform</code> and <code>pulumi convert --from terraform</code> recognize <code>helm_release</code> and emit <code>kubernetes:helm.sh/v3:Release</code>.</li> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/4332">#4332</a> Implement the <code>List</code> provider RPC and advertise <code>listInputs</code> (<code>namespace</code>, <code>name</code>, <code>labelSelector</code>, <code>fieldSelector</code>) on every non-nested resource. <code>namespace</code> is omitted from <code>listInputs</code> on cluster-scoped kinds. See <a href="https://github.com/pulumi/pulumi-kubernetes/blob/master/docs/list-rpc-semantics.md"><code>https://github.com/pulumi/pulumi-kubernetes/blob/master/docs/list-rpc-semantics.md</code></a> for design notes.</li> </ul> <h3>Fixed</h3> <ul> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4261">#4261</a> Fix CRD parameterization: implement <code>Parameterize(Value)</code> so subsequent runs can reconstruct the CRD schema from saved state, and flatten array-of-objects in OpenAPI specs so nested fields like <code>spec.listeners</code> generate typed args.</li> </ul> <h3>Changed</h3> <ul> <li>Upgrade Kubernetes schema and libraries to v1.36.1.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
66cc039fac |
build(deps): bump golang.org/x/net to v0.55.0 (#1308)
## Summary - Bumps `golang.org/x/net` from v0.53.0 to v0.55.0 to fix [GO-2026-5026](https://pkg.go.dev/vuln/GO-2026-5026) (failure to reject ASCII-only Punycode-encoded labels in `golang.org/x/net/idna`). - govulncheck flagged the vuln via `auth.DefaultHTTPKeyFetcher.FetchKey` → `http.Client.Do` → `idna.ToASCII` at `internal/api/handlers/v0/auth/http.go:191`. - Also brings in associated `x/crypto`, `x/sys`, `x/text` bumps via `go mod tidy`. This unblocks open dependabot PRs (e.g. #1298) that are failing CI on the same govulncheck finding despite not touching the root module. ## Test plan - [x] `go build ./...` - [x] `govulncheck` no longer reports GO-2026-5026 locally - [ ] CI passes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
5fe2c79e5c |
build(deps): bump goreleaser/goreleaser-action from 7.2.1 to 7.2.2 in the actions group (#1299)
Bumps the actions group with 1 update: [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action). Updates `goreleaser/goreleaser-action` from 7.2.1 to 7.2.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/goreleaser/goreleaser-action/releases">goreleaser/goreleaser-action's releases</a>.</em></p> <blockquote> <h2>v7.2.2</h2> <h2>What's Changed</h2> <ul> <li>ci(deps): bump the actions group with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/560">goreleaser/goreleaser-action#560</a></li> <li>fix: nightly resolution to select newest published release by <a href="https://github.com/Copilot"><code>@Copilot</code></a> in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/562">goreleaser/goreleaser-action#562</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Copilot"><code>@Copilot</code></a> made their first contribution in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/562">goreleaser/goreleaser-action#562</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/goreleaser/goreleaser-action/compare/v7...v7.2.2">https://github.com/goreleaser/goreleaser-action/compare/v7...v7.2.2</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
a23a518592 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.238.0 to 3.242.0 in /deploy (#1297)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.238.0 to 3.242.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.242.0</h2> <h2>3.242.0 (2026-05-19)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Add a <code>pulumi</code> package for npx support</p> </li> <li> <p>[cli] Add the <code>pulumi org member edit</code> command <a href="https://redirect.github.com/pulumi/pulumi/pull/23235">#23235</a></p> </li> <li> <p>[cli] Add the <code>pulumi org member remove</code> command <a href="https://redirect.github.com/pulumi/pulumi/pull/23237">#23237</a></p> </li> <li> <p>[cli/cloud] Add <code>pulumi deployment get</code> to retrieve details for a specific deployment <a href="https://redirect.github.com/pulumi/pulumi/pull/23238">#23238</a></p> </li> <li> <p>[cli/cloud] Add <code>pulumi insights account scan get <account> <scan-id></code> to show the full workflow run for a single Insights scan <a href="https://redirect.github.com/pulumi/pulumi/pull/23255">#23255</a></p> </li> <li> <p>[cli/cloud] Add <code>pulumi insights account scan list <account></code> to discover recent scan IDs to feed into <code>pulumi insights account scan log</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23255">#23255</a></p> </li> <li> <p>[cli/deployment] Add dedicated flags for each deployment setting <a href="https://redirect.github.com/pulumi/pulumi/pull/23236">#23236</a></p> </li> <li> <p>[cli/do] Add the start of <code>pulumi do</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23176">#23176</a></p> </li> <li> <p>[cli/neo] Add <code>--print</code>/<code>-p</code> to <code>pulumi neo</code> to run a single prompt non-interactively and print the agent's final response to stdout <a href="https://redirect.github.com/pulumi/pulumi/pull/23245">#23245</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli/cloud] Fix <code>pulumi insights account scan log --all</code> to follow the server's pagination cursor through the end of the log, and render <code>--job/--step</code> mode as structured lines instead of an empty raw-string blob <a href="https://redirect.github.com/pulumi/pulumi/pull/23256">#23256</a></p> </li> <li> <p>[sdk] Close gzip.Writer in archiveTarGZIP to produce valid tar.gz output <a href="https://redirect.github.com/pulumi/pulumi/pull/23240">#23240</a></p> </li> <li> <p>[sdkgen/python] Fix usage of ArgsDict types in typed dictionaries <a href="https://redirect.github.com/pulumi/pulumi/pull/23253">#23253</a></p> </li> </ul> <h2>v3.241.0</h2> <h2>3.241.0 (2026-05-18)</h2> <h3>Features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.242.0 (2026-05-19)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Add a <code>pulumi</code> package for npx support</p> </li> <li> <p>[cli] Add the <code>pulumi org member edit</code> command <a href="https://redirect.github.com/pulumi/pulumi/pull/23235">#23235</a></p> </li> <li> <p>[cli] Add the <code>pulumi org member remove</code> command <a href="https://redirect.github.com/pulumi/pulumi/pull/23237">#23237</a></p> </li> <li> <p>[cli/cloud] Add <code>pulumi deployment get</code> to retrieve details for a specific deployment <a href="https://redirect.github.com/pulumi/pulumi/pull/23238">#23238</a></p> </li> <li> <p>[cli/cloud] Add <code>pulumi insights account scan get <account> <scan-id></code> to show the full workflow run for a single Insights scan <a href="https://redirect.github.com/pulumi/pulumi/pull/23255">#23255</a></p> </li> <li> <p>[cli/cloud] Add <code>pulumi insights account scan list <account></code> to discover recent scan IDs to feed into <code>pulumi insights account scan log</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23255">#23255</a></p> </li> <li> <p>[cli/deployment] Add dedicated flags for each deployment setting <a href="https://redirect.github.com/pulumi/pulumi/pull/23236">#23236</a></p> </li> <li> <p>[cli/do] Add the start of <code>pulumi do</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23176">#23176</a></p> </li> <li> <p>[cli/neo] Add <code>--print</code>/<code>-p</code> to <code>pulumi neo</code> to run a single prompt non-interactively and print the agent's final response to stdout <a href="https://redirect.github.com/pulumi/pulumi/pull/23245">#23245</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli/cloud] Fix <code>pulumi insights account scan log --all</code> to follow the server's pagination cursor through the end of the log, and render <code>--job/--step</code> mode as structured lines instead of an empty raw-string blob <a href="https://redirect.github.com/pulumi/pulumi/pull/23256">#23256</a></p> </li> <li> <p>[sdk] Close gzip.Writer in archiveTarGZIP to produce valid tar.gz output <a href="https://redirect.github.com/pulumi/pulumi/pull/23240">#23240</a></p> </li> <li> <p>[sdkgen/python] Fix usage of ArgsDict types in typed dictionaries <a href="https://redirect.github.com/pulumi/pulumi/pull/23253">#23253</a></p> </li> </ul> <h2>3.241.0 (2026-05-18)</h2> <h3>Features</h3> <ul> <li>[cli] Add <code>--output json</code> to <code>pulumi preview</code> for a structured JSON summary of the operation result <a href="https://redirect.github.com/pulumi/pulumi/pull/22927">#22927</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
3a8d268a87 |
build(deps): bump github.com/danielgtaylor/huma/v2 from 2.37.3 to 2.38.0 (#1296)
Bumps [github.com/danielgtaylor/huma/v2](https://github.com/danielgtaylor/huma) from 2.37.3 to 2.38.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/danielgtaylor/huma/releases">github.com/danielgtaylor/huma/v2's releases</a>.</em></p> <blockquote> <h2>v2.38.0</h2> <h2>Overview</h2> <h3>Fiber v3</h3> <p>This release adds support for Fiber v3. Dedicated v2 functions have been added to ensure support for both.</p> <h2>What's Changed</h2> <ul> <li>Fix header regression by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1007">danielgtaylor/huma#1007</a></li> <li>feat(humafiber): add Fiber v3 support by <a href="https://github.com/wheinze"><code>@wheinze</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/962">danielgtaylor/huma#962</a></li> <li>Accept empty base64 inputs by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1013">danielgtaylor/huma#1013</a></li> <li>chore(deps): bump github.com/gofiber/fiber/v3 from 3.1.0 to 3.2.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1018">danielgtaylor/huma#1018</a></li> <li>Propagate underlying context to GET/PUT requests in the autopatch handler by <a href="https://github.com/alixinne"><code>@alixinne</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1019">danielgtaylor/huma#1019</a></li> <li>chore(deps): bump github.com/gofiber/fiber/v2 from 2.52.12 to 2.52.13 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1022">danielgtaylor/huma#1022</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/wheinze"><code>@wheinze</code></a> made their first contribution in <a href="https://redirect.github.com/danielgtaylor/huma/pull/962">danielgtaylor/huma#962</a></li> <li><a href="https://github.com/alixinne"><code>@alixinne</code></a> made their first contribution in <a href="https://redirect.github.com/danielgtaylor/huma/pull/1019">danielgtaylor/huma#1019</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/danielgtaylor/huma/compare/v2.37.3...v2.38.0">https://github.com/danielgtaylor/huma/compare/v2.37.3...v2.38.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
b90f63f52c |
build(deps): bump github.com/google/go-containerregistry from 0.21.5 to 0.21.6 (#1295)
Bumps [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry) from 0.21.5 to 0.21.6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/go-containerregistry/releases">github.com/google/go-containerregistry's releases</a>.</em></p> <blockquote> <h2>v0.21.6</h2> <h2>What's Changed</h2> <ul> <li>fix: update dependencies to use new azure sdk components by <a href="https://github.com/gaganhr94"><code>@gaganhr94</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2262">google/go-containerregistry#2262</a></li> <li>transport: restore resp.Body in retryError so CheckError can parse it by <a href="https://github.com/alliasgher"><code>@alliasgher</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2264">google/go-containerregistry#2264</a></li> <li>pkg/registry: return 202 Accepted for PATCH chunk uploads by <a href="https://github.com/alliasgher"><code>@alliasgher</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2265">google/go-containerregistry#2265</a></li> <li>Follow OCI distribution spec for artifactType and annotations by <a href="https://github.com/malt3"><code>@malt3</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2269">google/go-containerregistry#2269</a></li> <li>actions: attach Codecov token to coverage tests on main by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2270">google/go-containerregistry#2270</a></li> <li>remote: use DeleteScope (with "delete" action) for manifest deletion by <a href="https://github.com/alliasgher"><code>@alliasgher</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2266">google/go-containerregistry#2266</a></li> <li>remote: limit concurrent layer pulls by <a href="https://github.com/gnix0"><code>@gnix0</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2271">google/go-containerregistry#2271</a></li> <li>pkg/registry: reject corrupt disk blobs by <a href="https://github.com/gnix0"><code>@gnix0</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2272">google/go-containerregistry#2272</a></li> <li>mutate: close layer readers during export by <a href="https://github.com/gnix0"><code>@gnix0</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2277">google/go-containerregistry#2277</a></li> <li>crane/flatten: preserve image media type when flattening by <a href="https://github.com/alliasgher"><code>@alliasgher</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2267">google/go-containerregistry#2267</a></li> <li>build(deps): bump goreleaser/goreleaser-action from 7.0.0 to 7.2.1 in the actions group across 1 directory by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2273">google/go-containerregistry#2273</a></li> <li>build(deps): bump go.opentelemetry.io/otel from 1.36.0 to 1.41.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2278">google/go-containerregistry#2278</a></li> <li>build(deps): bump the go-deps group across 3 directories with 6 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2280">google/go-containerregistry#2280</a></li> <li>Replace go-homedir with os.UserHomeDir by <a href="https://github.com/jammie-jelly"><code>@jammie-jelly</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2282">google/go-containerregistry#2282</a></li> <li>pkg/name: only treat .localhost as non-HTTPS, not .local by <a href="https://github.com/blackwell-systems"><code>@blackwell-systems</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2281">google/go-containerregistry#2281</a></li> <li>transport: block unspecified IPs (0.0.0.0, ::) in validateRealmURL by <a href="https://github.com/marwan9696"><code>@marwan9696</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2285">google/go-containerregistry#2285</a></li> <li>test(mutate): add Extract round-trip test for filesystem object preservation by <a href="https://github.com/blackwell-systems"><code>@blackwell-systems</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2283">google/go-containerregistry#2283</a></li> <li>experiments: remove deprecated support for estargz by <a href="https://github.com/thaJeztah"><code>@thaJeztah</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2288">google/go-containerregistry#2288</a></li> <li>build(deps): bump aws-actions/configure-aws-credentials from 6.1.0 to 6.1.1 in the actions group by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2289">google/go-containerregistry#2289</a></li> <li>fix: limit HTTP response body reads to prevent OOM by <a href="https://github.com/evilgensec"><code>@evilgensec</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2296">google/go-containerregistry#2296</a></li> <li>build(deps): bump the go-deps group across 3 directories with 6 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2297">google/go-containerregistry#2297</a></li> <li>transport: block redirects from token server to private/link-local addresses (SSRF fix) by <a href="https://github.com/evilgensec"><code>@evilgensec</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2292">google/go-containerregistry#2292</a></li> <li>pkg/v1/mutate: preserve relative symlinks that stay within rootfs in Extract by <a href="https://github.com/anishesg"><code>@anishesg</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2279">google/go-containerregistry#2279</a></li> <li>validate: skip non-layer layers by <a href="https://github.com/imjasonh"><code>@imjasonh</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2298">google/go-containerregistry#2298</a></li> <li>remote: validate foreign layer URLs to prevent SSRF (fixes <a href="https://redirect.github.com/google/go-containerregistry/issues/2259">#2259</a>) by <a href="https://github.com/evilgensec"><code>@evilgensec</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2293">google/go-containerregistry#2293</a></li> <li>remote: block SSRF via private-IP Location headers in blob uploads by <a href="https://github.com/adilburaksen"><code>@adilburaksen</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2295">google/go-containerregistry#2295</a></li> <li>fix(mutate): preserve config blob and layers for non-Docker OCI artifacts by <a href="https://github.com/blackwell-systems"><code>@blackwell-systems</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2286">google/go-containerregistry#2286</a></li> <li>fix: preserve per-occurrence layer identity in mutate.Image.Layers() by <a href="https://github.com/iahsanGill"><code>@iahsanGill</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2299">google/go-containerregistry#2299</a></li> <li>transport: retry HTTP 429 (Too Many Requests) by <a href="https://github.com/iahsanGill"><code>@iahsanGill</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2301">google/go-containerregistry#2301</a></li> <li>transport: allow bearer realm at same host:port as registry by <a href="https://github.com/iahsanGill"><code>@iahsanGill</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2302">google/go-containerregistry#2302</a></li> <li>Update go version to 1.26.3 by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2300">google/go-containerregistry#2300</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/gaganhr94"><code>@gaganhr94</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2262">google/go-containerregistry#2262</a></li> <li><a href="https://github.com/alliasgher"><code>@alliasgher</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2264">google/go-containerregistry#2264</a></li> <li><a href="https://github.com/malt3"><code>@malt3</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2269">google/go-containerregistry#2269</a></li> <li><a href="https://github.com/gnix0"><code>@gnix0</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2271">google/go-containerregistry#2271</a></li> <li><a href="https://github.com/blackwell-systems"><code>@blackwell-systems</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2281">google/go-containerregistry#2281</a></li> <li><a href="https://github.com/marwan9696"><code>@marwan9696</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2285">google/go-containerregistry#2285</a></li> <li><a href="https://github.com/anishesg"><code>@anishesg</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2279">google/go-containerregistry#2279</a></li> <li><a href="https://github.com/adilburaksen"><code>@adilburaksen</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2295">google/go-containerregistry#2295</a></li> <li><a href="https://github.com/iahsanGill"><code>@iahsanGill</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2299">google/go-containerregistry#2299</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/google/go-containerregistry/compare/v0.21.5...v0.21.6">https://github.com/google/go-containerregistry/compare/v0.21.5...v0.21.6</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
49cea83c9d |
build(deps): bump github.com/go-git/go-git/v5 from 5.19.0 to 5.19.1 in /deploy (#1292)
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.19.0 to 5.19.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/go-git/go-git/releases">github.com/go-git/go-git/v5's releases</a>.</em></p> <blockquote> <h2>v5.19.1</h2> <h2>What's Changed</h2> <ul> <li>v5: plumbing: transport/ssh, Shell-quote path by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2068">go-git/go-git#2068</a></li> <li>v5: git: submodule, Fix relative URL resolution by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2070">go-git/go-git#2070</a></li> <li>v5: git: submodule, canonical remote for relative URLs by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2074">go-git/go-git#2074</a></li> <li>v5: git: submodule, error on remote without URLs by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2078">go-git/go-git#2078</a></li> <li>v5: plumbing: format/idxfile, Validate offset64 indices by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2084">go-git/go-git#2084</a></li> <li>v5: *: Reject malformed variable-length integers by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2092">go-git/go-git#2092</a></li> <li>v5: plumbing: format/packfile, Tighten delta validation by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2091">go-git/go-git#2091</a></li> <li>v5: Add <code>worktreeFilesystem</code> wrapper for worktree and hardening by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2100">go-git/go-git#2100</a></li> <li>v5: config: validate submodule names by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2082">go-git/go-git#2082</a></li> <li>build: Update module github.com/go-git/go-git/v5 to v5.19.0 [SECURITY] (releases/v5.x) by <a href="https://github.com/go-git-renovate"><code>@go-git-renovate</code></a>[bot] in <a href="https://redirect.github.com/go-git/go-git/pull/2111">go-git/go-git#2111</a></li> <li>v5: git: Allow MkdirAll on worktree-root paths by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2117">go-git/go-git#2117</a></li> <li>v5: git: Stop validating symlink target paths by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2116">go-git/go-git#2116</a></li> <li>v5: plumbing: format decoder input bounds and contracts by <a href="https://github.com/hiddeco"><code>@hiddeco</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2125">go-git/go-git#2125</a></li> <li>plumbing: format/packfile, cap delta chain depth in parser by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2137">go-git/go-git#2137</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/go-git/go-git/compare/v5.19.0...v5.19.1">https://github.com/go-git/go-git/compare/v5.19.0...v5.19.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
deb5e7b24a |
chore(deps): reduce dependabot frequency from daily to weekly (#1284)
## Summary - Dependency update PRs were arriving daily across gomod (root + `/deploy`), github-actions, and docker — creating significant review noise. - Switch all four update entries in `.github/dependabot.yml` from `interval: daily` to `interval: weekly` so they batch on a weekly cadence (Dependabot defaults to Mondays). ## Test plan - [ ] Confirm `.github/dependabot.yml` parses correctly (Dependabot will report a config error on the repo if not) - [ ] Observe that new dependency PRs stop appearing daily after merge 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
4819463aaa |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.237.0 to 3.238.0 in /deploy (#1283)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.237.0 to 3.238.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.238.0</h2> <h2>3.238.0 (2026-05-13)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Add a <code>--language</code> flag to <code>pulumi package add</code> to run outside a Pulumi project or plugin <a href="https://redirect.github.com/pulumi/pulumi/pull/22791">#22791</a></p> </li> <li> <p>[cli] Add <code>--output json</code> to <code>pulumi up</code> for a structured JSON summary of the operation result <a href="https://redirect.github.com/pulumi/pulumi/pull/22870">#22870</a></p> </li> <li> <p>[cli] Recommend <code>pulumi cloud api describe</code> in <code>pulumi cloud api --help</code> to verify operation parameters before calling <a href="https://redirect.github.com/pulumi/pulumi/pull/22881">#22881</a></p> </li> <li> <p>[cli] Add <code>pulumi stack webhook list</code> to list all webhooks configured for a stack <a href="https://redirect.github.com/pulumi/pulumi/pull/23082">#23082</a></p> </li> <li> <p>[cli/cloud] Rename <code>pulumi cloud api</code> to <code>pulumi api</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/22970">#22970</a></p> </li> <li> <p>[cli/cloud] Add <code>pulumi insights resource get</code> to look up a single resource discovered by Pulumi Insights <a href="https://redirect.github.com/pulumi/pulumi/pull/23077">#23077</a></p> </li> <li> <p>[cli/cloud] Add <code>pulumi template list</code> to list registry-backed templates <a href="https://redirect.github.com/pulumi/pulumi/pull/23074">#23074</a></p> </li> <li> <p>[cli/cloud] Rename the <code>--format</code> flag to <code>--output</code> on <code>pulumi api</code> and its subcommands <a href="https://redirect.github.com/pulumi/pulumi/pull/23072">#23072</a></p> </li> <li> <p>[cli/cloud] Add <code>pulumi insights resource search</code> to search for resources discovered by Pulumi Insights <a href="https://redirect.github.com/pulumi/pulumi/pull/23087">#23087</a></p> </li> <li> <p>[cli/engine] Add <code>--skip-plugin-pre-install</code> to skip up-front plugin installation</p> </li> <li> <p>[engine] Fail the deployment when an after hook fails <a href="https://redirect.github.com/pulumi/pulumi/pull/22935">#22935</a></p> </li> <li> <p>[cli/neo] Render the agent's TODO list in the <code>pulumi neo</code> TUI <a href="https://redirect.github.com/pulumi/pulumi/pull/22864">#22864</a></p> </li> <li> <p>[cli/neo] Add <code>--approval-mode</code> and <code>--permission-mode</code> flags to <code>pulumi neo</code>, with Ctrl+A and Ctrl+R hotkeys to switch modes mid-session <a href="https://redirect.github.com/pulumi/pulumi/pull/22950">#22950</a></p> </li> <li> <p>[cli/package] When invoked by an AI coding agent, print <code>pulumi api</code> pointers after <code>pulumi package add</code> and <code>pulumi package gen-sdk</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/22904">#22904</a></p> </li> <li> <p>[pkg/testing] Recognize the <code>hcl</code> and <code>pcl</code> runtimes in <code>integration.ProgramTest</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/23018">#23018</a></p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
4f75308d17 |
deploy: update prod to v1.7.9 (#1282)
Promotes [v1.7.9](https://github.com/modelcontextprotocol/registry/releases/tag/v1.7.9) to production. Includes the OCI validator fail-closed fix from #1281. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
35b20719ee |
fix(validators/oci): fail closed on upstream rate limiting (#1281)
## Summary When the OCI validator's anonymous manifest fetch returns HTTP 429, return a retryable error instead of `nil`. This aligns OCI with the fail-closed behavior of the npm / PyPI / NuGet / MCPB validators, and ensures the `io.modelcontextprotocol.server.name` label-match always runs before a publish is accepted. ## Test plan - [x] `go test ./internal/validators/registries/ -run TestValidateOCI` passes locally - [x] `gofmt` + `golangci-lint` clean on the changed file - [ ] CI green 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
4e319e81ff |
build(deps): bump github.com/go-git/go-git/v5 from 5.18.0 to 5.19.0 in /deploy (#1279)
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.18.0 to 5.19.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/go-git/go-git/releases">github.com/go-git/go-git/v5's releases</a>.</em></p> <blockquote> <h2>v5.19.0</h2> <h2>What's Changed</h2> <ul> <li>build: Update module github.com/go-git/go-git/v5 to v5.18.0 [SECURITY] (releases/v5.x) by <a href="https://github.com/go-git-renovate"><code>@go-git-renovate</code></a>[bot] in <a href="https://redirect.github.com/go-git/go-git/pull/2010">go-git/go-git#2010</a></li> <li>v5: Bump sha1cd and go-billy by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2060">go-git/go-git#2060</a></li> <li>v5: Align object encoding with upstream by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2065">go-git/go-git#2065</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/go-git/go-git/compare/v5.18.0...v5.19.0">https://github.com/go-git/go-git/compare/v5.18.0...v5.19.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
276037b1ad |
docs(complete): align publish CLI flags with implementation (closes #767) (#1278)
## Summary `complete.md` documents three flags for `mcp-publisher publish` that the CLI does not actually parse: - `--file=PATH` — Path to server.json - `--registry=URL` — Registry URL override - `--dry-run` — Validate without publishing Reading [`cmd/publisher/commands/publish.go`](https://github.com/modelcontextprotocol/registry/blob/main/cmd/publisher/commands/publish.go) and [`cmd/publisher/main.go`](https://github.com/modelcontextprotocol/registry/blob/main/cmd/publisher/main.go) confirms the actual interface is a single positional `PATH` argument (default `./server.json`): ```go serverFile := \"server.json\" if len(args) > 0 && !strings.HasPrefix(args[0], \"-\") { serverFile = args[0] } ``` Registry URL is bound at login time via the saved token, and \"validate without publishing\" is a separate `mcp-publisher validate` subcommand. The bug user in #767 hit \"server.json not found\" precisely because `--file .registry/server.json` is filtered out by the `HasPrefix(args[0], \"-\")` check, leaving the default lookup in place. ## Background The canonical reference at [`docs/reference/cli/commands.md`](https://github.com/modelcontextprotocol/registry/blob/main/docs/reference/cli/commands.md) was already updated to the correct positional shape. `complete.md` (the concatenated single-file mirror of `docs/` used for LLM/quickstart consumption) had drifted out of sync — these were the only remaining `--file` references in the repo outside of test fixtures. Per the discussion on the prior flag-implementation attempt in #771, maintainers preferred fixing the documentation over adding the unimplemented flags: > @domdomegg: I'd lean towards removing the options from the docs. This PR closes that loop on the last stale doc surface. ## Changes `complete.md`: the `mcp-publisher publish` block now matches `docs/reference/cli/commands.md` line-for-line (positional `PATH`, no spurious flags, no dry-run example). ```diff -mcp-publisher publish [options] +mcp-publisher publish [PATH] -- \`--file=PATH\` - Path to server.json (default: \`./server.json\`) -- \`--registry=URL\` - Registry URL override -- \`--dry-run\` - Validate without publishing +- \`PATH\` - Path to server.json (default: \`./server.json\`) -# Dry run validation -mcp-publisher publish --dry-run - # Custom file location -mcp-publisher publish --file=./config/server.json +mcp-publisher publish ./config/server.json ``` Closes #767. ## Out of scope - `cmd/publisher/README.md:17` still shows `./bin/mcp-publisher publish --registry=http://localhost:8080` in the contributor quickstart. The flag is silently ignored at runtime (caught by the same `HasPrefix(\"-\")` filter). Happy to fold that fix into this PR or send a follow-up — flagging here in case a maintainer prefers one option. - `complete.md` is missing `mcp-publisher validate` and `mcp-publisher status` sections that exist in `docs/reference/cli/commands.md`. Out of scope for this single-concern PR; if there's interest, a broader sync would be a separate PR. ## Test plan - [x] `grep -r -- '--file' .` outside test fixtures returns 0 hits after the change - [x] `grep -r 'mcp-publisher publish --' docs/ complete.md` shows only legitimate flags (`--registry` on `login`) - [x] No code changes — `make check` not exercised since this is doc-only 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: d 🔹 <258577966+voidborne-d@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
1d36806960 |
build(deps): bump golang.org/x/mod from 0.35.0 to 0.36.0 (#1271)
Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.35.0 to 0.36.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
7bc506f245 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.236.0 to 3.237.0 in /deploy (#1272)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.236.0 to 3.237.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.237.0</h2> <h2>3.237.0 (2026-05-08)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Include the running command name and detected AI agent (when present) in the User-Agent header on Pulumi Cloud API requests <a href="https://redirect.github.com/pulumi/pulumi/pull/22908">#22908</a></p> </li> <li> <p>[engine] Include <code>result</code> on the summary engine event <a href="https://redirect.github.com/pulumi/pulumi/pull/22883">#22883</a></p> </li> <li> <p>[sdkgen] Eagerly error on schemas with unconstructable types <a href="https://redirect.github.com/pulumi/pulumi/pull/22890">#22890</a></p> </li> <li> <p>[cli/cloud] Auto-fill <code>lang</code> and <code>os</code> query parameters on <code>pulumi cloud api</code> GET/HEAD requests when the matched OpenAPI operation declares them and the caller hasn't supplied them <a href="https://redirect.github.com/pulumi/pulumi/pull/22726">#22726</a></p> </li> <li> <p>[cli/package] Add <code>pulumi package new</code> to bootstrap a Pulumi package from a template <a href="https://redirect.github.com/pulumi/pulumi/pull/22837">#22837</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli] Add blank-line gaps between <code>pulumi neo</code> TUI conversation blocks <a href="https://redirect.github.com/pulumi/pulumi/pull/22846">#22846</a></p> </li> <li> <p>[cli/import] Preserve <code>__</code>-prefixed keys when generating PCL for imported resource state, so provider-defined payloads round-trip correctly <a href="https://redirect.github.com/pulumi/pulumi/pull/22856">#22856</a></p> </li> <li> <p>[cli/neo] Render <code>ux__ask_user</code> clarifying questions as questions instead of approval prompts <a href="https://redirect.github.com/pulumi/pulumi/pull/22862">#22862</a></p> </li> <li> <p>[cli/neo] Fix a panic when cancelling a <code>pulumi neo</code> session <a href="https://redirect.github.com/pulumi/pulumi/pull/22898">#22898</a></p> </li> <li> <p>[cli/neo] Render every assistant message in the TUI scrollback so multi-turn commentary no longer disappears between tool calls</p> </li> <li> <p>[cli/neo] Return the bare stack name and canonical project name from <code>pulumi_preview</code> and <code>pulumi_up</code> tool results instead of echoing the raw input <a href="https://redirect.github.com/pulumi/pulumi/pull/22891">#22891</a></p> </li> <li> <p>[codegen/pcl] Stop reporting spurious circular references when an <code>ignoreChanges</code>, <code>hideDiffs</code>, <code>replaceOnChanges</code>, or <code>additionalSecretOutputs</code> entry shares a name with a top-level node <a href="https://redirect.github.com/pulumi/pulumi/pull/22916">#22916</a></p> </li> <li> <p>[programgen/pcl] Fix PCL binder panic when a conditional mixes a Promise-typed branch with a try() branch <a href="https://redirect.github.com/pulumi/pulumi/pull/22907">#22907</a></p> </li> <li> <p>[sdk/python] Support <code>NotRequired</code>, <code>Required</code> and <code>total=False</code> in TypedDicts for component resource arg types <a href="https://redirect.github.com/pulumi/pulumi/pull/22858">#22858</a></p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.237.0 (2026-05-08)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Include the running command name and detected AI agent (when present) in the User-Agent header on Pulumi Cloud API requests <a href="https://redirect.github.com/pulumi/pulumi/pull/22908">#22908</a></p> </li> <li> <p>[engine] Include <code>result</code> on the summary engine event <a href="https://redirect.github.com/pulumi/pulumi/pull/22883">#22883</a></p> </li> <li> <p>[sdkgen] Eagerly error on schemas with unconstructable types <a href="https://redirect.github.com/pulumi/pulumi/pull/22890">#22890</a></p> </li> <li> <p>[cli/cloud] Auto-fill <code>lang</code> and <code>os</code> query parameters on <code>pulumi cloud api</code> GET/HEAD requests when the matched OpenAPI operation declares them and the caller hasn't supplied them <a href="https://redirect.github.com/pulumi/pulumi/pull/22726">#22726</a></p> </li> <li> <p>[cli/package] Add <code>pulumi package new</code> to bootstrap a Pulumi package from a template <a href="https://redirect.github.com/pulumi/pulumi/pull/22837">#22837</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli] Add blank-line gaps between <code>pulumi neo</code> TUI conversation blocks <a href="https://redirect.github.com/pulumi/pulumi/pull/22846">#22846</a></p> </li> <li> <p>[cli/import] Preserve <code>__</code>-prefixed keys when generating PCL for imported resource state, so provider-defined payloads round-trip correctly <a href="https://redirect.github.com/pulumi/pulumi/pull/22856">#22856</a></p> </li> <li> <p>[cli/neo] Render <code>ux__ask_user</code> clarifying questions as questions instead of approval prompts <a href="https://redirect.github.com/pulumi/pulumi/pull/22862">#22862</a></p> </li> <li> <p>[cli/neo] Fix a panic when cancelling a <code>pulumi neo</code> session <a href="https://redirect.github.com/pulumi/pulumi/pull/22898">#22898</a></p> </li> <li> <p>[cli/neo] Render every assistant message in the TUI scrollback so multi-turn commentary no longer disappears between tool calls</p> </li> <li> <p>[cli/neo] Return the bare stack name and canonical project name from <code>pulumi_preview</code> and <code>pulumi_up</code> tool results instead of echoing the raw input <a href="https://redirect.github.com/pulumi/pulumi/pull/22891">#22891</a></p> </li> <li> <p>[codegen/pcl] Stop reporting spurious circular references when an <code>ignoreChanges</code>, <code>hideDiffs</code>, <code>replaceOnChanges</code>, or <code>additionalSecretOutputs</code> entry shares a name with a top-level node <a href="https://redirect.github.com/pulumi/pulumi/pull/22916">#22916</a></p> </li> <li> <p>[programgen/pcl] Fix PCL binder panic when a conditional mixes a Promise-typed branch with a try() branch <a href="https://redirect.github.com/pulumi/pulumi/pull/22907">#22907</a></p> </li> <li> <p>[sdk/python] Support <code>NotRequired</code>, <code>Required</code> and <code>total=False</code> in TypedDicts for component resource arg types <a href="https://redirect.github.com/pulumi/pulumi/pull/22858">#22858</a></p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
fe0cb3bfcb |
build(deps): bump sigstore/cosign-installer from 4.1.1 to 4.1.2 in the actions group (#1265)
Bumps the actions group with 1 update: [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer). Updates `sigstore/cosign-installer` from 4.1.1 to 4.1.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sigstore/cosign-installer/releases">sigstore/cosign-installer's releases</a>.</em></p> <blockquote> <h2>v4.1.2</h2> <h2>What's Changed</h2> <ul> <li>Bump cosign to 3.0.6 in <a href="https://redirect.github.com/sigstore/cosign-installer/pull/232">sigstore/cosign-installer#232</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
8af641cf1c |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.235.0 to 3.236.0 in /deploy (#1264)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.235.0 to 3.236.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.236.0</h2> <h2>3.236.0 (2026-05-06)</h2> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.236.0 (2026-05-06)</h2> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
d93f8f78a0 |
build(deps): bump cloud.google.com/go/kms from 1.30.0 to 1.31.0 (#1263)
Bumps [cloud.google.com/go/kms](https://github.com/googleapis/google-cloud-go) from 1.30.0 to 1.31.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-cloud-go/releases">cloud.google.com/go/kms's releases</a>.</em></p> <blockquote> <h2>kms: v1.31.0</h2> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/kms/v1.30.0...kms/v1.31.0">v1.31.0</a> (2026-05-07)</h2> <h2>retail: v1.31.0</h2> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/retail/v1.30.0...retail/v1.31.0">v1.31.0</a> (2026-05-07)</h2> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-cloud-go/blob/main/documentai/CHANGES.md">cloud.google.com/go/kms's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/documentai/v1.30.5...documentai/v1.31.0">1.31.0</a> (2024-08-01)</h2> <h3>Features</h3> <ul> <li><strong>documentai:</strong> A new field <code>imageless_mode</code> is added to message <code>.google.cloud.documentai.v1.ProcessRequest</code> (<a href="https://redirect.github.com/googleapis/google-cloud-go/issues/10615">#10615</a>) (<a href=" |
||
|
|
f5fe2e97f6 |
build(deps): bump golang.org/x/net from v0.52.0 to v0.53.0 (#1269)
## Summary Bumps `golang.org/x/net` from `v0.52.0` to `v0.53.0` to address `GO-2026-4918` (HTTP/2 transport infinite loop on bad `SETTINGS_MAX_FRAME_SIZE`). `go mod tidy` also pulls `golang.org/x/crypto` to v0.50.0 and `golang.org/x/text` to v0.36.0. ## Why now `govulncheck` is failing on `main` and every open Dependabot PR (#1263, #1264, #1265) after the 2026-05 Go security release. The findings split into: - **One we control** — `golang.org/x/net@v0.52.0` → fixed in `v0.53.0`. Addressed here. - **Six stdlib findings** (`GO-2026-4986`, `4982`, `4980`, `4977`, `4971`, and the stdlib half of `4918`) — all fixed in `go1.26.3`. We deliberately do **not** pin a Go patch in the workflow: `go-version: 'stable'` will pick up `1.26.3` automatically once the `actions/go-versions` manifest catches up, with no workflow maintenance. ## Test plan - [x] `go build ./...` - [x] `go vet ./...` - [x] `GOTOOLCHAIN=go1.26.3 govulncheck ./...` → "No vulnerabilities found." 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
718735cfbb |
docs(authentication): note OpenSSL 3.x requirement for Ed25519 (#1253)
## Summary The DNS and HTTP authentication guides currently run `openssl genpkey -algorithm Ed25519 -out key.pem` without caveat. macOS ships LibreSSL as the system `openssl` binary, and LibreSSL doesn't implement Ed25519 in `genpkey` — so the very first command in the Ed25519 codepath errors out with: ``` Algorithm Ed25519 not found ``` A first-time integrator on macOS hits this immediately, with no path to a fix from the docs alone. Cost me ~5 minutes earlier today before I figured out I needed `brew install openssl@3` and an explicit binary path. This PR adds a `<Note>` callout to the **DNS Authentication** section right above the Ed25519 codepath, and a shorter cross-reference Note in the **HTTP Authentication** section since the same `openssl genpkey -algorithm Ed25519` commands appear there. The ECDSA P-384 codepath works on LibreSSL, so it's untouched. ## Test plan - [x] Verified locally that `/opt/homebrew/opt/openssl@3/bin/openssl genpkey -algorithm Ed25519 -out key.pem` works on macOS Darwin 25.4.0 - [x] Verified the system `/usr/bin/openssl genpkey -algorithm Ed25519 -out key.pem` fails with `Algorithm Ed25519 not found` on the same machine (LibreSSL 3.3.6) - [x] Verified the published `ai.ravenmcp/raven-mcp` flow end-to-end with the OpenSSL 3 binary - [ ] Markdown rendering of the `<Note>` callouts — relying on the existing `<Note>` pattern in this file (line 6) to validate the syntax Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
321337c810 |
docs: add ToolHive Registry Server to community projects (#1261)
## Summary - Add a new **Registry Implementations** section to `docs/community-projects.md` for self-hostable servers that implement the MCP Registry API spec. - Move existing **ToolSDK MCP Registry** entry from "Other" into the new section. - Add **ToolHive Registry Server** (https://github.com/stacklok/toolhive-registry-server) to the new section. ## Test plan - [x] `docs/community-projects.md` renders correctly (markdown only, no build step). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
6ae2d54e73 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.234.0 to 3.235.0 in /deploy (#1259) | ||
|
|
2b90d93712 |
deploy: update prod to v1.7.8 (#1256)
## Summary - Bump `mcp-registry:imageTag` from `1.7.7` → `1.7.8` in `deploy/Pulumi.gcpProd.yaml` - v1.7.8 ships the metrics fix that stops counting client-cancelled requests as server errors (#1255). Under scraper-driven load, clients with short timeouts close the socket while PG is still iterating; the handler converts `context.Canceled` to a 500 and the metric middleware was bumping `mcp_registry_http_errors_total` even though NGINX recorded 499 and never delivered a response. This is what's been firing the daily ~17:00 UTC `Availability dropped below 95%` alert. - Also includes a CI-only `pulumi/actions` 6.6.1 → 7.0.0 bump (#1254). No registry runtime impact. - Staging is on ` |
||
|
|
4e147072f0 |
metrics: stop counting client-cancelled requests as server errors (#1255)
## Summary
- Remap recorded status to `499` (NGINX-style "client closed") when
`ctx.Context().Err()` is `context.Canceled` after the handler returns
- Skip the `http_errors_total` increment for `499`s so the availability
metric reflects server-visible errors only
## Why
Under scraper-driven load, clients with short timeouts paginate
`/v0.1/servers`, give up while PG is busy, and close the TCP connection.
The handler's DB iteration returns `context canceled`, the handler
converts that to `huma.Error500InternalServerError`, and tries to write
a response to the now-closed socket. NGINX records `499` (client closed)
and never delivers anything to the client — but the registry's
middleware records `status_code=500` and bumps
`mcp_registry_http_errors_total`.
That's what's been firing the `Availability dropped below 95%` alert
during the daily 17:00 UTC bursts. Recent prod numbers from one pod
(~19h uptime):
```
mcp_registry_http_errors_total{path="/v0.1/servers", status_code="500"} 7396
mcp_registry_http_errors_total{path="/v0.1/servers/{serverName}/versions", status_code="500"} 283
mcp_registry_http_errors_total{path="/v0/servers", status_code="500"} 352
```
…against zero 5xx in NGINX ingress logs over the same window. The alert
was correct *given the data it had*; the data was misclassifying client
cancellations as server errors.
## What this does
In `internal/api/router/router.go` (the metric middleware): after
`next(ctx)`, check `ctx.Context().Err()`. If it's `context.Canceled`,
override `statusCode` to `499` and skip the error counter. Requests
counter and duration histogram still record so the cancellation rate
stays visible.
`context.DeadlineExceeded` is intentionally **not** remapped — that
would indicate a server-side timeout if we ever add per-request
deadlines, and should still count as a server error.
## What this does *not* do
- Doesn't reduce the underlying load (ServiceNow + notion catalog
scrapers driving the daily peak — separate work, see the `updated_since`
outreach we're doing).
- Doesn't change handler behaviour — handlers still call
`huma.Error500…` on `context.Canceled`. We could short-circuit earlier
(return without writing) to save the work, but that's a bigger refactor
and the metric fix unblocks the alert immediately.
## Companion change (no code, just a Grafana annotation tweak)
The `Availability dropped below 95%` alert (UID `bexrc60etvhmoa`)
currently has the annotation:
> No. of 5xx are increased from acceptable limit i.e. 5% of total
throughput
The query is on `mcp_registry_http_errors_total`, not 5xx specifically.
After this change the count is meaningful again, but the wording is
still misleading. Suggest updating to:
> Internal error rate exceeded 5% of total throughput
(no PromQL change required.)
## Test plan
- [x] `go test ./internal/api/router/...` — new test passes
- [x] `golangci-lint run ./internal/...` — clean
- [ ] After merge, watch a daily 17:00 UTC burst —
`mcp_registry_http_errors_total{status_code="500",
path="/v0.1/servers"}` should stay flat while
`mcp_registry_http_requests_total{status_code="499",
path="/v0.1/servers"}` grows. Availability alert should not fire on
cancellation-only bursts.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|
|
6d6a887174 |
build(deps): bump pulumi/actions from 6.6.1 to 7.0.0 in the actions group (#1254)
Bumps the actions group with 1 update: [pulumi/actions](https://github.com/pulumi/actions). Updates `pulumi/actions` from 6.6.1 to 7.0.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/actions/releases">pulumi/actions's releases</a>.</em></p> <blockquote> <h2>v7.0.0</h2> <h2>What's Changed</h2> <ul> <li>minor style fixups for CONTRIBUTING.md by <a href="https://github.com/tgummerer"><code>@tgummerer</code></a> in <a href="https://redirect.github.com/pulumi/actions/pull/1396">pulumi/actions#1396</a></li> <li>Allow downloading PR artifacts by <a href="https://github.com/iwahbe"><code>@iwahbe</code></a> in <a href="https://redirect.github.com/pulumi/actions/pull/1397">pulumi/actions#1397</a></li> <li>Bump Node runtime from 20 to 24 by <a href="https://github.com/nelsonfigueroa"><code>@nelsonfigueroa</code></a> in <a href="https://redirect.github.com/pulumi/actions/pull/1404">pulumi/actions#1404</a></li> <li>Bump TypeScript and jest toolchain by <a href="https://github.com/nelsonfigueroa"><code>@nelsonfigueroa</code></a> in <a href="https://redirect.github.com/pulumi/actions/pull/1405">pulumi/actions#1405</a></li> <li>chore: update ESLint stack and migrate to flat config by <a href="https://github.com/nelsonfigueroa"><code>@nelsonfigueroa</code></a> in <a href="https://redirect.github.com/pulumi/actions/pull/1406">pulumi/actions#1406</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/iwahbe"><code>@iwahbe</code></a> made their first contribution in <a href="https://redirect.github.com/pulumi/actions/pull/1397">pulumi/actions#1397</a></li> <li><a href="https://github.com/nelsonfigueroa"><code>@nelsonfigueroa</code></a> made their first contribution in <a href="https://redirect.github.com/pulumi/actions/pull/1404">pulumi/actions#1404</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pulumi/actions/compare/v6...v7.0.0">https://github.com/pulumi/actions/compare/v6...v7.0.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/actions/blob/main/CHANGELOG.md">pulumi/actions's changelog</a>.</em></p> <blockquote> <h1>CHANGELOG</h1> <h2>HEAD (Unreleased)</h2> <p><strong>(none)</strong></p> <hr /> <h2>7.0.0 (2026-05-01)</h2> <ul> <li>chore: update Action runtime to node 24 (<a href="https://redirect.github.com/pulumi/actions/pull/1404">#1404</a>)</li> <li>chore: bump <code>typescript</code>, <code>jest</code>, <code>ts-jest</code>, <code>@types/jest</code>, <code>@types/node</code> (<a href="https://redirect.github.com/pulumi/actions/pull/1405">#1405</a>)</li> <li>chore: update ESLint stack and migrate to flat config (<a href="https://redirect.github.com/pulumi/actions/pull/1406">#1406</a>)</li> </ul> <h2>6.6.1 (2025-11-12)</h2> <ul> <li>chore: Update pulumi/pulumi dependency (<a href="https://redirect.github.com/pulumi/actions/pull/1394">#1394</a>)</li> </ul> <h2>6.6.0 (2025-09-29)</h2> <ul> <li>feat: Strip ansi control characters from GitHub step Summary and PR comment (<a href="https://redirect.github.com/pulumi/actions/pull/1312">#1312</a>)</li> </ul> <h2>6.4.0 (2025-07-16)</h2> <ul> <li>feat: Add <code>run-program</code> flag support for refresh, destroy, preview, and up/update commands (<a href="https://redirect.github.com/pulumi/actions/pull/1376">#1376</a>)</li> </ul> <h2>6.3.0 (2025-05-08)</h2> <ul> <li> <p>feat: support <code>--exclude</code> and <code>--exclude-dependents</code> flags (<a href="https://redirect.github.com/pulumi/actions/pull/1363">#1363</a>)</p> </li> <li> <p>feat: verbosity and debug inputs to enable debug options (<a href="https://redirect.github.com/pulumi/actions/pull/1046">#1046</a>)</p> </li> <li> <p>fix: update "user agent" string to pulumi/actions@v6 (<a href="https://redirect.github.com/pulumi/actions/pull/1367">#1357</a>)</p> </li> </ul> <h2>6.2.0 (2025-03-05)</h2> <ul> <li>feat: support continue on error flag (--continue-on-error) (<a href="https://redirect.github.com/pulumi/actions/pull/1357">#1357</a>)</li> </ul> <h2>6.1.0 (2025-02-27)</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
1b9f69e81b |
deploy: update prod to v1.7.7 (#1251)
## Summary - Bump `mcp-registry:imageTag` from `1.7.6` → `1.7.7` in `deploy/Pulumi.gcpProd.yaml` - v1.7.7 is a security patch covering three findings (validator hardening, attribute-context UI escaping, IPv6 SSRF blocklist extension); see the v1.7.7 release notes - Staging is on ` |
||
|
|
f5f40bd980 |
fix(auth/http): extend SSRF blocklist to IPv6 6to4/NAT64/site-local prefixes (#1250)
The HTTP namespace-verification fetcher's `isBlockedIP` composed its
blocklist from Go stdlib's `Is*` helpers plus a manual CGNAT range. That
covers IPv4 cloud metadata, RFC1918, ULA, and link-local — but Go's
classification helpers don't recognise IPv6 prefix families that embed
or tunnel to arbitrary IPv4:
- 2002::/16 RFC 3056 6to4 — bits 16-47 are an arbitrary IPv4
- 64:ff9b::/96 RFC 6052 NAT64 well-known — low 32 bits are IPv4
- 64:ff9b:1::/48 RFC 8215 NAT64 local-use — same IPv4-embedding shape
- fec0::/10 RFC 3879 site-local (deprecated, still routed by
some stacks)
On hosts with 6to4 routing or a NAT64 next-hop (the default on
IPv6-only GKE node pools, AWS IPv6-only EC2, Azure IPv6 VMs with
NAT64, and many corporate DNS64/NAT64 networks), an attacker who
controls DNS for a publisher domain can cause the registry to dial
`169.254.169.254`, `10.0.0.0/8`, etc. via the IPv6 wrapper. Same
SSRF class as GHSA-56c3-vfp2-5qqj on n8n-mcp.
Define the four prefixes via a new `mustCIDR` helper (panic on
malformed CIDR at init so a typo can't fail-open silently) and iterate
them in `isBlockedIP` after the stdlib gates. Refactor the existing
CGNAT IIFE to use the same helper for consistency. IPv4-mapped IPv6
(::ffff:0:0/96) needs no special-casing: Go's `Is*` helpers honour the
`To4()` fast-path, so e.g. `::ffff:10.0.0.1` is already classified as
`IsPrivate`.
Adds 17 test cases to `TestIsBlockedIP` covering each new prefix
family, IPv4-mapped IPv6 sanity checks, and just-outside-the-range
positive controls (`2001::1`, `2003::1`, `64:ff9c::1`).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|
|
78b7bbde07 |
fix(validators): reject HTML metacharacters and whitespace in websiteUrl (#1249)
`validateWebsiteURL` only checked that the URL parses, is absolute, and uses the `https` scheme. It accepted literal `"`, `'`, `<`, `>`, and ASCII space — none of which are valid in a URI per RFC 3986, and all of which broke rendering when the value flowed into the catalogue UI's `<a href="...">` template. Add a `strings.IndexAny` check after the scheme check that rejects any of these characters with a clear `website-url-invalid-characters` issue that points at the offending byte position. Control characters (`\t`, `\n`, `\r`) are also covered: they're caught one step earlier by Go's `url.Parse`, but the bytes are listed in the rejection set so the behaviour is explicit and survives any future relaxation of `url.Parse`. Already-percent-encoded URLs (e.g. `?q=hello%20world`) continue to validate cleanly. Adds table-driven cases for `"`, `'`, `<>`, space, newline, and a positive case for percent-encoded special characters. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
fbfd63ced8 |
fix(ui): encode publisher-controlled URLs for href attribute context (#1248)
The catalogue page interpolates publisher-supplied URL fields (`server.repository.url`, `server.websiteUrl`) inside `href="..."` attributes via `innerHTML`, escaping them with a `textContent`→`innerHTML` helper. Per the HTML5 fragment-serialisation algorithm, that round-trip encodes only `&`, `<`, `>`, and U+00A0 inside text nodes — it does not encode `"` or `'`. The helper is therefore safe in element-text contexts (where it is used for `name`, `version`, `description`, etc.) but unsafe inside an attribute value. Add an attribute-safe `escapeAttr` helper that follows the OWASP attribute-encoding rule (also encodes `"` and `'`) and use it for the two `href` interpolations. Element-text usages keep the existing `escapeHtml` and remain unchanged. A short comment on each helper documents the contexts they cover so future fields are wired up correctly. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
7a4216c528 |
refactor: rename readBody to readErrorBody and cap body size (#1246)
## Summary Follow-up to #1241. Two small tweaks to the `readBody` helper: - **Rename `readBody` → `readErrorBody`.** The helper is only ever called on the error path (after a non-2xx status check), where we want a small string for diagnostics. The generic name made it look reusable on the success path, where streaming JSON decoding is the right approach. The new name pins the intended use down. - **Cap the read with `io.LimitReader` (8 KiB).** Defense in depth — error diagnostics never need more than a few KB, and we shouldn't buffer an arbitrarily large body from an upstream just to format an error message. 8 KiB is well above any realistic GitHub API or JWKS error response. No behavior change on the happy path. On the unhappy path, error messages are now bounded. ## Test plan - [x] `go build ./...` - [x] `go test ./internal/api/handlers/v0/auth/...` 🤖 Generated with [Claude Code](https://claude.com/claude-code) |
||
|
|
6f9bd6661c |
refactor: extract readBody helper to remove duplicate io.ReadAll calls (#1241)
The same pattern for reading an error response body appeared in three places across the auth handlers: - `internal/api/handlers/v0/auth/github_at.go` (twice) - `internal/api/handlers/v0/auth/github_oidc.go` (once) A shared `readBody` helper function added to `common.go` now handles this in one place. The `io` import is removed from both files since it is no longer used directly there. --------- Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
dfaa8f3b82 |
auth/oidc: test slice-typed extra claims comparison (#1245)
## Summary Follow-up to #1238 (closes #988). Adds direct unit-test coverage for the `claimMatches` helper, which was the actual change in #1238. `claimMatches` and `toAnySlice` are unexported, so the tests live in `oidc_internal_test.go` (`package auth`) — same pattern as `http_internal_test.go`. Cases covered: - scalar/scalar match and mismatch - scalar actual against array expected (both directions of overlap) - array actual against scalar expected - **array/array** — pre-#1238 this combination panicked with `comparing uncomparable type []interface {}` - `[]string` typed slice (exercises the typed-slice branch of `toAnySlice`, which `[]any` skips) - non-string scalars (int, bool) - empty actual array Test values use single letters (`x`, `y`, `p`, `q`) rather than role labels — only the relationships matter, and short tokens keep `goconst` quiet. ## Test plan - [x] `go test ./internal/api/handlers/v0/auth/...` — all 13 subtests pass - [x] `golangci-lint run ./internal/api/handlers/v0/auth/...` — no new issues vs main |
||
|
|
811046c4ce |
auth/oidc: support slice-typed extra claims via overlap match (#1238)
Closes #988. Direct `actualValue != expectedValue` fails when the token claim is an array (groups, roles, scp, aud). Switch to a slice-aware any-of overlap so OIDC list claims are validated correctly. |
||
|
|
f3308d16f5 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.233.0 to 3.234.0 in /deploy (#1237)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.233.0 to 3.234.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.234.0</h2> <h2>3.234.0 (2026-05-01)</h2> <h3>Features</h3> <ul> <li> <p>[cli/cloud] Add <code>pulumi cloud api describe</code> for inspecting the parameters, request body, and response schema of any Pulumi Cloud API operation, with text, markdown, and JSON output</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22770">#22770</a></p> </li> <li> <p>[cli/cloud] Add <code>pulumi cloud api list</code> for browsing every endpoint exposed by the Pulumi Cloud OpenAPI spec, with table and JSON output</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22769">#22769</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li>[engine] Revert changes to property path parsing that resulted in errors for currently valid paths</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.234.0 (2026-05-01)</h2> <h3>Features</h3> <ul> <li> <p>[cli/cloud] Add <code>pulumi cloud api describe</code> for inspecting the parameters, request body, and response schema of any Pulumi Cloud API operation, with text, markdown, and JSON output</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22770">#22770</a></p> </li> <li> <p>[cli/cloud] Add <code>pulumi cloud api list</code> for browsing every endpoint exposed by the Pulumi Cloud OpenAPI spec, with table and JSON output</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22769">#22769</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li>[engine] Revert changes to property path parsing that resulted in errors for currently valid paths</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
648da259b0 |
build(deps): bump github.com/caarlos0/env/v11 from 11.4.0 to 11.4.1 (#1236)
Bumps [github.com/caarlos0/env/v11](https://github.com/caarlos0/env) from 11.4.0 to 11.4.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/caarlos0/env/releases">github.com/caarlos0/env/v11's releases</a>.</em></p> <blockquote> <h2>v11.4.1</h2> <h2>Changelog</h2> <h3>Bug fixes</h3> <ul> <li>6daeb06ac7e3c9532a7eaa5768d45917393b7480: fix: use Key instead of OwnKey in rawEnvVars to properly reference existing defaults in complex structs (<a href="https://redirect.github.com/caarlos0/env/issues/412">#412</a>) (<a href="https://github.com/AndrewChubatiuk"><code>@AndrewChubatiuk</code></a>)</li> </ul> <h3>Documentation updates</h3> <ul> <li>1ff55e6c9733833ce75d62b345916a407dbe4158: docs: adaptive starchart (<a href="https://redirect.github.com/caarlos0/env/issues/416">#416</a>) (<a href="https://github.com/alexandear"><code>@alexandear</code></a>)</li> </ul> <h3>Other work</h3> <ul> <li>cf4a9682420b025e44b4773fd7ee0be48bb68b2f: ci(deps): bump the actions group with 3 updates (<a href="https://redirect.github.com/caarlos0/env/issues/411">#411</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>33faf6f333c2c3dacef2991825f8e03960a2c0cb: ci(deps): bump the actions group with 3 updates (<a href="https://redirect.github.com/caarlos0/env/issues/417">#417</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>0cb635b62488f4d310809a82a8832cedc9aa94eb: ci(deps): bump the actions group with 6 updates (<a href="https://redirect.github.com/caarlos0/env/issues/415">#415</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>a72d89a8930fc800372a6a338a1acf33e5cc3a56: ci: update release config (<a href="https://github.com/caarlos0"><code>@caarlos0</code></a>)</li> </ul> <hr /> <p><em>Released with <a href="https://goreleaser.com/pro">GoReleaser Pro</a>!</em></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
23f4fda297 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.232.0 to 3.233.0 in /deploy (#1234)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.232.0 to 3.233.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.233.0</h2> <h2>3.233.0 (2026-04-30)</h2> <h3>Features</h3> <ul> <li> <p>[auto/python] Expose the auto-generated Pulumi CLI interface as <code>workspace.cli_api</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/22638">#22638</a></p> </li> <li> <p>[cli] Add encrypted logging to ~/.pulumi/logs; use the PULUMI_ENABLE_AUTOMATIC_LOGGING feature flag to turn it on <a href="https://redirect.github.com/pulumi/pulumi/pull/22494">#22494</a></p> </li> <li> <p>[cli] Implement the <code>filesystem__grep</code> and <code>filesystem__content_replace</code> local tools for <code>pulumi neo</code>. <code>grep</code> runs a regex search across files in the project root with an optional <code>include</code> glob filter and returns results in <code>path:lineno: line</code> form. <code>content_replace</code> performs a literal multi-file search-and-replace with a <code>file_pattern</code> glob and <code>dry_run</code> preview mode. Both tools skip binary files, hidden directories, and <code>node_modules</code>, and reject paths outside the project root. Their input schemas match the cloud-side tool definitions.</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22655">#22655</a></p> </li> <li> <p>[cli] Add <code>pulumi_preview</code> and <code>pulumi_up</code> as local tools for the experimental <code>pulumi neo</code> agent. The Neo TUI renders a persistent bordered block for each operation that streams changed resources and diagnostics as the engine runs and finalizes with a summary of the op counts. Hidden behind PULUMI_EXPERIMENTAL.</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22697">#22697</a></p> </li> <li> <p>[engine] Add <code>List</code> to the provider protocol and schema <a href="https://redirect.github.com/pulumi/pulumi/pull/22693">#22693</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[engine] Return a clear error when two installed plugins claim the same default provider package name (for example, a native <code>scaleway</code> provider alongside a <code>terraform-provider</code> bridge parameterized as <code>scaleway</code>) instead of panicking with "Should not have seen an older plugin if sorting is correct!" <a href="https://redirect.github.com/pulumi/pulumi/pull/22679">#22679</a></p> </li> <li> <p>[programgen] Do not wrap a <code>call(...)</code> on a method whose return type is marked plain in an Output. Previously PCL bound every method call's return type as <code>Output<T></code>, which caused downstream program-gen to emit broken <code>.apply(...)</code>/<code>.ApplyT(...)</code> traversals against plain struct returns (e.g. methods with <code>liftSingleValueMethodReturns=true</code> or <code>ReturnTypePlain=true</code>).</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22696">#22696</a></p> </li> <li> <p>[backend/diy] When using a backend url containing creds (e.g. PostgreSQL conn string), mask user:pass as in lock-related error messages <a href="https://redirect.github.com/pulumi/pulumi/pull/22701">#22701</a></p> </li> <li> <p>[codegen/go] Generate unqualified <code>Provider</code> references for the package's own provider resource. Previously the Go codegen always emitted <code><pkg>.Provider</code> even when the reference appeared inside <code><pkg></code></p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.233.0 (2026-04-30)</h2> <h3>Features</h3> <ul> <li> <p>[auto/python] Expose the auto-generated Pulumi CLI interface as <code>workspace.cli_api</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/22638">#22638</a></p> </li> <li> <p>[cli] Add encrypted logging to ~/.pulumi/logs; use the PULUMI_ENABLE_AUTOMATIC_LOGGING feature flag to turn it on <a href="https://redirect.github.com/pulumi/pulumi/pull/22494">#22494</a></p> </li> <li> <p>[cli] Implement the <code>filesystem__grep</code> and <code>filesystem__content_replace</code> local tools for <code>pulumi neo</code>. <code>grep</code> runs a regex search across files in the project root with an optional <code>include</code> glob filter and returns results in <code>path:lineno: line</code> form. <code>content_replace</code> performs a literal multi-file search-and-replace with a <code>file_pattern</code> glob and <code>dry_run</code> preview mode. Both tools skip binary files, hidden directories, and <code>node_modules</code>, and reject paths outside the project root. Their input schemas match the cloud-side tool definitions.</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22655">#22655</a></p> </li> <li> <p>[cli] Add <code>pulumi_preview</code> and <code>pulumi_up</code> as local tools for the experimental <code>pulumi neo</code> agent. The Neo TUI renders a persistent bordered block for each operation that streams changed resources and diagnostics as the engine runs and finalizes with a summary of the op counts. Hidden behind PULUMI_EXPERIMENTAL.</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22697">#22697</a></p> </li> <li> <p>[engine] Add <code>List</code> to the provider protocol and schema <a href="https://redirect.github.com/pulumi/pulumi/pull/22693">#22693</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[engine] Return a clear error when two installed plugins claim the same default provider package name (for example, a native <code>scaleway</code> provider alongside a <code>terraform-provider</code> bridge parameterized as <code>scaleway</code>) instead of panicking with "Should not have seen an older plugin if sorting is correct!" <a href="https://redirect.github.com/pulumi/pulumi/pull/22679">#22679</a></p> </li> <li> <p>[programgen] Do not wrap a <code>call(...)</code> on a method whose return type is marked plain in an Output. Previously PCL bound every method call's return type as <code>Output<T></code>, which caused downstream program-gen to emit broken <code>.apply(...)</code>/<code>.ApplyT(...)</code> traversals against plain struct returns (e.g. methods with <code>liftSingleValueMethodReturns=true</code> or <code>ReturnTypePlain=true</code>).</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22696">#22696</a></p> </li> <li> <p>[backend/diy] When using a backend url containing creds (e.g. PostgreSQL conn string), mask user:pass as in lock-related error messages <a href="https://redirect.github.com/pulumi/pulumi/pull/22701">#22701</a></p> </li> <li> <p>[codegen/go] Generate unqualified <code>Provider</code> references for the package's own provider resource. Previously the Go codegen always emitted <code><pkg>.Provider</code> even when the reference appeared inside <code><pkg></code> itself, producing identifiers that would not compile. Affects generated code for method return</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
46bbe0dba3 |
build(deps): bump cloud.google.com/go/kms from 1.29.0 to 1.30.0 (#1233)
Bumps [cloud.google.com/go/kms](https://github.com/googleapis/google-cloud-go) from 1.29.0 to 1.30.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-cloud-go/releases">cloud.google.com/go/kms's releases</a>.</em></p> <blockquote> <h2>kms: v1.30.0</h2> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/kms/v1.29.0...kms/v1.30.0">v1.30.0</a> (2026-04-30)</h2> <h2>retail: v1.30.0</h2> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/retail/v1.29.0...retail/v1.30.0">v1.30.0</a> (2026-04-30)</h2> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-cloud-go/blob/main/documentai/CHANGES.md">cloud.google.com/go/kms's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/documentai/v1.29.0...documentai/v1.30.0">1.30.0</a> (2024-06-05)</h2> <h3>Features</h3> <ul> <li><strong>documentai:</strong> Make Layout Parser generally available in V1 (<a href="https://redirect.github.com/googleapis/google-cloud-go/issues/10286">#10286</a>) (<a href=" |
||
|
|
42092742ce |
deploy: update prod to v1.7.6 (#1232)
## Summary - Bumps prod imageTag from \`1.7.5\` to \`1.7.6\`. ## Test plan - [ ] Smoke staging at https://staging.registry.modelcontextprotocol.io - [ ] Roll out via Pulumi - [ ] Confirm prod health post-rollout: \`curl https://registry.modelcontextprotocol.io/v0/version\` shows \`1.7.6\` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
db43896209 |
docs: document GitHub OIDC audience binding for self-hosters and CI users (#1230)
## Summary Follow-up to #1229. Three small doc additions so the new audience requirement is discoverable without reading the source: - `.env.example` lists `MCP_REGISTRY_GITHUB_OIDC_AUDIENCE` alongside the other registry env vars, with a note that the value must match the scheme+host that publishers pass via `--registry`. - The publisher CLI reference (`docs/reference/cli/commands.md`) explains that the CLI derives the audience from `--registry` and that self-hosters must set the matching env var on the registry side. - The GitHub Actions troubleshooting table (`docs/modelcontextprotocol-io/github-actions.mdx`) maps the new `invalid audience` error to the user-facing fix (upgrade `mcp-publisher`). No code changes — docs only. ## Test plan - [ ] CI green (markdown lint / link checks if any) - [ ] Eyeball-render the troubleshooting table on the modelcontextprotocol.io preview to confirm the new row formats correctly 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
3f89fc2b1f |
auth: bind GitHub OIDC token exchange to a per-deployment audience (#1229)
## What this does The publisher CLI now derives the OIDC audience to request from the `--registry` URL instead of using a fixed constant, and the server validates the token's `aud` claim against a new per-deployment env var (`MCP_REGISTRY_GITHUB_OIDC_AUDIENCE`). Production sets this env var to `https://registry.modelcontextprotocol.io` (and per-environment URL elsewhere), so the deployment only accepts tokens that were requested for it. ## Compatibility This is a breaking change for older `mcp-publisher` binaries that still request the legacy hardcoded audience. After this rolls to a deployment, users on old `mcp-publisher` will see a clear `invalid audience: expected …, got […]` error and need to upgrade. Users following the documented `releases/latest` install pattern get the new binary automatically. ## Test plan - [ ] CI green - [ ] Run a synthetic publish from a real GitHub Actions workflow against staging after deploy - [ ] Confirm an older `mcp-publisher` against the same staging deploy returns the expected `invalid audience` error 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
88bbb851ad |
deploy: update prod to v1.7.5 (#1228)
## Summary
- Bumps prod imageTag from `1.7.4` to `1.7.5`.
- Promotes the security release tagged at v1.7.5 (#1227 merged at
|
||
|
|
1201cbd82b |
security: fix open redirect and add small hardening (#1227)
## What this does Fixes an open redirect plus a handful of small, mostly-invisible hardening changes around it. ## What's in it - **The fix**: trailing-slash redirects no longer let `//evil.com/` redirect off-host. - **SSRF block** on the DNS/HTTP namespace verification — refuses to dial loopback, RFC1918, link-local, multicast, CGNAT, or IP-literal/single-label \"domains\". - **Slow-client guard**: `ReadTimeout` and `IdleTimeout` on the HTTP server (no `WriteTimeout` — would risk cutting off legitimate multi-package publishes). - **Defence-in-depth headers** on the UI (`/`) and 404 responses. - **5xx responses** stop leaking raw DB error text to clients (logged server-side instead). - **Search filter** stops treating `%` and `_` as wildcards. - **Validators**: PyPI/NuGet identifiers URL-escaped before fetching; MCPB no longer follows redirects. - **Misc**: `Version` field bounded to 255 chars; logs quote user input; `BlockedNamespaces` denylist now catches subdomain claimants. Each change is its own commit so they can be reviewed (or reverted) independently. ## Test plan - [ ] CI green - [ ] Synthetic publish in staging for each package type (npm, pypi, nuget, oci, mcpb) — confirms validator changes don't regress - [ ] Quick browser check of `/` after deploy to confirm UI still loads with the new CSP - [ ] `curl https://<host>//evil.com/` — confirm the open redirect is closed 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
f7663fe91a |
deploy: update prod to v1.7.4 (#1226)
## Summary Promotes [v1.7.4](https://github.com/modelcontextprotocol/registry/releases/tag/v1.7.4) (#1225) to production: registry pod memory request `256Mi → 512Mi`, limit `512Mi → 1Gi`. ## Why #1221 doubled pgxpool `MaxConns` 30→60 per pod without bumping the registry pod memory limit. pgxpool keeps per-connection state in the Go process (prepared statement cache, scratch buffers, row iteration state) so peak per-pod memory shifted from ~330 MB to ~450 MB against the 512 MiB limit. Pod `tx49f` was OOMKilled at 17:01 UTC on 2026-04-29. ## Validation so far - Staging deployed cleanly via `deploy-staging.yml` after #1225 merged - Both staging pods running with `req=512Mi limit=1Gi` ✓ - Rolling update was clean — no failed health checks during the transition - Both pods spread across nodes (q716 + 7exo) ## Deployment **Zero downtime** — Deployment template change only, rolling update with `maxSurge: 1, maxUnavailable: 0`. No PG involvement (no `max_connections` change, no shared_preload_libraries change). ## Test plan - [x] v1.7.4 release built and pushed (`ghcr.io/modelcontextprotocol/registry:1.7.4`) - [x] Staging deployed cleanly with new limits - [ ] Prod Pulumi run applies cleanly; rolling update completes - [ ] Prod pods come up with `req=512Mi limit=1Gi` - [ ] After 24h: no OOMKills on either pod, peak memory stays under ~600 MB 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
5dcae5b3ce |
fix(deploy): bump registry pod memory to match doubled pgxpool size (#1225)
## Summary Follow-up to #1221. That PR doubled pgxpool `MaxConns` from 30 to 60 per pod without bumping the registry pod memory limit. pgxpool keeps per-connection state in the Go process (prepared statement cache, scratch buffers, row iteration state), so memory grew roughly proportionally — peak per-pod usage shifted from ~330 MB to ~450 MB against a 512 MiB limit. ## What surfaced it Pod `tx49f` was OOMKilled at 17:01 UTC on 2026-04-29 (`exitCode 137`, `reason: OOMKilled`). Memory history from Cloud Monitoring confirms the regression: | Pods | Peak 30-min memory | |------|-------------------:| | Pre-#1221 (`MaxConns=30`) | 178–333 MB | | **Post-#1221** (`MaxConns=60`) | **437–449 MB** | | Old limit | **512 MiB** ← right at the edge | Other pod was at 394 MB at the time of inspection — could OOM again. ## Fix `deploy/pkg/k8s/registry.go:217-225`: | | Before | After | |---|-------:|------:| | `requests.memory` | 256 MiB | **512 MiB** | | `limits.memory` | 512 MiB | **1 GiB** | 1 GiB is ~2× the current peak under load — gives room for traffic spikes without immediate OOM risk. Either node has 4–5 GiB free allocatable memory, so the new request fits comfortably. ## Test plan - [x] `go build ./...` clean - [x] `golangci-lint run` clean - [ ] After release + prod promotion: pod memory stabilises around 450 MB peak with no OOMKills - [ ] After release + prod promotion: tx49f restartCount stops climbing (currently at 5) ## Deployment Zero downtime — Deployment template change only, rolling update with `maxSurge: 1, maxUnavailable: 0`. **No PG involvement** (no `max_connections` change, no shared_preload_libraries change). Same shape as a normal v1.7.x image promotion. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
0a97e59ecb |
deploy: update prod to v1.7.3 (#1223)
## Summary Promotes [v1.7.3](https://github.com/modelcontextprotocol/registry/releases/tag/v1.7.3) to production. Contents: - **#1220** — `RemoteURL` filter SQL rewritten to use JSONB containment (`@>`) instead of `EXISTS jsonb_array_elements`. The new form is GIN-indexable; the old form forced a full table scan. Local benchmark: 40,398 → 294 buffer reads, 17 ms → 1.6 ms. Maps to prod's 10,005 ms cold-cache observation. - **#1221** — pgxpool `MaxConns 30→60`, `MinConns 5→10`. PG `max_connections 100→200`. Explicit PG `resources:` block (was unset). ## What this addresses - **#1220**: yesterday's 17:08 UTC `Publish Endpoint Latency` alert (`dev.storage/mcp` publish took 14.8s with `remotes_ms=10980` — pinpointed by the per-phase slog from #1215). - **#1221**: yesterday's 17:35–17:40 UTC `Availability dropped below 95%` alert and 18:17 UTC `Publish Endpoint Latency` re-fire. Both were scraper-driven concurrency on `/v0/servers` (~15 req/s sustained from ServiceNow + others). With the bumped pool, the queue at the Go HTTP layer should clear faster instead of blowing up to 20–35s nginx-level latencies. ## Deployment caveat The PG `max_connections` change is a postmaster-level setting → CNPG triggers a PG restart on the next prod Pulumi run. With `instances: 1` this is brief downtime — staging took **~30s** during the equivalent restart, with **one registry pod bouncing once** on its 8-attempt DB-retry budget before recovering on the next kubelet restart. **Time the merge for a low-traffic UTC window.** Alert history suggests very early UTC (02:00–04:00) is quietest. ## Resource impact PG node memory is currently 39% (~2.4 GiB / 6 GiB allocatable). Worst-case PG memory growth with `max_connections=200` lands around 3–4 GiB, putting the node at ~65% — fits with headroom. Empirically, prod PG has peaked at **413 MiB** in the last 30h of incident data, so the proposed 4 GiB limit is ~10× the historical max — guardrail not constraint. ## Post-merge CNPG handles `pg_stat_statements` extension creation automatically (no manual `CREATE EXTENSION` step needed — it was already done in v1.7.2's deploy). Verify after deploy: ```bash PATH=/opt/homebrew/share/google-cloud-sdk/bin:$PATH # max_connections actually changed kubectl exec -i registry-pg-1 -c postgres \ --context gke_mcp-registry-prod_us-central1-b_mcp-registry-prod \ -- psql -U postgres -tAc "SHOW max_connections" # expect: 200 # resources block applied kubectl get pod registry-pg-1 \ --context gke_mcp-registry-prod_us-central1-b_mcp-registry-prod \ -o jsonpath='{.spec.containers[?(@.name=="postgres")].resources}{"\n"}' # pgxpool MaxConns reflected (registry app uses 60 per pod after restart) kubectl exec -i registry-pg-1 -c postgres \ --context gke_mcp-registry-prod_us-central1-b_mcp-registry-prod \ -- psql -U postgres -tAc "SELECT count(*) FROM pg_stat_activity WHERE datname='app'" ``` ## Test plan - [x] v1.7.3 release built and pushed (`ghcr.io/modelcontextprotocol/registry:1.7.3`) - [x] Staging deployed cleanly; PG restarted and came back with `max_connections=200`; one staging pod bounced as expected - [ ] Prod Pulumi run applies cleanly; brief PG restart - [ ] Confirm `SHOW max_connections` returns 200 on prod - [ ] Confirm `publish complete` events show `remotes_ms` < 10ms - [ ] Watch for any "too many connections" errors during the rollout window (none expected — Pulumi orders CNPG cluster before Deployment, so PG accepts the new conn limit before pgxpool tries to use it) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
736d376858 |
fix(db): raise pgxpool MaxConns + PG max_connections + set PG resources (#1221)
## Summary Follow-up to #1215 and #1220. Both of those addressed *individual* slow queries; this PR addresses *concurrency* — under today's scraper load the cursor query is fast on average (mean 42ms) but the connection pool saturates and queue depth blows up at the Go HTTP layer. ## Diagnosis `pg_stat_statements` (added in #1215) made this possible to see: ``` max_ms mean_ms calls template 10,755 41.8 94,009 plain cursor pagination, no filter 7,277 214.7 14,770 ILIKE substring filter 7,638 330.8 7,656 ILIKE substring + is_latest filter ``` Mean times are healthy. But `max_exec_time` of 7–10s on the cursor query, combined with sustained ~15 req/s from scrapers (ServiceNow's 148.139.x.x range, anonymous `node` user-agent, etc) saturates `MaxConns=30 × 2 pods = 60`. New requests queue at the Go HTTP layer; nginx-side p99 hits 35s; eventually scrapers time out at 60s, retry, and amplify the queue. Today's two ongoing alerts are both this pattern: - 17:35–17:40 UTC `Availability dropped below 95%` — 4,526 GET requests in 5 min, hundreds of 504s - 18:17 UTC `Publish Endpoint Latency` re-fire — same scraper concurrency dragging the publish path Critically, the symptoms today were also visible during yesterday's incident, but yesterday's broken cursor (#1215) was the dominant cause. After #1215 the cursor is fast individually; concurrency now becomes the next bottleneck. ## Changes ### pgxpool (`internal/database/postgres.go`) | Setting | Before | After | |---------|-------:|------:| | `MaxConns` | 30 | **60** per pod | | `MinConns` | 5 | **10** per pod | | `MaxConnIdleTime` | 30 min | (unchanged) | | `MaxConnLifetime` | 2 h | (unchanged) | 2 pods × 60 = 120 total app connections. Cuts queue depth roughly in half at current scraper load. ### PG cluster (`deploy/pkg/k8s/postgres.go`) - `max_connections: 100 → 200` — required to support the larger pool. 120 (app) + ~10 (PG internals: autovacuum, replication, admin) + 70 headroom. - Added explicit `resources:` block — previously the pod had no resource limits, making node-level OOM behaviour unpredictable. | | Request | Limit | |---|--------:|------:| | memory | 512Mi | **4Gi** | | cpu | 200m | 1500m | ## Resource budget | Node | Now | After | |------|----:|------:| | dy89 (PG node) | 39% mem (~2.4 GiB / 6 GiB) | ~65% mem worst-case (~3.9 GiB) | | 2yxm | 36% mem | unchanged | Both nodes well within capacity. CPU usage <50% on both, plenty of headroom. PG worst-case memory math: - 200 conns × ~15 MB per backend = 3 GiB - + `shared_buffers` 128 MiB - + `maintenance_work_mem`, OS overhead, etc. - ≈ 3–4 GiB total ## Deployment caveat `max_connections` is a postmaster-level setting → CNPG triggers a PG restart on the change. Same in-pod restart shape as the pg_stat_statements deploy yesterday — registry pods see ~30s of DB unavailability, covered by v1.7.1's retry-with-backoff (8 attempts, 1→8s capped). One registry pod may bounce once before recovering, like yesterday. **Time the merge for a low-traffic UTC window.** Order of operations matters within the deploy itself: 1. Pulumi applies the new CNPG spec → PG restarts with `max_connections=200` 2. Rolling deploy of registry pods picks up `MaxConns=60` config 3. New conns are accepted up to 200 limit Pulumi's standard ordering does step 1 before step 2 in this scenario (Pulumi resource graph: CNPG cluster precedes Deployment). If for any reason it doesn't, the worst case is `too many connections` errors during a small window — Self-correcting once the rollout completes. ## Test plan - [x] `go build ./...` clean for app + deploy - [x] `make lint` clean - [x] `go test -race ./internal/database/...` green - [ ] On merge: staging deploy applies the spec change cleanly; PG restarts; pool reaches 60 max - [ ] On prod deploy: same; verify no `too many connections` errors during the rollout window - [ ] After deploy: query `SHOW max_connections` returns 200; query pg_stat_statements after a scraper burst, confirm `max_exec_time` for cursor query no longer hits 10s ## Out of scope - **ILIKE substring search** (`server_name ILIKE '%foo%'`) is unindexable. Three pg_stat_statements variants run with means 141–333ms and max 4–7s. Worth replacing with a `pg_trgm` GIN index or full-text search in a separate PR. - **Per-IP nginx rate limiting** — defends against scraper retry storms regardless of pool size. - **`Cache-Control` on `/v0/servers`** — let nginx absorb scraper-repeated cursors. - **Pre-existing `superfluous WriteHeader` warnings** — separate Huma framework issue. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
54cbe2473c |
fix(list): use JSONB containment for RemoteURL filter (GIN-indexable) (#1220)
## Summary Same shape of bug as #1215's cursor fix, different filter. The RemoteURL filter built its WHERE predicate using `jsonb_array_elements` + `->>` extraction, which the planner can't translate into a GIN search. Replaced with a JSONB containment predicate `@>` that uses `idx_servers_json_remotes`. ## Diagnosis (from the per-phase publish slog #1215 added) Today's first publish-latency alert at 17:08 UTC pointed straight at this: ``` publish complete server_name=dev.storage/mcp version=1.10.1 total_ms=14822 validate_ms=0 lock_ms=238 remotes_ms=10980 version_checks_ms=535 unmark_ms=3014 create_ms=53 ``` `remotes_ms=10,980` on a server with **one** remote URL pointed at `validateNoDuplicateRemoteURLs`, which runs the RemoteURL filter against the database. EXPLAIN ANALYZE on prod confirmed: ``` Filter: (status != 'deleted') AND EXISTS(SubPlan 1) Rows Removed by Filter: 21,092 ← scans the whole table Buffers: shared hit=20,028 Execution Time: 10,005 ms ``` ## Fix `internal/database/postgres.go:99` rewritten: ```sql -- before (planner can't use GIN index for this) EXISTS (SELECT 1 FROM jsonb_array_elements(value->'remotes') AS remote WHERE remote->>'url' = $1) -- after (GIN-indexable) value -> 'remotes' @> jsonb_build_array(jsonb_build_object('url', $1::text)) ``` Semantically equivalent for our schema (`url` is always a string, NOT NULL). ## Local benchmark — 20K rows, prod-shaped JSONB (~1KB/row) | Form | Buffer hits | Index used | Time | |------|------------:|------------|-----:| | OLD | 40,398 | none — full scan | 17.0 ms | | NEW | **294** | **`idx_servers_json_remotes` GIN bitmap** | **1.6 ms** | Maps to prod's 10,005 ms cold-cache observation — same shape of speedup we got from the cursor fix. ## Scope honesty This PR addresses the **publish slowness path** (`validateNoDuplicateRemoteURLs` in the publish transaction). It directly resolves today's 17:08 UTC `Publish Endpoint Latency` alert. It does **not** address: - Today's 17:35–17:40 UTC `Availability dropped below 95%` alert. Per-investigation: only 4 publishes happened in the entire 17:00–17:50 window and zero during the burst minutes — so my initial "concurrent slow publishes starved the pool" hypothesis was wrong. The actual cause was scraper-driven concurrency (4,500+ requests in 5 min) on plain cursor pagination + ILIKE substring search, where individual queries are fast (mean 42 ms) but tail latency under concurrency reaches 10 s server-side and 20–35 s nginx-level due to pool queueing. - The 18:17 UTC `Publish Endpoint Latency` re-fire (same scraper-driven concurrency). A follow-up PR will raise pool size + PG `max_connections` + add explicit PG resource limits to absorb concurrency without queue blowup. That fix has a different shape (config) and a different risk profile (PG restart for `max_connections`); kept separate so this surgical SQL change can ship cleanly. ## Test plan - [x] `go build ./...` clean - [x] `make lint` clean - [x] `go test -race ./internal/database/... ./internal/service/...` green — existing `TestPostgreSQL_ListServers/filter by remote URL` covers semantic correctness - [x] EXPLAIN ANALYZE comparison locally on 20K rows + prod-shaped JSONB - [ ] After merge + deploy: verify on prod via `EXPLAIN ANALYZE`; confirm `remotes_ms` in `publish complete` slog drops to single-digit ms ## Out of scope (separate follow-ups) - pgxpool `MaxConns` / `MinConns` bump + PG `max_connections` raise + PG `resources` limits — addresses the cursor-tail and ILIKE-search concurrency that this PR doesn't touch - Per-IP rate limiting at nginx — defends against scraper retry storms regardless of query speed - `Cache-Control` headers on `/v0/servers` — let nginx absorb scraper repeats - Pre-existing `superfluous WriteHeader` warnings — separate Huma framework issue - ILIKE substring search on `server_name` is unindexable — could be replaced with `pg_trgm` GIN index or full-text search 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
a490b6f1ec |
build(deps): bump goreleaser/goreleaser-action from 7.1.0 to 7.2.1 in the actions group (#1218)
Bumps the actions group with 1 update: [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action). Updates `goreleaser/goreleaser-action` from 7.1.0 to 7.2.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/goreleaser/goreleaser-action/releases">goreleaser/goreleaser-action's releases</a>.</em></p> <blockquote> <h2>v7.2.1</h2> <p>This fully removes the usage of the old <code>nightly</code> moving tag.</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/goreleaser/goreleaser-action/compare/v7.2.0...v7.2.1">https://github.com/goreleaser/goreleaser-action/compare/v7.2.0...v7.2.1</a></p> <h2>v7.2.0</h2> <h2>What's Changed</h2> <ul> <li>test: cover install across release eras by <a href="https://github.com/caarlos0"><code>@caarlos0</code></a> in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/555">goreleaser/goreleaser-action#555</a></li> <li>feat: add <code>version-file</code> input by <a href="https://github.com/caarlos0"><code>@caarlos0</code></a> in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/556">goreleaser/goreleaser-action#556</a></li> <li>feat: resolve nightly to latest vX.Y.Z-<!-- raw HTML omitted -->-nightly release by <a href="https://github.com/caarlos0"><code>@caarlos0</code></a> in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/558">goreleaser/goreleaser-action#558</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/goreleaser/goreleaser-action/compare/v7...v7.2.0">https://github.com/goreleaser/goreleaser-action/compare/v7...v7.2.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
3764acad40 |
build(deps): bump github.com/pulumi/pulumi-kubernetes/sdk/v4 from 4.29.0 to 4.30.0 in /deploy (#1217)
Bumps [github.com/pulumi/pulumi-kubernetes/sdk/v4](https://github.com/pulumi/pulumi-kubernetes) from 4.29.0 to 4.30.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/releases">github.com/pulumi/pulumi-kubernetes/sdk/v4's releases</a>.</em></p> <blockquote> <h2>v4.30.0</h2> <p>No release notes provided.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/blob/master/CHANGELOG.md">github.com/pulumi/pulumi-kubernetes/sdk/v4's changelog</a>.</em></p> <blockquote> <h2>4.30.0 (April 24, 2026)</h2> <h3>Fixed</h3> <ul> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4295">#4295</a>Fix kustomize.v2.Directory resource output type in the schema to properly support array outputs. Previously, the resources field was incorrectly typed as a <code>string</code> in the schema. This fix updates the type to an array of <code>Any</code>, aligning the schema with the provider's Go implementation (<code>pulumi.ArrayOutput</code>). This resolves a regression that caused the Kustomize v2 resource to fail in the Python SDK.</li> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/2997">#2997</a> Stop stripping null values when unmarshaling, fixing Helm chart default deletion and <code>valueYamlFiles</code> null handling. Deprecate <code>allowNullValues</code> (no longer needed).</li> </ul> <h3>Changed</h3> <ul> <li>Upgrade Kubernetes schema and libraries to v1.35.4.</li> <li>Upgrade Kubernetes schema and libraries to v1.36.0.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
a4d9d82920 |
deploy: update prod to v1.7.2 (#1216)
## Summary Promotes [v1.7.2](https://github.com/modelcontextprotocol/registry/releases/tag/v1.7.2) (PR #1215) to production: - **Row-constructor cursor pagination** — fixes the 760ms list query that was the root cause of today's pool-exhaustion alerts. Local benchmark shows /v0/servers paginated requests dropping from ~30ms (cold cache, 100K rows) to ~0.05ms. - **Per-phase publish slog** — `publish complete` events now include validate / lock / remotes / version_checks / unmark / db_create timings so the next slow publish is self-diagnostic. - **pg_stat_statements** — aggregate query visibility we didn't have during today's incident. ## Deployment caveat The CNPG cluster spec change for `pg_stat_statements` triggers an in-pod postgres restart on the next prod Pulumi run. Staging took **~45–70s of registry unavailability** during the equivalent restart. The DB retry-with-backoff in v1.7.1 covers most of it, but registry pods may bounce once before they reconnect (one staging pod hit `Failed to connect after 8 attempts` then recovered on its next restart). **Time the merge for a low-traffic UTC window** — the alert history suggests very early UTC is quietest. ## Post-merge action Once the prod Pulumi run completes, run once on the existing cluster: ```bash PATH=/opt/homebrew/share/google-cloud-sdk/bin:$PATH kubectl exec -i registry-pg-1 -c postgres \ --context gke_mcp-registry-prod_us-central1-b_mcp-registry-prod \ -- psql -U postgres -c "CREATE EXTENSION IF NOT EXISTS pg_stat_statements" ``` Verify: ```bash kubectl exec -i registry-pg-1 -c postgres \ --context gke_mcp-registry-prod_us-central1-b_mcp-registry-prod \ -- psql -U postgres -d app -c " SELECT round(mean_exec_time::numeric, 2) AS mean_ms, calls, substring(query, 1, 80) AS q FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 10;" ``` ## Test plan - [x] v1.7.2 release built and pushed (`ghcr.io/modelcontextprotocol/registry:1.7.2`) - [x] Staging deployed cleanly; `pg_stat_statements` is collecting on staging - [ ] Prod Pulumi run applies cleanly; brief PG restart - [ ] Run `CREATE EXTENSION` on prod - [ ] Confirm `publish complete` events contain per-phase timings on the next publish 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
27af672c5e |
fix(list): use row-constructor cursor + restore per-phase publish timings + enable pg_stat_statements (#1215)
## Summary Three changes from the 2026-04-27 incident: 1. **Cursor SQL fix** — `addCursorCondition` rewritten to use a row-constructor comparison `(server_name, version) > ($1, $2)` instead of the OR-decomposed form. Postgres can index-seek on the row constructor; it can't on the OR form, which scanned from the start of the index and filtered rows before the cursor. Cost grew linearly with cursor depth. 2. **Per-phase publish timings restored** — `createServerInTransaction` was simplified during #1211 review to log only `validate_ms`. The incident showed publishes spending 50+ s in `acquire_lock` / `version_checks` / `db_create` while `validate_ms` reported a few hundred ms — the diagnostic signal was hidden. Restored timings for every phase, refactored into a small `runPhase` helper. 3. **`pg_stat_statements` enabled** in the CNPG cluster spec. We had no aggregate query visibility during the incident — could only EXPLAIN queries we happened to suspect. ## Cursor fix evidence Local benchmark, 100K rows, cold cache: | Form | Rows filtered | Buffer reads | Time | |------|--------------:|-------------:|-----:| | OLD | 80,001 | 7,679 | 31.6 ms | | NEW | 2 | 1 | **0.05 ms** | Maps to prod's measured 8,911 buffer hits → 760 ms. End-to-end API: `/v0/servers?limit=100&cursor=…` returns in 4–7 ms regardless of depth. Risk check: confirmed `(server_name, version)` index exists in that column order (both `servers_pkey` and `idx_servers_name_version`), and both columns are `NOT NULL` so row-constructor comparison can't silently drop rows. ## Tests - New `TestPostgreSQL_PerformanceScenarios/compound_cursor_across_versions_of_same_server` pins multi-version pagination semantics. The existing cursor tests only exercised the fallback (single-component cursor) and degenerate (one version per server) cases. - `make lint` clean, `go test -race ./internal/... ./cmd/...` green. ## Deployment The cursor + slog changes are zero-downtime. The CNPG spec change triggers a brief PG restart (single-instance cluster). After the restart, run once on prod: ```bash kubectl exec -i registry-pg-1 -c postgres \ --context gke_mcp-registry-prod_us-central1-b_mcp-registry-prod \ -- psql -U postgres -c "CREATE EXTENSION IF NOT EXISTS pg_stat_statements" ``` Time the merge for a low-traffic UTC window. v1.7.1's DB retry-with-backoff covers the brief PG restart. ## Out of scope `MaxConns` bump, per-IP rate limiting at nginx, response caching, the pre-existing `superfluous WriteHeader` warnings — separate follow-ups. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
762a4849a6 |
deploy: update prod to v1.7.1 (#1212)
## Summary Promotes [v1.7.1](https://github.com/modelcontextprotocol/registry/releases/tag/v1.7.1) to production. Contents: the hardening + diagnostics from #1211. What's in v1.7.1 (vs v1.7.0): - Pulumi-managed IAM bindings for the default compute SA so fluentbit-gke and the GMP collector can ship logs/metrics (already applied to live cluster manually) - `PodDisruptionBudget` with `minAvailable: 1` + `TopologySpreadConstraints` to keep pods spread across nodes - `StartupProbe` (30 × 5s) covering the new DB-retry budget - Bounded retry-with-backoff on initial DB connect in `cmd/registry/main.go` - Memory request 128→256Mi, limit 256→512Mi - `slog` `validate_ms` timing on the publish path so the next slow `/v0/publish` is self-diagnostic ## Test plan - [x] v1.7.1 release workflow built and pushed image successfully (`ghcr.io/modelcontextprotocol/registry:1.7.1`) - [x] Pulumi.gcpProd.yaml diff is the single-line image bump - [ ] On merge, `deploy-production.yml` rolls out v1.7.1 — watch for clean rolling update (`maxSurge: 1`, `maxUnavailable: 0`) and confirm both pods reach Ready - [ ] After rollout, confirm `Starting MCP Registry Application v1.7.1` shows up in Cloud Logging from the new pods 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
c6d3096d1b |
fix(deploy): manage Cloud Resource Manager API enablement in Pulumi (#1213)
## Summary Follow-up to #1211 to encode the GCP API and IAM dependencies its node-SA bindings rely on. After #1211 merged, the staging deploy hit two undocumented prereqs in sequence — Cloud Resource Manager API not enabled (because `projects.NewIAMMember` calls SetIamPolicy through CRM), then the Pulumi service account missing `roles/resourcemanager.projectIamAdmin`. Both fixed manually to unblock; this PR makes them explicit so they don't bite again. ## Changes **`ensureRequiredAPIs` adopts five GCP APIs** as Pulumi-managed `projects.Service` resources, all with `DisableOnDestroy: false` and `DisableDependentServices: false` so a Pulumi destroy/refactor can never disable a shared API: | API | Why | |-----|-----| | `cloudresourcemanager` | `projects.NewIAMMember` → SetIamPolicy | | `compute` | `compute.GetDefaultServiceAccount` invoke + GKE | | `container` | GKE cluster | | `logging` | fluentbit-gke ships container logs | | `monitoring` | managed Prometheus collector ships metrics | CRM is created explicitly (not in the loop) so callers get a direct reference for `pulumi.DependsOn`. Storage is intentionally **not** Pulumi-managed — Pulumi state itself lives in a GCS bucket, chicken-and-egg. **`grantNodeServiceAccountRoles`** now `DependsOn` the CRM `projects.Service` for the four IAM bindings, and uses `compute.GetDefaultServiceAccount` to derive the SA email (Compute API was already required for GKE — avoids a CRM-dependent project-number lookup). **`deploy/README.md`** — adds `roles/resourcemanager.projectIamAdmin` to the Pulumi SA's required roles and clarifies which APIs must be enabled before the first `pulumi up` (storage, cloudresourcemanager, container) vs. which `ensureRequiredAPIs` adopts. ## Notes `projects.Service` is idempotent against already-enabled APIs — on existing projects (staging/prod), Pulumi adopts the live enablement into state without re-enabling. This was confirmed live: staging deploy went green after the manual unblocks above, validating the runtime model. ## Test plan - [x] `go build ./...` clean for `deploy/` - [x] `golangci-lint run` clean for `deploy/pkg/providers/gcp/...` (one pre-existing `nilnil` at line 61, unrelated) - [x] Manual unblock + green staging deploy verified the runtime behavior this PR encodes - [ ] On merge: staging deploy adopts the existing API enablements without churn, then proceeds normally - [ ] Prod deploy via #1212 (image promotion) inherits the same setup 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
b24d6c7657 |
fix: harden registry availability and add publish phase timings (#1211)
## Summary Daily ~17:00 UTC `Publish Endpoint Latency` and `Availability < 95%` alerts are caused by both registry pods exit-0'ing within seconds of each other and racing with the still-recovering `registry-pg-rw` endpoint on restart. Separately, the default compute SA had no project IAM roles, so `fluentbit-gke` and the GMP collector were silently dropping every log line and time series — which is why none of this was visible in Cloud Logging. All Kubernetes/IAM changes apply uniformly to staging and prod. ## Changes - **GCP IAM** (`deploy/pkg/providers/gcp/provider.go`) — grant the default compute SA `logging.logWriter`, `monitoring.metricWriter`, `monitoring.viewer`, and `stackdriver.resourceMetadata.writer`. Already applied live; this just encodes it in Pulumi. - **Pod resilience** (`deploy/pkg/k8s/registry.go`) — - `PodDisruptionBudget` (`minAvailable: 1`) prevents a synchronized voluntary disruption. - `TopologySpreadConstraints` (`ScheduleAnyway`, hostname) keeps the PDB from deadlocking node drains when both pods co-locate. - `StartupProbe` (30 × 5s = 150s) protects the DB-retry budget from the liveness probe. - Memory bump 128→256Mi request, 256→512Mi limit. - **Startup retry** (`cmd/registry/main.go`) — replace silent `return` on initial DB-ping failure with bounded retry-with-backoff (8 attempts, 1→8s capped, 10s per-attempt). A brief endpoint flap no longer cascades into a restart loop. - **Diagnostic log** (`internal/service/registry_service.go`) — emit `validate_ms` on each publish (success and failure). Validate fans out to npm/PyPI/OCI with 10s per-host timeouts and is the most likely contributor to publish latency. Total request duration is already covered by the existing `http.request.duration` histogram. ## Calibration The IAM, PDB, topology-spread, startup-probe, and DB-retry pieces are mitigations — they reduce blast radius regardless of root cause. The `validate_ms` log is the diagnostic for identifying the trigger when the alert fires next. Single-PG SPOF (`deploy/pkg/k8s/postgres.go:57`) remains a follow-up; today's evidence shows PG was a victim, not the cause. ## Test plan - [x] `go build ./...` and `go vet ./...` clean for both modules - [x] `make lint` clean (12 pre-existing issues under `deploy/` are not in `make lint`) - [x] `go test -race -count=1 ./internal/... ./cmd/...` green - [x] IAM applied live; `fluentbit-gke` and GMP no longer hitting `IAM_PERMISSION_DENIED` - [ ] After deploy, verify the next 17:00 UTC firing surfaces `validate_ms` in Cloud Logging 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
7722031739 |
deploy: update prod to v1.7.0 (#1205)
## Summary - Bumps production image tag from `1.6.0` to `1.7.0` in `deploy/Pulumi.gcpProd.yaml` - Corresponds to the [v1.7.0 release](https://github.com/modelcontextprotocol/registry/releases/tag/v1.7.0) - Notable change: includes #1201 — fixes #1081 (`isLatest` no longer stranded after soft-delete) and ships migration `014_heal_is_latest` that auto-heals affected servers (e.g. `io.github.containers/kubernetes-mcp-server`) on deploy ## Test plan - [ ] Verify Pulumi preview shows only the image tag change - [ ] After deploy, confirm migration 014 ran and `io.github.containers/kubernetes-mcp-server`'s `/versions/latest` returns `0.0.61` (or whichever is highest non-deleted) - [ ] Sample a few unaffected servers and confirm `isLatest` is unchanged - [ ] Confirm overall service health 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
0cb1f6bf52 |
fix: recalculate isLatest after status changes (#1081) (#1201)
## Summary Fixes #1081. When the version flagged `is_latest` was soft-deleted, no other version was promoted, and because `GetCurrentLatestVersion` didn't filter deleted rows, subsequent publishes with a lower semver never became latest — leaving `/v0/servers/{name}/versions/latest` permanently 404. This PR has two parts: ### 1. Code fix — recalculate `is_latest` on every status change - Recalculate `is_latest` after every status mutation (`UpdateServerStatus`, `UpdateAllVersionsStatus`, and the inline status change in `UpdateServer`), in the same transaction that already holds the per-server advisory lock. - Winner selection reuses the existing `CompareVersions` logic: highest non-deleted version gets the flag; if every version is deleted, the highest deleted version keeps it so admin lookups via `includeDeleted=true` still resolve the server (important for restore flows). - New `SetLatestVersion` DB primitive issues two statements (clear old, set new) — `idx_unique_latest_per_server` is a non-deferrable unique partial index, so a single `UPDATE` that flips two rows trips the constraint. ### 2. One-shot migration — heal servers already affected (no manual SQL needed) `014_heal_is_latest.sql` promotes the highest non-deleted version on every server whose `is_latest` flag is on a deleted row (or absent entirely). Picker parses `major.minor.patch` numerically and falls back to `published_at` for non-semver or as a tiebreaker. Heals `io.github.containers/kubernetes-mcp-server` to `0.0.61` automatically and catches any other servers silently affected by the original bug, without hardcoded version numbers. Picker behavior vs. `CompareVersions`: - Standard `M.m.p` semver: matches exactly, including the backport-after-delete case (e.g. published 1.0.1 then 1.0.0 hotfix after deleting 2.0.0 → picks 1.0.1, not 1.0.0). - Non-semver: falls through to `published_at DESC`. Reasonable. - Prereleases (`1.0.0-alpha` vs `1.0.0`): both parse to `(1,0,0)`, tiebreak by `published_at`. Diverges from `CompareVersions` (which always says `1.0.0 > 1.0.0-alpha`). Edge case requires (a) server hit by this bug AND (b) prereleases at the top of the version list. Acceptable; the publisher can flip it with one `mcp-publisher status` call (which now triggers proper recalc thanks to part 1). ## Verification End-to-end curl repro of the exact scenario from the issue, run against both `main` and this branch: **Before (main):** ``` publish 1.0.0 → 200 publish 0.0.59 → 200 PATCH .../1.0.0/status {deleted} → 200 GET /versions/latest → 404 ← bug publish 0.0.60 → 200 GET /versions/latest → 404 ← bug persists, 0.0.60 has isLatest=False ``` **After (this branch):** ``` publish 1.0.0 → 200 publish 0.0.59 → 200 PATCH .../1.0.0/status {deleted} → 200 GET /versions/latest → 200 (0.0.59, isLatest=true) publish 0.0.60 → 200 GET /versions/latest → 200 (0.0.60, isLatest=true) ``` ## Test plan - [x] Service tests covering: soft-delete latest → next highest active promoted; the exact #1081 repro end-to-end through the service; all-versions-deleted still keeps highest addressable for admin; restore-to-higher-version reclaims latest. - [x] Migration tests covering: kubernetes-mcp-server scenario (heals to highest semver); backport scenario (semver beats most-recent-published); no-is_latest-row defensive case; all-deleted server left untouched; healthy server left untouched; non-semver versions fall back to `published_at`. - [x] Full unit test suite (`./internal/... ./cmd/...`) passes against a real Postgres. - [x] `make lint` (0 issues) and `make validate` pass. - [x] Manual curl repro against a running registry confirms the fix resolves the failure mode and `main` still reproduces it. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
c5f50e817b |
fix(auth): better DNS verification errors and wrong-selector hint (#1202)
## Summary DNS auth users have repeatedly hit two failure modes that both produce the same opaque "Ed25519 signature verification failed" error, making them indistinguishable to debug. This PR makes both diagnosable end-to-end without changing the auth protocol or any successful path. The two recurring failure modes: 1. **Wrong placement** — TXT record put under a selector (`_mcp-auth.<domain>` or `_mcp-registry.<domain>`) instead of the apex. DKIM-style intuition, but MCP DNS auth uses SPF-style apex placement. See #385 (PR #388 fixed the docs but the failure recurred), #1103, #1126. 2. **Stale apex record** — old TXT record left behind after a key rotation, silently tried first and rejected. ## Changes **`internal/api/handlers/v0/auth/dns.go`** — when the apex has no `v=MCPv1` record, probe `_mcp-auth.<domain>` and `_mcp-registry.<domain>` in parallel (2s individual timeout). If a record is found there, return a targeted error pointing the user at the apex. Costs zero extra DNS work in the success path. **`internal/api/handlers/v0/auth/common.go`** — when verification fails against records that *are* present, include short fingerprints of every key the registry tried (`ed25519:YJLsHFhu`-style 8-char prefix). A new `ErrSignatureMismatch` sentinel keeps structural errors (wrong signature size, unsupported algorithm) passing through unchanged via `errors.Is`, so existing assertions on those messages still hold. **`docs/modelcontextprotocol-io/authentication.mdx`** — anti-pattern `<Warning>` callout in the DNS section explicitly warning against selector placement and stale records. **Tests** — two new tests: - `TestDNSAuthHandler_WrongSelectorProbe` — verifies the probe surfaces records found at `_mcp-auth.` / `_mcp-registry.` and falls through to the standard error when nothing is found anywhere - `TestDNSAuthHandler_StaleKeyFingerprintInError` — verifies the fingerprint hint appears in the failure message for #1126's exact scenario One existing test assertion was updated from a generic `"signature verification failed"` substring to the more specific `"invalid signature size for ECDSA P-384"` it should always have been asserting; the new sentinel-based logic surfaces structural errors verbatim. ## Test plan - [x] `make lint` — clean - [x] `make test-unit` — all auth tests pass (existing + 2 new) - [x] Verified existing single-key and multi-key paths preserve their original (more specific) error messages where they were already specific - [ ] Reviewer to sanity-check the docs callout renders well in the Mintlify theme ## Out of scope The publisher-side preflight DNS check (cross-link in #845) is intentionally **not** in this PR — that belongs in the broader CLI UX work tracked by #845. Refs #845, #385, #1103 Fixes #1126 --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
8b893ae1f1 |
docs: recommend namespaced subkeys inside publisher-provided (#1197)
## Summary - Adds a short "Recommended: Namespaced Subkeys" subsection to `official-registry-requirements.md`, documenting the reverse-DNS subkey convention for `publisher-provided` metadata with one worked example - Explicitly notes this is not enforced, to avoid churning the ~15 existing flat-key examples elsewhere in the docs Closes #477 ## Test plan - [ ] Render the file on GitHub and verify the new subsection appears right after the `Publisher-Provided Metadata` size-limit note 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
ccb7057c33 |
docs: note PostgreSQL requirement for prebuilt Docker image (#1196)
## Summary - Clarifies in the README that the prebuilt Docker image does not bundle PostgreSQL and needs an external instance reachable via \`MCP_REGISTRY_DATABASE_URL\` - Points readers to \`docker-compose.yml\` as a working multi-container example Closes #723 ## Test plan - [ ] Render the README on GitHub and verify the note appears in the "Alternative: Running a pre-built Docker image" section 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
aaa634ebb6 |
fix(publisher): honor mcpName as the authoritative server name in init (#1195)
## Summary Follow-up to #1145. When `mcpName` is set in `package.json`, it should be the server name used by `mcp-publisher init`. Two issues addressed: ### 1. `getNameFromPackageJSON` mangled `mcpName` through npm-name transformation `mcpName` values are already in MCP server name format (e.g. `io.github.foo/bar`). The existing code ran them through the `@scope/name → io.github.scope/name` transform and its `io.github.<your-username>/*` fallback, producing a broken double-prefix result. Example with `"mcpName": "io.github.acme/weather"`: - Before: `io.github.<your-username>/io.github.acme/weather` ❌ - After: `io.github.acme/weather` ✅ ### 2. `detectServerName` consulted git before `mcpName` Even with `mcpName` set in `package.json`, a github.com git remote (or a `repository` field) silently won — the function returned `io.github.<owner>/<repo>` and never looked at `mcpName`. Per the [quickstart docs](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx), *"The value of `mcpName` will be your server's name in the MCP Registry"*, so `mcpName` should take precedence. ## Changes - `cmd/publisher/commands/init.go`: - New `getMcpNameFromPackageJSON()` helper that returns `mcpName` or `""`. - `detectServerName` checks `mcpName` first, before git remote and the `name`-based fallback. - `getNameFromPackageJSON` simplified — the now-redundant `mcpName` branch was removed; it only handles the npm `name` transformation. - `cmd/publisher/commands/init_test.go` (new): 5 cases through the public `InitCommand` API covering `mcpName` as-is, fallback to scoped `name`, fallback to placeholder, version fallback, and `mcpName` winning over a GitHub `repository` URL. This completes the fix for #737. ## Test plan - [x] `go test ./cmd/publisher/commands/` passes (5 new subtests) - [x] `golangci-lint run ./cmd/publisher/commands/` clean - [ ] Manual: `mcp-publisher init` in a git-tracked directory with `package.json` containing `mcpName` produces a `server.json` whose `name` matches `mcpName`, not the repo slug 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
7c446e75ad |
feat(oci): add support for Quay.io registry (#1150)
Adds support for the Quay.io container registry to the OCI validator. This allows MCP servers hosted on Quay.io to be registered and validated by the official registry. ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Quay.io is a major, trusted public OCI registry widely used by the cloud-native and open-source communities. Currently, attempting to publish a server using a Quay image results in an unsupported OCI registry error. This change enables developers to use Quay.io as a first-class hosting option for their MCP server images. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> - **Unit Tests:** Updated `internal/validators/registries/oci_test.go` to transition Quay.io from a rejected test case to an allowed one. - **Pattern Matching:** Verified that the allowlist correctly handles both specific image identifiers and general pattern matching for the `quay.io` host. - **Local Validation:** Ran `make check` to ensure no regressions in the existing OCI validation logic. ## Breaking Changes <!-- Will users need to update their code or configurations? --> No. This is an additive change that expands the allowlist of supported registries. Existing configurations are unaffected. ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> The implementation follows the existing pattern for OCI registries: 1. Added a `RegistryURLQuay` constant to `pkg/model` for consistency. 2. Hardcoded `quay.io` into the `allowedOCIRegistries` map in the validator to minimize architectural complexity. 3. Updated all relevant documentation files (`package-types.mdx`, `generic-server-json.md`, and `official-registry-requirements.md`) to ensure the source of truth is updated across the project. 4. Validation remains scoped to public images; no private registry authentication was added for this host. Signed-off-by: Mikel Olasagasti Uranga <mikel@olasagasti.info> Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
a1a3303af9 |
feat(publisher): copy version from package.json and prefer mcpName in init (#1145)
## Summary Addresses two related enhancements to `mcp-publisher init`: - **Copy `version` from `package.json`** (#736): When `package.json` is present and contains a `version` field, it is now used for both the top-level `version` and `packages[].version` in the generated `server.json`. Falls back to `"1.0.0"` when unavailable. This aligns with the recommended best practice of keeping server version in sync with package version. - **Prefer `mcpName` over `name`** (#737): The init command now checks for `mcpName` in `package.json` first, falling back to `name` if `mcpName` is not defined. This ensures the generated server name matches the required `mcpName` property. Closes #736 Closes #737 ## Changes - `cmd/publisher/commands/init.go`: - Added `getVersionFromPackageJSON()` helper to read version from `package.json` - Modified `InitCommand()` to use detected version with `"1.0.0"` fallback - Modified `getNameFromPackageJSON()` to prefer `mcpName` over `name` ## Test plan - [x] `go build ./cmd/publisher/...` compiles without errors - [x] `go test ./cmd/publisher/commands/...` passes all existing tests - [ ] Manual: run `mcp-publisher init` in a directory with `package.json` containing `version` and `mcpName` — verify both are copied to `server.json` - [ ] Manual: run `mcp-publisher init` in a directory with `package.json` without `mcpName` — verify `name` is used as fallback - [ ] Manual: run `mcp-publisher init` in a directory without `package.json` — verify defaults (`"1.0.0"`, directory name) are used ## AI Disclosure AI assistance (Claude) was used for initial code exploration and issue research. The implementation was written and reviewed by the author. Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
35b124379b |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.231.0 to 3.232.0 in /deploy (#1194)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.231.0 to 3.232.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.232.0</h2> <h2>3.232.0 (2026-04-22)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Add an experimental <code>pulumi neo</code> command that creates a Pulumi Neo agent task in CLI tool-execution mode and runs the local tool loop. Filesystem and shell tool calls issued by the agent run on the user's machine in their working directory; the interactive chat continues to happen in the Pulumi Console at the URL the command prints. Hidden behind PULUMI_EXPERIMENTAL.</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22473">#22473</a></p> </li> <li> <p>[cli] Add support for handling user approval requests in the <code>pulumi neo</code> terminal UI. When the agent requests confirmation for a sensitive action, the TUI prompts the user and forwards their response back to the Pulumi Console. Hidden behind PULUMI_EXPERIMENTAL.</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22589">#22589</a></p> </li> <li> <p>[cli] Add an interactive terminal UI for <code>pulumi neo</code> built with bubbletea, rendering agent messages, tool calls, and streaming output in the terminal alongside the Pulumi Console session. Hidden behind PULUMI_EXPERIMENTAL.</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22570">#22570</a></p> </li> <li> <p>[cli] Switch logging library from glog to slog.</p> </li> </ul> <p>BREAKING: any <code>if logging.V(x) {</code> need to be changed to <code>if logging.V(x).Enabled()</code></p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22548">#22548</a></p> <ul> <li> <p>[cli] Add a plan-mode toggle to the <code>pulumi neo</code> TUI, bound to Shift+Tab. When plan mode is on, Neo explores and asks questions without writing files, running <code>pulumi up</code>, or opening PRs, and surfaces an approved plan via a dedicated approval gate. The toggle must be set before the first message (plan mode is task-level on the wire); approving the proposed plan exits plan mode automatically.</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22634">#22634</a></p> </li> <li> <p>[cli] The <code>pulumi neo</code> TUI now drives its "thinking" spinner off a single declarative rule (the spinner stays on until a final event — final assistant message, approval request, cancellation, or error — lands), so the indicator no longer flickers off when the agent hands off tool calls to the CLI or when streaming text arrives between tools. Press <code>Esc</code> during a turn to ask the agent to cancel; the label switches to "Cancelling..." until the backend acknowledges.</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22637">#22637</a></p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.232.0 (2026-04-22)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Add an experimental <code>pulumi neo</code> command that creates a Pulumi Neo agent task in CLI tool-execution mode and runs the local tool loop. Filesystem and shell tool calls issued by the agent run on the user's machine in their working directory; the interactive chat continues to happen in the Pulumi Console at the URL the command prints. Hidden behind PULUMI_EXPERIMENTAL.</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22473">#22473</a></p> </li> <li> <p>[cli] Add support for handling user approval requests in the <code>pulumi neo</code> terminal UI. When the agent requests confirmation for a sensitive action, the TUI prompts the user and forwards their response back to the Pulumi Console. Hidden behind PULUMI_EXPERIMENTAL.</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22589">#22589</a></p> </li> <li> <p>[cli] Add an interactive terminal UI for <code>pulumi neo</code> built with bubbletea, rendering agent messages, tool calls, and streaming output in the terminal alongside the Pulumi Console session. Hidden behind PULUMI_EXPERIMENTAL.</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22570">#22570</a></p> </li> <li> <p>[cli] Switch logging library from glog to slog.</p> </li> </ul> <p>BREAKING: any <code>if logging.V(x) {</code> need to be changed to <code>if logging.V(x).Enabled()</code></p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22548">#22548</a></p> <ul> <li> <p>[cli] Add a plan-mode toggle to the <code>pulumi neo</code> TUI, bound to Shift+Tab. When plan mode is on, Neo explores and asks questions without writing files, running <code>pulumi up</code>, or opening PRs, and surfaces an approved plan via a dedicated approval gate. The toggle must be set before the first message (plan mode is task-level on the wire); approving the proposed plan exits plan mode automatically.</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22634">#22634</a></p> </li> <li> <p>[cli] The <code>pulumi neo</code> TUI now drives its "thinking" spinner off a single declarative rule (the spinner stays on until a final event — final assistant message, approval request, cancellation, or error — lands), so the indicator no longer flickers off when the agent hands off tool calls to the CLI or when streaming text arrives between tools. Press <code>Esc</code> during a turn to ask the agent to cancel; the label switches to "Cancelling..." until the backend acknowledges.</p> <p><a href="https://redirect.github.com/pulumi/pulumi/pull/22637">#22637</a></p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
dac0982f6d |
docs: signpost non-npm publishers to package-types from quickstart (#1192)
## What Two targeted additions to `docs/modelcontextprotocol-io/quickstart.mdx`: 1. A `<Note>` immediately after the tutorial's intro, telling PyPI / NuGet / OCI / MCPB publishers that the Step 1 ownership-verification mechanism differs for their package type and pointing them to [Package Types](./package-types) before continuing. 2. The troubleshooting row for **"Registry validation failed for package"** previously named only npm's `mcpName` property in `package.json`. It now names all three current mechanisms (npm → `mcpName` in `package.json`; PyPI / NuGet → `mcp-name: <server-name>` line in the package README; other types → link to Package Types). +5 / -1 lines. ## Why The quickstart is the landing page for new publishers, but it's entirely TypeScript / npm-flavored — the Step 1 example shows npm's `mcpName` property and nothing else. The cross-reference to `./package-types` only appears in the "Next Steps" footer, by which point a PyPI publisher has already gone through every step and hit a `400 Bad Request` at `mcp-publisher publish`: > `registry validation failed for package 0 (<pkg>): PyPI package '<pkg>' ownership validation failed. The server name 'io.github.<user>/<server>' must appear as 'mcp-name: io.github.<user>/<server>' in the package README` That specific error has tripped at least one other publisher (#531) and was what motivated this change. The ownership mechanism is correctly documented at `./package-types` — the fix is purely to route people there before they publish, not to duplicate the content. ## What this change is **not** - It does not propose changing the validation logic. - It does not duplicate content from `package-types.mdx` into the quickstart. - It does not add a separate PyPI-specific tutorial. The existing npm-flavored tutorial remains the canonical one; the note just tells non-npm readers which step is different. ## Verification - Change is docs-only; no build or test impact. - Link target `./package-types` is the same shape as the one already used in "Next Steps" of the same file. - Anchor `#step-1-add-verification-information-to-the-package` matches the existing heading's slug. ## Related - #531 — same validation error hit by another PyPI publisher; closed with a workaround but the quickstart wasn't updated. |
||
|
|
d8a1ea4e58 |
fix: update openapi.yml to include statusChangedAt (#1187)
Fixes #1169 Update the openapi.yml to add a missing field ## Motivation and Context openapi.yml was not in sync with live data ## How Has This Been Tested? Validated the openapi.yml file ## Breaking Changes No ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Jeff MAURY <jmaury@redhat.com> Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
fa450110e4 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.230.0 to 3.231.0 in /deploy (#1176)
[//]: # (dependabot-start) ⚠️ **Dependabot is rebasing this PR** ⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.230.0 to 3.231.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.231.0</h2> <h2>3.231.0 (2026-04-16)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Auto-detect Mercurial repository metadata for <code>pulumi up</code> / <code>pulumi preview</code> updates, mirroring existing Git support <a href="https://redirect.github.com/pulumi/pulumi/pull/22618">#22618</a></p> </li> <li> <p>[engine] Send Cancel RPC to plugins on host close for graceful shutdown <a href="https://redirect.github.com/pulumi/pulumi/pull/22569">#22569</a></p> </li> <li> <p>[engine] Pass resource options to hooks through the engine <a href="https://redirect.github.com/pulumi/pulumi/pull/22582">#22582</a></p> </li> <li> <p>[engine] Add GetDeploymentInfo to the resource monitor service</p> </li> <li> <p>[auto/go] Add <code>New</code> command to Automation API <a href="https://redirect.github.com/pulumi/pulumi/pull/22439">#22439</a></p> </li> <li> <p>[auto/{go,nodejs,python}] Add --diff to automation api for destroy <a href="https://redirect.github.com/pulumi/pulumi/pull/22563">#22563</a></p> </li> <li> <p>[auto/python] Add <code>new</code> command to Automation API <a href="https://redirect.github.com/pulumi/pulumi/pull/22439">#22439</a></p> </li> <li> <p>[pcl] Support for resource hooks in PCL <a href="https://redirect.github.com/pulumi/pulumi/pull/22365">#22365</a></p> </li> <li> <p>[sdk-nodejs] Warn when a non-ComponentResource class is passed in the explicit <code>components</code> list to <code>componentProviderHost</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/22619">#22619</a></p> </li> <li> <p>[sdk-python] Warn when a non-ComponentResource class is passed in the explicit <code>components</code> list to <code>component_provider_host</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/22619">#22619</a></p> </li> <li> <p>[cli/import] Add support for providers to be defined in the same import file as their users <a href="https://redirect.github.com/pulumi/pulumi/pull/21671">#21671</a></p> </li> <li> <p>[cli/policy] ESC environment support for local policy packs <a href="https://redirect.github.com/pulumi/pulumi/pull/22495">#22495</a></p> </li> <li> <p>[sdk/nodejs] Support package.yaml when using pnpm <a href="https://redirect.github.com/pulumi/pulumi/pull/22491">#22491</a></p> </li> <li> <p>[sdk/python] Add function decorator variants for resource and error hooks <a href="https://redirect.github.com/pulumi/pulumi/pull/22519">#22519</a></p> </li> </ul> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.231.0 (2026-04-16)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Auto-detect Mercurial repository metadata for <code>pulumi up</code> / <code>pulumi preview</code> updates, mirroring existing Git support <a href="https://redirect.github.com/pulumi/pulumi/pull/22618">#22618</a></p> </li> <li> <p>[engine] Send Cancel RPC to plugins on host close for graceful shutdown <a href="https://redirect.github.com/pulumi/pulumi/pull/22569">#22569</a></p> </li> <li> <p>[engine] Pass resource options to hooks through the engine <a href="https://redirect.github.com/pulumi/pulumi/pull/22582">#22582</a></p> </li> <li> <p>[engine] Add GetDeploymentInfo to the resource monitor service</p> </li> <li> <p>[auto/go] Add <code>New</code> command to Automation API <a href="https://redirect.github.com/pulumi/pulumi/pull/22439">#22439</a></p> </li> <li> <p>[auto/{go,nodejs,python}] Add --diff to automation api for destroy <a href="https://redirect.github.com/pulumi/pulumi/pull/22563">#22563</a></p> </li> <li> <p>[auto/python] Add <code>new</code> command to Automation API <a href="https://redirect.github.com/pulumi/pulumi/pull/22439">#22439</a></p> </li> <li> <p>[pcl] Support for resource hooks in PCL <a href="https://redirect.github.com/pulumi/pulumi/pull/22365">#22365</a></p> </li> <li> <p>[sdk-nodejs] Warn when a non-ComponentResource class is passed in the explicit <code>components</code> list to <code>componentProviderHost</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/22619">#22619</a></p> </li> <li> <p>[sdk-python] Warn when a non-ComponentResource class is passed in the explicit <code>components</code> list to <code>component_provider_host</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/22619">#22619</a></p> </li> <li> <p>[cli/import] Add support for providers to be defined in the same import file as their users <a href="https://redirect.github.com/pulumi/pulumi/pull/21671">#21671</a></p> </li> <li> <p>[cli/policy] ESC environment support for local policy packs <a href="https://redirect.github.com/pulumi/pulumi/pull/22495">#22495</a></p> </li> <li> <p>[sdk/nodejs] Support package.yaml when using pnpm <a href="https://redirect.github.com/pulumi/pulumi/pull/22491">#22491</a></p> </li> <li> <p>[sdk/python] Add function decorator variants for resource and error hooks <a href="https://redirect.github.com/pulumi/pulumi/pull/22519">#22519</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li>[auto/{nodejs,python}] Support --run-program for inline programs with preview_refresh/destroy</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
4be2234d3f |
build(deps): bump github.com/pulumi/pulumi-kubernetes/sdk/v4 from 4.28.0 to 4.29.0 in /deploy (#1177)
Bumps [github.com/pulumi/pulumi-kubernetes/sdk/v4](https://github.com/pulumi/pulumi-kubernetes) from 4.28.0 to 4.29.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/releases">github.com/pulumi/pulumi-kubernetes/sdk/v4's releases</a>.</em></p> <blockquote> <h2>v4.29.0</h2> <p>No release notes provided.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/blob/master/CHANGELOG.md">github.com/pulumi/pulumi-kubernetes/sdk/v4's changelog</a>.</em></p> <blockquote> <h2>4.29.0 (April 15, 2026)</h2> <h3>Fixed</h3> <ul> <li> <p><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/2926">#2926</a> Use client-side create for new resources instead of server-side apply.</p> <p><strong>Users may observe stricter errors on some Create operations. Please read carefully.</strong></p> <p>When a resource already exists in the cluster, the API server now returns an AlreadyExists error instead of silently updating the existing object. This prevents data loss from create-then-delete scenarios (e.g. renaming a Pulumi resource or replacing an explicitly-named resource). A new provider config option <code>upsertExistingObjects</code> (default <code>false</code>) restores the previous upsert behavior for users who intentionally adopt existing cluster resources. To manage fields on existing objects without owning their lifecycle, use Patch resources (e.g. <code>NamespacePatch</code>).</p> </li> </ul> <h3>Added</h3> <ul> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/2280">#2280</a> Add <code>enablePatchForce</code> provider config option to force SSA patch conflicts on a per-stack basis.</li> </ul> <h3>Changed</h3> <ul> <li>Upgrade Kubernetes schema and libraries to v1.35.3.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
85c95569a7 |
build(deps): bump github.com/go-git/go-git/v5 from 5.17.2 to 5.18.0 in /deploy (#1180)
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.17.2 to 5.18.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/go-git/go-git/releases">github.com/go-git/go-git/v5's releases</a>.</em></p> <blockquote> <h2>v5.18.0</h2> <h2>What's Changed</h2> <ul> <li>plumbing: transport/http, Add support for followRedirects policy by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/2004">go-git/go-git#2004</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/go-git/go-git/compare/v5.17.2...v5.18.0">https://github.com/go-git/go-git/compare/v5.17.2...v5.18.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
cc48844ebc |
build(deps): bump github.com/jackc/pgx/v5 from 5.9.1 to 5.9.2 (#1188)
Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.9.1 to 5.9.2. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jackc/pgx/blob/master/CHANGELOG.md">github.com/jackc/pgx/v5's changelog</a>.</em></p> <blockquote> <h1>5.9.2 (April 18, 2026)</h1> <p>Fix SQL Injection via placeholder confusion with dollar quoted string literals (GHSA-j88v-2chj-qfwx)</p> <p>SQL injection can occur when:</p> <ol> <li>The non-default simple protocol is used.</li> <li>A dollar quoted string literal is used in the SQL query.</li> <li>That query contains text that would be would be interpreted outside as a placeholder outside of a string literal.</li> <li>The value of that placeholder is controllable by the attacker.</li> </ol> <p>e.g.</p> <pre lang="go"><code>attackValue := `$tag$; drop table canary; --` _, err = tx.Exec(ctx, `select $tag$ $1 $tag$, $1`, pgx.QueryExecModeSimpleProtocol, attackValue) </code></pre> <p>This is unlikely to occur outside of a contrived scenario.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
b6ab23cdea |
build(deps): bump goreleaser/goreleaser-action from 7.0.0 to 7.1.0 in the actions group (#1189)
Bumps the actions group with 1 update: [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action). Updates `goreleaser/goreleaser-action` from 7.0.0 to 7.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/goreleaser/goreleaser-action/releases">goreleaser/goreleaser-action's releases</a>.</em></p> <blockquote> <h2>v7.1.0</h2> <h2>What's Changed</h2> <ul> <li>feat: verify release checksum and cosign signature by <a href="https://github.com/caarlos0"><code>@caarlos0</code></a> in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/550">goreleaser/goreleaser-action#550</a></li> <li>docs: document cosign verification in README by <a href="https://github.com/caarlos0"><code>@caarlos0</code></a> in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/553">goreleaser/goreleaser-action#553</a></li> <li>docs: Upgrade import GPG action version by <a href="https://github.com/flecno"><code>@flecno</code></a> in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/547">goreleaser/goreleaser-action#547</a></li> <li>ci: drop docker-bake in favor of plain npm by <a href="https://github.com/caarlos0"><code>@caarlos0</code></a> in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/551">goreleaser/goreleaser-action#551</a></li> <li>ci: add release-major-tag workflow by <a href="https://github.com/caarlos0"><code>@caarlos0</code></a> in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/552">goreleaser/goreleaser-action#552</a></li> <li>ci: drop pre-cosign-v3 goreleaser versions from tests by <a href="https://github.com/caarlos0"><code>@caarlos0</code></a> in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/554">goreleaser/goreleaser-action#554</a></li> <li>ci(deps): bump the actions group with 2 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/543">goreleaser/goreleaser-action#543</a></li> <li>ci(deps): bump the actions group with 5 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/546">goreleaser/goreleaser-action#546</a></li> <li>chore(deps): bump undici from 6.23.0 to 6.24.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/545">goreleaser/goreleaser-action#545</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/flecno"><code>@flecno</code></a> made their first contribution in <a href="https://redirect.github.com/goreleaser/goreleaser-action/pull/547">goreleaser/goreleaser-action#547</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/goreleaser/goreleaser-action/compare/v7...v7.1.0">https://github.com/goreleaser/goreleaser-action/compare/v7...v7.1.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
70b5f457c8 |
deploy: update prod to v1.6.0 (#1172)
## Summary - Bumps production image tag from `1.5.0` to `1.6.0` in `deploy/Pulumi.gcpProd.yaml` - Corresponds to the [v1.6.0 release](https://github.com/modelcontextprotocol/registry/releases/tag/v1.6.0) ## Test plan - [ ] Verify Pulumi preview shows only the image tag change - [ ] Deploy and confirm the service is healthy 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
8df5a7711d |
fix(publisher): omit repository when URL cannot be detected (#1149)
## Summary When `detectRepoURL()` cannot determine the repository (no git remote, no package.json repository field), return an empty string instead of a placeholder URL (`https://github.com/YOUR_USERNAME/YOUR_REPO`). This causes `createServerJSON()` to omit the `repository` field entirely, preventing schema validation failures on publish. Fixes #613 ## Problem `mcp-publisher init` generated a `repository` object with a placeholder URL that fails the `uri` format validation on publish. 88 published servers in the official registry had this issue. ## Change - `cmd/publisher/commands/init.go`: `detectRepoURL()` returns `""` instead of placeholder when no repo is found - The existing guard in `createServerJSON()` (`if repoURL != "" && repoSource != ""`) already handles this correctly — it omits the repository when URL is empty ## Test plan - [x] `go build ./cmd/publisher/...` compiles - [x] `go test ./cmd/publisher/commands/...` passes - [ ] Manual: `mcp-publisher init` in a directory without git remote or package.json repo — verify no `repository` field in generated server.json - [ ] Manual: `mcp-publisher init` in a git repo — verify `repository` is populated correctly ## AI Disclosure AI assistance (Claude) was used for issue research. The implementation was written and reviewed by the author. |
||
|
|
90baa0528f |
fix: store tokens in ~/.config/mcp-publisher/ instead of cwd (#1166)
## Summary Fixes #663 - **Security fix**: `mcp-publisher login` no longer writes `.mcpregistry_github_token` and `.mcpregistry_registry_token` to the current working directory. GitHub tokens are kept in memory during the login→exchange flow and cleared immediately after. - **Token location**: Unified token moved from `~/.mcp_publisher_token` to `~/.config/mcp-publisher/token.json` (dir 0700, file 0600), following the convention used by `gh`, `docker`, and `kubectl`. - **Dead code removed**: `NeedsLogin()` was on the `Provider` interface but never called — removed from interface and all 4 implementations. `forceLogin` field also removed. - **Auth tests added**: 11 new tests for `GitHubATProvider` (package previously had 0 tests). - **Test isolation**: `SetupTestToken` now uses `t.TempDir()` + `t.Setenv("HOME", ...)` instead of writing to real `$HOME`. ### Breaking change Users must re-login after upgrading (`mcp-publisher login <method>`). Existing tokens at `~/.mcp_publisher_token` are not auto-migrated. `logout` cleans up both old and new locations. ## Test plan - [x] `make check` passes (lint, unit tests, integration tests) - [x] `mcp-publisher login none` stores token at `~/.config/mcp-publisher/token.json` - [x] No `.mcpregistry_*` files created in cwd after login (with `--token`, `MCP_GITHUB_TOKEN`, or device flow) - [x] `mcp-publisher publish` reads token from new location - [x] `mcp-publisher validate` reads registry URL from new location - [x] `mcp-publisher logout` cleans up new location, legacy `~/.mcp_publisher_token`, and cwd `.mcpregistry_*` files - [x] `mcp-publisher logout` when not logged in shows "Not logged in" - [x] File permissions: dir 0700, file 0600 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
77bbd41fd3 |
build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 in the actions group (#1154) | ||
|
|
0c5dde243b |
build(deps): bump github.com/google/go-containerregistry from 0.21.4 to 0.21.5 (#1162) | ||
|
|
1e83267610 |
build(deps): bump cloud.google.com/go/kms from 1.27.0 to 1.29.0 (#1163) | ||
|
|
07fa85f68b |
build(deps): bump github.com/coreos/go-oidc/v3 from 3.17.0 to 3.18.0 (#1140)
Bumps [github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc) from 3.17.0 to 3.18.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/coreos/go-oidc/releases">github.com/coreos/go-oidc/v3's releases</a>.</em></p> <blockquote> <h2>v3.18.0</h2> <h2>What's Changed</h2> <ul> <li>.github: configure dependabot by <a href="https://github.com/ericchiang"><code>@ericchiang</code></a> in <a href="https://redirect.github.com/coreos/go-oidc/pull/477">coreos/go-oidc#477</a></li> <li>.github: update go versions in CI by <a href="https://github.com/ericchiang"><code>@ericchiang</code></a> in <a href="https://redirect.github.com/coreos/go-oidc/pull/480">coreos/go-oidc#480</a></li> <li>build(deps): bump golang.org/x/oauth2 from 0.28.0 to 0.36.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/coreos/go-oidc/pull/478">coreos/go-oidc#478</a></li> <li>build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/coreos/go-oidc/pull/479">coreos/go-oidc#479</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/coreos/go-oidc/compare/v3.17.0...v3.18.0">https://github.com/coreos/go-oidc/compare/v3.17.0...v3.18.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
fbea08a348 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.229.0 to 3.230.0 in /deploy (#1141)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.229.0 to 3.230.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.230.0</h2> <h2>3.230.0 (2026-04-08)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Detect AI agents and send in update metadata <a href="https://redirect.github.com/pulumi/pulumi/pull/22497">#22497</a></p> </li> <li> <p>[auto/nodejs] Add "org" commands (get-default, set-default, search, search ai) to the auto-generated interface <a href="https://redirect.github.com/pulumi/pulumi/pull/22395">#22395</a></p> </li> <li> <p>[auto/nodejs] Add "new" command to the auto-generated interface <a href="https://redirect.github.com/pulumi/pulumi/pull/22421">#22421</a></p> </li> <li> <p>[sdk/{nodejs,python}] Add Cancel handler to Python & Node.js providers <a href="https://redirect.github.com/pulumi/pulumi/pull/22516">#22516</a></p> </li> <li> <p>[cli/policy] Add ESC environment resolution for policy packs <a href="https://redirect.github.com/pulumi/pulumi/pull/22425">#22425</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[auto/go] Insert --non-interactive flag before "--" positional separator to avoid misinterpretation as a positional argument <a href="https://redirect.github.com/pulumi/pulumi/pull/22462">#22462</a></p> </li> <li> <p>[ci] Add code coverage collection for Node.js automation tools tests <a href="https://redirect.github.com/pulumi/pulumi/pull/22412">#22412</a></p> </li> <li> <p>[pcl] Allow key indexing into a map of resources created by range <a href="https://redirect.github.com/pulumi/pulumi/pull/22498">#22498</a></p> </li> <li> <p>[programgen/go] Fix an issue with formatted index modules not importing correctly</p> </li> <li> <p>[cli/state] Check for Pulumi.yaml projects and <code>backend</code> option in <code>state upgrade</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/22483">#22483</a></p> </li> <li> <p>[sdk/go] Fix Go program generation for ternary expressions inside apply callbacks, add Go predeclared identifiers to reserved words, handle optional list types in union type codegen, and fix unmarshalOutput for known outputs with null elements. <a href="https://redirect.github.com/pulumi/pulumi/pull/22460">#22460</a></p> </li> <li> <p>[sdk/nodejs] Fix inherited input properties missing from component schema when args interface extends another interface <a href="https://redirect.github.com/pulumi/pulumi/pull/22446">#22446</a></p> </li> <li> <p>[sdk/python] Fix inherited input properties missing from component schema when args class inherits from a base class <a href="https://redirect.github.com/pulumi/pulumi/pull/22484">#22484</a></p> </li> </ul> <h3>Miscellaneous</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
83f8ea7cff |
build(deps): bump go.opentelemetry.io/otel/sdk from 1.41.0 to 1.43.0 in /deploy (#1139)
Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.41.0 to 1.43.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md">go.opentelemetry.io/otel/sdk's changelog</a>.</em></p> <blockquote> <h2>[1.43.0/0.65.0/0.19.0] 2026-04-02</h2> <h3>Added</h3> <ul> <li>Add <code>IsRandom</code> and <code>WithRandom</code> on <code>TraceFlags</code>, and <code>IsRandom</code> on <code>SpanContext</code> in <code>go.opentelemetry.io/otel/trace</code> for <a href="https://www.w3.org/TR/trace-context-2/#random-trace-id-flag">W3C Trace Context Level 2 Random Trace ID Flag</a> support. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8012">#8012</a>)</li> <li>Add service detection with <code>WithService</code> in <code>go.opentelemetry.io/otel/sdk/resource</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7642">#7642</a>)</li> <li>Add <code>DefaultWithContext</code> and <code>EnvironmentWithContext</code> in <code>go.opentelemetry.io/otel/sdk/resource</code> to support plumbing <code>context.Context</code> through default and environment detectors. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8051">#8051</a>)</li> <li>Support attributes with empty value (<code>attribute.EMPTY</code>) in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038">#8038</a>)</li> <li>Support attributes with empty value (<code>attribute.EMPTY</code>) in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038">#8038</a>)</li> <li>Support attributes with empty value (<code>attribute.EMPTY</code>) in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038">#8038</a>)</li> <li>Support attributes with empty value (<code>attribute.EMPTY</code>) in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038">#8038</a>)</li> <li>Support attributes with empty value (<code>attribute.EMPTY</code>) in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038">#8038</a>)</li> <li>Support attributes with empty value (<code>attribute.EMPTY</code>) in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038">#8038</a>)</li> <li>Support attributes with empty value (<code>attribute.EMPTY</code>) in <code>go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038">#8038</a>)</li> <li>Add support for per-series start time tracking for cumulative metrics in <code>go.opentelemetry.io/otel/sdk/metric</code>. Set <code>OTEL_GO_X_PER_SERIES_START_TIMESTAMPS=true</code> to enable. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8060">#8060</a>)</li> <li>Add <code>WithCardinalityLimitSelector</code> for metric reader for configuring cardinality limits specific to the instrument kind. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7855">#7855</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Introduce the <code>EMPTY</code> Type in <code>go.opentelemetry.io/otel/attribute</code> to reflect that an empty value is now a valid value, with <code>INVALID</code> remaining as a deprecated alias of <code>EMPTY</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038">#8038</a>)</li> <li>Improve slice handling in <code>go.opentelemetry.io/otel/attribute</code> to optimize short slice values with fixed-size fast paths. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8039">#8039</a>)</li> <li>Improve performance of span metric recording in <code>go.opentelemetry.io/otel/sdk/trace</code> by returning early if self-observability is not enabled. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8067">#8067</a>)</li> <li>Improve formatting of metric data diffs in <code>go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8073">#8073</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li>Deprecate <code>INVALID</code> in <code>go.opentelemetry.io/otel/attribute</code>. Use <code>EMPTY</code> instead. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038">#8038</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Return spec-compliant <code>TraceIdRatioBased</code> description. This is a breaking behavioral change, but it is necessary to make the implementation <a href="https://opentelemetry.io/docs/specs/otel/trace/sdk/#traceidratiobased">spec-compliant</a>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8027">#8027</a>)</li> <li>Fix a race condition in <code>go.opentelemetry.io/otel/sdk/metric</code> where the lastvalue aggregation could collect the value 0 even when no zero-value measurements were recorded. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8056">#8056</a>)</li> <li>Limit HTTP response body to 4 MiB in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp</code> to mitigate excessive memory usage caused by a misconfigured or malicious server. Responses exceeding the limit are treated as non-retryable errors. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8108">#8108</a>)</li> <li>Limit HTTP response body to 4 MiB in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp</code> to mitigate excessive memory usage caused by a misconfigured or malicious server. Responses exceeding the limit are treated as non-retryable errors. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8108">#8108</a>)</li> <li>Limit HTTP response body to 4 MiB in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp</code> to mitigate excessive memory usage caused by a misconfigured or malicious server. Responses exceeding the limit are treated as non-retryable errors. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8108">#8108</a>)</li> <li><code>WithHostID</code> detector in <code>go.opentelemetry.io/otel/sdk/resource</code> to use full path for <code>kenv</code> command on BSD. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8113">#8113</a>)</li> <li>Fix missing <code>request.GetBody</code> in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp</code> to correctly handle HTTP2 GOAWAY frame. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8096">#8096</a>)</li> </ul> <h2>[1.42.0/0.64.0/0.18.0/0.0.16] 2026-03-06</h2> <h3>Added</h3> <ul> <li>Add <code>go.opentelemetry.io/otel/semconv/v1.40.0</code> package. The package contains semantic conventions from the <code>v1.40.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/semconv/v1.40.0/MIGRATION.md">migration documentation</a> for information on how to upgrade from <code>go.opentelemetry.io/otel/semconv/v1.39.0</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7985">#7985</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
607d52ff20 |
build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 (#1114)
Bumps [github.com/go-jose/go-jose/v4](https://github.com/go-jose/go-jose) from 4.1.3 to 4.1.4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/go-jose/go-jose/releases">github.com/go-jose/go-jose/v4's releases</a>.</em></p> <blockquote> <h2>v4.1.4</h2> <h2>What's Changed</h2> <p>Fixes Panic in JWE decryption. See <a href="https://github.com/go-jose/go-jose/security/advisories/GHSA-78h2-9frx-2jm8">https://github.com/go-jose/go-jose/security/advisories/GHSA-78h2-9frx-2jm8</a></p> <p><strong>Full Changelog</strong>: <a href="https://github.com/go-jose/go-jose/compare/v4.1.3...v4.1.4">https://github.com/go-jose/go-jose/compare/v4.1.3...v4.1.4</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
5f81cf3336 |
build(deps): bump cloud.google.com/go/kms from 1.26.0 to 1.27.0 (#1111)
Bumps [cloud.google.com/go/kms](https://github.com/googleapis/google-cloud-go) from 1.26.0 to 1.27.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-cloud-go/releases">cloud.google.com/go/kms's releases</a>.</em></p> <blockquote> <h2>kms: v1.27.0</h2> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/kms/v1.26.0...kms/v1.27.0">v1.27.0</a> (2026-04-02)</h2> <h2>retail: v1.27.0</h2> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/retail/v1.26.0...retail/v1.27.0">v1.27.0</a> (2026-04-02)</h2> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-cloud-go/blob/main/documentai/CHANGES.md">cloud.google.com/go/kms's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/documentai/v1.26.1...documentai/v1.27.0">1.27.0</a> (2024-04-15)</h2> <h3>Features</h3> <ul> <li><strong>documentai:</strong> Support a new Layout Processor in Document AI (<a href=" |
||
|
|
0fc4606be2 |
Stop pinning Go to patch versions, use stable in CI (#1137)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> We keep bumping `go 1.26.x` across the repo every time a new Go patch drops ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> - **`go.mod` / `deploy/go.mod`**: `go 1.25.8` → `go 1.26` (minor only — "this module needs Go 1.26") - **All CI workflows**: `go-version-file: 'go.mod'` → `go-version: 'stable'` — CI always uses the latest stable Go, no more bump PRs - **govulncheck**: removed hardcoded `go-version-input: '1.26.1'` → `go-version-input: 'stable'` ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
9b32a5c187 |
build(deps): bump docker/login-action from 4.0.0 to 4.1.0 in the actions group (#1113)
Bumps the actions group with 1 update: [docker/login-action](https://github.com/docker/login-action). Updates `docker/login-action` from 4.0.0 to 4.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/docker/login-action/releases">docker/login-action's releases</a>.</em></p> <blockquote> <h2>v4.1.0</h2> <ul> <li>Fix scoped Docker Hub cleanup path when registry is omitted by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/945">docker/login-action#945</a></li> <li>Bump <code>@aws-sdk/client-ecr</code> and <code>@aws-sdk/client-ecr-public</code> to 3.1020.0 in <a href="https://redirect.github.com/docker/login-action/pull/930">docker/login-action#930</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.77.0 to 0.86.0 in <a href="https://redirect.github.com/docker/login-action/pull/932">docker/login-action#932</a> <a href="https://redirect.github.com/docker/login-action/pull/936">docker/login-action#936</a></li> <li>Bump brace-expansion from 1.1.12 to 1.1.13 in <a href="https://redirect.github.com/docker/login-action/pull/952">docker/login-action#952</a></li> <li>Bump fast-xml-parser from 5.3.4 to 5.3.6 in <a href="https://redirect.github.com/docker/login-action/pull/942">docker/login-action#942</a></li> <li>Bump flatted from 3.3.3 to 3.4.2 in <a href="https://redirect.github.com/docker/login-action/pull/944">docker/login-action#944</a></li> <li>Bump glob from 10.3.12 to 10.5.0 in <a href="https://redirect.github.com/docker/login-action/pull/940">docker/login-action#940</a></li> <li>Bump handlebars from 4.7.8 to 4.7.9 in <a href="https://redirect.github.com/docker/login-action/pull/949">docker/login-action#949</a></li> <li>Bump http-proxy-agent and https-proxy-agent to 8.0.0 in <a href="https://redirect.github.com/docker/login-action/pull/937">docker/login-action#937</a></li> <li>Bump lodash from 4.17.23 to 4.18.1 in <a href="https://redirect.github.com/docker/login-action/pull/958">docker/login-action#958</a></li> <li>Bump minimatch from 3.1.2 to 3.1.5 in <a href="https://redirect.github.com/docker/login-action/pull/941">docker/login-action#941</a></li> <li>Bump picomatch from 4.0.3 to 4.0.4 in <a href="https://redirect.github.com/docker/login-action/pull/948">docker/login-action#948</a></li> <li>Bump undici from 6.23.0 to 6.24.1 in <a href="https://redirect.github.com/docker/login-action/pull/938">docker/login-action#938</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v4.0.0...v4.1.0">https://github.com/docker/login-action/compare/v4.0.0...v4.1.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
5d0edc97bf |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.228.0 to 3.229.0 in /deploy (#1112)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.228.0 to 3.229.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.229.0</h2> <h2>3.229.0 (2026-04-02)</h2> <h3>Features</h3> <ul> <li> <p>[auto/python] Add org get-default and set-default commands to Automation API</p> </li> <li> <p>[backend/diy] Avoid unnecessary S3 bucket HEAD calls to improve performance <a href="https://redirect.github.com/pulumi/pulumi/pull/22373">#22373</a></p> </li> <li> <p>[cli] Allow TRACEPARENT to be set for CLI invocations, parenting the pulumi spans under an existing parent span <a href="https://redirect.github.com/pulumi/pulumi/pull/22369">#22369</a></p> </li> <li> <p>[cli/display] Add <code>--urns</code> flag to display full resource URNs instead of short names in preview, up, destroy, refresh, import, and watch commands <a href="https://redirect.github.com/pulumi/pulumi/pull/22007">#22007</a></p> </li> <li> <p>[pcl] Type integer literals as integers rather than numbers in PCL <a href="https://redirect.github.com/pulumi/pulumi/pull/22268">#22268</a></p> </li> <li> <p>[pcl] Support parameterized providers in PCL <a href="https://redirect.github.com/pulumi/pulumi/pull/22251">#22251</a></p> </li> <li> <p>[protobuf] Add RunPlugin2 bidirectional streaming RPC to LanguageRuntime proto <a href="https://redirect.github.com/pulumi/pulumi/pull/22389">#22389</a></p> </li> <li> <p>[yaml] Update YAML runtime to 1.30.2 <a href="https://redirect.github.com/pulumi/pulumi/pull/22426">#22426</a></p> </li> <li> <p>[sdk/go] Add org get-default and set-default commands to Automation API</p> </li> <li> <p>[sdk/nodejs] Modernize generated tsconfig.json to align with TypeScript defaults <a href="https://redirect.github.com/pulumi/pulumi/pull/22370">#22370</a></p> </li> <li> <p>[cli/policy] Add a new <code>policy analyze</code> command to run a policy pack against existing state <a href="https://redirect.github.com/pulumi/pulumi/pull/22250">#22250</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[backend/diy] Remove state lock for refresh --preview-only for diy backend <a href="https://redirect.github.com/pulumi/pulumi/pull/22385">#22385</a></p> </li> <li> <p>[cli] Fix OTEL flushing on provider shutdown <a href="https://redirect.github.com/pulumi/pulumi/pull/22358">#22358</a></p> </li> <li> <p>[cli/display] Fix deadlock in message renderer when cancelling an operation <a href="https://redirect.github.com/pulumi/pulumi/pull/22433">#22433</a></p> </li> <li> <p>[engine] Fix <code>--include</code> and <code>--exclude</code> not working for program-based refresh (RefreshV2)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.229.0 (2026-04-02)</h2> <h3>Features</h3> <ul> <li> <p>[auto/python] Add org get-default and set-default commands to Automation API</p> </li> <li> <p>[backend/diy] Avoid unnecessary S3 bucket HEAD calls to improve performance <a href="https://redirect.github.com/pulumi/pulumi/pull/22373">#22373</a></p> </li> <li> <p>[cli] Allow TRACEPARENT to be set for CLI invocations, parenting the pulumi spans under an existing parent span <a href="https://redirect.github.com/pulumi/pulumi/pull/22369">#22369</a></p> </li> <li> <p>[cli/display] Add <code>--urns</code> flag to display full resource URNs instead of short names in preview, up, destroy, refresh, import, and watch commands <a href="https://redirect.github.com/pulumi/pulumi/pull/22007">#22007</a></p> </li> <li> <p>[pcl] Type integer literals as integers rather than numbers in PCL <a href="https://redirect.github.com/pulumi/pulumi/pull/22268">#22268</a></p> </li> <li> <p>[pcl] Support parameterized providers in PCL <a href="https://redirect.github.com/pulumi/pulumi/pull/22251">#22251</a></p> </li> <li> <p>[protobuf] Add RunPlugin2 bidirectional streaming RPC to LanguageRuntime proto <a href="https://redirect.github.com/pulumi/pulumi/pull/22389">#22389</a></p> </li> <li> <p>[yaml] Update YAML runtime to 1.30.2 <a href="https://redirect.github.com/pulumi/pulumi/pull/22426">#22426</a></p> </li> <li> <p>[sdk/go] Add org get-default and set-default commands to Automation API</p> </li> <li> <p>[sdk/nodejs] Modernize generated tsconfig.json to align with TypeScript defaults <a href="https://redirect.github.com/pulumi/pulumi/pull/22370">#22370</a></p> </li> <li> <p>[cli/policy] Add a new <code>policy analyze</code> command to run a policy pack against existing state <a href="https://redirect.github.com/pulumi/pulumi/pull/22250">#22250</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[backend/diy] Remove state lock for refresh --preview-only for diy backend <a href="https://redirect.github.com/pulumi/pulumi/pull/22385">#22385</a></p> </li> <li> <p>[cli] Fix OTEL flushing on provider shutdown <a href="https://redirect.github.com/pulumi/pulumi/pull/22358">#22358</a></p> </li> <li> <p>[cli/display] Fix deadlock in message renderer when cancelling an operation <a href="https://redirect.github.com/pulumi/pulumi/pull/22433">#22433</a></p> </li> <li> <p>[engine] Fix <code>--include</code> and <code>--exclude</code> not working for program-based refresh (RefreshV2) <a href="https://redirect.github.com/pulumi/pulumi/pull/22404">#22404</a></p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
53af38ee38 |
build(deps): bump the opentelemetry group across 1 directory with 6 updates (#1134)
Bumps the opentelemetry group with 2 updates in the / directory: [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib) and [go.opentelemetry.io/otel/exporters/prometheus](https://github.com/open-telemetry/opentelemetry-go). Updates `go.opentelemetry.io/contrib/instrumentation/runtime` from 0.67.0 to 0.68.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/releases">go.opentelemetry.io/contrib/instrumentation/runtime's releases</a>.</em></p> <blockquote> <h2>v1.43.0 / v2.5.0 / v0.68.0 / v0.37.0 / v0.23.0 / v0.18.0 / v0.16.0 / v0.15.0</h2> <h2>Added</h2> <ul> <li>Add <code>Resource</code> method to <code>SDK</code> in <code>go.opentelemetry.io/contrib/otelconf/v0.3.0</code> to expose the resolved SDK resource from declarative configuration. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8660">#8660</a>)</li> <li>Add support to set the configuration file via <code>OTEL_CONFIG_FILE</code> in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8639">#8639</a>)</li> <li>Add support for <code>service</code> resource detector in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8674">#8674</a>)</li> <li>Add support for <code>attribute_count_limit</code> and <code>attribute_value_length_limit</code> in tracer provider configuration in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8687">#8687</a>)</li> <li>Add support for <code>attribute_count_limit</code> and <code>attribute_value_length_limit</code> in logger provider configuration in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8686">#8686</a>)</li> <li>Add support for <code>server.address</code> and <code>server.port</code> attributes in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8723">#8723</a>)</li> <li>Add support for <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. Supported values are <code>rpc</code> (default), <code>rpc/dup</code> and <code>rpc/old</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8726">#8726</a>)</li> <li>Add the <code>http.route</code> metric attribute to <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8632">#8632</a>)</li> </ul> <h2>Changed</h2> <ul> <li>Prepend <code>_</code> to the normalized environment variable name when the key starts with a digit in <code>go.opentelemetry.io/contrib/propagators/envcar</code>, ensuring POSIX compliance. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8678">#8678</a>)</li> <li>Move experimental types from <code>go.opentelemetry.io/contrib/otelconf</code> to <code>go.opentelemetry.io/contrib/otelconf/x</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8529">#8529</a>)</li> <li>Normalize cached environment variable names in <code>go.opentelemetry.io/contrib/propagators/envcar</code>, aligning <code>Carrier.Keys</code> output with the carrier's normalized key format. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8761">#8761</a>)</li> </ul> <h2>Fixed</h2> <ul> <li>Fix <code>go.opentelemetry.io/contrib/otelconf</code> Prometheus reader converting OTel dot-style label names (e.g. <code>service.name</code>) to underscore-style (<code>service_name</code>) in <code>target_info</code> when both <code>without_type_suffix</code> and <code>without_units</code> are set. Use <code>NoTranslation</code> instead of <code>UnderscoreEscapingWithoutSuffixes</code> to preserve dot-style label names while still suppressing metric name suffixes. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8763">#8763</a>)</li> <li>Limit the request body size at 1MB in <code>go.opentelemetry.io/contrib/zpages</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8656">#8656</a>)</li> <li>Fix server spans using the client's address and port for <code>server.address</code> and <code>server.port</code> attributes in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8723">#8723</a>)</li> </ul> <h2>Removed</h2> <ul> <li>Host ID resource detector has been removed when configuring the <code>host</code> resource detector in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8581">#8581</a>)</li> </ul> <h2>Deprecated</h2> <ul> <li>Deprecate <code>OTEL_EXPERIMENTAL_CONFIG_FILE</code> in favour of <code>OTEL_CONFIG_FILE</code> in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8639">#8639</a>)</li> </ul> <h2>What's Changed</h2> <ul> <li>chore(deps): update module github.com/jgautheron/goconst to v1.9.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8651">open-telemetry/opentelemetry-go-contrib#8651</a></li> <li>chore(deps): update module go.yaml.in/yaml/v2 to v2.4.4 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8652">open-telemetry/opentelemetry-go-contrib#8652</a></li> <li>chore(deps): update golang.org/x/telemetry digest to e526e8a by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8647">open-telemetry/opentelemetry-go-contrib#8647</a></li> <li>chore(deps): update module k8s.io/klog/v2 to v2.140.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8650">open-telemetry/opentelemetry-go-contrib#8650</a></li> <li>chore(deps): update module github.com/mgechev/revive to v1.14.0 by <a href="https://github.com/mmorel-35"><code>@mmorel-35</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8646">open-telemetry/opentelemetry-go-contrib#8646</a></li> <li>chore(deps): update module github.com/mgechev/revive to v1.15.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8539">open-telemetry/opentelemetry-go-contrib#8539</a></li> <li>chore: fix noctx issues by <a href="https://github.com/mmorel-35"><code>@mmorel-35</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8645">open-telemetry/opentelemetry-go-contrib#8645</a></li> <li>chore(deps): update golang.org/x by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8655">open-telemetry/opentelemetry-go-contrib#8655</a></li> <li>chore(deps): update module codeberg.org/chavacava/garif to v0.2.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8654">open-telemetry/opentelemetry-go-contrib#8654</a></li> <li>chore(deps): update module github.com/mattn/go-runewidth to v0.0.21 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8653">open-telemetry/opentelemetry-go-contrib#8653</a></li> <li>fix(deps): update module go.opentelemetry.io/proto/otlp to v1.10.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8657">open-telemetry/opentelemetry-go-contrib#8657</a></li> <li>Limit the number of bytes read from the zpages body by <a href="https://github.com/dmathieu"><code>@dmathieu</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8656">open-telemetry/opentelemetry-go-contrib#8656</a></li> <li>fix(deps): update module github.com/golangci/golangci-lint/v2 to v2.11.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8648">open-telemetry/opentelemetry-go-contrib#8648</a></li> <li>fix(deps): update module github.com/golangci/golangci-lint/v2 to v2.11.3 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8661">open-telemetry/opentelemetry-go-contrib#8661</a></li> <li>chore(deps): update github.com/securego/gosec/v2 digest to 8895462 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8663">open-telemetry/opentelemetry-go-contrib#8663</a></li> <li>otelconf: support OTEL_CONFIG_FILE as it is no longer experimental by <a href="https://github.com/codeboten"><code>@codeboten</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8639">open-telemetry/opentelemetry-go-contrib#8639</a></li> <li>chore(deps): update module github.com/sonatard/noctx to v0.5.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8664">open-telemetry/opentelemetry-go-contrib#8664</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md">go.opentelemetry.io/contrib/instrumentation/runtime's changelog</a>.</em></p> <blockquote> <h2>[1.43.0/2.5.0/0.68.0/0.37.0/0.23.0/0.18.0/0.16.0/0.15.0] - 2026-04-03</h2> <h3>Added</h3> <ul> <li>Add <code>Resource</code> method to <code>SDK</code> in <code>go.opentelemetry.io/contrib/otelconf/v0.3.0</code> to expose the resolved SDK resource from declarative configuration. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8660">#8660</a>)</li> <li>Add support to set the configuration file via <code>OTEL_CONFIG_FILE</code> in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8639">#8639</a>)</li> <li>Add support for <code>service</code> resource detector in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8674">#8674</a>)</li> <li>Add support for <code>attribute_count_limit</code> and <code>attribute_value_length_limit</code> in tracer provider configuration in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8687">#8687</a>)</li> <li>Add support for <code>attribute_count_limit</code> and <code>attribute_value_length_limit</code> in logger provider configuration in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8686">#8686</a>)</li> <li>Add support for <code>server.address</code> and <code>server.port</code> attributes in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8723">#8723</a>)</li> <li>Add support for <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. Supported values are <code>rpc</code> (default), <code>rpc/dup</code> and <code>rpc/old</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8726">#8726</a>)</li> <li>Add the <code>http.route</code> metric attribute to <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8632">#8632</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Prepend <code>_</code> to the normalized environment variable name when the key starts with a digit in <code>go.opentelemetry.io/contrib/propagators/envcar</code>, ensuring POSIX compliance. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8678">#8678</a>)</li> <li>Move experimental types from <code>go.opentelemetry.io/contrib/otelconf</code> to <code>go.opentelemetry.io/contrib/otelconf/x</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8529">#8529</a>)</li> <li>Normalize cached environment variable names in <code>go.opentelemetry.io/contrib/propagators/envcar</code>, aligning <code>Carrier.Keys</code> output with the carrier's normalized key format. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8761">#8761</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix <code>go.opentelemetry.io/contrib/otelconf</code> Prometheus reader converting OTel dot-style label names (e.g. <code>service.name</code>) to underscore-style (<code>service_name</code>) in <code>target_info</code> when both <code>without_type_suffix</code> and <code>without_units</code> are set. Use <code>NoTranslation</code> instead of <code>UnderscoreEscapingWithoutSuffixes</code> to preserve dot-style label names while still suppressing metric name suffixes. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8763">#8763</a>)</li> <li>Limit the request body size at 1MB in <code>go.opentelemetry.io/contrib/zpages</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8656">#8656</a>)</li> <li>Fix server spans using the client's address and port for <code>server.address</code> and <code>server.port</code> attributes in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8723">#8723</a>)</li> </ul> <h3>Removed</h3> <ul> <li>Host ID resource detector has been removed when configuring the <code>host</code> resource detector in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8581">#8581</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li>Deprecate <code>OTEL_EXPERIMENTAL_CONFIG_FILE</code> in favour of <code>OTEL_CONFIG_FILE</code> in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8639">#8639</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
81bc5ff653 |
build(deps): bump github.com/google/go-containerregistry from 0.21.3 to 0.21.4 (#1131)
Bumps [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry) from 0.21.3 to 0.21.4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/go-containerregistry/releases">github.com/google/go-containerregistry's releases</a>.</em></p> <blockquote> <h2>v0.21.4</h2> <h2>What's Changed</h2> <ul> <li>go.mod: do not make a viral minimum go version by <a href="https://github.com/howardjohn"><code>@howardjohn</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2237">google/go-containerregistry#2237</a></li> <li>Avoid pruning absolute links from extracted and flattened images by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2241">google/go-containerregistry#2241</a></li> <li>Bump the go-deps group across 3 directories with 5 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2245">google/go-containerregistry#2245</a></li> <li>fix: update to go1.25.8, and use separate .go-version file by <a href="https://github.com/thaJeztah"><code>@thaJeztah</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2246">google/go-containerregistry#2246</a></li> <li>Bump CI go version to 1.26.1 by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2242">google/go-containerregistry#2242</a></li> <li>Bump codecov/codecov-action from 5.5.2 to 5.5.3 in the actions group by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2240">google/go-containerregistry#2240</a></li> <li>fork distribution client v3 auth-challenge as an internal package (squashed) by <a href="https://github.com/thaJeztah"><code>@thaJeztah</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2248">google/go-containerregistry#2248</a></li> <li>transport: validate Bearer realm URL to prevent SSRF by <a href="https://github.com/evilgensec"><code>@evilgensec</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2243">google/go-containerregistry#2243</a></li> <li>revert path traversal and symlink escape from <a href="https://redirect.github.com/google/go-containerregistry/issues/2227">#2227</a> by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2250">google/go-containerregistry#2250</a></li> <li>Fix pkg/v1/google/auth tests for arm64 by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2085">google/go-containerregistry#2085</a></li> <li>goreleaser: Update goreleaser config and GH action by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2253">google/go-containerregistry#2253</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/evilgensec"><code>@evilgensec</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2243">google/go-containerregistry#2243</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/google/go-containerregistry/compare/v0.21.3...v0.21.4">https://github.com/google/go-containerregistry/compare/v0.21.3...v0.21.4</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
2a6b00dde7 |
build(deps): bump github.com/jackc/pgx/v5 from 5.8.0 to 5.9.1 (#1092)
Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.8.0 to 5.9.1. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jackc/pgx/blob/master/CHANGELOG.md">github.com/jackc/pgx/v5's changelog</a>.</em></p> <blockquote> <h1>5.9.1 (March 22, 2026)</h1> <ul> <li>Fix: batch result format corruption when using cached prepared statements (reported by Dirkjan Bussink)</li> </ul> <h1>5.9.0 (March 21, 2026)</h1> <p>This release includes a number of new features such as SCRAM-SHA-256-PLUS support, OAuth authentication support, and PostgreSQL protocol 3.2 support.</p> <p>It significantly reduces the amount of network traffic when using prepared statements (which are used automatically by default) by avoiding unnecessary Describe Portal messages. This also reduces local memory usage.</p> <p>It also includes multiple fixes for potential DoS due to panic or OOM if connected to a malicious server that sends deliberately malformed messages.</p> <ul> <li>Require Go 1.25+</li> <li>Add SCRAM-SHA-256-PLUS support (Adam Brightwell)</li> <li>Add OAuth authentication support for PostgreSQL 18 (David Schneider)</li> <li>Add PostgreSQL protocol 3.2 support (Dirkjan Bussink)</li> <li>Add tsvector type support (Adam Brightwell)</li> <li>Skip Describe Portal for cached prepared statements reducing network round trips</li> <li>Make LoadTypes query easier to support on "postgres-like" servers (Jelte Fennema-Nio)</li> <li>Default empty user to current OS user matching libpq behavior (ShivangSrivastava)</li> <li>Optimize LRU statement cache with custom linked list and node pooling (Mathias Bogaert)</li> <li>Optimize date scanning by replacing regex with manual parsing (Mathias Bogaert)</li> <li>Optimize pgio append/set functions with direct byte shifts (Mathias Bogaert)</li> <li>Make RowsAffected faster (Abhishek Chanda)</li> <li>Fix: Pipeline.Close panic when server sends multiple FATAL errors (Varun Chawla)</li> <li>Fix: ContextWatcher goroutine leak (Hank Donnay)</li> <li>Fix: stdlib discard connections with open transactions in ResetSession (Jeremy Schneider)</li> <li>Fix: pipelineBatchResults.Exec silently swallowing lastRows error</li> <li>Fix: ColumnTypeLength using BPCharArrayOID instead of BPCharOID</li> <li>Fix: TSVector text encoding returning nil for valid empty tsvector</li> <li>Fix: wrong error messages for Int2 and Int4 underflow</li> <li>Fix: Numeric nil Int pointer dereference with Valid: true</li> <li>Fix: reversed strings.ContainsAny arguments in Numeric.ScanScientific</li> <li>Fix: message length parsing on 32-bit platforms</li> <li>Fix: FunctionCallResponse.Decode mishandling of signed result size</li> <li>Fix: returning wrong error in configTLS when DecryptPEMBlock fails (Maxim Motyshen)</li> <li>Fix: misleading ParseConfig error when default_query_exec_mode is invalid (Skarm)</li> <li>Fix: missed Unwatch in Pipeline error paths</li> <li>Clarify too many failed acquire attempts error message</li> <li>Better error wrapping with context and SQL statement (Aneesh Makala)</li> <li>Enable govet and ineffassign linters (Federico Guerinoni)</li> <li>Guard against various malformed binary messages (arrays, hstore, multirange, protocol messages)</li> <li>Fix various godoc comments (ferhat elmas)</li> <li>Fix typos in comments (Oleksandr Redko)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
fff1664e3d |
build(deps): bump the actions group across 1 directory with 2 updates (#1105)
Bumps the actions group with 2 updates in the / directory: [actions/setup-go](https://github.com/actions/setup-go) and [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer). Updates `actions/setup-go` from 6.3.0 to 6.4.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/setup-go/releases">actions/setup-go's releases</a>.</em></p> <blockquote> <h2>v6.4.0</h2> <h2>What's Changed</h2> <h3>Enhancement</h3> <ul> <li>Add go-download-base-url input for custom Go distributions by <a href="https://github.com/gdams"><code>@gdams</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/721">actions/setup-go#721</a></li> </ul> <h3>Dependency update</h3> <ul> <li>Upgrade minimatch from 3.1.2 to 3.1.5 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/727">actions/setup-go#727</a></li> </ul> <h3>Documentation update</h3> <ul> <li>Rearrange README.md, add advanced-usage.md by <a href="https://github.com/priyagupta108"><code>@priyagupta108</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/724">actions/setup-go#724</a></li> <li>Fix Microsoft build of Go link by <a href="https://github.com/gdams"><code>@gdams</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/734">actions/setup-go#734</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/gdams"><code>@gdams</code></a> made their first contribution in <a href="https://redirect.github.com/actions/setup-go/pull/721">actions/setup-go#721</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/setup-go/compare/v6...v6.4.0">https://github.com/actions/setup-go/compare/v6...v6.4.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
7be5dd23c0 |
build(deps): bump github.com/go-git/go-git/v5 from 5.16.5 to 5.17.1 in /deploy (#1104)
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.16.5 to 5.17.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/go-git/go-git/releases">github.com/go-git/go-git/v5's releases</a>.</em></p> <blockquote> <h2>v5.17.1</h2> <h2>What's Changed</h2> <ul> <li>build: Update module github.com/cloudflare/circl to v1.6.3 [SECURITY] (releases/v5.x) by <a href="https://github.com/go-git-renovate"><code>@go-git-renovate</code></a>[bot] in <a href="https://redirect.github.com/go-git/go-git/pull/1930">go-git/go-git#1930</a></li> <li>[v5] plumbing: format/index, Improve v4 entry name validation by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1935">go-git/go-git#1935</a></li> <li>[v5] plumbing: format/idxfile, Fix version and fanout checks by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1937">go-git/go-git#1937</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/go-git/go-git/compare/v5.17.0...v5.17.1">https://github.com/go-git/go-git/compare/v5.17.0...v5.17.1</a></p> <h2>v5.17.0</h2> <h2>What's Changed</h2> <ul> <li>build: Update module github.com/go-git/go-git/v5 to v5.16.5 [SECURITY] (releases/v5.x) by <a href="https://github.com/go-git-renovate"><code>@go-git-renovate</code></a>[bot] in <a href="https://redirect.github.com/go-git/go-git/pull/1839">go-git/go-git#1839</a></li> <li>git: worktree, optimize infiles function for very large repos by <a href="https://github.com/k-anshul"><code>@k-anshul</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1853">go-git/go-git#1853</a></li> <li>git: Add strict checks for supported extensions by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1861">go-git/go-git#1861</a></li> <li>backport, git: Improve Status() speed with new index.ModTime check by <a href="https://github.com/cedric-appdirect"><code>@cedric-appdirect</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1862">go-git/go-git#1862</a></li> <li>storage: filesystem, Avoid overwriting loose obj files by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1864">go-git/go-git#1864</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/go-git/go-git/compare/v5.16.5...v5.17.0">https://github.com/go-git/go-git/compare/v5.16.5...v5.17.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
bc8ff18495 |
build(deps): bump github.com/danielgtaylor/huma/v2 from 2.37.2 to 2.37.3 (#1098)
Bumps [github.com/danielgtaylor/huma/v2](https://github.com/danielgtaylor/huma) from 2.37.2 to 2.37.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/danielgtaylor/huma/releases">github.com/danielgtaylor/huma/v2's releases</a>.</em></p> <blockquote> <h2>v2.37.3</h2> <h2>Overview</h2> <p>This bugfix release fixes a few minor bugs and typos from previous releases.</p> <p>This also adjusts the HTTP status code returned by Huma if marshaling a response fails, from 200 to 500.</p> <h2>What's Changed</h2> <ul> <li>Fix: add allow-popups to CSP sandbox for OAuth popups by <a href="https://github.com/Micaso"><code>@Micaso</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/987">danielgtaylor/huma#987</a></li> <li>Fix: use epsilon tolerance in multipleOf float validation by <a href="https://github.com/smazurov"><code>@smazurov</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/989">danielgtaylor/huma#989</a></li> <li>Fix typo in groups.md documentation by <a href="https://github.com/Its-Haze"><code>@Its-Haze</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/995">danielgtaylor/huma#995</a></li> <li>Fix relative schema urls by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/990">danielgtaylor/huma#990</a></li> <li>Return HTTP 500 if marshaling fails by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/997">danielgtaylor/huma#997</a></li> <li>Handle contentEncoding and contentMediaType keys by <a href="https://github.com/NPellet"><code>@NPellet</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/919">danielgtaylor/huma#919</a></li> <li>Chore(deps): bump github.com/gofiber/fiber/v2 from 2.52.11 to 2.52.12 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/danielgtaylor/huma/pull/984">danielgtaylor/huma#984</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Micaso"><code>@Micaso</code></a> made their first contribution in <a href="https://redirect.github.com/danielgtaylor/huma/pull/987">danielgtaylor/huma#987</a></li> <li><a href="https://github.com/smazurov"><code>@smazurov</code></a> made their first contribution in <a href="https://redirect.github.com/danielgtaylor/huma/pull/989">danielgtaylor/huma#989</a></li> <li><a href="https://github.com/Its-Haze"><code>@Its-Haze</code></a> made their first contribution in <a href="https://redirect.github.com/danielgtaylor/huma/pull/995">danielgtaylor/huma#995</a></li> <li><a href="https://github.com/NPellet"><code>@NPellet</code></a> made their first contribution in <a href="https://redirect.github.com/danielgtaylor/huma/pull/919">danielgtaylor/huma#919</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/danielgtaylor/huma/compare/v2.37.2...v2.37.3">https://github.com/danielgtaylor/huma/compare/v2.37.2...v2.37.3</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
f30e540117 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.226.0 to 3.228.0 in /deploy (#1094)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.226.0 to 3.228.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.228.0</h2> <h2>3.228.0 (2026-03-25)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Don't apply the secrets filter to <code>true</code> and <code>false</code> (case-insensitive) <a href="https://redirect.github.com/pulumi/pulumi/pull/22269">#22269</a></p> </li> <li> <p>[cli] Add grpcs:// support and header authentication to OTLP exporter <a href="https://redirect.github.com/pulumi/pulumi/pull/22320">#22320</a></p> </li> <li> <p>[cli] Read OTEL_RESOURCE_ATTRIBUTES <a href="https://redirect.github.com/pulumi/pulumi/pull/22329">#22329</a></p> </li> <li> <p>[auto/nodejs] Add low-level "cancel" command to the auto-generated interface <a href="https://redirect.github.com/pulumi/pulumi/pull/22156">#22156</a></p> </li> <li> <p>[cli/state] Allow <code>pulumi state delete</code> to accept multiple resource URNs and delete them in a dependency-safe order</p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli] Allow relative file paths for --otel-traces <a href="https://redirect.github.com/pulumi/pulumi/pull/22300">#22300</a></p> </li> <li> <p>[cli] Bridge opentracing spans from providers into OTel <a href="https://redirect.github.com/pulumi/pulumi/pull/22313">#22313</a></p> </li> <li> <p>[cli] Correctly end spans for GRPC streams <a href="https://redirect.github.com/pulumi/pulumi/pull/22304">#22304</a></p> </li> <li> <p>[cli/about] Do not include the access token in plain text <a href="https://redirect.github.com/pulumi/pulumi/pull/22347">#22347</a></p> </li> <li> <p>[display] Fix detailed diff indentation so changed resources are not visually nested under unrelated visible resources when unchanged parents are hidden. <a href="https://redirect.github.com/pulumi/pulumi/pull/22317">#22317</a></p> </li> <li> <p>[cli/import] Fix import codegen when generating references to non-standard names <a href="https://redirect.github.com/pulumi/pulumi/pull/22319">#22319</a></p> </li> <li> <p>[engine] Update golang version <a href="https://redirect.github.com/pulumi/pulumi/pull/22277">#22277</a></p> </li> <li> <p>[pcl] Typecheck component inputs in PCL programs <a href="https://redirect.github.com/pulumi/pulumi/pull/22292">#22292</a></p> </li> <li> <p>[programgen/{nodejs,python}] Fix literal conversion when calling into local components <a href="https://redirect.github.com/pulumi/pulumi/pull/22306">#22306</a></p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.228.0 (2026-03-25)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Don't apply the secrets filter to <code>true</code> and <code>false</code> (case-insensitive) <a href="https://redirect.github.com/pulumi/pulumi/pull/22269">#22269</a></p> </li> <li> <p>[cli] Add grpcs:// support and header authentication to OTLP exporter <a href="https://redirect.github.com/pulumi/pulumi/pull/22320">#22320</a></p> </li> <li> <p>[cli] Read OTEL_RESOURCE_ATTRIBUTES <a href="https://redirect.github.com/pulumi/pulumi/pull/22329">#22329</a></p> </li> <li> <p>[auto/nodejs] Add low-level "cancel" command to the auto-generated interface <a href="https://redirect.github.com/pulumi/pulumi/pull/22156">#22156</a></p> </li> <li> <p>[cli/state] Allow <code>pulumi state delete</code> to accept multiple resource URNs and delete them in a dependency-safe order</p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli] Allow relative file paths for --otel-traces <a href="https://redirect.github.com/pulumi/pulumi/pull/22300">#22300</a></p> </li> <li> <p>[cli] Bridge opentracing spans from providers into OTel <a href="https://redirect.github.com/pulumi/pulumi/pull/22313">#22313</a></p> </li> <li> <p>[cli] Correctly end spans for GRPC streams <a href="https://redirect.github.com/pulumi/pulumi/pull/22304">#22304</a></p> </li> <li> <p>[cli/about] Do not include the access token in plain text <a href="https://redirect.github.com/pulumi/pulumi/pull/22347">#22347</a></p> </li> <li> <p>[display] Fix detailed diff indentation so changed resources are not visually nested under unrelated visible resources when unchanged parents are hidden. <a href="https://redirect.github.com/pulumi/pulumi/pull/22317">#22317</a></p> </li> <li> <p>[cli/import] Fix import codegen when generating references to non-standard names <a href="https://redirect.github.com/pulumi/pulumi/pull/22319">#22319</a></p> </li> <li> <p>[engine] Update golang version <a href="https://redirect.github.com/pulumi/pulumi/pull/22277">#22277</a></p> </li> <li> <p>[pcl] Typecheck component inputs in PCL programs <a href="https://redirect.github.com/pulumi/pulumi/pull/22292">#22292</a></p> </li> <li> <p>[programgen/{nodejs,python}] Fix literal conversion when calling into local components <a href="https://redirect.github.com/pulumi/pulumi/pull/22306">#22306</a></p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
c5c4b9e889 |
build(deps): bump anchore/sbom-action from 0.23.1 to 0.24.0 in the actions group (#1085) | ||
|
|
ddb93bd3a8 |
Add contributing guidelines to prevent seed.json PRs (#1079)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> We've been receiving numerous PRs from authors attempting to publish their MCP server by adding entries to `data/seed.json`. This is not the correct approach as servers should be published using the `mcp-publisher` CLI tool. Many of these PRs appear to be AI-generated so the existing docs aren't being surfaced effectively. This PR adds explicit guidance in the files that AI coding assistants actually read: - `CONTRIBUTING.md` - shown by GitHub when opening new PRs; widely ingested by AI tools - `.github/copilot-instructions.md` - read by GitHub Copilot - `CLAUDE.md` - read by Claude Code and Claude on github.com ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
9c180f4d33 |
build(deps): bump google.golang.org/grpc from 1.78.0 to 1.79.3 (#1076)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.78.0 to 1.79.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/grpc/grpc-go/releases">google.golang.org/grpc's releases</a>.</em></p> <blockquote> <h2>Release 1.79.3</h2> <h1>Security</h1> <ul> <li>server: fix an authorization bypass where malformed :path headers (missing the leading slash) could bypass path-based restricted "deny" rules in interceptors like <code>grpc/authz</code>. Any request with a non-canonical path is now immediately rejected with an <code>Unimplemented</code> error. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8981">#8981</a>)</li> </ul> <h2>Release 1.79.2</h2> <h1>Bug Fixes</h1> <ul> <li>stats: Prevent redundant error logging in health/ORCA producers by skipping stats/tracing processing when no stats handler is configured. (<a href="https://redirect.github.com/grpc/grpc-go/pull/8874">grpc/grpc-go#8874</a>)</li> </ul> <h2>Release 1.79.1</h2> <h1>Bug Fixes</h1> <ul> <li>grpc: Remove the <code>-dev</code> suffix from the User-Agent header. (<a href="https://redirect.github.com/grpc/grpc-go/pull/8902">grpc/grpc-go#8902</a>)</li> </ul> <h2>Release 1.79.0</h2> <h1>API Changes</h1> <ul> <li>mem: Add experimental API <code>SetDefaultBufferPool</code> to change the default buffer pool. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8806">#8806</a>) <ul> <li>Special Thanks: <a href="https://github.com/vanja-p"><code>@vanja-p</code></a></li> </ul> </li> <li>experimental/stats: Update <code>MetricsRecorder</code> to require embedding the new <code>UnimplementedMetricsRecorder</code> (a no-op struct) in all implementations for forward compatibility. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8780">#8780</a>)</li> </ul> <h1>Behavior Changes</h1> <ul> <li>balancer/weightedtarget: Remove handling of <code>Addresses</code> and only handle <code>Endpoints</code> in resolver updates. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8841">#8841</a>)</li> </ul> <h1>New Features</h1> <ul> <li>experimental/stats: Add support for asynchronous gauge metrics through the new <code>AsyncMetricReporter</code> and <code>RegisterAsyncReporter</code> APIs. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8780">#8780</a>)</li> <li>pickfirst: Add support for weighted random shuffling of endpoints, as described in <a href="https://redirect.github.com/grpc/proposal/pull/535">gRFC A113</a>. <ul> <li>This is enabled by default, and can be turned off using the environment variable <code>GRPC_EXPERIMENTAL_PF_WEIGHTED_SHUFFLING</code>. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8864">#8864</a>)</li> </ul> </li> <li>xds: Implement <code>:authority</code> rewriting, as specified in <a href="https://github.com/grpc/proposal/blob/master/A81-xds-authority-rewriting.md">gRFC A81</a>. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8779">#8779</a>)</li> <li>balancer/randomsubsetting: Implement the <code>random_subsetting</code> LB policy, as specified in <a href="https://github.com/grpc/proposal/blob/master/A68-random-subsetting.md">gRFC A68</a>. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8650">#8650</a>) <ul> <li>Special Thanks: <a href="https://github.com/marek-szews"><code>@marek-szews</code></a></li> </ul> </li> </ul> <h1>Bug Fixes</h1> <ul> <li>credentials/tls: Fix a bug where the port was not stripped from the authority override before validation. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8726">#8726</a>) <ul> <li>Special Thanks: <a href="https://github.com/Atul1710"><code>@Atul1710</code></a></li> </ul> </li> <li>xds/priority: Fix a bug causing delayed failover to lower-priority clusters when a higher-priority cluster is stuck in <code>CONNECTING</code> state. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8813">#8813</a>)</li> <li>health: Fix a bug where health checks failed for clients using legacy compression options (<code>WithDecompressor</code> or <code>RPCDecompressor</code>). (<a href="https://redirect.github.com/grpc/grpc-go/issues/8765">#8765</a>) <ul> <li>Special Thanks: <a href="https://github.com/sanki92"><code>@sanki92</code></a></li> </ul> </li> <li>transport: Fix an issue where the HTTP/2 server could skip header size checks when terminating a stream early. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8769">#8769</a>) <ul> <li>Special Thanks: <a href="https://github.com/joybestourous"><code>@joybestourous</code></a></li> </ul> </li> <li>server: Propagate status detail headers, if available, when terminating a stream during request header processing. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8754">#8754</a>) <ul> <li>Special Thanks: <a href="https://github.com/joybestourous"><code>@joybestourous</code></a></li> </ul> </li> </ul> <h1>Performance Improvements</h1> <ul> <li>credentials/alts: Optimize read buffer alignment to reduce copies. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8791">#8791</a>)</li> <li>mem: Optimize pooling and creation of <code>buffer</code> objects. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8784">#8784</a>)</li> <li>transport: Reduce slice re-allocations by reserving slice capacity. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8797">#8797</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
29ed71a8b8 |
build(deps): bump google.golang.org/grpc from 1.79.1 to 1.79.3 in /deploy (#1077)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.79.1 to 1.79.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/grpc/grpc-go/releases">google.golang.org/grpc's releases</a>.</em></p> <blockquote> <h2>Release 1.79.3</h2> <h1>Security</h1> <ul> <li>server: fix an authorization bypass where malformed :path headers (missing the leading slash) could bypass path-based restricted "deny" rules in interceptors like <code>grpc/authz</code>. Any request with a non-canonical path is now immediately rejected with an <code>Unimplemented</code> error. (<a href="https://redirect.github.com/grpc/grpc-go/issues/8981">#8981</a>)</li> </ul> <h2>Release 1.79.2</h2> <h1>Bug Fixes</h1> <ul> <li>stats: Prevent redundant error logging in health/ORCA producers by skipping stats/tracing processing when no stats handler is configured. (<a href="https://redirect.github.com/grpc/grpc-go/pull/8874">grpc/grpc-go#8874</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
9c7c8805cc |
build(deps): bump github.com/google/go-containerregistry from 0.21.2 to 0.21.3 (#1073)
Bumps [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry) from 0.21.2 to 0.21.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/go-containerregistry/releases">github.com/google/go-containerregistry's releases</a>.</em></p> <blockquote> <h2>v0.21.3</h2> <h2>What's Changed</h2> <ul> <li>Adds local file support to the <code>crane index</code> subcommand by <a href="https://github.com/edwardthiele"><code>@edwardthiele</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2223">google/go-containerregistry#2223</a></li> <li>migrate to github.com/moby/moby modules by <a href="https://github.com/thaJeztah"><code>@thaJeztah</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2228">google/go-containerregistry#2228</a></li> <li>Bump the go-deps group across 4 directories with 7 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2233">google/go-containerregistry#2233</a></li> <li>Bump goreleaser/goreleaser-action from 6.4.0 to 7.0.0 in the actions group by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2220">google/go-containerregistry#2220</a></li> <li>mutate: reject path traversal and symlink escape in Extract by <a href="https://github.com/KevinZhao"><code>@KevinZhao</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2227">google/go-containerregistry#2227</a></li> <li>tarball: detect symlink cycles in extractFileFromTar by <a href="https://github.com/vnykmshr"><code>@vnykmshr</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2232">google/go-containerregistry#2232</a></li> <li>bump golang to 1.25.7 by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2236">google/go-containerregistry#2236</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/edwardthiele"><code>@edwardthiele</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2223">google/go-containerregistry#2223</a></li> <li><a href="https://github.com/thaJeztah"><code>@thaJeztah</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2228">google/go-containerregistry#2228</a></li> <li><a href="https://github.com/KevinZhao"><code>@KevinZhao</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2227">google/go-containerregistry#2227</a></li> <li><a href="https://github.com/vnykmshr"><code>@vnykmshr</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2232">google/go-containerregistry#2232</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/google/go-containerregistry/compare/v0.21.2...v0.21.3">https://github.com/google/go-containerregistry/compare/v0.21.2...v0.21.3</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
52178183f3 |
build(deps): bump github.com/danielgtaylor/huma/v2 from 2.35.0 to 2.37.2 (#989)
Bumps [github.com/danielgtaylor/huma/v2](https://github.com/danielgtaylor/huma) from 2.35.0 to 2.37.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/danielgtaylor/huma/releases">github.com/danielgtaylor/huma/v2's releases</a>.</em></p> <blockquote> <h2>v2.37.2</h2> <h2>Overview</h2> <p>This bugfix release fixes an issue with how form data was being documented in OpenAPI.</p> <p>This also fixes embedded objects with valid JSON tags being incorrectly embedded in the OpenAPI docs.</p> <h2>What's Changed</h2> <ul> <li>Don't embed embedded objects with valid JSON tags by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/978">danielgtaylor/huma#978</a></li> <li>Fix OpenAPI path prefix regression from $schema fix PR by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/979">danielgtaylor/huma#979</a></li> <li>Fix form param doc regression by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/981">danielgtaylor/huma#981</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/danielgtaylor/huma/compare/v2.37.1...v2.37.2">https://github.com/danielgtaylor/huma/compare/v2.37.1...v2.37.2</a></p> <h2>v2.37.1</h2> <h2>Overview</h2> <p>This bugfix release fixes an issue regarding the Swagger UI docs renderer, as well as fixes an issue preventing Groups from using the configurable options released in v2.37.1.</p> <p>This also brings interface constructors to <code>humamux</code>.</p> <h2>What's Changed</h2> <ul> <li>Export Gorilla Mux interface constructors by <a href="https://github.com/RangelReale"><code>@RangelReale</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/965">danielgtaylor/huma#965</a></li> <li>fix(api): use proper CSP hash for inline script in Swagger doc renderer by <a href="https://github.com/leonklingele"><code>@leonklingele</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/977">danielgtaylor/huma#977</a></li> <li>fix(group): ensure "Group" satisfies the configProvider interface by <a href="https://github.com/leonklingele"><code>@leonklingele</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/976">danielgtaylor/huma#976</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/danielgtaylor/huma/compare/v2.37.0...v2.37.1">https://github.com/danielgtaylor/huma/compare/v2.37.0...v2.37.1</a></p> <h2>v2.37.0</h2> <h2>Overview</h2> <h3>Dropped Explicit IDN-Hostname Validation</h3> <p>This validation unintentionally imported an external library to the base Huma library. Since this was not a requested feature, it has been removed for now. The <code>idn-hostname</code> format value has become an alias for <code>hostname</code> in the meantime.</p> <h3>Operation ID Normalization</h3> <p>Spaces in operation IDs get automatically converted to hyphens now.</p> <h3>Optimizations & Fixed Memory Leak</h3> <p>Various internal operations have been optimized (~7% overall improvement): <a href="https://redirect.github.com/danielgtaylor/huma/pull/973#issue-3960297052">danielgtaylor/huma#973</a></p> <p>A memory leak when using <code>MultipartFormFiles</code> has been resolved.</p> <h3>New Configurable Options</h3> <h4>Allow Additional Properties By Default</h4> <p>A new config option has been added to allow additional properties by default. This can be set in the API config.</p> <pre lang="go"><code>config.AllowAdditionalPropertiesByDefault = true </code></pre> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
a94c56a78f |
build(deps): bump github.com/pulumi/pulumi-kubernetes/sdk/v4 from 4.27.0 to 4.28.0 in /deploy (#1056)
Bumps [github.com/pulumi/pulumi-kubernetes/sdk/v4](https://github.com/pulumi/pulumi-kubernetes) from 4.27.0 to 4.28.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/releases">github.com/pulumi/pulumi-kubernetes/sdk/v4's releases</a>.</em></p> <blockquote> <h2>v4.28.0</h2> <p>No release notes provided.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/blob/master/CHANGELOG.md">github.com/pulumi/pulumi-kubernetes/sdk/v4's changelog</a>.</em></p> <blockquote> <h2>4.28.0 (March 12, 2026)</h2> <h3>Changed</h3> <ul> <li>Upgrade Kubernetes schema and libraries to v1.35.2.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
01b1ae2555 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.225.1 to 3.226.0 in /deploy (#1057)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.225.1 to 3.226.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.226.0</h2> <h2>3.226.0 (2026-03-11)</h2> <h3>Features</h3> <ul> <li> <p>[backend/service] Automatically repair snapshot integrity issues, while sending an error event to the backend for further diagnosis <a href="https://redirect.github.com/pulumi/pulumi/pull/22179">#22179</a></p> </li> <li> <p>[cli] Add a --otel-traces flag, that allows writing otel traces to a file, or directly to a grpc interface <a href="https://redirect.github.com/pulumi/pulumi/pull/22129">#22129</a></p> </li> <li> <p>[engine] Engine will use provider references from <code>__self__</code> arguments to calls <a href="https://redirect.github.com/pulumi/pulumi/pull/22114">#22114</a></p> </li> <li> <p>[sdk/bun] Support bun as a runtime <a href="https://redirect.github.com/pulumi/pulumi/pull/22177">#22177</a> <a href="https://redirect.github.com/pulumi/pulumi/pull/22049">#22049</a></p> </li> <li> <p>[sdk/bun] Add debugger support for the bun runtime <a href="https://redirect.github.com/pulumi/pulumi/pull/22177">#22177</a></p> </li> <li> <p>[sdk/bun] Add support for Bun as a plugin runtime <a href="https://redirect.github.com/pulumi/pulumi/pull/22189">#22189</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[engine] Fix ReplacementTrigger firing due to dependency changes <a href="https://redirect.github.com/pulumi/pulumi/pull/22119">#22119</a></p> </li> <li> <p>[engine] Correctly serialize output values to the snapshot rather than always recording them as computed even when known <a href="https://redirect.github.com/pulumi/pulumi/pull/22120">#22120</a></p> </li> <li> <p>[pcl] Support resource ranges in PCL <a href="https://redirect.github.com/pulumi/pulumi/pull/22144">#22144</a></p> </li> <li> <p>[cli/config] Include environments used when refreshing a stack's config <a href="https://redirect.github.com/pulumi/pulumi/pull/22103">#22103</a></p> </li> <li> <p>[cli/display] Fix <code>pulumi destroy</code> not showing parent resource hierarchy <a href="https://redirect.github.com/pulumi/pulumi/pull/22148">#22148</a></p> </li> <li> <p>[cli/package] Correctly parse package URLs with .git in them <a href="https://redirect.github.com/pulumi/pulumi/pull/22174">#22174</a></p> </li> <li> <p>[cli/plugin] Fix package get-schema for binary providers at relative paths <a href="https://redirect.github.com/pulumi/pulumi/pull/22107">#22107</a></p> </li> <li> <p>[sdk/python] Handle null detailedDiff in automation StepEventMetadata JSON parsing</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
00de8fac8b |
build(deps): bump golang.org/x/mod from 0.33.0 to 0.34.0 (#1054)
Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.33.0 to 0.34.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
b941ee3674 |
Remove .mdx suffixes from internal doc links for Mintlify (#1052)
These docs are synced to modelcontextprotocol.io which uses Mintlify for rendering. Mintlify routes are extension-less, so links like `./package-types.mdx` produce 404s on the live site. Dropping the `.mdx` suffix fixes those broken links. The trade-off is that the links no longer resolve when browsing the raw files on GitHub. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
b112ac3335 |
build(deps): bump the actions group with 2 updates (#1049)
Bumps the actions group with 2 updates: [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) and [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `sigstore/cosign-installer` from 4.0.0 to 4.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sigstore/cosign-installer/releases">sigstore/cosign-installer's releases</a>.</em></p> <blockquote> <h2>v4.1.0</h2> <h2>What's Changed</h2> <p>We recommend updating as soon as possible as this includes bug fixes for Cosign. We also recommend removing <code>with: cosign-release</code> and strongly discourage using <code>cosign-release</code> unless you have a specific reason to use an older version of Cosign.</p> <ul> <li>Bump cosign to 3.0.5 in <a href="https://redirect.github.com/sigstore/cosign-installer/pull/220">sigstore/cosign-installer#220</a></li> <li>fix: add retry to curl downloads for transient network failures in <a href="https://redirect.github.com/sigstore/cosign-installer/pull/210">sigstore/cosign-installer#210</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/sigstore/cosign-installer/compare/v4.0.0...v4.1.0">https://github.com/sigstore/cosign-installer/compare/v4.0.0...v4.1.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
2575290393 |
chore(deploy): bump production image tag to 1.5.0 (#1043)
## Summary - Updates the production image tag in `deploy/Pulumi.gcpProd.yaml` from `1.4.1` to `1.5.0` ## Test plan - [ ] Verify the Pulumi deployment picks up the new image tag - [ ] Confirm the v1.5.0 container image exists in the registry 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
c0ecfd5a65 |
build(deps): bump github.com/google/go-containerregistry from 0.20.7 to 0.21.2 (#1026)
Bumps [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry) from 0.20.7 to 0.21.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/go-containerregistry/releases">github.com/google/go-containerregistry's releases</a>.</em></p> <blockquote> <h2>v0.21.2</h2> <h2>What's Changed</h2> <ul> <li>Better handle redirects to https in ping by <a href="https://github.com/jonjohnsonjr"><code>@jonjohnsonjr</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2225">google/go-containerregistry#2225</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/google/go-containerregistry/compare/v0.21.1...v0.21.2">https://github.com/google/go-containerregistry/compare/v0.21.1...v0.21.2</a></p> <h2>v0.21.1</h2> <p>This release fixes a regression in <code>crane</code> introduced in the previous release.</p> <h2>What's Changed</h2> <ul> <li>Add WithFileBufferedOpener for file-backed daemon image buffering by <a href="https://github.com/twdamhore"><code>@twdamhore</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2214">google/go-containerregistry#2214</a></li> <li>crane: fix case in auth response json by <a href="https://github.com/aelindeman"><code>@aelindeman</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2218">google/go-containerregistry#2218</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/twdamhore"><code>@twdamhore</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2214">google/go-containerregistry#2214</a></li> <li><a href="https://github.com/aelindeman"><code>@aelindeman</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2218">google/go-containerregistry#2218</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/google/go-containerregistry/compare/v0.21.0...v0.21.1">https://github.com/google/go-containerregistry/compare/v0.21.0...v0.21.1</a></p> <h2>v0.21.0</h2> <p>This release updates the minimum Go version to <code>1.25.6</code>.</p> <h2>What's Changed</h2> <ul> <li>fix(mutate): don't skip dir replacements via whiteout in export by <a href="https://github.com/r4f4"><code>@r4f4</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2191">google/go-containerregistry#2191</a></li> <li>Improve performance of v1.NewHash by <a href="https://github.com/bmoylan"><code>@bmoylan</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2194">google/go-containerregistry#2194</a></li> <li>Bump the actions group across 1 directory with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2207">google/go-containerregistry#2207</a></li> <li>Bump the root-deps group across 1 directory with 7 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2195">google/go-containerregistry#2195</a></li> <li>Fix error messages in crane_test.go by <a href="https://github.com/jammie-jelly"><code>@jammie-jelly</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2189">google/go-containerregistry#2189</a></li> <li>Bump go version across packages to 1.25.6 by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2211">google/go-containerregistry#2211</a></li> <li>Join go.mod dependency updates by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2212">google/go-containerregistry#2212</a></li> <li>Bump the go-deps group across 3 directories with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/google/go-containerregistry/pull/2213">google/go-containerregistry#2213</a></li> <li>Disable taint gosec lints by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2215">google/go-containerregistry#2215</a></li> <li>Update go version used in goreleaser by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2216">google/go-containerregistry#2216</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/r4f4"><code>@r4f4</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2191">google/go-containerregistry#2191</a></li> <li><a href="https://github.com/jammie-jelly"><code>@jammie-jelly</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2189">google/go-containerregistry#2189</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/google/go-containerregistry/compare/v0.20.7...v0.21.0">https://github.com/google/go-containerregistry/compare/v0.20.7...v0.21.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
03d551dbab |
build(deps): bump the opentelemetry group with 6 updates (#1044)
Bumps the opentelemetry group with 6 updates: | Package | From | To | | --- | --- | --- | | [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib) | `0.66.0` | `0.67.0` | | [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go) | `1.41.0` | `1.42.0` | | [go.opentelemetry.io/otel/exporters/prometheus](https://github.com/open-telemetry/opentelemetry-go) | `0.63.0` | `0.64.0` | | [go.opentelemetry.io/otel/metric](https://github.com/open-telemetry/opentelemetry-go) | `1.41.0` | `1.42.0` | | [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) | `1.41.0` | `1.42.0` | | [go.opentelemetry.io/otel/sdk/metric](https://github.com/open-telemetry/opentelemetry-go) | `1.41.0` | `1.42.0` | Updates `go.opentelemetry.io/contrib/instrumentation/runtime` from 0.66.0 to 0.67.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/releases">go.opentelemetry.io/contrib/instrumentation/runtime's releases</a>.</em></p> <blockquote> <h2>v1.42.0/v2.4.0/v0.67.0/v0.36.0/v0.22.0/v0.17.0/v0.15.0/v0.14.0</h2> <h3>Added</h3> <ul> <li>Add environment variables propagation carrier in <code>go.opentelemetry.io/contrib/propagators/envcar</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8442">#8442</a>)</li> </ul> <h3>Changed</h3> <ul> <li> <p>Upgrade <code>go.opentelemetry.io/otel/semconv</code> to <code>v1.40.0</code>, including updates across instrumentation and detector modules. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8631">#8631</a>)</p> <ul> <li>The semantic conventions v1.40.0 release introduces RPC breaking changes applied in this repository: <ul> <li>RPC spans and metrics no longer include <code>network.protocol.name</code>, <code>network.protocol.version</code>, or <code>network.transport</code> attributes.</li> <li><code>rpc.client.request.size</code>, <code>rpc.client.response.size</code>, <code>rpc.server.request.size</code>, and <code>rpc.server.response.size</code> are no longer emitted in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>.</li> <li><code>rpc.message</code> span events and their message attributes are no longer emitted in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code> (including when <code>WithMessageEvents</code> is configured).</li> </ul> </li> </ul> <p>See <a href="https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.40.0">semantic-conventions v1.40.0 release</a> for complete details.</p> </li> </ul> <h3>Fixed</h3> <ul> <li>Ignore informational response status codes (<code>100-199</code>) except <code>101 Switching Protocols</code> when storing the HTTP status code in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> and <code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/6913">#6913</a>)</li> <li>Make <code>Body</code> handling in <code>Transport</code> consistent with stdlib in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8618">#8618</a>)</li> <li>Fix bucket boundaries for <code>rpc.server.call.duration</code> and <code>rpc.client.call.duration</code> in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8642">#8642</a>)</li> <li>Host resource detector in <code>go.opentelemetry.io/contrib/otelconf</code> now includes <code>os.</code> attributes. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8578">#8578</a>)</li> </ul> <h3>Removed</h3> <ul> <li>Drop support for <a href="https://go.dev/doc/go1.24">Go 1.24</a>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8628">#8628</a>)</li> </ul> <h2>What's Changed</h2> <ul> <li>chore(deps): update github artifact actions to v7 (major) by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8605">open-telemetry/opentelemetry-go-contrib#8605</a></li> <li>chore(deps): update module github.com/sonatard/noctx to v0.5.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8610">open-telemetry/opentelemetry-go-contrib#8610</a></li> <li>chore(deps): update github/codeql-action action to v4.32.5 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8620">open-telemetry/opentelemetry-go-contrib#8620</a></li> <li>fix(deps): update module github.com/aws/smithy-go to v1.24.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8614">open-telemetry/opentelemetry-go-contrib#8614</a></li> <li>chore(deps): update go-openapi packages by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8621">open-telemetry/opentelemetry-go-contrib#8621</a></li> <li>fix(deps): update module github.com/shirou/gopsutil/v4 to v4.26.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8622">open-telemetry/opentelemetry-go-contrib#8622</a></li> <li>chore(deps): update module github.com/kisielk/errcheck to v1.10.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8608">open-telemetry/opentelemetry-go-contrib#8608</a></li> <li>chore(deps): update module github.com/protonmail/go-crypto to v1.4.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8609">open-telemetry/opentelemetry-go-contrib#8609</a></li> <li>chore(deps): update otel/opentelemetry-collector-contrib docker tag to v0.147.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8625">open-telemetry/opentelemetry-go-contrib#8625</a></li> <li>chore(deps): update module github.com/daixiang0/gci to v0.14.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8623">open-telemetry/opentelemetry-go-contrib#8623</a></li> <li>Drop support for 1.24 by <a href="https://github.com/dmathieu"><code>@dmathieu</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8628">open-telemetry/opentelemetry-go-contrib#8628</a></li> <li>fix(deps): update golang.org/x by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8554">open-telemetry/opentelemetry-go-contrib#8554</a></li> <li>fix(deps): update kubernetes packages to v0.35.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8626">open-telemetry/opentelemetry-go-contrib#8626</a></li> <li>fix(deps): update aws-sdk-go-v2 monorepo by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8598">open-telemetry/opentelemetry-go-contrib#8598</a></li> <li>fix(deps): update module github.com/aws/aws-lambda-go to v1.53.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8630">open-telemetry/opentelemetry-go-contrib#8630</a></li> <li>otelgrpc: modernize the example project by <a href="https://github.com/ash2k"><code>@ash2k</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8619">open-telemetry/opentelemetry-go-contrib#8619</a></li> <li>chore(deps): update googleapis to a57be14 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8606">open-telemetry/opentelemetry-go-contrib#8606</a></li> <li>fix(deps): update module github.com/gin-gonic/gin to v1.12.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8627">open-telemetry/opentelemetry-go-contrib#8627</a></li> <li>chore(deps): update module github.com/prometheus/procfs to v0.20.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8624">open-telemetry/opentelemetry-go-contrib#8624</a></li> <li>fix(otelhttp): make Body handling in Transport consistent with stdlib by <a href="https://github.com/ash2k"><code>@ash2k</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8618">open-telemetry/opentelemetry-go-contrib#8618</a></li> <li>otelhttp: Ignore informational response status codes when persisting status by <a href="https://github.com/VirrageS"><code>@VirrageS</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/6913">open-telemetry/opentelemetry-go-contrib#6913</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md">go.opentelemetry.io/contrib/instrumentation/runtime's changelog</a>.</em></p> <blockquote> <h2>[1.42.0/2.4.0/0.67.0/0.36.0/0.22.0/0.17.0/0.15.0/0.14.0] - 2026-03-06</h2> <h3>Added</h3> <ul> <li>Add environment variables propagation carrier in <code>go.opentelemetry.io/contrib/propagators/envcar</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8442">#8442</a>)</li> </ul> <h3>Changed</h3> <ul> <li> <p>Upgrade <code>go.opentelemetry.io/otel/semconv</code> to <code>v1.40.0</code>, including updates across instrumentation and detector modules. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8631">#8631</a>)</p> <ul> <li>The semantic conventions v1.40.0 release introduces RPC breaking changes applied in this repository: <ul> <li>RPC spans and metrics no longer include <code>network.protocol.name</code>, <code>network.protocol.version</code>, or <code>network.transport</code> attributes.</li> <li><code>rpc.client.request.size</code>, <code>rpc.client.response.size</code>, <code>rpc.server.request.size</code>, and <code>rpc.server.response.size</code> are no longer emitted in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>.</li> <li><code>rpc.message</code> span events and their message attributes are no longer emitted in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code> (including when <code>WithMessageEvents</code> is configured).</li> </ul> </li> </ul> <p>See <a href="https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.40.0">semantic-conventions v1.40.0 release</a> for complete details.</p> </li> </ul> <h3>Fixed</h3> <ul> <li>Ignore informational response status codes (<code>100-199</code>) except <code>101 Switching Protocols</code> when storing the HTTP status code in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> and <code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/6913">#6913</a>)</li> <li>Make <code>Body</code> handling in <code>Transport</code> consistent with stdlib in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8618">#8618</a>)</li> <li>Fix bucket boundaries for <code>rpc.server.call.duration</code> and <code>rpc.client.call.duration</code> in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8642">#8642</a>)</li> <li>Host resource detector in <code>go.opentelemetry.io/contrib/otelconf</code> now includes <code>os.</code> attributes. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8578">#8578</a>)</li> </ul> <h3>Removed</h3> <ul> <li>Drop support for [Go 1.24]. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8628">#8628</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
7b0c411928 |
Bump go (#1041)
<!-- Provide a brief summary of your changes --> Fixes: https://github.com/modelcontextprotocol/registry/actions/runs/22784360696/job/66097670402 ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
7462b3c34e |
fix(ci): use deploy/go.mod for deploy workflow Go version and bump root Go to 1.25.8 (#1040)
## Summary
Fixes two CI issues:
### 1. Deploy workflows broken since PR #1034 (all staging deploys
failing)
The deploy-staging and deploy-production workflows install Go using the
**root** `go.mod`, but then build Pulumi infrastructure code from the
`deploy/` directory which has its own `go.mod`.
This started failing when PR #1034 (`build(deps): bump
github.com/pulumi/pulumi/sdk/v3 from 3.220.0 to 3.225.1 in /deploy`)
bumped `deploy/go.mod` from Go 1.24.11 to **Go 1.25.6** — a version
newer than the root module's Go 1.24.13. Every staging deploy since that
merge (Mar 6) has failed with:
```
go: go.mod requires go >= 1.25.6 (running go 1.24.13; GOTOOLCHAIN=local)
```
The last successful deploy was commit
|
||
|
|
6c500c52e3 |
build(deps): bump cloud.google.com/go/kms from 1.25.0 to 1.26.0 (#985)
Bumps [cloud.google.com/go/kms](https://github.com/googleapis/google-cloud-go) from 1.25.0 to 1.26.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-cloud-go/releases">cloud.google.com/go/kms's releases</a>.</em></p> <blockquote> <h2>retail 1.26.0</h2> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/retail/v1.25.1...retail/v1.26.0">1.26.0</a> (2026-01-29)</h2> <h3>Features</h3> <ul> <li> <p>add a user_attributes field in SearchRequest that can be used for personalization (PiperOrigin-RevId: 861314205) (<a href=" |
||
|
|
de6e9839ec |
build(deps): bump the opentelemetry group with 6 updates (#1025)
Bumps the opentelemetry group with 6 updates: | Package | From | To | | --- | --- | --- | | [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib) | `0.65.0` | `0.66.0` | | [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go) | `1.40.0` | `1.41.0` | | [go.opentelemetry.io/otel/exporters/prometheus](https://github.com/open-telemetry/opentelemetry-go) | `0.62.0` | `0.63.0` | | [go.opentelemetry.io/otel/metric](https://github.com/open-telemetry/opentelemetry-go) | `1.40.0` | `1.41.0` | | [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) | `1.40.0` | `1.41.0` | | [go.opentelemetry.io/otel/sdk/metric](https://github.com/open-telemetry/opentelemetry-go) | `1.40.0` | `1.41.0` | Updates `go.opentelemetry.io/contrib/instrumentation/runtime` from 0.65.0 to 0.66.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/releases">go.opentelemetry.io/contrib/instrumentation/runtime's releases</a>.</em></p> <blockquote> <h2>v1.41.0/v2.3.0/v0.66.0/v0.35.0/v0.21.0/v0.16.0/v0.14.0/v0.13.0</h2> <p>This release is the last to support <a href="https://go.dev/doc/go1.24">Go 1.24</a>. The next release will require at least <a href="https://go.dev/doc/go1.25">Go 1.25</a>.</p> <h3>Added</h3> <ul> <li>Add <code>WithSpanKind</code> option in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code> to override the default span kind. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8506">#8506</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/bridges/otelzap</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8544">#8544</a>)</li> <li>Support testing of <a href="https://go.dev/doc/go1.26">Go 1.26</a>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8549">#8549</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/detectors/autodetect</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8555">#8555</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/detectors/azure/azurevm</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8553">#8553</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/processors/baggagecopy</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8557">#8557</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/detectors/aws/lambda</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8510">#8510</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/propagators/autoprop</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8488">#8488</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/processors/minsev</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8590">#8590</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/exporters/autoexport</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8612">#8612</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Change the <code>rpc.server.call.duration</code> metric value from milliseconds to seconds in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8509">#8509</a>)</li> <li>Change the <code>rpc.response.status_code</code> attribute to the canonical <code>UPPER_SNAKE_CASE</code> format in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8565">#8565</a>)</li> <li>Enforce that <code>client_certificate_file</code> and <code>client_key_file</code> are provided together in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8450">#8450</a>)</li> <li>Fix broken CSS and JavaScript CDN URLs in <code>go.opentelemetry.io/contrib/zpages</code> by replacing the inaccessible code.getmdl.io CDN with cdnjs.cloudflare.com. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8502">#8502</a>)</li> <li>Use Prometheus translation strategy instead of deprecated funcs in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8595">#8595</a>)</li> </ul> <h3>Removed</h3> <ul> <li>Remove the deprecated zipkin exporter example in <code>go.opentelemetry.io/contrib/examples/zipkin</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8501">#8501</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Reduce allocations in the generated HTTP <code>internal/semconv</code> packages. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8511">#8511</a>) Updated modules include: <ul> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code></li> </ul> </li> <li>Update the configuration schema used in <code>go.opentelemetry.io/contrib/otelconf</code> to <a href="https://github.com/open-telemetry/opentelemetry-configuration/releases/tag/v1.0.0-rc.3">rc.3</a>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8505">#8505</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li><code>WithMetricAttributesFn</code> in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> is deprecated and will be removed in a future release. Use <code>Labeler</code> instead. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8587">#8587</a>)</li> </ul> <h2>What's Changed</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md">go.opentelemetry.io/contrib/instrumentation/runtime's changelog</a>.</em></p> <blockquote> <h2>[1.41.0/2.3.0/0.66.0/0.35.0/0.21.0/0.16.0/0.14.0/0.13.0] - 2026-03-02</h2> <p>This release is the last to support [Go 1.24]. The next release will require at least [Go 1.25].</p> <h3>Added</h3> <ul> <li>Add <code>WithSpanKind</code> option in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code> to override the default span kind. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8506">#8506</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/bridges/otelzap</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8544">#8544</a>)</li> <li>Support testing of [Go 1.26]. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8549">#8549</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/detectors/autodetect</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8555">#8555</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/detectors/azure/azurevm</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8553">#8553</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/processors/baggagecopy</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8557">#8557</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/detectors/aws/lambda</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8510">#8510</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/propagators/autoprop</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8488">#8488</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/processors/minsev</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8590">#8590</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/exporters/autoexport</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8612">#8612</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Change the <code>rpc.server.call.duration</code> metric value from milliseconds to seconds in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8509">#8509</a>)</li> <li>Change the <code>rpc.response.status_code</code> attribute to the canonical <code>UPPER_SNAKE_CASE</code> format in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8565">#8565</a>)</li> <li>Enforce that <code>client_certificate_file</code> and <code>client_key_file</code> are provided together in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8450">#8450</a>)</li> <li>Fix broken CSS and JavaScript CDN URLs in <code>go.opentelemetry.io/contrib/zpages</code> by replacing the inaccessible code.getmdl.io CDN with cdnjs.cloudflare.com. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8502">#8502</a>)</li> <li>Use Prometheus translation strategy instead of deprecated funcs in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8595">#8595</a>)</li> </ul> <h3>Removed</h3> <ul> <li>Remove the deprecated zipkin exporter example in <code>go.opentelemetry.io/contrib/examples/zipkin</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8501">#8501</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Reduce allocations in the generated HTTP <code>internal/semconv</code> packages. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8511">#8511</a>) Updated modules include: <ul> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code></li> </ul> </li> <li>Update the configuration schema used in <code>go.opentelemetry.io/contrib/otelconf</code> to <a href="https://github.com/open-telemetry/opentelemetry-configuration/releases/tag/v1.0.0-rc.3">rc.3</a>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8505">#8505</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li><code>WithMetricAttributesFn</code> in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> is deprecated and will be removed in a future release. Use <code>Labeler</code> instead. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8587">#8587</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
b738501d2f |
build(deps): bump github.com/pulumi/pulumi-kubernetes/sdk/v4 from 4.25.0 to 4.27.0 in /deploy (#1024)
Bumps [github.com/pulumi/pulumi-kubernetes/sdk/v4](https://github.com/pulumi/pulumi-kubernetes) from 4.25.0 to 4.27.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/releases">github.com/pulumi/pulumi-kubernetes/sdk/v4's releases</a>.</em></p> <blockquote> <h2>v4.27.0</h2> <p>No release notes provided.</p> <h2>v4.26.0</h2> <h3>Fixed</h3> <ul> <li> <p><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4122">#4122</a> Implements a new provider config option, <code>alwaysRender</code>, which sets <code>Diff_Some</code>to true when used in combination with <code>renderYAMLtoDirectory</code>. This allows for user-defined opt-in behavior for YAML manifests to be idempotently generated on every <code>pulumi up</code>, and for Update() to show these changes to a user.</p> </li> <li> <p>Fixed a race condition in StatefulSet await logic where Pulumi could incorrectly report a rollout as complete before the controller had processed the update. This occurred when Pulumi checked status fields before the controller updated <code>observedGeneration</code>, causing stale "ready" values to be trusted.</p> </li> <li> <p>Fixed a regression of <a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/2943">#2943</a> which could cause Deployments to erroneously report diffs.</p> </li> </ul> <h3>Changed</h3> <ul> <li> <p>Upgraded <code>helm.sh/helm</code> to v3.18.6. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/3969">pulumi/pulumi-kubernetes#3969</a>)</p> </li> <li> <p><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4156">#4156</a> Upgrade Kubernetes schema and libraries to v1.35.1</p> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/blob/master/CHANGELOG.md">github.com/pulumi/pulumi-kubernetes/sdk/v4's changelog</a>.</em></p> <blockquote> <h2>4.27.0 (March 2, 2026)</h2> <h3>Fixed</h3> <ul> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4181">#4181</a> Fix PVC timeout when updating to a storage class with WaitForFirstConsumer bind mode.</li> </ul> <h3>Added</h3> <ul> <li><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3661">#3661</a> Support for OCI login inside the provider process. Providing a username/password to <code>Chart v4</code> and <code>Release v3</code> will now login to private OCI registries as expected. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/2911">pulumi/pulumi-kubernetes#2911</a> and <a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/1914">pulumi/pulumi-kubernetes#1914</a>)</li> </ul> <h2>4.26.0 (February 19, 2026)</h2> <h3>Fixed</h3> <ul> <li> <p><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4122">#4122</a> Implements a new provider config option, <code>alwaysRender</code>, which sets <code>Diff_Some</code>to true when used in combination with <code>renderYAMLtoDirectory</code>. This allows for user-defined opt-in behavior for YAML manifests to be idempotently generated on every <code>pulumi up</code>, and for Update() to show these changes to a user.</p> </li> <li> <p>Fixed a race condition in StatefulSet await logic where Pulumi could incorrectly report a rollout as complete before the controller had processed the update. This occurred when Pulumi checked status fields before the controller updated <code>observedGeneration</code>, causing stale "ready" values to be trusted.</p> </li> <li> <p>Fixed a regression of <a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/2943">#2943</a> which could cause Deployments to erroneously report diffs.</p> </li> </ul> <h3>Changed</h3> <ul> <li> <p>Upgraded <code>helm.sh/helm</code> to v3.18.6. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/3969">pulumi/pulumi-kubernetes#3969</a>)</p> </li> <li> <p><a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/4156">#4156</a> Upgrade Kubernetes schema and libraries to v1.35.1</p> </li> </ul> <h2>4.24.0 (November 5, 2025)</h2> <h3>Added</h3> <ul> <li>Added a <code>plainHttp</code> option to the <code>v4.Chart</code> resource. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/3250">pulumi/pulumi-kubernetes#3250</a>)</li> </ul> <h3>Changed</h3> <ul> <li> <p>The <code>pulumi.com/waitFor</code> annotation now uses an <a href="https://www.rfc-editor.org/rfc/rfc9535.html">RFC9535</a>-compliant JSONPath parser. This makes it possible to wait for more complex scenarios.</p> <p>For example:</p> <ul> <li>To wait for a Pod's <code>status.phase</code> to be "Running" or "Succeeded":</li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
8575244d1f |
build(deps): bump github.com/caarlos0/env/v11 from 11.3.1 to 11.4.0 (#995)
Bumps [github.com/caarlos0/env/v11](https://github.com/caarlos0/env) from 11.3.1 to 11.4.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/caarlos0/env/releases">github.com/caarlos0/env/v11's releases</a>.</em></p> <blockquote> <h2>v11.4.0</h2> <h2>Changelog</h2> <h3>New Features</h3> <ul> <li>2be9960e75cc5f053dcb89c64e43de19765fd154: feat: option to set defaults for zero values only (<a href="https://redirect.github.com/caarlos0/env/issues/325">#325</a>) (<a href="https://github.com/dnovikoff"><code>@dnovikoff</code></a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>d3505f14213c309f8ca3b0b1e468284749456dde: fix: all new lint issues, update golangci-lint (<a href="https://github.com/caarlos0"><code>@caarlos0</code></a>)</li> <li>aaa45113e5eb50e2a243959041452bbab40ae3cc: fix: lint issues (<a href="https://github.com/caarlos0"><code>@caarlos0</code></a>)</li> </ul> <h3>Documentation updates</h3> <ul> <li>8917d78b4247be8a3f555ccee03305c7763471e4: docs: clarify example a bit (<a href="https://github.com/caarlos0"><code>@caarlos0</code></a>)</li> </ul> <h3>Other work</h3> <ul> <li>7b10cf56e20fe41042b7a7148555990b64b85f95: ci(deps): bump github/codeql-action in the actions group (<a href="https://redirect.github.com/caarlos0/env/issues/400">#400</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>c98ad844e1e479526ef6b4069e0b0f1ced5c953d: ci(deps): bump github/codeql-action in the actions group (<a href="https://redirect.github.com/caarlos0/env/issues/410">#410</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>2ca9b08cafe0bc271636c15fa34d156733631123: ci(deps): bump the actions group with 2 updates (<a href="https://redirect.github.com/caarlos0/env/issues/393">#393</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>cd5c220dbceb1d1353263a5d6fe3f6816aa1217f: ci(deps): bump the actions group with 2 updates (<a href="https://redirect.github.com/caarlos0/env/issues/396">#396</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>4d25a4659f428119ce5eaf3ea579176b9161c6e0: ci(deps): bump the actions group with 2 updates (<a href="https://redirect.github.com/caarlos0/env/issues/402">#402</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>c660cc91db76b02de72e8ab7e9ad348edef3f891: ci(deps): bump the actions group with 2 updates (<a href="https://redirect.github.com/caarlos0/env/issues/403">#403</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>3a3ea05453bd16685c807ba089b20a82033a02f1: ci(deps): bump the actions group with 2 updates (<a href="https://redirect.github.com/caarlos0/env/issues/405">#405</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>d28373e3a047e93ad21676ea9878e5dd1ca157f7: ci(deps): bump the actions group with 2 updates (<a href="https://redirect.github.com/caarlos0/env/issues/408">#408</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>7b5005693b54a0014e4d3a2ee6192c7bce336af7: ci(deps): bump the actions group with 3 updates (<a href="https://redirect.github.com/caarlos0/env/issues/397">#397</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>6b2db30d1977183eb8a9732c01ff4e6788565a6e: ci(deps): bump the actions group with 3 updates (<a href="https://redirect.github.com/caarlos0/env/issues/399">#399</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>f33230e8e7e0377c9cdb65d43940db1666061766: ci(deps): bump the actions group with 3 updates (<a href="https://redirect.github.com/caarlos0/env/issues/404">#404</a>) (<a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot])</li> <li>2dc7aec137983c972c29779e951011ddb496fc8b: ci(sec): add codeql, govulncheck, grype (<a href="https://github.com/caarlos0"><code>@caarlos0</code></a>)</li> <li>82412ce6900082095e9e4b66f5024c0e67ff3fb8: ci: build perms (<a href="https://github.com/caarlos0"><code>@caarlos0</code></a>)</li> <li>02495c42107d77c9365aef6a031b7089f734af3b: ci: build perms (<a href="https://github.com/caarlos0"><code>@caarlos0</code></a>)</li> <li>e5b3c2c879e43e458e060e2a61fb525e161b7715: ci: lint workflow perms (<a href="https://github.com/caarlos0"><code>@caarlos0</code></a>)</li> <li>6690dfb3d314535320f3a30365c52f6fb40c8992: ci: pin github actions versions (<a href="https://github.com/caarlos0"><code>@caarlos0</code></a>)</li> <li>548a7a66c9d5504d8f9c0488ee47a05ae453c7e2: ci: update dependabot (<a href="https://github.com/caarlos0"><code>@caarlos0</code></a>)</li> </ul> <hr /> <p><em>Released with <a href="https://goreleaser.com/pro">GoReleaser Pro</a>!</em></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
febc8dc6a1 |
build(deps): bump the actions group across 1 directory with 5 updates (#1031)
Bumps the actions group with 5 updates in the / directory: | Package | From | To | | --- | --- | --- | | [actions/setup-go](https://github.com/actions/setup-go) | `6.2.0` | `6.3.0` | | [actions/upload-artifact](https://github.com/actions/upload-artifact) | `6.0.0` | `7.0.0` | | [docker/login-action](https://github.com/docker/login-action) | `3.7.0` | `4.0.0` | | [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.22.2` | `0.23.0` | | [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) | `6.4.0` | `7.0.0` | Updates `actions/setup-go` from 6.2.0 to 6.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/setup-go/releases">actions/setup-go's releases</a>.</em></p> <blockquote> <h2>v6.3.0</h2> <h2>What's Changed</h2> <ul> <li>Update default Go module caching to use go.mod by <a href="https://github.com/priyagupta108"><code>@priyagupta108</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/705">actions/setup-go#705</a></li> <li>Fix golang download url to go.dev by <a href="https://github.com/178inaba"><code>@178inaba</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/469">actions/setup-go#469</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/setup-go/compare/v6...v6.3.0">https://github.com/actions/setup-go/compare/v6...v6.3.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
a5b152f212 |
build(deps): bump github.com/docker/cli from 29.0.3+incompatible to 29.2.0+incompatible (#1032)
Bumps [github.com/docker/cli](https://github.com/docker/cli) from 29.0.3+incompatible to 29.2.0+incompatible. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
26564484ac |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.220.0 to 3.225.1 in /deploy (#1034)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.220.0 to 3.225.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.225.1</h2> <h2>3.225.1 (2026-03-05)</h2> <h3>Bug Fixes</h3> <ul> <li> <p>[engine] Fix inheritence of default providers across resources of different packages <a href="https://redirect.github.com/pulumi/pulumi/pull/22101">#22101</a></p> </li> <li> <p>[programgen/go] Fix panic on digit-prefixed schema properties in Go code generation <a href="https://redirect.github.com/pulumi/pulumi/pull/21917">#21917</a></p> </li> <li> <p>[programgen/go] Fix plain values not always being lifted to input/output values when needed <a href="https://redirect.github.com/pulumi/pulumi/pull/22084">#22084</a></p> </li> <li> <p>[programgen/python] Fix generation of <code>entries</code> and <code>lookup</code> calls <a href="https://redirect.github.com/pulumi/pulumi/pull/22086">#22086</a></p> </li> </ul> <h2>v3.225.0</h2> <h2>3.225.0 (2026-03-04)</h2> <h3>Features</h3> <ul> <li> <p>[engine] Automatically make invoke outputs secret when there is a secret input, and the invoke provider does not support secrets <a href="https://redirect.github.com/pulumi/pulumi/pull/21959">#21959</a></p> </li> <li> <p>[engine] The engine now handles the inheritance of the <code>provider</code> option in resource registrations <a href="https://redirect.github.com/pulumi/pulumi/pull/21999">#21999</a></p> </li> <li> <p>[engine] Enable journaling by default. It can still be turned off using the PULUMI_DISABLE_JOURNALING env variable <a href="https://redirect.github.com/pulumi/pulumi/pull/22041">#22041</a></p> </li> <li> <p>[programgen] PCL can now express config values should be read as secrets <a href="https://redirect.github.com/pulumi/pulumi/pull/22066">#22066</a></p> </li> <li> <p>[yaml] Update yaml to v1.30.0</p> </li> <li> <p>[cli/engine] Add a flag for automatically opening a Neo task on preview/up failure <a href="https://redirect.github.com/pulumi/pulumi/pull/21960">#21960</a></p> </li> <li> <p>[cli/package] Support source-based packages in <code>pulumi schema check</code>, not just schema files <a href="https://redirect.github.com/pulumi/pulumi/pull/21897">#21897</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li>[cli] Fix <code>stack import</code> panicking when importing a service stack into a DIY backend <a href="https://redirect.github.com/pulumi/pulumi/pull/22076">#22076</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h2>3.225.0 (2026-03-04)</h2> <h3>Features</h3> <ul> <li> <p>[engine] Automatically make invoke outputs secret when there is a secret input, and the invoke provider does not support secrets <a href="https://redirect.github.com/pulumi/pulumi/pull/21959">#21959</a></p> </li> <li> <p>[engine] The engine now handles the inheritance of the <code>provider</code> option in resource registrations <a href="https://redirect.github.com/pulumi/pulumi/pull/21999">#21999</a></p> </li> <li> <p>[engine] Enable journaling by default. It can still be turned off using the PULUMI_DISABLE_JOURNALING env variable <a href="https://redirect.github.com/pulumi/pulumi/pull/22041">#22041</a></p> </li> <li> <p>[programgen] PCL can now express config values should be read as secrets <a href="https://redirect.github.com/pulumi/pulumi/pull/22066">#22066</a></p> </li> <li> <p>[yaml] Update yaml to v1.30.0</p> </li> <li> <p>[cli/engine] Add a flag for automatically opening a Neo task on preview/up failure <a href="https://redirect.github.com/pulumi/pulumi/pull/21960">#21960</a></p> </li> <li> <p>[cli/package] Support source-based packages in <code>pulumi schema check</code>, not just schema files <a href="https://redirect.github.com/pulumi/pulumi/pull/21897">#21897</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli] Fix <code>stack import</code> panicking when importing a service stack into a DIY backend <a href="https://redirect.github.com/pulumi/pulumi/pull/22076">#22076</a></p> </li> <li> <p>[engine] Fix panic when a new component resource in the program is not targeted <a href="https://redirect.github.com/pulumi/pulumi/pull/21957">#21957</a></p> </li> <li> <p>[sdk/nodejs] Implement GetProgramDependencies for bun and pnpm <a href="https://redirect.github.com/pulumi/pulumi/pull/22065">#22065</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[cli] Build language plugins with the grpcnotrace tag to reduce the binary size <a href="https://redirect.github.com/pulumi/pulumi/pull/22012">#22012</a></li> </ul> <h2>3.224.0 (2026-02-26)</h2> <h3>Features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
cb4807a7fb |
add details of include_deleted in openapi spec (#1014)
<!-- Provide a brief summary of your changes --> ## Motivation and Context Add missing spec of include_deleted parameter in openapi spec ## How Has This Been Tested? NA ## Breaking Changes No ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed |
||
|
|
bb84ea69e8 |
Publisher-managed "deleted" support (#893)
(Updated auto-generated PR description from @tadasant / Claude on Feb 22, 2026) ## Motivation and Context Fixes #637 Server lifecycle management (deprecation and yanking) is a standard requirement for package registries. Use cases like rebranding, security vulnerabilities, and end-of-life servers demand the ability to mark servers as deprecated or deleted, with optional messaging to guide consumers toward alternatives. ## Changes ### New API endpoints - **`PATCH /v0/servers/{serverName}/versions/{version}/status`** — Update the lifecycle status of a single server version - **`PATCH /v0/servers/{serverName}/status`** — Update the lifecycle status of all versions of a server in a single transaction Both endpoints accept: ```json { "status": "active|deprecated|deleted", "statusMessage": "Optional message (max 500 chars) explaining the change" } ``` ### New CLI command - **`mcp-publisher status <serverName> [version]`** — Update server lifecycle status from the command line - `--status` (required): `active`, `deprecated`, or `deleted` - `--message`: Optional status message - `--all-versions`: Apply to all versions of the server (replaces the `<version>` argument) ### API response changes `RegistryExtensions` now includes two new fields: - `statusChangedAt` — Timestamp of the last status change - `statusMessage` — Optional free-form message (e.g., deprecation reason, migration guidance) ### List endpoint changes - New `include_deleted` query parameter on `GET /v0/servers` — defaults to `false`, hiding deleted servers from listings - When `updated_since` is provided, `include_deleted` is automatically set to `true` for incremental sync ### Database - Migration `013_add_status_fields.sql`: Adds `status_changed_at` (NOT NULL, initialized from `published_at`) and `status_message` columns to the `servers` table ### Design decisions (from review discussion) - **Dedicated status endpoints** rather than overloading the existing edit endpoint - **Bidirectional status transitions** — all transitions between `active`, `deprecated`, and `deleted` are allowed - **`statusMessage` as free-form text** — no structured `nextName` or `alternativeUrl` fields (per maintainer feedback, to avoid complexity around chaining, trust transfer, etc.) - **Publish permission** grants status change access (not limited to admin/edit) - **Status message auto-cleared** when transitioning back to `active` Good, now I have the full picture. Here's the addendum: ### Consumer-facing API changes The new status fields live inside `_meta["io.modelcontextprotocol.registry/official"]` on every `ServerResponse`. This is the existing `RegistryExtensions` object — two new fields are added alongside the existing ones: **Before:** ```json { "server": { "name": "com.example/my-server", "...": "..." }, "_meta": { "io.modelcontextprotocol.registry/official": { "status": "active", "publishedAt": "2025-06-01T00:00:00Z", "updatedAt": "2025-06-15T00:00:00Z", "isLatest": true } } } ``` **After:** ```json { "server": { "name": "com.example/my-server", "...": "..." }, "_meta": { "io.modelcontextprotocol.registry/official": { "status": "deprecated", "statusChangedAt": "2026-02-01T12:00:00Z", "statusMessage": "Deprecated in favor of com.example/my-server-v2", "publishedAt": "2025-06-01T00:00:00Z", "updatedAt": "2026-02-01T12:00:00Z", "isLatest": true } } } ``` | New field | Type | Present when | |-----------|------|-------------| | `statusChangedAt` | `string` (RFC3339) | Always — initialized to `publishedAt` for existing records | | `statusMessage` | `string` (max 500 chars) | Only when set — `null`/omitted for active servers (auto-cleared on transition to active) | These fields appear on **every endpoint that returns a `ServerResponse`**: `GET /v0/servers`, `GET /v0/servers/{name}`, `GET /v0/servers/{name}/versions/{version}`, and the new PATCH status endpoints. ### List endpoint filtering `GET /v0/servers` gains an `include_deleted` query parameter: | Scenario | Behavior | |----------|----------| | No `include_deleted` param | Deleted servers hidden (default `false`) | | `include_deleted=true` | Deleted servers included in results | | `updated_since` provided | `include_deleted` forced to `true` for incremental sync | ## How Has This Been Tested? - Unit tests for status handler (`status_test.go`) covering status transitions, permission checks, validation errors, and the all-versions endpoint - Unit tests for the CLI command (`status_test.go`) - Integration with existing server/edit handler tests - Database layer tests for the new status update and query methods - Tested locally with `make dev-compose` ## Types of changes - [x] New feature (non-breaking change which adds functionality) ## Checklist - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Open items from review - [ ] `include_deleted` silent override: When `updated_since` is provided and `include_deleted=false` is explicitly passed, should return a 400 error rather than silently overriding ([thread](https://github.com/modelcontextprotocol/registry/pull/893#discussion_r2100879360)) — agreed upon but may not yet be implemented |
||
|
|
01e4e2b09e |
Update SECURITY.md to use GitHub Security Advisories (#977)
Replaces Anthropic HackerOne VDP references with standard GitHub Security Advisory process. |
||
|
|
541c8a78c0 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.219.0 to 3.220.0 in /deploy (#953)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.219.0 to 3.220.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.220.0</h2> <h2>3.220.0 (2026-02-10)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Show environment variables that were set if a snapshot integrity error happens <a href="https://redirect.github.com/pulumi/pulumi/pull/21709">#21709</a></p> </li> <li> <p>[cli/{install,package}] Use the Pulumi Cloud Registry by default to resolve package names</p> </li> <li> <p>[engine] Pass replacement trigger through to Construct <a href="https://redirect.github.com/pulumi/pulumi/pull/21408">#21408</a></p> </li> <li> <p>[engine] Add EnvVarMappings resource option for provider resources, allowing environment variables to be remapped before being passed to the provider <a href="https://redirect.github.com/pulumi/pulumi/pull/21572">#21572</a></p> </li> <li> <p>[pkg] BREAKING: Deprecate github.com/pulumi/pulumi/pkg/v3/codegen/dotnet in favor of github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3/codegen. This package will be removed from pulumi/pulumi soon! <a href="https://redirect.github.com/pulumi/pulumi/pull/21720">#21720</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli] Retry <code>yarn install</code> when it fails (e.g. during <code>pulumi install</code>) <a href="https://redirect.github.com/pulumi/pulumi/pull/21707">#21707</a></p> </li> <li> <p>[engine] Deal with errors in elided journal entries correctly <a href="https://redirect.github.com/pulumi/pulumi/pull/21576">#21576</a></p> </li> <li> <p>[sdk/nodejs] Fix remote components with PULUMI_NODEJS_SKIP_COMPONENT_INPUTS</p> </li> <li> <p>[sdk/python] Fix <code>_LazyModule</code> to not trigger full module load for introspection attributes <a href="https://redirect.github.com/pulumi/pulumi/pull/21620">#21620</a></p> </li> <li> <p>[sdkgen/python] Remove workaround for slow typechecking with MyPy and PyCharm <a href="https://redirect.github.com/pulumi/pulumi/pull/21722">#21722</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[cli] Write logfile location if verbosity is >= 1 to stderr instead of stdout <a href="https://redirect.github.com/pulumi/pulumi/pull/21663">#21663</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.220.0 (2026-02-10)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Show environment variables that were set if a snapshot integrity error happens <a href="https://redirect.github.com/pulumi/pulumi/pull/21709">#21709</a></p> </li> <li> <p>[cli/{install,package}] Use the Pulumi Cloud Registry by default to resolve package names</p> </li> <li> <p>[engine] Pass replacement trigger through to Construct <a href="https://redirect.github.com/pulumi/pulumi/pull/21408">#21408</a></p> </li> <li> <p>[engine] Add EnvVarMappings resource option for provider resources, allowing environment variables to be remapped before being passed to the provider <a href="https://redirect.github.com/pulumi/pulumi/pull/21572">#21572</a></p> </li> <li> <p>[pkg] BREAKING: Deprecate github.com/pulumi/pulumi/pkg/v3/codegen/dotnet in favor of github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet/v3/codegen. This package will be removed from pulumi/pulumi soon! <a href="https://redirect.github.com/pulumi/pulumi/pull/21720">#21720</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli] Retry <code>yarn install</code> when it fails (e.g. during <code>pulumi install</code>) <a href="https://redirect.github.com/pulumi/pulumi/pull/21707">#21707</a></p> </li> <li> <p>[engine] Deal with errors in elided journal entries correctly <a href="https://redirect.github.com/pulumi/pulumi/pull/21576">#21576</a></p> </li> <li> <p>[sdk/nodejs] Fix remote components with PULUMI_NODEJS_SKIP_COMPONENT_INPUTS</p> </li> <li> <p>[sdk/python] Fix <code>_LazyModule</code> to not trigger full module load for introspection attributes <a href="https://redirect.github.com/pulumi/pulumi/pull/21620">#21620</a></p> </li> <li> <p>[sdkgen/python] Remove workaround for slow typechecking with MyPy and PyCharm <a href="https://redirect.github.com/pulumi/pulumi/pull/21722">#21722</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[cli] Write logfile location if verbosity is >= 1 to stderr instead of stdout <a href="https://redirect.github.com/pulumi/pulumi/pull/21663">#21663</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
4e1d46d843 |
Bump production to v1.4.1 (#952)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR bumps prod to v1.4.1 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
b5f38fcc2a |
update schema url point to the actual location (#884)
<!-- Provide a brief summary of your changes --> ## Motivation and Context This PR ensures that the draft URL points to the actual draft schema improvement suggested in https://github.com/modelcontextprotocol/registry/issues/814 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
a5f2dc1b66 |
build(deps): bump github.com/go-git/go-git/v5 from 5.16.2 to 5.16.5 in /deploy (#950)
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.16.2 to 5.16.5. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/go-git/go-git/releases">github.com/go-git/go-git/v5's releases</a>.</em></p> <blockquote> <h2>v5.16.5</h2> <h2>What's Changed</h2> <ul> <li>build: Update module golang.org/x/crypto to v0.45.0 [SECURITY] (releases/v5.x) by <a href="https://github.com/go-git-renovate"><code>@go-git-renovate</code></a>[bot] in <a href="https://redirect.github.com/go-git/go-git/pull/1744">go-git/go-git#1744</a></li> <li>build: Bump Go test versions to 1.23-1.25 (v5) by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1746">go-git/go-git#1746</a></li> <li>[v5] git: worktree, Don't delete local untracked files when resetting worktree by <a href="https://github.com/Ch00k"><code>@Ch00k</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1800">go-git/go-git#1800</a></li> <li>Expand packfile checks by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1836">go-git/go-git#1836</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/go-git/go-git/compare/v5.16.4...v5.16.5">https://github.com/go-git/go-git/compare/v5.16.4...v5.16.5</a></p> <h2>v5.16.4</h2> <h2>What's Changed</h2> <ul> <li>backport plumbing: format/idxfile, prevent panic by <a href="https://github.com/swills"><code>@swills</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1732">go-git/go-git#1732</a></li> <li>[backport] build: test, Fix build on Windows. by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1734">go-git/go-git#1734</a></li> <li>build: Update module golang.org/x/net to v0.38.0 [SECURITY] (releases/v5.x) by <a href="https://github.com/go-git-renovate"><code>@go-git-renovate</code></a>[bot] in <a href="https://redirect.github.com/go-git/go-git/pull/1742">go-git/go-git#1742</a></li> <li>build: Update module github.com/cloudflare/circl to v1.6.1 [SECURITY] (releases/v5.x) by <a href="https://github.com/go-git-renovate"><code>@go-git-renovate</code></a>[bot] in <a href="https://redirect.github.com/go-git/go-git/pull/1741">go-git/go-git#1741</a></li> <li>build: Update module github.com/go-git/go-git/v5 to v5.13.0 [SECURITY] (releases/v5.x) by <a href="https://github.com/go-git-renovate"><code>@go-git-renovate</code></a>[bot] in <a href="https://redirect.github.com/go-git/go-git/pull/1743">go-git/go-git#1743</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/go-git/go-git/compare/v5.16.3...v5.16.4">https://github.com/go-git/go-git/compare/v5.16.3...v5.16.4</a></p> <h2>v5.16.3</h2> <h2>What's Changed</h2> <ul> <li>internal: Expand regex to fix build [5.x] by <a href="https://github.com/baloo"><code>@baloo</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1644">go-git/go-git#1644</a></li> <li>build: raise timeouts for windows CI tests and disable CIFuzz [5.x] by <a href="https://github.com/baloo"><code>@baloo</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1646">go-git/go-git#1646</a></li> <li>plumbing: support commits extra headers, support jujutsu signed commit [5.x] by <a href="https://github.com/baloo"><code>@baloo</code></a> in <a href="https://redirect.github.com/go-git/go-git/pull/1633">go-git/go-git#1633</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/go-git/go-git/compare/v5.16.2...v5.16.3">https://github.com/go-git/go-git/compare/v5.16.2...v5.16.3</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
b883d47d97 |
build(deps): bump golang.org/x/mod from 0.32.0 to 0.33.0 (#951)
Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.32.0 to
0.33.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="
|
||
|
|
70a27717fb |
feat(schema): allow template variables in transport URL field (#910)
Authored by Claude Code Opus 4.5, steered/reviewed by me.
## Summary
- Updated the URL regex pattern in `StreamableHttpTransport` and
`SseTransport` to allow template variables like `{baseUrl}` as an
alternative to requiring the `https://` prefix
- This enables more flexible URL configuration in the `remotes` section
of server.json
## Changes
- Modified the `url` field pattern from `^https?://[^\s]+$` to
`^(https?://[^\s]+|\{[a-zA-Z_][a-zA-Z0-9_]*\}[^\s]*)$`
- Updated both `openapi.yaml` and the derived `server.schema.json`
- Added clarifying documentation that URL must start with `http://`,
`https://`, or a template variable
## Regex breakdown
```
^(https?://[^\s]+|\{[a-zA-Z_][a-zA-Z0-9_]*\}[^\s]*)$
```
| Part | Meaning |
|------|---------|
| `^` | Start of string |
| `(` | Begin alternation group |
| `https?://[^\s]+` | `http://` or `https://` followed by non-whitespace
|
| `\|` | OR |
| `\{[a-zA-Z_][a-zA-Z0-9_]*\}` | Template variable: `{` + valid
identifier + `}` |
| `[^\s]*` | Optional path/query after template variable |
| `)` | End alternation group |
| `$` | End of string |
## Test cases
**Should match ✓**
- `https://api.example.com/mcp`
- `http://localhost:8080/sse`
- `https://example.com/path?query=value`
- `{baseUrl}`
- `{baseUrl}/mcp`
- `{server_url}/api/v1`
- `{API_ENDPOINT}`
**Should NOT match ✗**
- `ftp://example.com` — wrong protocol
- `example.com` — missing protocol or variable
- `/relative/path` — relative paths not allowed
- `{invalid-name}/path` — hyphens not valid in variable names
- `{123invalid}` — variables can't start with numbers
---------
Co-authored-by: Agent Orchestrator <agent@ao.pulsemcp.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com>
|
||
|
|
541a6c61fa |
build(deps): bump go.opentelemetry.io/contrib/instrumentation/runtime from 0.64.0 to 0.65.0 (#940)
Bumps [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib) from 0.64.0 to 0.65.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/releases">go.opentelemetry.io/contrib/instrumentation/runtime's releases</a>.</em></p> <blockquote> <h2>Release v1.40.0/v2.2.0/v0.65.0/v0.34.0/v0.20.0/v0.15.0/v0.13.0/v0.12.0</h2> <h2>Overview</h2> <h3>Added</h3> <ul> <li><code>WithMetricAttributesFn</code> option in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code> to define dynamic attributes on auto-instrumented metrics. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8191">#8191</a>)</li> <li>Add support for configuring propagators in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8281">#8281</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/bridges/prometheus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8401">#8401</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8461">#8461</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/bridges/otellogr</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8477">#8477</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/bridges/otellogrus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8485">#8485</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/bridges/otelslog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8480">#8480</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix panic when passing nil <code>TracerProvider</code> or <code>MeterProvider</code> to <code>WithTracerProvider</code> or <code>WithMeterProvider</code> in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8323">#8323</a>)</li> <li><code>Transport</code> in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> now supports reading request body multiple times for subsequent requests that reuse <code>http.Request</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8352">#8352</a>)</li> </ul> <h3>Changed</h3> <ul> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8142">#8142</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8302">#8302</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8317">#8317</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/zpages</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8325">#8325</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/mongo/otelmongo</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8340">#8340</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8341">#8341</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/runtime</code> has been replaced by <code>const Version</code> string. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8349">#8349</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8356">#8356</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-lambda-go/otellambda</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8357">#8357</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/host</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8358">#8358</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8360">#8360</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/propagators/opencensus</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8361">#8361</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8365">#8365</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/samplers/probability/consistent</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8366">#8366</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/v2/mongo/otelmongo</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8370">#8370</a>)</li> <li>Set <code>error.type</code> attribute instead of adding <code>exception</code> span events in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8386">#8386</a>)</li> <li>Set <code>error.type</code> attribute instead of adding <code>exception</code> span events in <code>go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8386">#8386</a>)</li> <li>Upgrade <code>go.opentelemetry.io/otel/semconv</code> to <code>v1.39.0</code>, including updates across all instrumentation and detector modules. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8404">#8404</a>) <ul> <li>The semantic conventions v1.39.0 release introduces breaking changes, including: <ul> <li><code>rpc</code> span and metric attributes have been renamed to align with naming guidelines: <ul> <li><code>rpc.system</code> → <code>rpc.system.name</code> (values: <code>grpc</code>, <code>grpc_web</code>, <code>connectrpc</code>, <code>thrift</code>, <code>dubbo</code>, etc.)</li> <li><code>rpc.method</code> and <code>rpc.service</code> have been merged into a fully-qualified <code>rpc.method</code> attribute</li> <li><code>rpc.client|server.duration</code> → <code>rpc.client|server.call.duration</code> (unit changed to seconds)</li> <li><code>rpc.grpc.request.metadata</code>/<code>rpc.grpc.response.metadata</code> → <code>rpc.request.metadata</code>/<code>rpc.response.metadata</code></li> <li><code>rpc.grpc.status_code</code> → deprecated in favor of <code>rpc.response.status_code</code></li> <li><code>rpc.jsonrpc.request_id</code> → <code>jsonrpc.request.id</code></li> <li><code>rpc.jsonrpc.version</code> → <code>jsonrpc.protocol.version</code></li> </ul> </li> <li><code>system</code> and <code>process</code> metrics: <ul> <li><code>*.linux.memory</code> metrics renamed to <code>*.memory.linux</code></li> <li><code>system.process.status</code> → <code>process.state</code></li> </ul> </li> </ul> </li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md">go.opentelemetry.io/contrib/instrumentation/runtime's changelog</a>.</em></p> <blockquote> <h2>[1.40.0/2.2.0/0.65.0/0.34.0/0.20.0/0.15.0/0.13.0/0.12.0] - 2026-02-02</h2> <h3>Added</h3> <ul> <li><code>WithMetricAttributesFn</code> option in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code> to define dynamic attributes on auto-instrumented metrics. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8191">#8191</a>)</li> <li>Add support for configuring propagators in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8281">#8281</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/bridges/prometheus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8401">#8401</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8461">#8461</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/bridges/otellogr</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8477">#8477</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/bridges/otellogrus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8485">#8485</a>)</li> <li>Add <code>const Version</code> in <code>go.opentelemetry.io/contrib/bridges/otelslog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8480">#8480</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix panic when passing nil <code>TracerProvider</code> or <code>MeterProvider</code> to <code>WithTracerProvider</code> or <code>WithMeterProvider</code> in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8323">#8323</a>)</li> <li><code>Transport</code> in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> now supports reading request body multiple times for subsequent requests that reuse <code>http.Request</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8352">#8352</a>)</li> </ul> <h3>Changed</h3> <ul> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8142">#8142</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8302">#8302</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8317">#8317</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/zpages</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8325">#8325</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/mongo/otelmongo</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8340">#8340</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8341">#8341</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/runtime</code> has been replaced by <code>const Version</code> string. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8349">#8349</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8356">#8356</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-lambda-go/otellambda</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8357">#8357</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/host</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8358">#8358</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8360">#8360</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/propagators/opencensus</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8361">#8361</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8365">#8365</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/samplers/probability/consistent</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8366">#8366</a>)</li> <li>The <code>Version()</code> function in <code>go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/v2/mongo/otelmongo</code> has been replaced by <code>const Version</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8370">#8370</a>)</li> <li>Set <code>error.type</code> attribute instead of adding <code>exception</code> span events in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8386">#8386</a>)</li> <li>Set <code>error.type</code> attribute instead of adding <code>exception</code> span events in <code>go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8386">#8386</a>)</li> <li>Upgrade <code>go.opentelemetry.io/otel/semconv</code> to <code>v1.39.0</code>, including updates across all instrumentation and detector modules. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8404">#8404</a>) <ul> <li>The semantic conventions v1.39.0 release introduces breaking changes, including: <ul> <li><code>rpc</code> span and metric attributes have been renamed to align with naming guidelines: <ul> <li><code>rpc.system</code> → <code>rpc.system.name</code> (values: <code>grpc</code>, <code>grpc_web</code>, <code>connectrpc</code>, <code>thrift</code>, <code>dubbo</code>, etc.)</li> <li><code>rpc.method</code> and <code>rpc.service</code> have been merged into a fully-qualified <code>rpc.method</code> attribute</li> <li><code>rpc.client|server.duration</code> → <code>rpc.client|server.call.duration</code> (unit changed to seconds)</li> <li><code>rpc.grpc.request.metadata</code>/<code>rpc.grpc.response.metadata</code> → <code>rpc.request.metadata</code>/<code>rpc.response.metadata</code></li> <li><code>rpc.grpc.status_code</code> → deprecated in favor of <code>rpc.response.status_code</code></li> <li><code>rpc.jsonrpc.request_id</code> → <code>jsonrpc.request.id</code></li> <li><code>rpc.jsonrpc.version</code> → <code>jsonrpc.protocol.version</code></li> </ul> </li> <li><code>system</code> and <code>process</code> metrics: <ul> <li><code>*.linux.memory</code> metrics renamed to <code>*.memory.linux</code></li> <li><code>system.process.status</code> → <code>process.state</code></li> <li><code>system.paging.type</code> and <code>process.paging.fault_type</code> → <code>system.paging.fault.type</code></li> </ul> </li> </ul> </li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
5962f9ea75 |
Resolve vulnerability warnings by bumping Go to 1.24.13 (#938)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
bf628f464d |
Group otel dependencies in a single dependabot PR (#935)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR groups all otel deps in a single dependabot PR as usually they are spread across 4-5 separate ones whenever there's a new version. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
3b0341d89a |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.218.0 to 3.219.0 in /deploy (#941)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.218.0 to 3.219.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.219.0</h2> <h2>3.219.0 (2026-02-05)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Allow setting <code>requiredPulumiVersion</code> in Pulumi.yaml <a href="https://redirect.github.com/pulumi/pulumi/pull/21627">#21627</a></p> </li> <li> <p>[cli/{install,package}] Allow using private packages as local dependencies in components <a href="https://redirect.github.com/pulumi/pulumi/pull/21664">#21664</a></p> </li> <li> <p>[cli/policy] Add <code>pulumi policy install</code> command <a href="https://redirect.github.com/pulumi/pulumi/pull/21652">#21652</a></p> </li> <li> <p>[engine] Run analyzer calls in parallel <a href="https://redirect.github.com/pulumi/pulumi/pull/21631">#21631</a></p> </li> <li> <p>[programgen/dotnet] Codegen RequirePulumiVersion for Dotnet <a href="https://redirect.github.com/pulumi/pulumi/pull/21621">#21621</a></p> </li> <li> <p>[sdk/python] Add support for the <code>OnError</code> resource hook <a href="https://redirect.github.com/pulumi/pulumi/pull/21644">#21644</a></p> </li> <li> <p>[sdk/python] Add support for protobuf 6 <a href="https://redirect.github.com/pulumi/pulumi/pull/21647">#21647</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli] Allow positional arguments to be passed to <code>convert</code> again <a href="https://redirect.github.com/pulumi/pulumi/pull/21604">#21604</a> <a href="https://redirect.github.com/pulumi/pulumi/pull/21614">#21614</a></p> </li> <li> <p>[engine] Download/install required policy packs in parallel with plugins <a href="https://redirect.github.com/pulumi/pulumi/pull/21651">#21651</a></p> </li> <li> <p>[cli/package] Correctly install packages that depend on other packages for <code>pulumi package add</code> and <code>pulumi package get-schema</code>. <a href="https://redirect.github.com/pulumi/pulumi/pull/21321">#21321</a></p> </li> <li> <p>[programgen/python] Fix panic when ranging over a resource output that is an array of objects <a href="https://redirect.github.com/pulumi/pulumi/pull/21679">#21679</a></p> </li> <li> <p>[sdk/python] Fix issue with generic subclasses of <code>dynamic.Resource</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/21670">#21670</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[sdk/python] Relax pip version constraint</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.219.0 (2026-02-05)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Allow setting <code>requiredPulumiVersion</code> in Pulumi.yaml <a href="https://redirect.github.com/pulumi/pulumi/pull/21627">#21627</a></p> </li> <li> <p>[cli/{install,package}] Allow using private packages as local dependencies in components <a href="https://redirect.github.com/pulumi/pulumi/pull/21664">#21664</a></p> </li> <li> <p>[cli/policy] Add <code>pulumi policy install</code> command <a href="https://redirect.github.com/pulumi/pulumi/pull/21652">#21652</a></p> </li> <li> <p>[engine] Run analyzer calls in parallel <a href="https://redirect.github.com/pulumi/pulumi/pull/21631">#21631</a></p> </li> <li> <p>[programgen/dotnet] Codegen RequirePulumiVersion for Dotnet <a href="https://redirect.github.com/pulumi/pulumi/pull/21621">#21621</a></p> </li> <li> <p>[sdk/python] Add support for the <code>OnError</code> resource hook <a href="https://redirect.github.com/pulumi/pulumi/pull/21644">#21644</a></p> </li> <li> <p>[sdk/python] Add support for protobuf 6 <a href="https://redirect.github.com/pulumi/pulumi/pull/21647">#21647</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli] Allow positional arguments to be passed to <code>convert</code> again <a href="https://redirect.github.com/pulumi/pulumi/pull/21604">#21604</a> <a href="https://redirect.github.com/pulumi/pulumi/pull/21614">#21614</a></p> </li> <li> <p>[engine] Download/install required policy packs in parallel with plugins <a href="https://redirect.github.com/pulumi/pulumi/pull/21651">#21651</a></p> </li> <li> <p>[cli/package] Correctly install packages that depend on other packages for <code>pulumi package add</code> and <code>pulumi package get-schema</code>. <a href="https://redirect.github.com/pulumi/pulumi/pull/21321">#21321</a></p> </li> <li> <p>[programgen/python] Fix panic when ranging over a resource output that is an array of objects <a href="https://redirect.github.com/pulumi/pulumi/pull/21679">#21679</a></p> </li> <li> <p>[sdk/python] Fix issue with generic subclasses of <code>dynamic.Resource</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/21670">#21670</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[sdk/python] Relax pip version constraint <a href="https://redirect.github.com/pulumi/pulumi/pull/21639">#21639</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
545c4c8c15 |
build(deps): bump go.opentelemetry.io/otel/exporters/prometheus from 0.61.0 to 0.62.0 (#939)
Bumps [go.opentelemetry.io/otel/exporters/prometheus](https://github.com/open-telemetry/opentelemetry-go) from 0.61.0 to 0.62.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/releases">go.opentelemetry.io/otel/exporters/prometheus's releases</a>.</em></p> <blockquote> <h2>Release v1.40.0/v0.62.0/v0.16.0</h2> <h2>Overview</h2> <h3>Added</h3> <ul> <li>Add <code>Enabled</code> method to all synchronous instrument interfaces (<code>Float64Counter</code>, <code>Float64UpDownCounter</code>, <code>Float64Histogram</code>, <code>Float64Gauge</code>, <code>Int64Counter</code>, <code>Int64UpDownCounter</code>, <code>Int64Histogram</code>, <code>Int64Gauge</code>,) in <code>go.opentelemetry.io/otel/metric</code>. This stabilizes the synchronous instrument enabled feature, allowing users to check if an instrument will process measurements before performing computationally expensive operations. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7763">#7763</a>)</li> <li>Add <code>AlwaysRecord</code> sampler in <code>go.opentelemetry.io/otel/sdk/trace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7724">#7724</a>)</li> <li>Add <code>go.opentelemetry.io/otel/semconv/v1.39.0</code> package. The package contains semantic conventions from the <code>v1.39.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href=" |
||
|
|
2959e0f9c1 |
build(deps): bump go.opentelemetry.io/otel/sdk from 1.39.0 to 1.40.0 (#929)
Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.39.0 to 1.40.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md">go.opentelemetry.io/otel/sdk's changelog</a>.</em></p> <blockquote> <h2>[1.40.0/0.62.0/0.16.0] 2026-02-02</h2> <h3>Added</h3> <ul> <li>Add <code>AlwaysRecord</code> sampler in <code>go.opentelemetry.io/otel/sdk/trace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7724">#7724</a>)</li> <li>Add <code>Enabled</code> method to all synchronous instrument interfaces (<code>Float64Counter</code>, <code>Float64UpDownCounter</code>, <code>Float64Histogram</code>, <code>Float64Gauge</code>, <code>Int64Counter</code>, <code>Int64UpDownCounter</code>, <code>Int64Histogram</code>, <code>Int64Gauge</code>,) in <code>go.opentelemetry.io/otel/metric</code>. This stabilizes the synchronous instrument enabled feature, allowing users to check if an instrument will process measurements before performing computationally expensive operations. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7763">#7763</a>)</li> <li>Add <code>go.opentelemetry.io/otel/semconv/v1.39.0</code> package. The package contains semantic conventions from the <code>v1.39.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/semconv/v1.39.0/MIGRATION.md">migration documentation</a> for information on how to upgrade from <code>go.opentelemetry.io/otel/semconv/v1.38.0.</code> (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7783">#7783</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7789">#7789</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Improve the concurrent performance of <code>HistogramReservoir</code> in <code>go.opentelemetry.io/otel/sdk/metric/exemplar</code> by 4x. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7443">#7443</a>)</li> <li>Improve the concurrent performance of <code>FixedSizeReservoir</code> in <code>go.opentelemetry.io/otel/sdk/metric/exemplar</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7447">#7447</a>)</li> <li>Improve performance of concurrent histogram measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7474">#7474</a>)</li> <li>Improve performance of concurrent synchronous gauge measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7478">#7478</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/stdout/stdoutmetric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7492">#7492</a>)</li> <li><code>Exporter</code> in <code>go.opentelemetry.io/otel/exporters/prometheus</code> ignores metrics with the scope <code>go.opentelemetry.io/contrib/bridges/prometheus</code>. This prevents scrape failures when the Prometheus exporter is misconfigured to get data from the Prometheus bridge. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7688">#7688</a>)</li> <li>Improve performance of concurrent exponential histogram measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7702">#7702</a>)</li> <li>The <code>rpc.grpc.status_code</code> attribute in the experimental metrics emitted from <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc</code> is replaced with the <code>rpc.response.status_code</code> attribute to align with the semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7854">#7854</a>)</li> <li>The <code>rpc.grpc.status_code</code> attribute in the experimental metrics emitted from <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc</code> is replaced with the <code>rpc.response.status_code</code> attribute to align with the semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7854">#7854</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix bad log message when key-value pairs are dropped because of key duplication in <code>go.opentelemetry.io/otel/sdk/log</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7662">#7662</a>)</li> <li>Fix <code>DroppedAttributes</code> on <code>Record</code> in <code>go.opentelemetry.io/otel/sdk/log</code> to not count the non-attribute key-value pairs dropped because of key duplication. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7662">#7662</a>)</li> <li>Fix <code>SetAttributes</code> on <code>Record</code> in <code>go.opentelemetry.io/otel/sdk/log</code> to not log that attributes are dropped when they are actually not dropped. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7662">#7662</a>)</li> <li>Fix missing <code>request.GetBody</code> in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp</code> to correctly handle HTTP/2 <code>GOAWAY</code> frame. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7794">#7794</a>)</li> <li><code>WithHostID</code> detector in <code>go.opentelemetry.io/otel/sdk/resource</code> to use full path for <code>ioreg</code> command on Darwin (macOS). (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7818">#7818</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li>Deprecate <code>go.opentelemetry.io/otel/exporters/zipkin</code>. For more information, see the <a href="https://opentelemetry.io/blog/2025/deprecating-zipkin-exporters/">OTel blog post deprecating the Zipkin exporter</a>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7670">#7670</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
7ac2b8de49 |
build(deps): bump go.opentelemetry.io/otel/sdk/metric from 1.39.0 to 1.40.0 (#928)
Bumps [go.opentelemetry.io/otel/sdk/metric](https://github.com/open-telemetry/opentelemetry-go) from 1.39.0 to 1.40.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md">go.opentelemetry.io/otel/sdk/metric's changelog</a>.</em></p> <blockquote> <h2>[1.40.0/0.62.0/0.16.0] 2026-02-02</h2> <h3>Added</h3> <ul> <li>Add <code>AlwaysRecord</code> sampler in <code>go.opentelemetry.io/otel/sdk/trace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7724">#7724</a>)</li> <li>Add <code>Enabled</code> method to all synchronous instrument interfaces (<code>Float64Counter</code>, <code>Float64UpDownCounter</code>, <code>Float64Histogram</code>, <code>Float64Gauge</code>, <code>Int64Counter</code>, <code>Int64UpDownCounter</code>, <code>Int64Histogram</code>, <code>Int64Gauge</code>,) in <code>go.opentelemetry.io/otel/metric</code>. This stabilizes the synchronous instrument enabled feature, allowing users to check if an instrument will process measurements before performing computationally expensive operations. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7763">#7763</a>)</li> <li>Add <code>go.opentelemetry.io/otel/semconv/v1.39.0</code> package. The package contains semantic conventions from the <code>v1.39.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/semconv/v1.39.0/MIGRATION.md">migration documentation</a> for information on how to upgrade from <code>go.opentelemetry.io/otel/semconv/v1.38.0.</code> (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7783">#7783</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7789">#7789</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Improve the concurrent performance of <code>HistogramReservoir</code> in <code>go.opentelemetry.io/otel/sdk/metric/exemplar</code> by 4x. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7443">#7443</a>)</li> <li>Improve the concurrent performance of <code>FixedSizeReservoir</code> in <code>go.opentelemetry.io/otel/sdk/metric/exemplar</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7447">#7447</a>)</li> <li>Improve performance of concurrent histogram measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7474">#7474</a>)</li> <li>Improve performance of concurrent synchronous gauge measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7478">#7478</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/stdout/stdoutmetric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7492">#7492</a>)</li> <li><code>Exporter</code> in <code>go.opentelemetry.io/otel/exporters/prometheus</code> ignores metrics with the scope <code>go.opentelemetry.io/contrib/bridges/prometheus</code>. This prevents scrape failures when the Prometheus exporter is misconfigured to get data from the Prometheus bridge. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7688">#7688</a>)</li> <li>Improve performance of concurrent exponential histogram measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7702">#7702</a>)</li> <li>The <code>rpc.grpc.status_code</code> attribute in the experimental metrics emitted from <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc</code> is replaced with the <code>rpc.response.status_code</code> attribute to align with the semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7854">#7854</a>)</li> <li>The <code>rpc.grpc.status_code</code> attribute in the experimental metrics emitted from <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc</code> is replaced with the <code>rpc.response.status_code</code> attribute to align with the semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7854">#7854</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix bad log message when key-value pairs are dropped because of key duplication in <code>go.opentelemetry.io/otel/sdk/log</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7662">#7662</a>)</li> <li>Fix <code>DroppedAttributes</code> on <code>Record</code> in <code>go.opentelemetry.io/otel/sdk/log</code> to not count the non-attribute key-value pairs dropped because of key duplication. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7662">#7662</a>)</li> <li>Fix <code>SetAttributes</code> on <code>Record</code> in <code>go.opentelemetry.io/otel/sdk/log</code> to not log that attributes are dropped when they are actually not dropped. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7662">#7662</a>)</li> <li>Fix missing <code>request.GetBody</code> in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp</code> to correctly handle HTTP/2 <code>GOAWAY</code> frame. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7794">#7794</a>)</li> <li><code>WithHostID</code> detector in <code>go.opentelemetry.io/otel/sdk/resource</code> to use full path for <code>ioreg</code> command on Darwin (macOS). (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7818">#7818</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li>Deprecate <code>go.opentelemetry.io/otel/exporters/zipkin</code>. For more information, see the <a href="https://opentelemetry.io/blog/2025/deprecating-zipkin-exporters/">OTel blog post deprecating the Zipkin exporter</a>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7670">#7670</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
1da48694b9 |
build(deps): bump go.opentelemetry.io/otel from 1.39.0 to 1.40.0 (#927)
Bumps [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go) from 1.39.0 to 1.40.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md">go.opentelemetry.io/otel's changelog</a>.</em></p> <blockquote> <h2>[1.40.0/0.62.0/0.16.0] 2026-02-02</h2> <h3>Added</h3> <ul> <li>Add <code>AlwaysRecord</code> sampler in <code>go.opentelemetry.io/otel/sdk/trace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7724">#7724</a>)</li> <li>Add <code>Enabled</code> method to all synchronous instrument interfaces (<code>Float64Counter</code>, <code>Float64UpDownCounter</code>, <code>Float64Histogram</code>, <code>Float64Gauge</code>, <code>Int64Counter</code>, <code>Int64UpDownCounter</code>, <code>Int64Histogram</code>, <code>Int64Gauge</code>,) in <code>go.opentelemetry.io/otel/metric</code>. This stabilizes the synchronous instrument enabled feature, allowing users to check if an instrument will process measurements before performing computationally expensive operations. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7763">#7763</a>)</li> <li>Add <code>go.opentelemetry.io/otel/semconv/v1.39.0</code> package. The package contains semantic conventions from the <code>v1.39.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/semconv/v1.39.0/MIGRATION.md">migration documentation</a> for information on how to upgrade from <code>go.opentelemetry.io/otel/semconv/v1.38.0.</code> (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7783">#7783</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7789">#7789</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Improve the concurrent performance of <code>HistogramReservoir</code> in <code>go.opentelemetry.io/otel/sdk/metric/exemplar</code> by 4x. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7443">#7443</a>)</li> <li>Improve the concurrent performance of <code>FixedSizeReservoir</code> in <code>go.opentelemetry.io/otel/sdk/metric/exemplar</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7447">#7447</a>)</li> <li>Improve performance of concurrent histogram measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7474">#7474</a>)</li> <li>Improve performance of concurrent synchronous gauge measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7478">#7478</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/stdout/stdoutmetric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7492">#7492</a>)</li> <li><code>Exporter</code> in <code>go.opentelemetry.io/otel/exporters/prometheus</code> ignores metrics with the scope <code>go.opentelemetry.io/contrib/bridges/prometheus</code>. This prevents scrape failures when the Prometheus exporter is misconfigured to get data from the Prometheus bridge. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7688">#7688</a>)</li> <li>Improve performance of concurrent exponential histogram measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7702">#7702</a>)</li> <li>The <code>rpc.grpc.status_code</code> attribute in the experimental metrics emitted from <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc</code> is replaced with the <code>rpc.response.status_code</code> attribute to align with the semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7854">#7854</a>)</li> <li>The <code>rpc.grpc.status_code</code> attribute in the experimental metrics emitted from <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc</code> is replaced with the <code>rpc.response.status_code</code> attribute to align with the semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7854">#7854</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix bad log message when key-value pairs are dropped because of key duplication in <code>go.opentelemetry.io/otel/sdk/log</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7662">#7662</a>)</li> <li>Fix <code>DroppedAttributes</code> on <code>Record</code> in <code>go.opentelemetry.io/otel/sdk/log</code> to not count the non-attribute key-value pairs dropped because of key duplication. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7662">#7662</a>)</li> <li>Fix <code>SetAttributes</code> on <code>Record</code> in <code>go.opentelemetry.io/otel/sdk/log</code> to not log that attributes are dropped when they are actually not dropped. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7662">#7662</a>)</li> <li>Fix missing <code>request.GetBody</code> in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp</code> to correctly handle HTTP/2 <code>GOAWAY</code> frame. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7794">#7794</a>)</li> <li><code>WithHostID</code> detector in <code>go.opentelemetry.io/otel/sdk/resource</code> to use full path for <code>ioreg</code> command on Darwin (macOS). (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7818">#7818</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li>Deprecate <code>go.opentelemetry.io/otel/exporters/zipkin</code>. For more information, see the <a href="https://opentelemetry.io/blog/2025/deprecating-zipkin-exporters/">OTel blog post deprecating the Zipkin exporter</a>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7670">#7670</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
cffac199b6 |
build(deps): bump github.com/golang-jwt/jwt/v5 from 5.3.0 to 5.3.1 (#922)
Bumps [github.com/golang-jwt/jwt/v5](https://github.com/golang-jwt/jwt) from 5.3.0 to 5.3.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/golang-jwt/jwt/releases">github.com/golang-jwt/jwt/v5's releases</a>.</em></p> <blockquote> <h2>v5.3.1</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <h3>🔐 Features</h3> <ul> <li>Add spellcheck Github action to catch common spelling mistakes by <a href="https://github.com/equalsgibson"><code>@equalsgibson</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/458">golang-jwt/jwt#458</a></li> <li>Add <code>WithNotBeforeRequired</code> parser option and add test coverage by <a href="https://github.com/equalsgibson"><code>@equalsgibson</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/456">golang-jwt/jwt#456</a></li> <li>Update godoc example func to properly refer to <code>NewWithClaims()</code> by <a href="https://github.com/equalsgibson"><code>@equalsgibson</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/459">golang-jwt/jwt#459</a></li> <li>Update github workflows by <a href="https://github.com/mfridman"><code>@mfridman</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/462">golang-jwt/jwt#462</a></li> <li>Additional test for CustomClaims that validates unmarshalling behaviour by <a href="https://github.com/equalsgibson"><code>@equalsgibson</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/457">golang-jwt/jwt#457</a></li> <li>Fix early file close in jwt cli by <a href="https://github.com/mfridman"><code>@mfridman</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/472">golang-jwt/jwt#472</a></li> <li>Add TPM signature reference by <a href="https://github.com/salrashid123"><code>@salrashid123</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/473">golang-jwt/jwt#473</a></li> <li>Remove misleading ParserOptions documentation in <a href="https://redirect.github.com/golang-jwt/jwt/pull/484">golang-jwt/jwt#484</a></li> <li>Save signature to Token struct after successful signing by <a href="https://github.com/EgorSheff"><code>@EgorSheff</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/417">golang-jwt/jwt#417</a></li> <li>Set token.Signature in <code>ParseUnverified</code> by <a href="https://github.com/slickwilli"><code>@slickwilli</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/414">golang-jwt/jwt#414</a></li> </ul> <h3>👒 Dependencies</h3> <ul> <li>Bump crate-ci/typos from 1.34.0 to 1.35.3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golang-jwt/jwt/pull/461">golang-jwt/jwt#461</a></li> <li>Bump crate-ci/typos from 1.35.4 to 1.36.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golang-jwt/jwt/pull/470">golang-jwt/jwt#470</a></li> <li>Bump github/codeql-action from 3 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golang-jwt/jwt/pull/478">golang-jwt/jwt#478</a></li> <li>Bump crate-ci/typos from 1.36.2 to 1.39.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golang-jwt/jwt/pull/480">golang-jwt/jwt#480</a></li> <li>Bump golangci/golangci-lint-action from 8 to 9 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golang-jwt/jwt/pull/481">golang-jwt/jwt#481</a></li> <li>Bump actions/setup-go from 5 to 6 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golang-jwt/jwt/pull/469">golang-jwt/jwt#469</a></li> <li>Bump crate-ci/typos from 1.39.0 to 1.40.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golang-jwt/jwt/pull/488">golang-jwt/jwt#488</a></li> <li>Bump actions/checkout from 5 to 6 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golang-jwt/jwt/pull/487">golang-jwt/jwt#487</a></li> <li>Bump crate-ci/typos from 1.40.0 to 1.41.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golang-jwt/jwt/pull/490">golang-jwt/jwt#490</a></li> <li>Bump crate-ci/typos from 1.41.0 to 1.42.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/golang-jwt/jwt/pull/492">golang-jwt/jwt#492</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/equalsgibson"><code>@equalsgibson</code></a> made their first contribution in <a href="https://redirect.github.com/golang-jwt/jwt/pull/458">golang-jwt/jwt#458</a></li> <li><a href="https://github.com/salrashid123"><code>@salrashid123</code></a> made their first contribution in <a href="https://redirect.github.com/golang-jwt/jwt/pull/473">golang-jwt/jwt#473</a></li> <li><a href="https://github.com/EgorSheff"><code>@EgorSheff</code></a> made their first contribution in <a href="https://redirect.github.com/golang-jwt/jwt/pull/417">golang-jwt/jwt#417</a></li> <li><a href="https://github.com/slickwilli"><code>@slickwilli</code></a> made their first contribution in <a href="https://redirect.github.com/golang-jwt/jwt/pull/414">golang-jwt/jwt#414</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/golang-jwt/jwt/compare/v5.3.0...v5.3.1">https://github.com/golang-jwt/jwt/compare/v5.3.0...v5.3.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
4248d135b7 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.217.1 to 3.218.0 in /deploy (#924)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.217.1 to 3.218.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.218.0</h2> <h2>3.218.0 (2026-01-29)</h2> <h3>Features</h3> <ul> <li>[sdk/nodejs] Add support for the <code>OnError</code> resource hook</li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli] Allow positional arguments to be passed to <code>convert</code> again</p> </li> <li> <p>[cli/install] Correctly include git forge organizations as schema namespaces when generating SDKs <a href="https://redirect.github.com/pulumi/pulumi/pull/21579">#21579</a></p> </li> <li> <p>[cli/{install,package}] Correctly grab package names for Python & NodeJS <a href="https://redirect.github.com/pulumi/pulumi/pull/21577">#21577</a></p> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.218.0 (2026-01-29)</h2> <h3>Features</h3> <ul> <li>[sdk/nodejs] Add support for the <code>OnError</code> resource hook</li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli] Allow positional arguments to be passed to <code>convert</code> again</p> </li> <li> <p>[cli/install] Correctly include git forge organizations as schema namespaces when generating SDKs <a href="https://redirect.github.com/pulumi/pulumi/pull/21579">#21579</a></p> </li> <li> <p>[cli/{install,package}] Correctly grab package names for Python & NodeJS <a href="https://redirect.github.com/pulumi/pulumi/pull/21577">#21577</a></p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
8e0af8d82b |
build(deps): bump the actions group across 1 directory with 2 updates (#933)
Bumps the actions group with 2 updates in the / directory: [docker/login-action](https://github.com/docker/login-action) and [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `docker/login-action` from 3.6.0 to 3.7.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/docker/login-action/releases">docker/login-action's releases</a>.</em></p> <blockquote> <h2>v3.7.0</h2> <ul> <li>Add <code>scope</code> input to set scopes for the authentication token by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/912">docker/login-action#912</a></li> <li>Add support for AWS European Sovereign Cloud ECR by <a href="https://github.com/dphi"><code>@dphi</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/914">docker/login-action#914</a></li> <li>Ensure passwords are redacted with <code>registry-auth</code> input by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/911">docker/login-action#911</a></li> <li>build(deps): bump lodash from 4.17.21 to 4.17.23 in <a href="https://redirect.github.com/docker/login-action/pull/915">docker/login-action#915</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v3.6.0...v3.7.0">https://github.com/docker/login-action/compare/v3.6.0...v3.7.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
d33b3f5ece |
build(deps): bump go.opentelemetry.io/otel/metric from 1.39.0 to 1.40.0 (#930)
Bumps [go.opentelemetry.io/otel/metric](https://github.com/open-telemetry/opentelemetry-go) from 1.39.0 to 1.40.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md">go.opentelemetry.io/otel/metric's changelog</a>.</em></p> <blockquote> <h2>[1.40.0/0.62.0/0.16.0] 2026-02-02</h2> <h3>Added</h3> <ul> <li>Add <code>AlwaysRecord</code> sampler in <code>go.opentelemetry.io/otel/sdk/trace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7724">#7724</a>)</li> <li>Add <code>Enabled</code> method to all synchronous instrument interfaces (<code>Float64Counter</code>, <code>Float64UpDownCounter</code>, <code>Float64Histogram</code>, <code>Float64Gauge</code>, <code>Int64Counter</code>, <code>Int64UpDownCounter</code>, <code>Int64Histogram</code>, <code>Int64Gauge</code>,) in <code>go.opentelemetry.io/otel/metric</code>. This stabilizes the synchronous instrument enabled feature, allowing users to check if an instrument will process measurements before performing computationally expensive operations. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7763">#7763</a>)</li> <li>Add <code>go.opentelemetry.io/otel/semconv/v1.39.0</code> package. The package contains semantic conventions from the <code>v1.39.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/semconv/v1.39.0/MIGRATION.md">migration documentation</a> for information on how to upgrade from <code>go.opentelemetry.io/otel/semconv/v1.38.0.</code> (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7783">#7783</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7789">#7789</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Improve the concurrent performance of <code>HistogramReservoir</code> in <code>go.opentelemetry.io/otel/sdk/metric/exemplar</code> by 4x. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7443">#7443</a>)</li> <li>Improve the concurrent performance of <code>FixedSizeReservoir</code> in <code>go.opentelemetry.io/otel/sdk/metric/exemplar</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7447">#7447</a>)</li> <li>Improve performance of concurrent histogram measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7474">#7474</a>)</li> <li>Improve performance of concurrent synchronous gauge measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7478">#7478</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/stdout/stdoutmetric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7492">#7492</a>)</li> <li><code>Exporter</code> in <code>go.opentelemetry.io/otel/exporters/prometheus</code> ignores metrics with the scope <code>go.opentelemetry.io/contrib/bridges/prometheus</code>. This prevents scrape failures when the Prometheus exporter is misconfigured to get data from the Prometheus bridge. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7688">#7688</a>)</li> <li>Improve performance of concurrent exponential histogram measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7702">#7702</a>)</li> <li>The <code>rpc.grpc.status_code</code> attribute in the experimental metrics emitted from <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc</code> is replaced with the <code>rpc.response.status_code</code> attribute to align with the semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7854">#7854</a>)</li> <li>The <code>rpc.grpc.status_code</code> attribute in the experimental metrics emitted from <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc</code> is replaced with the <code>rpc.response.status_code</code> attribute to align with the semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7854">#7854</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix bad log message when key-value pairs are dropped because of key duplication in <code>go.opentelemetry.io/otel/sdk/log</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7662">#7662</a>)</li> <li>Fix <code>DroppedAttributes</code> on <code>Record</code> in <code>go.opentelemetry.io/otel/sdk/log</code> to not count the non-attribute key-value pairs dropped because of key duplication. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7662">#7662</a>)</li> <li>Fix <code>SetAttributes</code> on <code>Record</code> in <code>go.opentelemetry.io/otel/sdk/log</code> to not log that attributes are dropped when they are actually not dropped. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7662">#7662</a>)</li> <li>Fix missing <code>request.GetBody</code> in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp</code> to correctly handle HTTP/2 <code>GOAWAY</code> frame. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7794">#7794</a>)</li> <li><code>WithHostID</code> detector in <code>go.opentelemetry.io/otel/sdk/resource</code> to use full path for <code>ioreg</code> command on Darwin (macOS). (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7818">#7818</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li>Deprecate <code>go.opentelemetry.io/otel/exporters/zipkin</code>. For more information, see the <a href="https://opentelemetry.io/blog/2025/deprecating-zipkin-exporters/">OTel blog post deprecating the Zipkin exporter</a>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7670">#7670</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
c25e88d6f3 |
Resolve vulnerability warnings by bumping Go to 1.24.12 (#934)
<!-- Provide a brief summary of your changes --> The following PR fixes the failing validation checks on our CI. ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
f06d1eda8a |
Added /validate endpoint and modified mcp-publish so that all validation happens there (#896)
## Motivation and Context Per discussion with @rdimitrov - all validation now happens in a new `/validate` endpoint. For details, see below. ## Breaking Changes None. Validation on /publish only validates schema version and semantic checks (manual checks) as before. We can add schema validation by changing a flag in the called to `ValidateJSONSchema` when we're ready. ## Types of changes - [X] New feature (non-breaking change which adds functionality) ## Checklist - [X] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [X] My code follows the repository's style guidelines - [X] New and existing tests pass locally - [X] I have added appropriate error handling - [X] I have added or updated documentation as needed ## Additional context ## API Changes ### 1. New `/validate` Endpoint A new public endpoint was added for validating `server.json` files without publishing them. **Details:** - **Paths:** `/v0/validate` and `/v0.1/validate` - **Method:** `POST` - **Authentication:** None required (public endpoint) - **Request:** JSON body containing `ServerJSON` - **Response:** `200 OK` with `ValidationResult` containing: - `valid` (boolean) - `issues` (array of validation issues with type, path, message, severity, reference) **Implementation:** - New handler file: `internal/api/handlers/v0/validate.go` - Performs comprehensive validation using `ValidationAll` option: - Schema version validation - Full schema validation - Semantic validation - Always returns `200 OK` - validity is indicated in `result.Valid` field - Registered in router for both `/v0` and `/v0.1` prefixes ### 2. `/publish` Endpoint Validation Flow Changes The publish endpoint now validates earlier in the request flow and provides clearer error responses. **Before:** Validation was mixed into `ValidatePublishRequest()` (which also handled publisher extensions and registry ownership). **After:** 1. Validates `ServerJSON` structure first using `ValidateServerJSON()` (schema version + semantic validation) 2. Returns `422 Unprocessable Entity` with message: "Failed to publish server, invalid schema: call /validate for details" 3. Only proceeds to publisher extensions/registry validation if schema validation passes 4. No longer calls `ValidatePublishRequest()` internally for schema validation **Key Changes:** - Validation happens before `CreateServer()` call - Returns `422` on schema/semantic validation failures - Error message directs users to `/validate` endpoint for details - `ValidatePublishRequest()` no longer performs schema validation (added note in comments) ### 3. `/edit` Endpoint Validation Flow Changes Similar validation changes were applied to the edit endpoint. **Changes:** - Added `ValidateServerJSON()` call before server update - Returns `422` with same error message format on validation failure - Matches the `/publish` endpoint behavior ### 4. Validator Functions Refactoring Updated validator functions to reflect that schema validation is now done separately. **Changes to `ValidatePublishRequest()`:** - Removed internal `ValidateServerJSON()` call - Added note: "ValidateServerJSON should be called separately before this function" - Now only validates publisher extensions and registry ownership **Changes to `ValidateUpdateRequest()`:** - Same change (removed schema validation, added note) - Now only validates registry ownership ## CLI Changes ### 1. `validate` Command: Now Uses API Endpoint **Before:** Performed local validation using `validators.ValidateServerJSON()`. **After:** Calls the `/v0/validate` endpoint on the registry. **Details:** - Reads `server.json` and sends it to the registry API - Displays validation results returned by the server - Uses the same error formatting as before - Registry URL comes from token file (or default) - No authentication required (public endpoint) **Implementation:** - Added `validateViaAPI()` function that POSTs to `/v0/validate` - Parses `ValidationResult` response from server - Uses shared `printValidationIssues()` for formatting ### 2. `publish` Command: Validation Only on 422 Errors **Before:** Performed upfront local schema validation before publishing. **After:** Attempts publish first, then validates only if server returns 422. **Details:** - Attempts publish immediately (no upfront validation) - If publish returns 422 (Unprocessable Entity): - Calls `/v0/validate` endpoint to get detailed validation errors - Formats and displays them using same logic as `validate` command - Returns error with migration links - For non-422 errors (401, 403, etc.), returns original error (no validation call) **Implementation Changes:** - Removed upfront `runValidationAndPrintIssues()` call - Modified `publishToRegistry()` to return HTTP status code alongside response/error - Added 422 detection logic that calls `validateViaAPI()` ### 3. Shared Validation Error Formatting **Before:** `runValidationAndPrintIssues()` function handled both validation and printing together. **After:** Refactored to separate printing logic. **Details:** - Created `printValidationIssues()` function - just prints validation issues (no validation logic) - Removed `runValidationAndPrintIssues()` function (no longer used) - Both `validate` and `publish` commands use `printValidationIssues()` for consistent output **Behavior:** - Prints schema validation errors with migration guidance - Prints all other validation issues with formatting - Returns formatted error message string for schema issues ## Summary Both CLI commands now use the `/validate` API endpoint for validation instead of local validation. The `publish` command validates only after receiving a 422 error response, and both commands share the same error formatting via `printValidationIssues()`. ### Benefits - **Centralized validation logic** - All validation happens on the server - **Always up-to-date** - CLI always uses current server validation rules - **Consistent experience** - Same validation behavior whether using CLI or API directly - **Better separation of concerns** - Schema validation separated from publisher-specific validation |
||
|
|
dc73689210 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.216.0 to 3.217.1 in /deploy (#919)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.216.0 to 3.217.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.217.1</h2> <h2>3.217.1 (2026-01-27)</h2> <h3>Features</h3> <ul> <li>[sdk/go] Add support for the <code>OnError</code> resource hook <a href="https://redirect.github.com/pulumi/pulumi/pull/21515">#21515</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli/install] Copy files when linking to be robust to copying across file partitions <a href="https://redirect.github.com/pulumi/pulumi/pull/21549">#21549</a></p> </li> <li> <p>[cli/install] Do not double install plugins with explicit parameterizations <a href="https://redirect.github.com/pulumi/pulumi/pull/21548">#21548</a></p> </li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pulumi/pulumi/compare/v3.217.0...v3.217.1">https://github.com/pulumi/pulumi/compare/v3.217.0...v3.217.1</a></p> <h2>v3.217.0</h2> <h2>3.217.0 (2026-01-23)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Extract organization, team, and user from OIDC JWT claims during login <a href="https://redirect.github.com/pulumi/pulumi/pull/21462">#21462</a></p> </li> <li> <p>[engine] Add the <code>OnError</code> resource hook to allow for custom retry policies <a href="https://redirect.github.com/pulumi/pulumi/pull/21291">#21291</a></p> </li> <li> <p>[cli/engine] Add --plan up flag <a href="https://redirect.github.com/pulumi/pulumi/pull/21368">#21368</a></p> </li> <li> <p>[sdk/nodejs] Add requirePulumiVersion to the Node.js SDK <a href="https://redirect.github.com/pulumi/pulumi/pull/21528">#21528</a> <a href="https://redirect.github.com/pulumi/pulumi/pull/21478">#21478</a></p> </li> <li> <p>[sdk/python] Add require_pulumi_version to the Python SDK <a href="https://redirect.github.com/pulumi/pulumi/pull/21528">#21528</a> <a href="https://redirect.github.com/pulumi/pulumi/pull/21430">#21430</a></p> </li> <li> <p>[sdk/go] Add CheckPulumiVersion to the Go SDK <a href="https://redirect.github.com/pulumi/pulumi/pull/21528">#21528</a> <a href="https://redirect.github.com/pulumi/pulumi/pull/21514">#21514</a></p> </li> </ul> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.217.1 (2026-01-27)</h2> <h3>Features</h3> <ul> <li>[sdk/go] Add support for the <code>OnError</code> resource hook <a href="https://redirect.github.com/pulumi/pulumi/pull/21515">#21515</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli/install] Copy files when linking to be robust to copying across file partitions <a href="https://redirect.github.com/pulumi/pulumi/pull/21549">#21549</a></p> </li> <li> <p>[cli/install] Do not double install plugins with explicit parameterizations <a href="https://redirect.github.com/pulumi/pulumi/pull/21548">#21548</a></p> </li> <li> <p>[cli/install] Copy files when linking instead of renaming <a href="https://redirect.github.com/pulumi/pulumi/pull/21549">#21549</a></p> </li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pulumi/pulumi/compare/v3.217.0...v3.217.1">https://github.com/pulumi/pulumi/compare/v3.217.0...v3.217.1</a></p> <h2>3.217.0 (2026-01-23)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Extract organization, team, and user from OIDC JWT claims during login <a href="https://redirect.github.com/pulumi/pulumi/pull/21462">#21462</a></p> </li> <li> <p>[engine] Add the <code>OnError</code> resource hook to allow for custom retry policies <a href="https://redirect.github.com/pulumi/pulumi/pull/21291">#21291</a></p> </li> <li> <p>[cli/engine] Add --plan up flag <a href="https://redirect.github.com/pulumi/pulumi/pull/21368">#21368</a></p> </li> <li> <p>[sdk/nodejs] Add requirePulumiVersion to the Node.js SDK <a href="https://redirect.github.com/pulumi/pulumi/pull/21528">#21528</a> <a href="https://redirect.github.com/pulumi/pulumi/pull/21478">#21478</a></p> </li> <li> <p>[sdk/python] Add require_pulumi_version to the Python SDK <a href="https://redirect.github.com/pulumi/pulumi/pull/21528">#21528</a> <a href="https://redirect.github.com/pulumi/pulumi/pull/21430">#21430</a></p> </li> <li> <p>[sdk/go] Add CheckPulumiVersion to the Go SDK <a href="https://redirect.github.com/pulumi/pulumi/pull/21528">#21528</a> <a href="https://redirect.github.com/pulumi/pulumi/pull/21514">#21514</a></p> </li> </ul> <h3>Bug Fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
f1dbb060c8 |
build(deps): bump anchore/sbom-action from 0.22.0 to 0.22.1 in the actions group (#920)
Bumps the actions group with 1 update: [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `anchore/sbom-action` from 0.22.0 to 0.22.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anchore/sbom-action/releases">anchore/sbom-action's releases</a>.</em></p> <blockquote> <h2>v0.22.1</h2> <h2>⬆️ Dependencies</h2> <ul> <li>chore(deps): update Syft to v1.41.0 (<a href="https://redirect.github.com/anchore/sbom-action/issues/576">#576</a>) [@<a href="https://github.com/apps/anchore-actions-token-generator">anchore-actions-token-generator[bot]</a>]</li> <li>chore(deps): bump lodash from 4.17.21 to 4.17.23 (<a href="https://redirect.github.com/anchore/sbom-action/issues/573">#573</a>) [@<a href="https://github.com/apps/dependabot">dependabot[bot]</a>]</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
3f3383bb61 |
build(deps): bump cloud.google.com/go/kms from 1.24.0 to 1.25.0 (#913)
Bumps [cloud.google.com/go/kms](https://github.com/googleapis/google-cloud-go) from 1.24.0 to 1.25.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-cloud-go/releases">cloud.google.com/go/kms's releases</a>.</em></p> <blockquote> <h2>maps 1.25.0</h2> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/maps/v1.24.0...maps/v1.25.0">1.25.0</a> (2025-10-22)</h2> <h3>Features</h3> <ul> <li> <p>Add moved_place and moved_place_id to Place (PiperOrigin-RevId: 821809971) (<a href=" |
||
|
|
817e12161d |
docs: Add preview disclaimer note to public documentation
Add a `<Note>` component to all MDX files in `docs/modelcontextprotocol-io/` informing readers that the MCP Registry is currently in preview and that breaking changes or data resets may occur before general availability. The note also directs users to report issues on GitHub at https://github.com/modelcontextprotocol/registry/issues Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|
|
4fb32e5e2e |
build(deps): bump anchore/sbom-action from 0.21.1 to 0.22.0 in the actions group (#911)
Bumps the actions group with 1 update: [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `anchore/sbom-action` from 0.21.1 to 0.22.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anchore/sbom-action/releases">anchore/sbom-action's releases</a>.</em></p> <blockquote> <h2>v0.22.0</h2> <h2>Changes in v0.22.0</h2> <h2>⬆️ Dependencies</h2> <ul> <li>chore(deps-dev): bump the dev-dependencies group with 19 updates (<a href="https://redirect.github.com/anchore/sbom-action/issues/566">#566</a>) [<a href="https://github.com/dependabot"><code>@dependabot</code></a>]</li> <li>chore(deps): bump npm-check-updates from 17.1.3 to 19.3.1 (<a href="https://redirect.github.com/anchore/sbom-action/issues/567">#567</a>) [<a href="https://github.com/dependabot"><code>@dependabot</code></a>]</li> <li>chore(deps): update Syft to v1.40.1 (<a href="https://redirect.github.com/anchore/sbom-action/issues/563">#563</a>) [<a href="https://github.com/anchore-actions-token-generator"><code>@anchore-actions-token-generator</code></a>[bot]]</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
9d30456d48 |
docs: Fix errors and typos in public documentation
- Fix `--private-key-file` to `--private-key` in `github-actions.mdx` DNS authentication example (the CLI expects hex-encoded key data, not a file path) - Add missing `./` prefix to `mcp-publisher` command in PAT authentication example - Fix typo `verfication` to `verification` in troubleshooting table - Remove duplicate word `authentication` in `quickstart.mdx` prerequisites - Fix `name` to `identifier` field in JSON examples in `versioning.mdx` - Fix `PyPi` to `PyPI` (correct capitalization) in `moderation-policy.mdx` Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|
|
28360d5b20 |
docs: Convert FAQ heading to MDX frontmatter
Replace the markdown `# Frequently Asked Questions` heading with proper MDX frontmatter that includes both `title` and `sidebarTitle` fields. This brings the FAQ page in line with MDX documentation conventions. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|
|
1e8594e6e0 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.215.0 to 3.216.0 in /deploy (#898)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.215.0 to 3.216.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.216.0</h2> <h2>3.216.0 (2026-01-16)</h2> <h3>Features</h3> <ul> <li> <p>[build] Don't set PULUMI_ROOT with mise <a href="https://redirect.github.com/pulumi/pulumi/pull/21457">#21457</a></p> </li> <li> <p>[cli] Default to Pulumi Cloud when using an OIDC token for login <a href="https://redirect.github.com/pulumi/pulumi/pull/21322">#21322</a></p> </li> <li> <p>[engine] Add CheckPulumiVersion RPC to the engine <a href="https://redirect.github.com/pulumi/pulumi/pull/21429">#21429</a></p> </li> <li> <p>[protobuf] Remove ProviderHandshakeResponse.pulumi_version_range <a href="https://redirect.github.com/pulumi/pulumi/pull/21438">#21438</a></p> </li> <li> <p>[sdk/nodejs] Allow dynamic providers to return inputs from read() for accurate diffs after refresh <a href="https://redirect.github.com/pulumi/pulumi/pull/21315">#21315</a></p> </li> <li> <p>[sdk/nodejs] Add support for serializing async generators <a href="https://redirect.github.com/pulumi/pulumi/pull/21410">#21410</a></p> </li> <li> <p>[sdk/python] Allow dynamic providers to return inputs from read() for accurate diffs after refresh <a href="https://redirect.github.com/pulumi/pulumi/pull/21315">#21315</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[engine] Optimize StackReference performance <a href="https://redirect.github.com/pulumi/pulumi/pull/21446">#21446</a></p> </li> <li> <p>[cli/display] Fix message renderer on windows <a href="https://redirect.github.com/pulumi/pulumi/pull/21401">#21401</a></p> </li> <li> <p>[sdk/nodejs] Fix RangeError in defaultErrorMessage when error objects are large <a href="https://redirect.github.com/pulumi/pulumi/pull/21409">#21409</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[sdk/dotnet] Update dotnet to v3.97.0</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.216.0 (2026-01-16)</h2> <h3>Features</h3> <ul> <li> <p>[build] Don't set PULUMI_ROOT with mise <a href="https://redirect.github.com/pulumi/pulumi/pull/21457">#21457</a></p> </li> <li> <p>[cli] Default to Pulumi Cloud when using an OIDC token for login <a href="https://redirect.github.com/pulumi/pulumi/pull/21322">#21322</a></p> </li> <li> <p>[engine] Add CheckPulumiVersion RPC to the engine <a href="https://redirect.github.com/pulumi/pulumi/pull/21429">#21429</a></p> </li> <li> <p>[protobuf] Remove ProviderHandshakeResponse.pulumi_version_range <a href="https://redirect.github.com/pulumi/pulumi/pull/21438">#21438</a></p> </li> <li> <p>[sdk/nodejs] Allow dynamic providers to return inputs from read() for accurate diffs after refresh <a href="https://redirect.github.com/pulumi/pulumi/pull/21315">#21315</a></p> </li> <li> <p>[sdk/nodejs] Add support for serializing async generators <a href="https://redirect.github.com/pulumi/pulumi/pull/21410">#21410</a></p> </li> <li> <p>[sdk/python] Allow dynamic providers to return inputs from read() for accurate diffs after refresh <a href="https://redirect.github.com/pulumi/pulumi/pull/21315">#21315</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[engine] Optimize StackReference performance <a href="https://redirect.github.com/pulumi/pulumi/pull/21446">#21446</a></p> </li> <li> <p>[cli/display] Fix message renderer on windows <a href="https://redirect.github.com/pulumi/pulumi/pull/21401">#21401</a></p> </li> <li> <p>[sdk/nodejs] Fix RangeError in defaultErrorMessage when error objects are large <a href="https://redirect.github.com/pulumi/pulumi/pull/21409">#21409</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[sdk/dotnet] Update dotnet to v3.97.0</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
8fe8725235 |
build(deps): bump actions/checkout from 4 to 6 in the actions group (#892)
Bumps the actions group with 1 update: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 4 to 6 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p> <blockquote> <h2>v6.0.0</h2> <h2>What's Changed</h2> <ul> <li>Update README to include Node.js 24 support details and requirements by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li> <li>Persist creds to a separate file by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li> <li>v6-beta by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2298">actions/checkout#2298</a></li> <li>update readme/changelog for v6 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2311">actions/checkout#2311</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v5.0.0...v6.0.0">https://github.com/actions/checkout/compare/v5.0.0...v6.0.0</a></p> <h2>v6-beta</h2> <h2>What's Changed</h2> <p>Updated persist-credentials to store the credentials under <code>$RUNNER_TEMP</code> instead of directly in the local git config.</p> <p>This requires a minimum Actions Runner version of <a href="https://github.com/actions/runner/releases/tag/v2.329.0">v2.329.0</a> to access the persisted credentials for <a href="https://docs.github.com/en/actions/tutorials/use-containerized-services/create-a-docker-container-action">Docker container action</a> scenarios.</p> <h2>v5.0.1</h2> <h2>What's Changed</h2> <ul> <li>Port v6 cleanup to v5 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v5...v5.0.1">https://github.com/actions/checkout/compare/v5...v5.0.1</a></p> <h2>v5.0.0</h2> <h2>What's Changed</h2> <ul> <li>Update actions checkout to use node 24 by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li> <li>Prepare v5.0.0 release by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2238">actions/checkout#2238</a></li> </ul> <h2>⚠️ Minimum Compatible Runner Version</h2> <p><strong>v2.327.1</strong><br /> <a href="https://github.com/actions/runner/releases/tag/v2.327.1">Release Notes</a></p> <p>Make sure your runner is updated to this version or newer to use this release.</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v4...v5.0.0">https://github.com/actions/checkout/compare/v4...v5.0.0</a></p> <h2>v4.3.1</h2> <h2>What's Changed</h2> <ul> <li>Port v6 cleanup to v4 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v4...v4.3.1">https://github.com/actions/checkout/compare/v4...v4.3.1</a></p> <h2>v4.3.0</h2> <h2>What's Changed</h2> <ul> <li>docs: update README.md by <a href="https://github.com/motss"><code>@motss</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li> <li>Add internal repos for checking out multiple repositories by <a href="https://github.com/mouismail"><code>@mouismail</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li> <li>Documentation update - add recommended permissions to Readme by <a href="https://github.com/benwells"><code>@benwells</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
8ef8df8433 |
build(deps): bump cloud.google.com/go/kms from 1.23.2 to 1.24.0 (#891)
Bumps [cloud.google.com/go/kms](https://github.com/googleapis/google-cloud-go) from 1.23.2 to 1.24.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-cloud-go/releases">cloud.google.com/go/kms's releases</a>.</em></p> <blockquote> <h2>maps 1.24.0</h2> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/maps/v1.23.0...maps/v1.24.0">1.24.0</a> (2025-10-10)</h2> <h3>Features</h3> <ul> <li>Upgrade to Go 1.24 (<a href="https://redirect.github.com/googleapis/google-cloud-go/issues/12781">#12781</a>) (<a href=" |
||
|
|
e28c64dbe9 |
build(deps): bump github.com/pulumi/pulumi-kubernetes/sdk/v4 from 4.24.1 to 4.25.0 in /deploy (#899)
Bumps [github.com/pulumi/pulumi-kubernetes/sdk/v4](https://github.com/pulumi/pulumi-kubernetes) from 4.24.1 to 4.25.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/releases">github.com/pulumi/pulumi-kubernetes/sdk/v4's releases</a>.</em></p> <blockquote> <h2>v4.25.0</h2> <p>No release notes provided.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
0af9ee03b9 |
build(deps): bump github.com/danielgtaylor/huma/v2 from 2.34.1 to 2.35.0 (#905)
Bumps [github.com/danielgtaylor/huma/v2](https://github.com/danielgtaylor/huma) from 2.34.1 to 2.35.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/danielgtaylor/huma/releases">github.com/danielgtaylor/huma/v2's releases</a>.</em></p> <blockquote> <h2>v2.35.0</h2> <h2>Overview</h2> <p><em>Moved this release as it was incorrectly tagged as v2.34.3.</em></p> <h3>Improved Error Messaging for Form Pointers</h3> <p>Pointer panic messages now explicitly include “Form” where applicable, making debugging clearer and resolving <a href="https://redirect.github.com/danielgtaylor/huma/issues/892">#892</a>.</p> <h3>Expanded String Format Support</h3> <p>Added support for <code>duration</code> and <code>idn-hostname</code> string formats, improving schema expressiveness and validation coverage.</p> <h3>Header Parsing Fix</h3> <p>Fixed several subtle issues in header detection that occurred when output fields were slices, arrays, or maps, which could cause headers (notably []*http.Cookie) to be incorrectly applied or documented. The parsing logic now correctly inspects the root type of collection fields and adds support for hidden headers, allowing them to be excluded from generated OpenAPI documentation. These changes resolve multiple long-standing documentation and serialization bugs without introducing new behavior.</p> <h2>What's Changed</h2> <ul> <li>fix: include “Form” in pointer panic message (fixes <a href="https://redirect.github.com/danielgtaylor/huma/issues/892">#892</a>) by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/938">danielgtaylor/huma#938</a></li> <li>feat: support duration and IDN-hostname string formats by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/939">danielgtaylor/huma#939</a></li> <li>docs: add simple HTML docs by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/941">danielgtaylor/huma#941</a></li> <li>fix: header parsing by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/944">danielgtaylor/huma#944</a></li> <li>perf(schema): optimize convertType with fast paths for compatible types by <a href="https://github.com/baagod"><code>@baagod</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/931">danielgtaylor/huma#931</a></li> <li>Added exhaustive error code wrappers by <a href="https://github.com/rhodeon"><code>@rhodeon</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/876">danielgtaylor/huma#876</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/baagod"><code>@baagod</code></a> made their first contribution in <a href="https://redirect.github.com/danielgtaylor/huma/pull/931">danielgtaylor/huma#931</a></li> <li><a href="https://github.com/rhodeon"><code>@rhodeon</code></a> made their first contribution in <a href="https://redirect.github.com/danielgtaylor/huma/pull/876">danielgtaylor/huma#876</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/danielgtaylor/huma/compare/v2.34.2...v2.35.0">https://github.com/danielgtaylor/huma/compare/v2.34.2...v2.34.3</a></p> <h2>v2.34.2</h2> <h2>Overview</h2> <h3>TLS-Aware URL Scheme Detection</h3> <p>Huma now correctly uses the <code>https</code> URL scheme when TLS is configured, and <code>http</code> when it is not. Previously, the scheme detection could be incorrect in certain scenarios.</p> <h3>Time Wrapper Parsing Fix</h3> <p>Fixed an issue where time wrapper types failed to parse correctly, resolving <a href="https://redirect.github.com/danielgtaylor/huma/issues/844">#844</a>.</p> <h2>What's Changed</h2> <ul> <li>fix: correct example format for tags in Pet struct by <a href="https://github.com/vikyw89"><code>@vikyw89</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/858">danielgtaylor/huma#858</a></li> <li>docs: add links to hire me by <a href="https://github.com/danielgtaylor"><code>@danielgtaylor</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/869">danielgtaylor/huma#869</a></li> <li>Revert "docs: add links to hire me" by <a href="https://github.com/danielgtaylor"><code>@danielgtaylor</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/890">danielgtaylor/huma#890</a></li> <li>chore(deps): bump github.com/gofiber/fiber/v2 from 2.52.7 to 2.52.9 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/danielgtaylor/huma/pull/882">danielgtaylor/huma#882</a></li> <li>Fix code samples in the response output documentation by <a href="https://github.com/prnvbn"><code>@prnvbn</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/927">danielgtaylor/huma#927</a></li> <li>fix: use "http" URL scheme only if no TLS is used by <a href="https://github.com/leonklingele"><code>@leonklingele</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/905">danielgtaylor/huma#905</a></li> <li>fix: failed to parse time wrapper, close <a href="https://redirect.github.com/danielgtaylor/huma/issues/844">#844</a> by <a href="https://github.com/zhenzou"><code>@zhenzou</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/924">danielgtaylor/huma#924</a></li> <li>Minor linting/formatting by <a href="https://github.com/wolveix"><code>@wolveix</code></a> in <a href="https://redirect.github.com/danielgtaylor/huma/pull/936">danielgtaylor/huma#936</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/vikyw89"><code>@vikyw89</code></a> made their first contribution in <a href="https://redirect.github.com/danielgtaylor/huma/pull/858">danielgtaylor/huma#858</a></li> <li><a href="https://github.com/prnvbn"><code>@prnvbn</code></a> made their first contribution in <a href="https://redirect.github.com/danielgtaylor/huma/pull/927">danielgtaylor/huma#927</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
fc88cf0870 |
Enhanced server.json validation (phase 1) (#636)
Added schema validation and support for exhaustive and more detailed validation to existing validators. Added new `mcp-publisher validate` command. No change to any existing tests or behavior other than the new command. ## Motivation and Context Many currently published servers fail schema validation. Of those that pass, many have semantic/logical errors or other errors that make them impossible to configure, or their configuration when applied doesn't generate correct MCP server configuration (per their own documentation). To address this, we need better tooling to validate servers and to inform server publishers of errors, issues, and best practices in a way that is clear and actionable, both during server development and at time of publishing. I have started a discussion about the broader topic: https://github.com/modelcontextprotocol/registry/discussions/635 There is also a fairly detailed document describing the design, architecture, implementation, future plans, etc. See [Enhanced Validation Design](docs/explanations/proposed-enhanced-validation.md) This PR is the first step in the process of improving validation. It adds schema validation and updates all existing validators to use a new model that allows them to track context and return rich and exhaustive results. This has been done in a way that is backward compatible (ValidateServerJSON is unchanged as are all existing validation unit tests). There is a new `mcp-publisher` command called `validate` that is currenty the only place that schema validation and enhanced (exhaustive/rich) validation results are exposed. ### Changes Internal Validation improvements - Schema validation has been implemented and is available as an option in validation methods (defaults to off) - Existing validators track the JSON path (context) of the attribute they're evaluating, passing it to any child validators - Existing validators are exhaustive (return all issues, not failing fast on the first error) - Existing validators return rich validation results, including: - type (schema, semantic, linter) - severity (error, warn, info) - path (JSON path to server.json element) - reference (to the schema element or rule that triggered the result) - message (currently the same as previous error message) A new `validate` command has been added to `mcp-publisher` so publishers can evaluate their server.json before publishing - Includes new schema validation and previous semantic validation - Shows full details of all issues encountered during validation ### Usage Given a server.json that looks like this: ```json { "$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json", "name": "io.github.BobDickinson/registry", "description": "An MCP server that provides [describe what your server does]", "repository": { "url": "", "source": "" }, "version": "=1.0.0", "packages": [ { "registryType": "oci", "registryBaseUrl": "https://docker.io", "identifier": "registry", "version": "1.0.0", "transport": { "type": "sse" }, "packageArguments": [ { "type": "named", "name": "--mode", "description": "Operation mode", "format": "foo" } ], "environmentVariables": [ { "description": "Your API key for the service", "isRequired": true, "format": "string", "isSecret": true, "name": "YOUR_API_KEY" } ] } ] } ``` Run the command: `mcp-publisher validate server.json` Which will produce the output: ```bash ❌ Validation failed with 5 issue(s): 1. [error] packages.0.packageArguments.0.format (schema) value must be one of "string", "number", "boolean", "filepath" Reference: #/definitions/Input/properties/format/enum from: [#/definitions/ServerDetail]/properties/packages/items/[#/definitions/Package]/properties/packageArguments/items/[#/definitions/Argument]/else/[#/definitions/NamedArgument]/allOf/0/[#/definitions/InputWithVariables]/allOf/0/[#/definitions/Input]/properties/format/enum 2. [error] packages.0.transport (schema) missing required fields: 'url' Reference: #/definitions/SseTransport/required from: [#/definitions/ServerDetail]/properties/packages/items/[#/definitions/Package]/properties/transport/else/else/[#/definitions/SseTransport]/required 3. [error] repository.url (schema) '' has invalid format 'uri' Reference: #/definitions/Repository/properties/url/format from: [#/definitions/ServerDetail]/properties/repository/[#/definitions/Repository]/properties/url/format 4. [error] version (semantic) version must be a specific version, not a range: "=1.0.0" Reference: version-looks-like-range 5. [error] packages[0].transport.url (semantic) url is required for sse transport type Reference: streamable-transport-url-required Error: validation failed ``` Note in the results above: - All errors contain the JSON path of the triggering element from server.json. - The first three errors are schema errors detected during schema validation. The `Reference` provided contains an absolute path to the schema rule that was violated, followed by the full schema path that enforced that rule (with $ref redirect values substited and enclosed in square brackets). - The error messages provided by the existing semantic validators are exactly the same as the previous error messages those validators produced. In the final solution we would remove semantic validators that are redundant to schema validation (as in number 5 above). We have the option to use the structured data produced by schema validation to replace the generic schema validation message with a more descriptive message if that is an issue (in particular, if the only argument for an ad-hoc validator is that is produces a better/cleaner message, we would just move that message creation code to the schema error result formatter and special case it as opposed to having a redundant validator). ### What's Next If this general direction is supported and this PR is accepted, a fast follow would include: - Add new validators (infliuenced by observed issues) for both semantic errors and best practices - Require passing schema validation (in addition to improved semantic validation) in order to publish - Remove existing validation code that is redundant to schema validation (ensuring error messages remain intelligible) - Update validation client code and tests to handle the new rich return types natively ### Issues Schema validation requires embedding the `server.schema.json` file into the validators package via `go:embed`, which is restricted from embedding files outside of the package. For this reason we copy the schema file into a schema subdir (via a prep target in the makefile) and we .gitignore it. I tried cleaning up the copy in the make clean target, but then the linter would complain about the embed target being missing if it wasn't there during development. I also considered just checking in the schema file and assuming a separate workflow for updating the embedded schema file, but it's not clear what that workflow would be or how it would be maintained. I'm open to a different approach, but the schema file does need to be embedded somehow for schema validation to work. ## How Has This Been Tested? All existing validation tests pass, new tests implemented and all pass. ## Breaking Changes No breaking changes, no behavior change except new `validate` command ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [X] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [X] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [X] My code follows the repository's style guidelines - [X] New and existing tests pass locally - [X] I have added appropriate error handling - [X] I have added or updated documentation as needed --------- Co-authored-by: GitHub Action <action@github.com> |
||
|
|
d3d137e170 |
docs: Add MCP registry browser to the community-projects.md page (#889)
<!-- Provide a brief summary of your changes --> ## Motivation and Context Added a fully client-side browser for MCP registry APIs to the `community-projects.md` documentation page: https://vemonet.github.io/mcp-registry I built it because I was missing a way to easily configure a server and export the configuration (existing browsers I have found show the available parameters, but you still need to manually build the JSON): - It shows a user friendly form that enables to configure MCP servers based on their registry entry, making it easier to understand and fill the configuration required for deploying a server (instead of having to read through JSON, and manually build another JSON). Then users can either copy the generated config or install in client with custom URL handler like VSCode/cursor in 1 click - It is a thin client UI layer over the existing registry API, it does not offer additional classification, complex filtering, or semantic search (we don't use an additional server or database). So it is more of a tool to make it user friendly to directly access a raw registry content and inspects available servers, than an opinionated browser with advanced search capabilities ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
ad207f2390 |
Handle URL-encoded NUL bytes (%00) in URL path and query (#877)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Follow up on #869 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
c6856a818b |
build(deps): bump golang.org/x/mod from 0.31.0 to 0.32.0 (#883)
Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.31.0 to
0.32.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="
|
||
|
|
37e2fdd70b |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.214.0 to 3.215.0 in /deploy (#880)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.214.0 to 3.215.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.215.0</h2> <h2>3.215.0 (2026-01-07)</h2> <h3>Features</h3> <ul> <li>[cli/plugin] Allow plugins to specify a supported version range for the CLI <a href="https://redirect.github.com/pulumi/pulumi/pull/21335">#21335</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli] Filter internal properties like __defaults from diff display <a href="https://redirect.github.com/pulumi/pulumi/pull/21359">#21359</a></p> </li> <li> <p>[cli/config] Make <code>config set --type bool</code> accept different spellings of boolean values instead of only lowercase "true" <a href="https://redirect.github.com/pulumi/pulumi/pull/21314">#21314</a></p> </li> <li> <p>[sdk/python] Fix import_resources with converter failing due to --stack argument placement <a href="https://redirect.github.com/pulumi/pulumi/pull/21373">#21373</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li> <p>[cli] Update pulumi-dotnet to 3.96.1</p> </li> <li> <p>[cli/package] Remove superfluous version string <a href="https://redirect.github.com/pulumi/pulumi/pull/21351">#21351</a></p> </li> </ul> <h2>v3.214.1</h2> <h2>3.214.1 (2026-01-03)</h2> <h3>Bug Fixes</h3> <ul> <li> <p>[cli/package] Preserve existing behavior when <code>pulumi package add</code> is used with a local provider <a href="https://redirect.github.com/pulumi/pulumi/pull/21350">#21350</a></p> </li> <li> <p>[pkg] Create namespace aliases to avoid Pulumi namespace collisions during codegen <a href="https://redirect.github.com/pulumi/pulumi/pull/21325">#21325</a></p> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.215.0 (2026-01-07)</h2> <h3>Features</h3> <ul> <li>[cli/plugin] Allow plugins to specify a supported version range for the CLI <a href="https://redirect.github.com/pulumi/pulumi/pull/21335">#21335</a></li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli] Filter internal properties like __defaults from diff display <a href="https://redirect.github.com/pulumi/pulumi/pull/21359">#21359</a></p> </li> <li> <p>[cli/config] Make <code>config set --type bool</code> accept different spellings of boolean values instead of only lowercase "true" <a href="https://redirect.github.com/pulumi/pulumi/pull/21314">#21314</a></p> </li> <li> <p>[sdk/python] Fix import_resources with converter failing due to --stack argument placement <a href="https://redirect.github.com/pulumi/pulumi/pull/21373">#21373</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li> <p>[cli] Update pulumi-dotnet to 3.96.1</p> </li> <li> <p>[cli/package] Remove superfluous version string <a href="https://redirect.github.com/pulumi/pulumi/pull/21351">#21351</a></p> </li> </ul> <h2>3.214.1 (2026-01-03)</h2> <h3>Bug Fixes</h3> <ul> <li> <p>[cli/package] Preserve existing behavior when <code>pulumi package add</code> is used with a local provider <a href="https://redirect.github.com/pulumi/pulumi/pull/21350">#21350</a></p> </li> <li> <p>[pkg] Create namespace aliases to avoid Pulumi namespace collisions during codegen <a href="https://redirect.github.com/pulumi/pulumi/pull/21325">#21325</a></p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
59df9f87e2 |
build(deps): bump the actions group across 1 directory with 2 updates (#888)
Bumps the actions group with 2 updates in the / directory: [actions/setup-go](https://github.com/actions/setup-go) and [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `actions/setup-go` from 6.1.0 to 6.2.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/setup-go/releases">actions/setup-go's releases</a>.</em></p> <blockquote> <h2>v6.2.0</h2> <h2>What's Changed</h2> <h3>Enhancements</h3> <ul> <li>Example for restore-only cache in documentation by <a href="https://github.com/aparnajyothi-y"><code>@aparnajyothi-y</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/696">actions/setup-go#696</a></li> <li>Update Node.js version in action.yml by <a href="https://github.com/ccoVeille"><code>@ccoVeille</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/691">actions/setup-go#691</a></li> <li>Documentation update of actions/checkout by <a href="https://github.com/deining"><code>@deining</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/683">actions/setup-go#683</a></li> </ul> <h3>Dependency updates</h3> <ul> <li>Upgrade js-yaml from 3.14.1 to 3.14.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/682">actions/setup-go#682</a></li> <li>Upgrade <code>@actions/cache</code> to v5 by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/695">actions/setup-go#695</a></li> <li>Upgrade actions/checkout from 5 to 6 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/686">actions/setup-go#686</a></li> <li>Upgrade qs from 6.14.0 to 6.14.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/703">actions/setup-go#703</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ccoVeille"><code>@ccoVeille</code></a> made their first contribution in <a href="https://redirect.github.com/actions/setup-go/pull/691">actions/setup-go#691</a></li> <li><a href="https://github.com/deining"><code>@deining</code></a> made their first contribution in <a href="https://redirect.github.com/actions/setup-go/pull/683">actions/setup-go#683</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/setup-go/compare/v6...v6.2.0">https://github.com/actions/setup-go/compare/v6...v6.2.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
f0f885ccf9 |
chore: update licensing to Apache 2.0 for new contributions (#887)
As part of MCP joining the Linux Foundation, this PR updates licensing to Apache 2.0 for new contributions while grandfathering existing MIT code. See modelcontextprotocol/modelcontextprotocol#1994 |
||
|
|
61fdf17b21 |
fix(publisher): add --help support for subcommands (#867)
## Summary - Added `printCommandHelp()` function to display help for each subcommand - `mcp-publisher init --help` now shows init command help instead of running init - `mcp-publisher login --help` now shows login methods instead of error - `mcp-publisher publish --help` now shows publish usage instead of attempting publish Fixes #735 Signed-off-by: majiayu000 <1835304752@qq.com> Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
ab6a5a6b6d |
fix(api): reject requests with NUL bytes in URL (#869)
## Summary - Added `NulByteValidationMiddleware` to validate incoming requests - Returns 400 Bad Request when NUL bytes (%00) detected in URL path or query - Prevents PostgreSQL encoding errors from being exposed as 500 errors ## Before ``` GET /v0.1/servers?cursor=%00 → 500 Internal Server Error → "invalid byte sequence for encoding UTF8: 0x00" ``` ## After ``` GET /v0.1/servers?cursor=%00 → 400 Bad Request → "Invalid request: query parameters contain null bytes" ``` Fixes #862 Signed-off-by: majiayu000 <1835304752@qq.com> Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
50e030d927 |
build(deps): bump github.com/jackc/pgx/v5 from 5.7.6 to 5.8.0 (#864)
Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.7.6 to 5.8.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jackc/pgx/blob/master/CHANGELOG.md">github.com/jackc/pgx/v5's changelog</a>.</em></p> <blockquote> <h1>5.8.0 (December 26, 2025)</h1> <ul> <li>Require Go 1.24+</li> <li>Remove golang.org/x/crypto dependency</li> <li>Add OptionShouldPing to control ResetSession ping behavior (ilyam8)</li> <li>Fix: Avoid overflow when MaxConns is set to MaxInt32</li> <li>Fix: Close batch pipeline after a query error (Anthonin Bonnefoy)</li> <li>Faster shutdown of pgxpool.Pool background goroutines (Blake Gentry)</li> <li>Add pgxpool ping timeout (Amirsalar Safaei)</li> <li>Fix: Rows.FieldDescriptions for empty query</li> <li>Scan unknown types into *any as string or []byte based on format code</li> <li>Optimize pgtype.Numeric (Philip Dubé)</li> <li>Add AfterNetConnect hook to pgconn.Config</li> <li>Fix: Handle for preparing statements that fail during the Describe phase</li> <li>Fix overflow in numeric scanning (Ilia Demianenko)</li> <li>Fix: json/jsonb sql.Scanner source type is []byte</li> <li>Migrate from math/rand to math/rand/v2 (Mathias Bogaert)</li> <li>Optimize internal iobufpool (Mathias Bogaert)</li> <li>Optimize stmtcache invalidation (Mathias Bogaert)</li> <li>Fix: missing error case in interval parsing (Maxime Soulé)</li> <li>Fix: invalidate statement/description cache in Exec (James Hartig)</li> <li>ColumnTypeLength method return the type length for varbit type (DengChan)</li> <li>Array and Composite codecs handle typed nils</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
44b9a6659f |
build(deps): bump anchore/sbom-action from 0.20.11 to 0.21.0 in the actions group (#860)
Bumps the actions group with 1 update: [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `anchore/sbom-action` from 0.20.11 to 0.21.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anchore/sbom-action/releases">anchore/sbom-action's releases</a>.</em></p> <blockquote> <h2>v0.21.0</h2> <ul> <li>chore(deps): update Syft to v1.39.0 (<a href="https://redirect.github.com/anchore/sbom-action/issues/561">#561</a>)</li> <li>chore(deps): bump <code>@octokit/request-error</code>, <code>@octokit/core</code> and <code>@octokit/webhooks</code> (<a href="https://redirect.github.com/anchore/sbom-action/issues/560">#560</a>)</li> <li>chore(deps): bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (<a href="https://redirect.github.com/anchore/sbom-action/issues/558">#558</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
06fd395939 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.213.0 to 3.214.0 in /deploy (#872)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.213.0 to 3.214.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.214.0</h2> <h2>3.214.0 (2025-12-30)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Add --config and --config-path options to destroy and refresh <a href="https://redirect.github.com/pulumi/pulumi/pull/21299">#21299</a></p> </li> <li> <p>[sdkgen] Add <code>OutputStyleOnly</code> flag to functions to not emit their plain variants <a href="https://redirect.github.com/pulumi/pulumi/pull/21198">#21198</a></p> </li> <li> <p>[sdk/python] Add support for <code>replacement_trigger</code> in the Python SDK <a href="https://redirect.github.com/pulumi/pulumi/pull/20940">#20940</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[engine] Pass ignoreChanges when issuing no-diff updates that resolve initErrors <a href="https://redirect.github.com/pulumi/pulumi/pull/21319">#21319</a></p> </li> <li> <p>[programgen] Fix a bug in programgen binding to invokes from parameterized packages <a href="https://redirect.github.com/pulumi/pulumi/pull/21284">#21284</a></p> </li> <li> <p>[cli/plugin] Fix plugin download URL overrides for fallback mechanism <a href="https://redirect.github.com/pulumi/pulumi/pull/21095">#21095</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[pkg] Upgrade pulumi-java to 1.20.0</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.214.0 (2025-12-30)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Add --config and --config-path options to destroy and refresh <a href="https://redirect.github.com/pulumi/pulumi/pull/21299">#21299</a></p> </li> <li> <p>[sdkgen] Add <code>OutputStyleOnly</code> flag to functions to not emit their plain variants <a href="https://redirect.github.com/pulumi/pulumi/pull/21198">#21198</a></p> </li> <li> <p>[sdk/python] Add support for <code>replacement_trigger</code> in the Python SDK <a href="https://redirect.github.com/pulumi/pulumi/pull/20940">#20940</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[engine] Pass ignoreChanges when issuing no-diff updates that resolve initErrors <a href="https://redirect.github.com/pulumi/pulumi/pull/21319">#21319</a></p> </li> <li> <p>[programgen] Fix a bug in programgen binding to invokes from parameterized packages <a href="https://redirect.github.com/pulumi/pulumi/pull/21284">#21284</a></p> </li> <li> <p>[cli/plugin] Fix plugin download URL overrides for fallback mechanism <a href="https://redirect.github.com/pulumi/pulumi/pull/21095">#21095</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[pkg] Upgrade pulumi-java to 1.20.0</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
9afbaacdfd |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.212.0 to 3.213.0 in /deploy (#856)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.212.0 to 3.213.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.213.0</h2> <h2>3.213.0 (2025-12-17)</h2> <h3>Bug Fixes</h3> <ul> <li>[sdkgen/go] Generate three-level nested builtin output types for Go SDK <a href="https://redirect.github.com/pulumi/pulumi/pull/21248">#21248</a></li> </ul> <h3>Miscellaneous</h3> <ul> <li>[pkg] Move plugin downloading from pkg into sdk <a href="https://redirect.github.com/pulumi/pulumi/pull/21220">#21220</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
4338ec157a |
Default to the local registry in the UI (#799)
<!-- Provide a brief summary of your changes --> Change the UI default to the locally hosted registry. ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Was quite confusing at first :) ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [ ] I have added or updated documentation as needed |
||
|
|
cc1e665b32 |
Ensure no downtime during rollouts (#854)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR ensures we don't have downtime when we are doing rollouts during deployment/promotions. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
d71df40c81 |
Promote prod to 1.4.0 (#852)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR promotes the version of the registry in prod to 1.4.0 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
05d282002a |
Revert "Restrict @claude bot to mcp org only, fix fork behavior" (#851)
Reverts modelcontextprotocol/registry#819 |
||
|
|
731198572b |
Set 429 status code responses in the config map (#849)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Seems that per ingress annotations were not working, so had to put them in the ingress configmap. Did tested this manually on staging so it's confirmed it's working (I was getting 429s instead of 503s) and no traffic was getting into the registry pod. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
fef7d3e2ac |
Preserve client IPs and bump NGINX replicas (#848)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> A few changes related to configuring the rate limiting: * Set `externalTrafficPolicy: Local` to preserve real client IPs (otherwise we only see the cluster IPs) * Disable `use-forwarded-headers` (L4 LB doesn't set `X-Forwarded-For`, prevents spoofing) * Scale NGINX to 2 replicas in prod (costs nothing, gives us zero-downtime deploys to prod) ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
7cfd3f04c7 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.210.0 to 3.212.0 in /deploy (#847) | ||
|
|
3692b995b2 |
build(deps): bump actions/upload-artifact from 5.0.0 to 6.0.0 in the actions group (#846) | ||
|
|
19c58c15d5 |
Add NGINX ingress rate limiting to protect against traffic spikes (#843)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following is an alternative solution to #833 Goal is to deploy and promote it to prod, then monitor the alerts for a week to see its effect and reassess. In case it's actual traffic that we've started blocking we can also up the replicas. I thought it doesn't make sense to up them now since it would be nice to isolate the result of this change first. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
9357e767c9 |
Add a PUT method to the OpenAPI specification (#838)
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
The following PR adds a PUT method for updating a server version
(optional, not implemented by the registry but still provides the
ability for other registry implementations to standardise on it)
**Details:**
- Path: PUT /v0.1/servers/{serverName}/versions/{version}
- Purpose: Update a specific version of an MCP server in the registry
- Authentication: Uses bearer token authentication (registry-specific)
- Request Body: Accepts a ServerDetail schema
- Response: Returns a ServerResponse on success (200)
- Error Handling: Includes proper HTTP status codes:
- 401: Unauthorized
- 403: Forbidden - Insufficient permissions
- 404: Server or version not found
- 500: Internal server error
- 501: Not Implemented - Registry doesn't support updates
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com>
|
||
|
|
c179f71215 |
build(deps): bump the actions group across 1 directory with 4 updates (#836)
Bumps the actions group with 4 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [actions/setup-go](https://github.com/actions/setup-go), [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) and [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `actions/checkout` from 5.0.1 to 6.0.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p> <blockquote> <h2>v6.0.1</h2> <h2>What's Changed</h2> <ul> <li>Update all references from v5 and v4 to v6 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2314">actions/checkout#2314</a></li> <li>Add worktree support for persist-credentials includeIf by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2327">actions/checkout#2327</a></li> <li>Clarify v6 README by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2328">actions/checkout#2328</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v6...v6.0.1">https://github.com/actions/checkout/compare/v6...v6.0.1</a></p> <h2>v6.0.0</h2> <h2>What's Changed</h2> <ul> <li>Update README to include Node.js 24 support details and requirements by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li> <li>Persist creds to a separate file by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li> <li>v6-beta by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2298">actions/checkout#2298</a></li> <li>update readme/changelog for v6 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2311">actions/checkout#2311</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v5.0.0...v6.0.0">https://github.com/actions/checkout/compare/v5.0.0...v6.0.0</a></p> <h2>v6-beta</h2> <h2>What's Changed</h2> <p>Updated persist-credentials to store the credentials under <code>$RUNNER_TEMP</code> instead of directly in the local git config.</p> <p>This requires a minimum Actions Runner version of <a href="https://github.com/actions/runner/releases/tag/v2.329.0">v2.329.0</a> to access the persisted credentials for <a href="https://docs.github.com/en/actions/tutorials/use-containerized-services/create-a-docker-container-action">Docker container action</a> scenarios.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h2>v6.0.0</h2> <ul> <li>Persist creds to a separate file by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li> <li>Update README to include Node.js 24 support details and requirements by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li> </ul> <h2>v5.0.1</h2> <ul> <li>Port v6 cleanup to v5 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li> </ul> <h2>v5.0.0</h2> <ul> <li>Update actions checkout to use node 24 by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li> </ul> <h2>v4.3.1</h2> <ul> <li>Port v6 cleanup to v4 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li> </ul> <h2>v4.3.0</h2> <ul> <li>docs: update README.md by <a href="https://github.com/motss"><code>@motss</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li> <li>Add internal repos for checking out multiple repositories by <a href="https://github.com/mouismail"><code>@mouismail</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li> <li>Documentation update - add recommended permissions to Readme by <a href="https://github.com/benwells"><code>@benwells</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li> <li>Adjust positioning of user email note and permissions heading by <a href="https://github.com/joshmgross"><code>@joshmgross</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li> <li>Update README.md by <a href="https://github.com/nebuk89"><code>@nebuk89</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li> <li>Update CODEOWNERS for actions by <a href="https://github.com/TingluoHuang"><code>@TingluoHuang</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li> <li>Update package dependencies by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li> </ul> <h2>v4.2.2</h2> <ul> <li><code>url-helper.ts</code> now leverages well-known environment variables by <a href="https://github.com/jww3"><code>@jww3</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li> <li>Expand unit test coverage for <code>isGhes</code> by <a href="https://github.com/jww3"><code>@jww3</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li> </ul> <h2>v4.2.1</h2> <ul> <li>Check out other refs/* by commit if provided, fall back to ref by <a href="https://github.com/orhantoy"><code>@orhantoy</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li> </ul> <h2>v4.2.0</h2> <ul> <li>Add Ref and Commit outputs by <a href="https://github.com/lucacome"><code>@lucacome</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li> <li>Dependency updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>- <a href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>, <a href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li> </ul> <h2>v4.1.7</h2> <ul> <li>Bump the minor-npm-dependencies group across 1 directory with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li> <li>Bump actions/checkout from 3 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li> <li>Check out other refs/* by commit by <a href="https://github.com/orhantoy"><code>@orhantoy</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li> <li>Pin actions/checkout's own workflows to a known, good, stable version. by <a href="https://github.com/jww3"><code>@jww3</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li> </ul> <h2>v4.1.6</h2> <ul> <li>Check platform to set archive extension appropriately by <a href="https://github.com/cory-miller"><code>@cory-miller</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1732">actions/checkout#1732</a></li> </ul> <h2>v4.1.5</h2> <ul> <li>Update NPM dependencies by <a href="https://github.com/cory-miller"><code>@cory-miller</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li> <li>Bump github/codeql-action from 2 to 3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li> <li>Bump actions/setup-node from 1 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li> <li>Bump actions/upload-artifact from 2 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
453956d975 |
chore: Release server.json schema version 2025-12-11 (#841)
Prepared by Claude Code, iterated and reviewed by me. ## Summary This PR releases the server.json schema version `2025-12-11`, incorporating URL template variables for remote servers from #570. ### What's New - **URL Template Variables for Remote Servers** - Remote servers can now define configurable variables in URLs using `{curly_braces}` notation, enabling multi-tenant deployments. ### Schema Version - `2025-10-17` → `2025-12-11` ## Release Sequence 1. ~~**First: Merge static repo PR** - https://github.com/modelcontextprotocol/static/pull/11 (publishes schema to versioned URL)~~ 2. **Then: Merge this PR** - Updates registry code to reference the new schema version ## Changes in This PR - [x] Update CHANGELOG.md with release notes - [x] Update `CurrentSchemaVersion` in `pkg/model/constants.go` - [x] Update schema example URL in `docs/reference/api/openapi.yaml` - [x] Update schema URL in `pkg/api/v0/types.go` - [x] Update all documentation examples to use new schema version - [x] Regenerate `server.schema.json` ## Test Plan - [x] `make check` passes (lint, schema validation, example validation) - [x] Unit tests pass for validators and publisher commands 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> |
||
|
|
b58836c48e |
feat: Add LocalTransport/RemoteTransport with URL template variables (#570)
Co-authored with Claude Code, but I've closely reviewed/modified/vetted
all changes; ready for final review.
## Summary
This PR adds LocalTransport and RemoteTransport separation with URL
template variable support for remote servers, enabling e.g. multi-tenant
deployments with configurable endpoints.
**Key additions:**
- LocalTransport (for Packages) and RemoteTransport (for Remotes)
- URL template variables for remote transports (e.g., `{tenant_id}` in
URLs)
- Pattern validation ensuring URLs are URL-like while allowing templates
- Full test coverage via Go validator tests and documentation examples
## ⚠️ server.json Update
This PR updates the `server.json` schema. A new schema version will be
cut after this lands.
## Problem
The current schema describes URL templating with `{curly_braces}` for
transports but provides no mechanism for Remote contexts to define what
those variables should resolve to, making the feature unusable for
remote servers.
Referenced issue: #394
- Users need multi-tenant remote servers with different endpoints per
deployment
- Each tenant/region has its own URL (e.g., `us-cell1.example.com`,
`emea-cell1.example.com`)
- Current schema doesn't support parameterized remote URLs
## Solution
### Schema Architecture
**LocalTransport** (for Package context):
```typescript
LocalTransport = StdioTransport | StreamableHttpTransport | SseTransport
```
- Used in Package context (non-breaking rename of existing behavior)
- Variables in `{curly_braces}` reference parent Package
arguments/environment variables
- Supports all three transport types including stdio
**RemoteTransport** (for Remote context):
```typescript
RemoteTransport = (StreamableHttpTransport | SseTransport) + { variables: object }
```
- Extends StreamableHttp/Sse via `allOf` composition - no duplication!
- Adds `variables` object for URL templating
- Only supports streamable-http and sse (stdio not valid for remotes)
### Key Changes
**1. Schema Updates** (`openapi.yaml`, `server.schema.json`):
- Added `LocalTransport` union type for Package context
- Added `RemoteTransport` with `allOf` composition extending base
transports
- Updated Package to reference `LocalTransport`
- Updated remotes to reference `RemoteTransport`
- Added URL pattern validation: `^https?://[^\\s]+$` to both
StreamableHttp and SSE
- Removed `format: uri` from SSE (was blocking template variables)
**2. Go Types** (`pkg/model/types.go`):
- Base `Transport` struct unchanged for Package context
- `RemoteTransport` struct for remotes with `Variables` field
- Both work with existing validation infrastructure
**3. Validators** (`internal/validators/`):
- `validateRemoteTransport()` validates Remote-specific constraints
- `collectRemoteTransportVariables()` extracts available variables
- `IsValidTemplatedURL()` validates template variables reference defined
variables
- `IsValidRemoteURL()` handles template variable substitution before
localhost check
- 6 new test cases for remote transport variable validation
**4. Documentation Examples** (`generic-server-json.md`):
- Remote Server with URL Templating (StreamableHttp with `{tenant_id}`)
- SSE Remote with URL Templating (SSE with `{tenant_id}`)
- Local Server with URL Templating (Package with `{port}`)
- All examples validate via existing `validate-examples` tool
## Example: Remote Transport with Variables
```json
{
"remotes": [
{
"type": "streamable-http",
"url": "https://api.example.com/mcp/{tenant_id}/{region}",
"variables": {
"tenant_id": {
"description": "Tenant identifier",
"isRequired": true,
"choices": ["us-cell1", "emea-cell1", "apac-cell1"]
},
"region": {
"description": "Deployment region",
"isRequired": true
}
}
}
]
}
```
Clients configure the variables, and `{tenant_id}` and `{region}` get
replaced to connect to tenant-specific endpoints like
`https://api.example.com/mcp/us-cell1/east`.
## Architecture Details
**Context-based variable resolution:**
- **Package + LocalTransport**: `{port}` references `--port` argument or
`PORT` env var from parent Package
- **Remote + RemoteTransport**: `{tenant_id}` references
`variables.tenant_id` defined in the transport itself
- **Code reuse**: StreamableHttp/Sse definitions shared via `allOf`, not
duplicated
- **Validation**: Template variables validated against available
variables for each context
---
## Follow-on Work
Follow-on work will be done to adopt the feedback in
https://github.com/modelcontextprotocol/registry/pull/570#issuecomment-3367417636
regarding variable naming/prioritzation/scoping conventions, but should
not have any impact on the shape being introduced here (just
validations).
---------
Co-authored-by: yuna0x0 <yuna@yuna0x0.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Connor Peet <connor@peet.io>
|
||
|
|
bbbad1af1f |
Update Goreleaser and Cosign (#839)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR bumps cosign and updates Goreleaser to reflect that. Follows https://goreleaser.com/blog/cosign-v3/#updating-your-goreleaser-configuration <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
c54a5ac277 |
Ensure tests are failing CI (#840) | ||
|
|
fdcb38537f |
Update OpenAPI spec to use v0.1 endpoints and make _meta optional (#811)
Prepared by Claude Code, reviewed by me. ## Summary - Update all API endpoint paths from `/v0/` to `/v0.1/` in the OpenAPI spec - Bump OpenAPI spec version from `2025-10-17` to `2025-12-01` (in `$id` and `info.version`) ## Rationale This ensures sub-registries implementing the spec are adhering to the stable v0.1 version rather than the unstable v0. The API freeze (v0.1) provides stability guarantees that sub-registries need. ## Additional cleanup ### Make `_meta` optional in `ServerResponse` The `_meta` field (and its `io.modelcontextprotocol.registry/official` extension) were never intended to be required parts of the spec. Sub-registries may not use these registry-specific metadata fields, so they should be optional. ### Move extensions docs to use /v0.1/ instead of /v0/ 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
b4e76845d5 |
build(deps): bump go.opentelemetry.io/otel/exporters/prometheus from 0.60.0 to 0.61.0 (#832)
[//]: # (dependabot-start) ⚠️ **Dependabot is rebasing this PR** ⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Bumps [go.opentelemetry.io/otel/exporters/prometheus](https://github.com/open-telemetry/opentelemetry-go) from 0.60.0 to 0.61.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/releases">go.opentelemetry.io/otel/exporters/prometheus's releases</a>.</em></p> <blockquote> <h2>Release v1.38.0/v0.60.0/v0.14.0/v0.0.13</h2> <h2>Overview</h2> <p>This release is the last to support [Go 1.23]. The next release will require at least [Go 1.24].</p> <h3>Added</h3> <ul> <li>Add native histogram exemplar support in <code>go.opentelemetry.io/otel/exporters/prometheus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6772">#6772</a>)</li> <li>Add template attribute functions to the <code>go.opentelmetry.io/otel/semconv/v1.34.0</code> package. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6939">#6939</a>) <ul> <li><code>ContainerLabel</code></li> <li><code>DBOperationParameter</code></li> <li><code>DBSystemParameter</code></li> <li><code>HTTPRequestHeader</code></li> <li><code>HTTPResponseHeader</code></li> <li><code>K8SCronJobAnnotation</code></li> <li><code>K8SCronJobLabel</code></li> <li><code>K8SDaemonSetAnnotation</code></li> <li><code>K8SDaemonSetLabel</code></li> <li><code>K8SDeploymentAnnotation</code></li> <li><code>K8SDeploymentLabel</code></li> <li><code>K8SJobAnnotation</code></li> <li><code>K8SJobLabel</code></li> <li><code>K8SNamespaceAnnotation</code></li> <li><code>K8SNamespaceLabel</code></li> <li><code>K8SNodeAnnotation</code></li> <li><code>K8SNodeLabel</code></li> <li><code>K8SPodAnnotation</code></li> <li><code>K8SPodLabel</code></li> <li><code>K8SReplicaSetAnnotation</code></li> <li><code>K8SReplicaSetLabel</code></li> <li><code>K8SStatefulSetAnnotation</code></li> <li><code>K8SStatefulSetLabel</code></li> <li><code>ProcessEnvironmentVariable</code></li> <li><code>RPCConnectRPCRequestMetadata</code></li> <li><code>RPCConnectRPCResponseMetadata</code></li> <li><code>RPCGRPCRequestMetadata</code></li> <li><code>RPCGRPCResponseMetadata</code></li> </ul> </li> <li>Add <code>ErrorType</code> attribute helper function to the <code>go.opentelmetry.io/otel/semconv/v1.34.0</code> package. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6962">#6962</a>)</li> <li>Add <code>WithAllowKeyDuplication</code> in <code>go.opentelemetry.io/otel/sdk/log</code> which can be used to disable deduplication for log records. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6968">#6968</a>)</li> <li>Add <code>WithCardinalityLimit</code> option to configure the cardinality limit in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6996">#6996</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7065">#7065</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7081">#7081</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7164">#7164</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7165">#7165</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7179">#7179</a>)</li> <li>Add <code>Clone</code> method to <code>Record</code> in <code>go.opentelemetry.io/otel/log</code> that returns a copy of the record with no shared state. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7001">#7001</a>)</li> <li>Add experimental self-observability span and batch span processor metrics in <code>go.opentelemetry.io/otel/sdk/trace</code>. Check the <code>go.opentelemetry.io/otel/sdk/trace/internal/x</code> package documentation for more information. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7027">#7027</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6393">#6393</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7209">#7209</a>)</li> <li>The <code>go.opentelemetry.io/otel/semconv/v1.36.0</code> package. The package contains semantic conventions from the <code>v1.36.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href="https://github.com/open-telemetry/opentelemetry-go/blob/HEAD/semconv/v1.36.0/MIGRATION.md">migration documentation</a> for information on how to upgrade from <code>go.opentelemetry.io/otel/semconv/v1.34.0.</code>(<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7032">#7032</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7041">#7041</a>)</li> <li>Add support for configuring Prometheus name translation using <code>WithTranslationStrategy</code> option in <code>go.opentelemetry.io/otel/exporters/prometheus</code>. The current default translation strategy when UTF-8 mode is enabled is <code>NoUTF8EscapingWithSuffixes</code>, but a future release will change the default strategy to <code>UnderscoreEscapingWithSuffixes</code> for compliance with the specification. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7111">#7111</a>)</li> <li>Add experimental self-observability log metrics in <code>go.opentelemetry.io/otel/sdk/log</code>. Check the <code>go.opentelemetry.io/otel/sdk/log/internal/x</code> package documentation for more information. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7121">#7121</a>)</li> <li>Add experimental self-observability trace exporter metrics in <code>go.opentelemetry.io/otel/exporters/stdout/stdouttrace</code>. Check the <code>go.opentelemetry.io/otel/exporters/stdout/stdouttrace/internal/x</code> package documentation for more information. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7133">#7133</a>)</li> <li>Support testing of [Go 1.25]. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7187">#7187</a>)</li> <li>The <code>go.opentelemetry.io/otel/semconv/v1.37.0</code> package. The package contains semantic conventions from the <code>v1.37.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href="https://github.com/open-telemetry/opentelemetry-go/blob/HEAD/semconv/v1.37.0/MIGRATION.md">migration documentation</a> for information on how to upgrade from <code>go.opentelemetry.io/otel/semconv/v1.36.0.</code>(<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7254">#7254</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md">go.opentelemetry.io/otel/exporters/prometheus's changelog</a>.</em></p> <blockquote> <h2>[1.39.0/0.61.0/0.15.0/0.0.14] 2025-12-05</h2> <h3>Added</h3> <ul> <li>Greatly reduce the cost of recording metrics in <code>go.opentelemetry.io/otel/sdk/metric</code> using hashing for map keys. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7175">#7175</a>)</li> <li>Add <code>WithInstrumentationAttributeSet</code> option to <code>go.opentelemetry.io/otel/log</code>, <code>go.opentelemetry.io/otel/metric</code>, and <code>go.opentelemetry.io/otel/trace</code> packages. This provides a concurrent-safe and performant alternative to <code>WithInstrumentationAttributes</code> by accepting a pre-constructed <code>attribute.Set</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7287">#7287</a>)</li> <li>Add experimental observability for the Prometheus exporter in <code>go.opentelemetry.io/otel/exporters/prometheus</code>. Check the <code>go.opentelemetry.io/otel/exporters/prometheus/internal/x</code> package documentation for more information. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7345">#7345</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7353">#7353</a>)</li> <li>Add temporality selector functions <code>DeltaTemporalitySelector</code>, <code>CumulativeTemporalitySelector</code>, <code>LowMemoryTemporalitySelector</code> to <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7434">#7434</a>)</li> <li>Add experimental observability metrics for simple log processor in <code>go.opentelemetry.io/otel/sdk/log</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7548">#7548</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7459">#7459</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7486">#7486</a>)</li> <li>Add experimental observability metrics for simple span processor in <code>go.opentelemetry.io/otel/sdk/trace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7374">#7374</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7512">#7512</a>)</li> <li>Add experimental observability metrics for manual reader in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7524">#7524</a>)</li> <li>Add experimental observability metrics for periodic reader in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7571">#7571</a>)</li> <li>Support <code>OTEL_EXPORTER_OTLP_LOGS_INSECURE</code> and <code>OTEL_EXPORTER_OTLP_INSECURE</code> environmental variables in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7608">#7608</a>)</li> <li>Add <code>Enabled</code> method to the <code>Processor</code> interface in <code>go.opentelemetry.io/otel/sdk/log</code>. All <code>Processor</code> implementations now include an <code>Enabled</code> method. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7639">#7639</a>)</li> <li>The <code>go.opentelemetry.io/otel/semconv/v1.38.0</code> package. The package contains semantic conventions from the <code>v1.38.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/semconv/v1.38.0/MIGRATION.md">migration documentation</a> for information on how to upgrade from <code>go.opentelemetry.io/otel/semconv/v1.37.0.</code>(<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7648">#7648</a>)</li> </ul> <h3>Changed</h3> <ul> <li><code>Distinct</code> in <code>go.opentelemetry.io/otel/attribute</code> is no longer guaranteed to uniquely identify an attribute set. Collisions between <code>Distinct</code> values for different Sets are possible with extremely high cardinality (billions of series per instrument), but are highly unlikely. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7175">#7175</a>)</li> <li><code>WithInstrumentationAttributes</code> in <code>go.opentelemetry.io/otel/trace</code> synchronously de-duplicates the passed attributes instead of delegating it to the returned <code>TracerOption</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7266">#7266</a>)</li> <li><code>WithInstrumentationAttributes</code> in <code>go.opentelemetry.io/otel/meter</code> synchronously de-duplicates the passed attributes instead of delegating it to the returned <code>MeterOption</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7266">#7266</a>)</li> <li><code>WithInstrumentationAttributes</code> in <code>go.opentelemetry.io/otel/log</code> synchronously de-duplicates the passed attributes instead of delegating it to the returned <code>LoggerOption</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7266">#7266</a>)</li> <li>Rename the <code>OTEL_GO_X_SELF_OBSERVABILITY</code> environment variable to <code>OTEL_GO_X_OBSERVABILITY</code> in <code>go.opentelemetry.io/otel/sdk/trace</code>, <code>go.opentelemetry.io/otel/sdk/log</code>, and <code>go.opentelemetry.io/otel/exporters/stdout/stdouttrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7302">#7302</a>)</li> <li>Improve performance of histogram <code>Record</code> in <code>go.opentelemetry.io/otel/sdk/metric</code> when min and max are disabled using <code>NoMinMax</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7306">#7306</a>)</li> <li>Improve error handling for dropped data during translation by using <code>prometheus.NewInvalidMetric</code> in <code>go.opentelemetry.io/otel/exporters/prometheus</code>. ⚠️ <strong>Breaking Change:</strong> Previously, these cases were only logged and scrapes succeeded. Now, when translation would drop data (e.g., invalid label/value), the exporter emits a <code>NewInvalidMetric</code>, and Prometheus scrapes <strong>fail with HTTP 500</strong> by default. To preserve the prior behavior (scrapes succeed while errors are logged), configure your Prometheus HTTP handler with: <code>promhttp.HandlerOpts{ ErrorHandling: promhttp.ContinueOnError }</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7363">#7363</a>)</li> <li>Replace fnv hash with xxhash in <code>go.opentelemetry.io/otel/attribute</code> for better performance. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7371">#7371</a>)</li> <li>The default <code>TranslationStrategy</code> in <code>go.opentelemetry.io/exporters/prometheus</code> is changed from <code>otlptranslator.NoUTF8EscapingWithSuffixes</code> to <code>otlptranslator.UnderscoreEscapingWithSuffixes</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7421">#7421</a>)</li> <li>Improve performance of concurrent measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7427">#7427</a>)</li> <li>Include W3C TraceFlags (bits 0–7) in the OTLP <code>Span.Flags</code> field in <code>go.opentelemetry.io/exporters/otlp/otlptrace/otlptracehttp</code> and <code>go.opentelemetry.io/exporters/otlp/otlptrace/otlptracegrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7438">#7438</a>)</li> <li>The <code>ErrorType</code> function in <code>go.opentelemetry.io/otel/semconv/v1.37.0</code> now handles custom error types. If an error implements an <code>ErrorType() string</code> method, the return value of that method will be used as the error type. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7442">#7442</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix <code>WithInstrumentationAttributes</code> options in <code>go.opentelemetry.io/otel/trace</code>, <code>go.opentelemetry.io/otel/metric</code>, and <code>go.opentelemetry.io/otel/log</code> to properly merge attributes when passed multiple times instead of replacing them. Attributes with duplicate keys will use the last value passed. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7300">#7300</a>)</li> <li>The equality of <code>attribute.Set</code> when using the <code>Equal</code> method is not affected by the user overriding the empty set pointed to by <code>attribute.EmptySet</code> in <code>go.opentelemetry.io/otel/attribute</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7357">#7357</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
1be2f4edbb |
build(deps): bump go.opentelemetry.io/contrib/instrumentation/runtime from 0.63.0 to 0.64.0 (#835)
Bumps [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib) from 0.63.0 to 0.64.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/releases">go.opentelemetry.io/contrib/instrumentation/runtime's releases</a>.</em></p> <blockquote> <h2>Release v1.39.0/v2.1.0/v0.64.0/v0.33.0/v0.19.0/v0.14.0/v0.12.0/v0.11.0</h2> <h2>Overview</h2> <h3>Added</h3> <ul> <li><code>ParseYAML</code> in <code>go.opentelemetry.io/contrib/otelconf</code> now supports environment variables substitution in the format <code>${[env:]VAR_NAME[:-defaultvalue]}</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/6215">#6215</a>)</li> <li>Add the <code>http.route</code> metric attribute to <code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7966">#7966</a>)</li> <li>Support <code>db.client.operation.duration</code> metric for <code>go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/v2/mongo/otelmongo</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7983">#7983</a>)</li> <li>Add a <code>WithSpanNameFormatter</code> option to <code>go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/v2/mongo/otelmongo</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7986">#7986</a>)</li> <li>WithOnError option for otelecho middleware in <code>go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho</code> to specify the behavior when an error occurs. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8025">#8025</a>)</li> <li>Updated <code>go.opentelemetry.io/contrib/otelconf</code> to include the <a href="https://github.com/open-telemetry/opentelemetry-configuration/releases/tag/v1.0.0-rc.2">v1.0.0-rc2</a> release candidate of schema which includes backwards incompatible changes. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8026">#8026</a>)</li> <li>Introduce v1.0.0-rc.2 model in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8031">#8031</a>)</li> <li>Add unmarshaling and validation for <code>CardinalityLimits</code> and <code>SpanLimits</code> to v1.0.0 model in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8043">#8043</a>)</li> <li>Add unmarshaling and validation for <code>BatchLogRecordProcessor</code>, <code>BatchSpanProcessor</code>, and <code>PeriodicMetricReader</code> to v1.0.0 model in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8049">#8049</a>)</li> <li>Add unmarshaling and validation for <code>TextMapPropagator</code> to v1.0.0 model in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8052">#8052</a>)</li> <li>Add <code>jaeger.sampler.type</code>/<code>jaeger.sampler.param</code> attributes for adaptive sampling support and option <code>WithAttributesDisabled</code> in <code>go.opentelemetry.io/contrib/samplers/jaegerremote</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8073">#8073</a>)</li> <li>Add support for <code>OTEL_EXPERIMENTAL_CONFIG_FILE</code> via the <code>NewSDK</code> function in <code>go.opentelemetry.io/contrib/otelconf</code> (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8106">#8106</a>)</li> <li>Add unmarshaling and validation for <code>OTLPHttpExporter</code>, <code>OTLPGrpcExporter</code>, <code>OTLPGrpcMetricExporter</code> and <code>OTLPHttpMetricExporter</code> to v1.0.0 model in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8112">#8112</a>)</li> <li>Add unmarshaling and validation for <code>AttributeType</code>, <code>AttributeNameValue</code>, <code>SimpleSpanProcessor</code>, <code>SimpleLogRecordProcessor</code>, <code>ZipkinSpanExporter</code>, <code>NameStringValuePair</code>, <code>InstrumentType</code>, <code>ExperimentalPeerInstrumentationServiceMappingElem</code>, <code>ExporterDefaultHistogramAggregation</code>, <code>PullMetricReader</code> to v1.0.0 model in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8127">#8127</a>)</li> <li>Add support for <code>container</code>, <code>host</code>, <code>process</code> resource detectors in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8180">#8180</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Improve performance by reducing allocations in the gRPC stats handler in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8035">#8035</a>)</li> <li>Export the <code>ReadEvents</code> and <code>WriteEvents</code> constants in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> so they can be used in <code>WithMessageEvents</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8153">#8153</a>)</li> <li>Switched the default for <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> to emit the v1.37.0 semantic conventions by default in <code>go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/mongo/otelmongo</code>. Use the environment variable <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> to configure duplication with old semantic conventions if needed (i.e. <code>OTEL_SEMCONV_STABILITY_OPT_IN="database/dup"</code>). (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8230">#8230</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li><code>WithRouteTag</code> in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> is deprecated. The route is already added automatically for spans. For metrics, the alternative is to use the <code>WithMetricAttributesFn</code> option. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8117">#8117</a>)</li> <li><code>WithPublicEndpoint</code> in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> is deprecated. Use <code>WithPublicEndpointFn</code> instead. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8152">#8152</a>)</li> <li><code>DefaultClient</code>, <code>Get</code>, <code>Head</code>, <code>Post</code>, and <code>PostForm</code> in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> are deprecated. Use a custom <code>*http.Client</code> with <code>otelhttp.NewTransport(http.DefaultTransport)</code> instead. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8140">#8140</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8201">#8201</a>)</li> </ul> <h3>Removed</h3> <ul> <li>Drop support for <a href="https://go.dev/doc/go1.23">Go 1.23</a>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7831">#7831</a>)</li> <li>Remove deprecated <code>go.opentelemetry.io/contrib/detectors/aws/ec2</code> module, please use <code>go.opentelemetry.io/contrib/detectors/aws/ec2/v2</code> instead. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7841">#7841</a>)</li> <li>Remove the deprecated <code>Extract</code> and <code>Inject</code> functions from <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7952">#7952</a>)</li> </ul> <h2>What's Changed</h2> <ul> <li>chore(deps): update go-openapi packages by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/7830">open-telemetry/opentelemetry-go-contrib#7830</a></li> <li>chore(deps): update module github.com/spf13/pflag to v1.0.9 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/7833">open-telemetry/opentelemetry-go-contrib#7833</a></li> <li>fix(deps): update module github.com/shirou/gopsutil/v4 to v4.25.8 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/7834">open-telemetry/opentelemetry-go-contrib#7834</a></li> <li>Remove support for Go 1.23 by <a href="https://github.com/MrAlias"><code>@MrAlias</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/7831">open-telemetry/opentelemetry-go-contrib#7831</a></li> <li>fix(deps): update golang.org/x by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/7733">open-telemetry/opentelemetry-go-contrib#7733</a></li> <li>chore(deps): update googleapis to ef028d9 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/7835">open-telemetry/opentelemetry-go-contrib#7835</a></li> <li>chore(deps): update module github.com/securego/gosec/v2 to v2.22.8 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/7836">open-telemetry/opentelemetry-go-contrib#7836</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md">go.opentelemetry.io/contrib/instrumentation/runtime's changelog</a>.</em></p> <blockquote> <h2>[1.39.0/2.1.0/0.64.0/0.33.0/0.19.0/0.14.0/0.12.0/0.11.0] - 2025-12-08</h2> <h3>Added</h3> <ul> <li><code>ParseYAML</code> in <code>go.opentelemetry.io/contrib/otelconf</code> now supports environment variables substitution in the format <code>${[env:]VAR_NAME[:-defaultvalue]}</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/6215">#6215</a>)</li> <li>Add the <code>http.route</code> metric attribute to <code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7966">#7966</a>)</li> <li>Support <code>db.client.operation.duration</code> metric for <code>go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/v2/mongo/otelmongo</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7983">#7983</a>)</li> <li>Add a <code>WithSpanNameFormatter</code> option to <code>go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/v2/mongo/otelmongo</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7986">#7986</a>)</li> <li>WithOnError option for otelecho middleware in <code>go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho</code> to specify the behavior when an error occurs. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8025">#8025</a>)</li> <li>Updated <code>go.opentelemetry.io/contrib/otelconf</code> to include the <a href="https://github.com/open-telemetry/opentelemetry-configuration/releases/tag/v1.0.0-rc.2">v1.0.0-rc2</a> release candidate of schema which includes backwards incompatible changes. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8026">#8026</a>)</li> <li>Introduce v1.0.0-rc.2 model in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8031">#8031</a>)</li> <li>Add unmarshaling and validation for <code>CardinalityLimits</code> and <code>SpanLimits</code> to v1.0.0 model in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8043">#8043</a>)</li> <li>Add unmarshaling and validation for <code>BatchLogRecordProcessor</code>, <code>BatchSpanProcessor</code>, and <code>PeriodicMetricReader</code> to v1.0.0 model in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8049">#8049</a>)</li> <li>Add unmarshaling and validation for <code>TextMapPropagator</code> to v1.0.0 model in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8052">#8052</a>)</li> <li>Add <code>jaeger.sampler.type</code>/<code>jaeger.sampler.param</code> attributes for adaptive sampling support and option <code>WithAttributesDisabled</code> in <code>go.opentelemetry.io/contrib/samplers/jaegerremote</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8073">#8073</a>)</li> <li>Add support for <code>OTEL_EXPERIMENTAL_CONFIG_FILE</code> via the <code>NewSDK</code> function in <code>go.opentelemetry.io/contrib/otelconf</code> (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8106">#8106</a>)</li> <li>Add unmarshaling and validation for <code>OTLPHttpExporter</code>, <code>OTLPGrpcExporter</code>, <code>OTLPGrpcMetricExporter</code> and <code>OTLPHttpMetricExporter</code> to v1.0.0 model in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8112">#8112</a>)</li> <li>Add unmarshaling and validation for <code>AttributeType</code>, <code>AttributeNameValue</code>, <code>SimpleSpanProcessor</code>, <code>SimpleLogRecordProcessor</code>, <code>ZipkinSpanExporter</code>, <code>NameStringValuePair</code>, <code>InstrumentType</code>, <code>ExperimentalPeerInstrumentationServiceMappingElem</code>, <code>ExporterDefaultHistogramAggregation</code>, <code>PullMetricReader</code> to v1.0.0 model in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8127">#8127</a>)</li> <li>Add support for <code>container</code>, <code>host</code>, <code>process</code> resource detectors in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8180">#8180</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Improve performance by reducing allocations in the gRPC stats handler in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8035">#8035</a>)</li> <li>Export the <code>ReadEvents</code> and <code>WriteEvents</code> constants in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> so they can be used in <code>WithMessageEvents</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8153">#8153</a>)</li> <li>Switched the default for <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> to emit the v1.37.0 semantic conventions by default in <code>go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/mongo/otelmongo</code>. Use the environment variable <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> to configure duplication with old semantic conventions if needed (i.e. <code>OTEL_SEMCONV_STABILITY_OPT_IN="database/dup"</code>). (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8230">#8230</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li><code>WithRouteTag</code> in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> is deprecated. The route is already added automatically for spans. For metrics, the alternative is to use the <code>WithMetricAttributesFn</code> option. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8117">#8117</a>)</li> <li><code>WithPublicEndpoint</code> in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> is deprecated. Use <code>WithPublicEndpointFn</code> instead. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8152">#8152</a>)</li> <li><code>DefaultClient</code>, <code>Get</code>, <code>Head</code>, <code>Post</code>, and <code>PostForm</code> in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> are deprecated. Use a custom <code>*http.Client</code> with <code>otelhttp.NewTransport(http.DefaultTransport)</code> instead. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8140">#8140</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8201">#8201</a>)</li> </ul> <h3>Removed</h3> <ul> <li>Drop support for [Go 1.23]. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7831">#7831</a>)</li> <li>Remove deprecated <code>go.opentelemetry.io/contrib/detectors/aws/ec2</code> module, please use <code>go.opentelemetry.io/contrib/detectors/aws/ec2/v2</code> instead. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7841">#7841</a>)</li> <li>Remove the deprecated <code>Extract</code> and <code>Inject</code> functions from <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7952">#7952</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
dcb5a6f696 |
Add 5s timeout to DNS auth lookup to prevent resource exhaustion (#825)
The DNS auth endpoint was vulnerable to resource exhaustion if an attacker controlled a domain with a slow/non-responding authoritative DNS server. Without a timeout, handler goroutines would block on DNS resolution indefinitely, allowing an attacker to pile up goroutines until OOM. Production is protected by NGINX ingress's default 60s proxy timeout, but this adds defense-in-depth with a tighter 5s bound. |
||
|
|
d840378a3a |
build(deps): bump go.opentelemetry.io/otel from 1.38.0 to 1.39.0 (#829)
[//]: # (dependabot-start) ⚠️ **Dependabot is rebasing this PR** ⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Bumps [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.39.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/releases">go.opentelemetry.io/otel's releases</a>.</em></p> <blockquote> <h2>v1.39.0</h2> <h2>Overview</h2> <h3>Added</h3> <ul> <li>Greatly reduce the cost of recording metrics in <code>go.opentelemetry.io/otel/sdk/metric</code> using hashing for map keys. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7175">#7175</a>)</li> <li>Add <code>WithInstrumentationAttributeSet</code> option to <code>go.opentelemetry.io/otel/log</code>, <code>go.opentelemetry.io/otel/metric</code>, and <code>go.opentelemetry.io/otel/trace</code> packages. This provides a concurrent-safe and performant alternative to <code>WithInstrumentationAttributes</code> by accepting a pre-constructed <code>attribute.Set</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7287">#7287</a>)</li> <li>Add experimental observability for the Prometheus exporter in <code>go.opentelemetry.io/otel/exporters/prometheus</code>. Check the <code>go.opentelemetry.io/otel/exporters/prometheus/internal/x</code> package documentation for more information. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7345">#7345</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7353">#7353</a>)</li> <li>Add temporality selector functions <code>DeltaTemporalitySelector</code>, <code>CumulativeTemporalitySelector</code>, <code>LowMemoryTemporalitySelector</code> to <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7434">#7434</a>)</li> <li>Add experimental observability metrics for simple log processor in <code>go.opentelemetry.io/otel/sdk/log</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7548">#7548</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7459">#7459</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7486">#7486</a>)</li> <li>Add experimental observability metrics for simple span processor in <code>go.opentelemetry.io/otel/sdk/trace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7374">#7374</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7512">#7512</a>)</li> <li>Add experimental observability metrics for manual reader in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7524">#7524</a>)</li> <li>Add experimental observability metrics for periodic reader in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7571">#7571</a>)</li> <li>Support <code>OTEL_EXPORTER_OTLP_LOGS_INSECURE</code> and <code>OTEL_EXPORTER_OTLP_INSECURE</code> environmental variables in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7608">#7608</a>)</li> <li>Add <code>Enabled</code> method to the <code>Processor</code> interface in <code>go.opentelemetry.io/otel/sdk/log</code>. All <code>Processor</code> implementations now include an <code>Enabled</code> method. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7639">#7639</a>)</li> <li>The <code>go.opentelemetry.io/otel/semconv/v1.38.0</code> package. The package contains semantic conventions from the <code>v1.38.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href="https://github.com/open-telemetry/opentelemetry-go/blob/HEAD/semconv/v1.38.0/MIGRATION.md">migration documentation</a> for information on how to upgrade from <code>go.opentelemetry.io/otel/semconv/v1.37.0.</code>(<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7648">#7648</a>)</li> </ul> <h3>Changed</h3> <ul> <li><code>Distinct</code> in <code>go.opentelemetry.io/otel/attribute</code> is no longer guaranteed to uniquely identify an attribute set. Collisions between <code>Distinct</code> values for different Sets are possible with extremely high cardinality (billions of series per instrument), but are highly unlikely. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7175">#7175</a>)</li> <li><code>WithInstrumentationAttributes</code> in <code>go.opentelemetry.io/otel/trace</code> synchronously de-duplicates the passed attributes instead of delegating it to the returned <code>TracerOption</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7266">#7266</a>)</li> <li><code>WithInstrumentationAttributes</code> in <code>go.opentelemetry.io/otel/meter</code> synchronously de-duplicates the passed attributes instead of delegating it to the returned <code>MeterOption</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7266">#7266</a>)</li> <li><code>WithInstrumentationAttributes</code> in <code>go.opentelemetry.io/otel/log</code> synchronously de-duplicates the passed attributes instead of delegating it to the returned <code>LoggerOption</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7266">#7266</a>)</li> <li>Rename the <code>OTEL_GO_X_SELF_OBSERVABILITY</code> environment variable to <code>OTEL_GO_X_OBSERVABILITY</code> in <code>go.opentelemetry.io/otel/sdk/trace</code>, <code>go.opentelemetry.io/otel/sdk/log</code>, and <code>go.opentelemetry.io/otel/exporters/stdout/stdouttrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7302">#7302</a>)</li> <li>Improve performance of histogram <code>Record</code> in <code>go.opentelemetry.io/otel/sdk/metric</code> when min and max are disabled using <code>NoMinMax</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7306">#7306</a>)</li> <li>Improve error handling for dropped data during translation by using <code>prometheus.NewInvalidMetric</code> in <code>go.opentelemetry.io/otel/exporters/prometheus</code>. ⚠️ <strong>Breaking Change:</strong> Previously, these cases were only logged and scrapes succeeded. Now, when translation would drop data (e.g., invalid label/value), the exporter emits a <code>NewInvalidMetric</code>, and Prometheus scrapes <strong>fail with HTTP 500</strong> by default. To preserve the prior behavior (scrapes succeed while errors are logged), configure your Prometheus HTTP handler with: <code>promhttp.HandlerOpts{ ErrorHandling: promhttp.ContinueOnError }</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7363">#7363</a>)</li> <li>Replace fnv hash with xxhash in <code>go.opentelemetry.io/otel/attribute</code> for better performance. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7371">#7371</a>)</li> <li>The default <code>TranslationStrategy</code> in <code>go.opentelemetry.io/exporters/prometheus</code> is changed from <code>otlptranslator.NoUTF8EscapingWithSuffixes</code> to <code>otlptranslator.UnderscoreEscapingWithSuffixes</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7421">#7421</a>)</li> <li>Improve performance of concurrent measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7427">#7427</a>)</li> <li>Include W3C TraceFlags (bits 0–7) in the OTLP <code>Span.Flags</code> field in <code>go.opentelemetry.io/exporters/otlp/otlptrace/otlptracehttp</code> and <code>go.opentelemetry.io/exporters/otlp/otlptrace/otlptracegrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7438">#7438</a>)</li> <li>The <code>ErrorType</code> function in <code>go.opentelemetry.io/otel/semconv/v1.37.0</code> now handles custom error types. If an error implements an <code>ErrorType() string</code> method, the return value of that method will be used as the error type. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7442">#7442</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix <code>WithInstrumentationAttributes</code> options in <code>go.opentelemetry.io/otel/trace</code>, <code>go.opentelemetry.io/otel/metric</code>, and <code>go.opentelemetry.io/otel/log</code> to properly merge attributes when passed multiple times instead of replacing them. Attributes with duplicate keys will use the last value passed. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7300">#7300</a>)</li> <li>The equality of <code>attribute.Set</code> when using the <code>Equal</code> method is not affected by the user overriding the empty set pointed to by <code>attribute.EmptySet</code> in <code>go.opentelemetry.io/otel/attribute</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7357">#7357</a>)</li> <li>Return partial OTLP export errors to the caller in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7372">#7372</a>)</li> <li>Return partial OTLP export errors to the caller in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7372">#7372</a>)</li> <li>Return partial OTLP export errors to the caller in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7372">#7372</a>)</li> <li>Return partial OTLP export errors to the caller in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7372">#7372</a>)</li> <li>Return partial OTLP export errors to the caller in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7372">#7372</a>)</li> <li>Return partial OTLP export errors to the caller in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7372">#7372</a>)</li> <li>Fix <code>AddAttributes</code>, <code>SetAttributes</code>, <code>SetBody</code> on <code>Record</code> in <code>go.opentelemetry.io/otel/sdk/log</code> to not mutate input. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7403">#7403</a>)</li> <li>Do not double record measurements of <code>RecordSet</code> methods in <code>go.opentelemetry.io/otel/semconv/v1.37.0</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7655">#7655</a>)</li> <li>Do not double record measurements of <code>RecordSet</code> methods in <code>go.opentelemetry.io/otel/semconv/v1.36.0</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7656">#7656</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md">go.opentelemetry.io/otel's changelog</a>.</em></p> <blockquote> <h2>[1.39.0/0.61.0/0.15.0/0.0.14] 2025-12-05</h2> <h3>Added</h3> <ul> <li>Greatly reduce the cost of recording metrics in <code>go.opentelemetry.io/otel/sdk/metric</code> using hashing for map keys. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7175">#7175</a>)</li> <li>Add <code>WithInstrumentationAttributeSet</code> option to <code>go.opentelemetry.io/otel/log</code>, <code>go.opentelemetry.io/otel/metric</code>, and <code>go.opentelemetry.io/otel/trace</code> packages. This provides a concurrent-safe and performant alternative to <code>WithInstrumentationAttributes</code> by accepting a pre-constructed <code>attribute.Set</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7287">#7287</a>)</li> <li>Add experimental observability for the Prometheus exporter in <code>go.opentelemetry.io/otel/exporters/prometheus</code>. Check the <code>go.opentelemetry.io/otel/exporters/prometheus/internal/x</code> package documentation for more information. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7345">#7345</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7353">#7353</a>)</li> <li>Add temporality selector functions <code>DeltaTemporalitySelector</code>, <code>CumulativeTemporalitySelector</code>, <code>LowMemoryTemporalitySelector</code> to <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7434">#7434</a>)</li> <li>Add experimental observability metrics for simple log processor in <code>go.opentelemetry.io/otel/sdk/log</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7548">#7548</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7459">#7459</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7486">#7486</a>)</li> <li>Add experimental observability metrics for simple span processor in <code>go.opentelemetry.io/otel/sdk/trace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7374">#7374</a>)</li> <li>Add experimental observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7512">#7512</a>)</li> <li>Add experimental observability metrics for manual reader in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7524">#7524</a>)</li> <li>Add experimental observability metrics for periodic reader in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7571">#7571</a>)</li> <li>Support <code>OTEL_EXPORTER_OTLP_LOGS_INSECURE</code> and <code>OTEL_EXPORTER_OTLP_INSECURE</code> environmental variables in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7608">#7608</a>)</li> <li>Add <code>Enabled</code> method to the <code>Processor</code> interface in <code>go.opentelemetry.io/otel/sdk/log</code>. All <code>Processor</code> implementations now include an <code>Enabled</code> method. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7639">#7639</a>)</li> <li>The <code>go.opentelemetry.io/otel/semconv/v1.38.0</code> package. The package contains semantic conventions from the <code>v1.38.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/semconv/v1.38.0/MIGRATION.md">migration documentation</a> for information on how to upgrade from <code>go.opentelemetry.io/otel/semconv/v1.37.0.</code>(<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7648">#7648</a>)</li> </ul> <h3>Changed</h3> <ul> <li><code>Distinct</code> in <code>go.opentelemetry.io/otel/attribute</code> is no longer guaranteed to uniquely identify an attribute set. Collisions between <code>Distinct</code> values for different Sets are possible with extremely high cardinality (billions of series per instrument), but are highly unlikely. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7175">#7175</a>)</li> <li><code>WithInstrumentationAttributes</code> in <code>go.opentelemetry.io/otel/trace</code> synchronously de-duplicates the passed attributes instead of delegating it to the returned <code>TracerOption</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7266">#7266</a>)</li> <li><code>WithInstrumentationAttributes</code> in <code>go.opentelemetry.io/otel/meter</code> synchronously de-duplicates the passed attributes instead of delegating it to the returned <code>MeterOption</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7266">#7266</a>)</li> <li><code>WithInstrumentationAttributes</code> in <code>go.opentelemetry.io/otel/log</code> synchronously de-duplicates the passed attributes instead of delegating it to the returned <code>LoggerOption</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7266">#7266</a>)</li> <li>Rename the <code>OTEL_GO_X_SELF_OBSERVABILITY</code> environment variable to <code>OTEL_GO_X_OBSERVABILITY</code> in <code>go.opentelemetry.io/otel/sdk/trace</code>, <code>go.opentelemetry.io/otel/sdk/log</code>, and <code>go.opentelemetry.io/otel/exporters/stdout/stdouttrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7302">#7302</a>)</li> <li>Improve performance of histogram <code>Record</code> in <code>go.opentelemetry.io/otel/sdk/metric</code> when min and max are disabled using <code>NoMinMax</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7306">#7306</a>)</li> <li>Improve error handling for dropped data during translation by using <code>prometheus.NewInvalidMetric</code> in <code>go.opentelemetry.io/otel/exporters/prometheus</code>. ⚠️ <strong>Breaking Change:</strong> Previously, these cases were only logged and scrapes succeeded. Now, when translation would drop data (e.g., invalid label/value), the exporter emits a <code>NewInvalidMetric</code>, and Prometheus scrapes <strong>fail with HTTP 500</strong> by default. To preserve the prior behavior (scrapes succeed while errors are logged), configure your Prometheus HTTP handler with: <code>promhttp.HandlerOpts{ ErrorHandling: promhttp.ContinueOnError }</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7363">#7363</a>)</li> <li>Replace fnv hash with xxhash in <code>go.opentelemetry.io/otel/attribute</code> for better performance. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7371">#7371</a>)</li> <li>The default <code>TranslationStrategy</code> in <code>go.opentelemetry.io/exporters/prometheus</code> is changed from <code>otlptranslator.NoUTF8EscapingWithSuffixes</code> to <code>otlptranslator.UnderscoreEscapingWithSuffixes</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7421">#7421</a>)</li> <li>Improve performance of concurrent measurements in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7427">#7427</a>)</li> <li>Include W3C TraceFlags (bits 0–7) in the OTLP <code>Span.Flags</code> field in <code>go.opentelemetry.io/exporters/otlp/otlptrace/otlptracehttp</code> and <code>go.opentelemetry.io/exporters/otlp/otlptrace/otlptracegrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7438">#7438</a>)</li> <li>The <code>ErrorType</code> function in <code>go.opentelemetry.io/otel/semconv/v1.37.0</code> now handles custom error types. If an error implements an <code>ErrorType() string</code> method, the return value of that method will be used as the error type. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7442">#7442</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix <code>WithInstrumentationAttributes</code> options in <code>go.opentelemetry.io/otel/trace</code>, <code>go.opentelemetry.io/otel/metric</code>, and <code>go.opentelemetry.io/otel/log</code> to properly merge attributes when passed multiple times instead of replacing them. Attributes with duplicate keys will use the last value passed. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7300">#7300</a>)</li> <li>The equality of <code>attribute.Set</code> when using the <code>Equal</code> method is not affected by the user overriding the empty set pointed to by <code>attribute.EmptySet</code> in <code>go.opentelemetry.io/otel/attribute</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7357">#7357</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
b63a5d7f3f |
build(deps): bump golang.org/x/mod from 0.30.0 to 0.31.0 (#831)
Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.30.0 to 0.31.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
80cb03ff7a |
Fix NuGet.org base URL default, improve API integration (#813)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> This resolves https://github.com/modelcontextprotocol/registry/issues/738. There are two issues with the NuGet.org integration today: 1. Change the `registryBaseUrl` for NuGet to `https://api.nuget.org/v3/index.json`. `https://api.nuget.org` is not the entry point for our service and is not specific enough. `https://api.nuget.org/v3/index.json` is the value that users put into their tooling to connect to our public registry (it is installed by default in .NET client tooling). 2. Use the service index API to get the URL pattern for package READMEs. - This URL is not guaranteed to be stable. The service index URL (`registryBaseUrl`) is, however. Additionally, I polished up the error messages so various error modes are clearer. When packages are published to NuGet.org, they take 2-5 minutes to become available due to validations we run. Some possible states that are now handled and described more helpfully are: - Version exists, but the package has no README - The ID exists, but the version does not - The ID does not exist at all There are only 3 authors (me, another MSFT person, and a community member) explicitly setting the old value. The DB migration will fix the issue. A future publish will fail with the validation error but the error message is clear. `registry type and base URL do not match: 'https://api.nuget.org' is not valid for registry type 'nuget'. Expected: https://api.nuget.org/v3/index.json` ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> - Unit tests, new and existing - Manual test locally - Set old data in the DB, `docker compose up`, confirm the migration updates the specific package ## Breaking Changes Yes, but minimal impact expected, unless there is a dependency on the specific `https://api.nuget.org` value downstream. I am not aware of any such dependency, and the new value is more proper and specific. ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [x] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> For more information about the NuGet API see: https://learn.microsoft.com/en-us/nuget/api/overview#service-index (I wrote most of the docs). |
||
|
|
823c1a1081 |
Add registry maintainer onboarding documentation (#820)
Closes https://github.com/modelcontextprotocol/registry/issues/512 --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
8a3d858d1d |
docs: fix broken links in Documentation Index (#822)
Update Documentation Index section to reflect the current directory structure after the docs reorganization in #728. The old links to ./guides/ and ./explanations/ no longer exist. Fixes #821 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
370453317d |
Restrict @claude bot to mcp org only, fix fork behavior (#819)
Written by Claude Code, reviewed by me. ## Summary Fixes `@claude` to work on external fork PRs by: 1. Restricting triggers to modelcontextprotocol org members only 2. Properly checking out fork PR code via `refs/pull/N/head` ## Background The `@claude` GitHub app was failing on external forks ([example](https://github.com/modelcontextprotocol/registry/actions/runs/19938435814/job/57169634431)) because the action tried to fetch branches by name, which doesn't work for forks. ## Changes ### Org membership check - Fetches the member list from [`modelcontextprotocol/access`](https://github.com/modelcontextprotocol/access) repo's `users.ts` - Only org members can trigger `@claude` (prevents strangers from using it) - Uses `github.triggering_actor` so the person commenting must be an org member ### Fork PR checkout fix - Detects when a comment is on a fork PR - Uses `refs/pull/{number}/head` to checkout fork code (instead of branch name) - This works because GitHub exposes all PRs via special refs on the base repo ## How it works 1. Org member comments `@claude` on a fork PR 2. Workflow checks if commenter is in the `modelcontextprotocol/access` member list 3. Workflow detects it's a fork PR and checks out via `refs/pull/N/head` 4. Claude runs with access to the fork's code 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
8b861e5e1a |
docs: add production database connection guide for admins (#808)
Drafted by Claude Code, reviewed and tested by me. Add instructions for maintainers to connect to the production PostgreSQL database, including Cloud Shell (recommended) and local machine methods, plus read-only session configuration for safety. --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
ca6912cded |
Add registry extensions specification (#777)
Introduces a standardized way for registries to provide experimental or community-driven features without committing them to the core API specification. ## Summary - Extensions live under `/v0/x/<namespace>/<extension>` URL structure - Simple conventions: REST, JSON responses, cursor pagination, optional auth - Composable design building on core APIs where possible This enables experimentation with features like search (#389) and MCP server integration (#24) while keeping the core API minimal and stable. Fixes #776 |
||
|
|
af29c14239 |
Fix command documentation for publish (#818)
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
The `--file=PATH` pattern does not work. The path is an optional,
positional argument not a named option.
The `--dry-run` option is not supported.
Look at the implementation:
|
||
|
|
65b96b03ce |
docs: update API endpoint documentation from /v0/ to /v0.1/ (#802)
Update all documentation to reference the stable `/v0.1/` API version instead of the development `/v0/` version. Didn't update internal references (e.g. in admin-only docs) as that probably make sense to keep pointed at v0 as the "dev" option. Authored by Claude Code, reviewed by me. --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
d092dd6390 |
Fix issue-743 by sanitizing the URL (#809)
<!-- Provide a brief summary of your changes --> This PR aims to fix https://github.com/modelcontextprotocol/registry/issues/743#event-20985516896 ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> This is needed to ensure we are sanitizing the URL before creating server.json to be inline with the validations. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> Tested via UTs and also tested CLI locally to ensure the expected behavior. ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Co-authored-by: Avish Porwal <avishporwal@microsoft.com> |
||
|
|
8191133cbe |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.208.0 to 3.210.0 in /deploy (#817)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.208.0 to 3.210.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.210.0</h2> <h2>3.210.0 (2025-12-03)</h2> <h3>Features</h3> <ul> <li> <p>[cli/about] Print python toolchain information in <code>pulumi about</code></p> </li> <li> <p>[sdk/java] Update java to v1.18</p> </li> <li> <p>[components/nodejs] Local components will use the version from package.json rather than 0.0.0 <a href="https://redirect.github.com/pulumi/pulumi/pull/21100">#21100</a></p> </li> <li> <p>[cli/package] Add <code>pulumi package delete</code> command to delete package versions from the Pulumi Registry <a href="https://redirect.github.com/pulumi/pulumi/pull/21069">#21069</a></p> </li> <li> <p>[cli/package] Always print the schema first in <code>package get-schema</code>, then print any binding errors <a href="https://redirect.github.com/pulumi/pulumi/pull/21080">#21080</a></p> </li> <li> <p>[sdk/python] Require <code>grpcio>=1.75.1</code> on Python 3.14 <a href="https://redirect.github.com/pulumi/pulumi/pull/21113">#21113</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li>[sdk/nodejs] Fix ComponentResources transfering input arguments to output properties automatically <a href="https://redirect.github.com/pulumi/pulumi/pull/21094">#21094</a></li> </ul> <h3>Miscellaneous</h3> <ul> <li>[sdk/nodejs] Remove <code>@types/uuid</code> type declarations dev dependency <a href="https://redirect.github.com/pulumi/pulumi/pull/21077">#21077</a></li> </ul> <h2>v3.209.0</h2> <h2>3.209.0 (2025-11-26)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Add native support for OIDC token exchange when logging into Pulumi Cloud. Run <code>pulumi login --help</code> for more information. <a href="https://redirect.github.com/pulumi/pulumi/pull/20974">#20974</a></p> </li> <li> <p>[sdk/python] Allow older grpcio and protobuf dependencies <a href="https://redirect.github.com/pulumi/pulumi/pull/21007">#21007</a></p> </li> <li> <p>[sdkgen/{dotnet,go,nodejs,python}] Generate .gitignore and .gitattributes files for generated SDKs <a href="https://redirect.github.com/pulumi/pulumi/pull/21034">#21034</a></p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h2>3.209.0 (2025-11-26)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Add native support for OIDC token exchange when logging into Pulumi Cloud. Run <code>pulumi login --help</code> for more information. <a href="https://redirect.github.com/pulumi/pulumi/pull/20974">#20974</a></p> </li> <li> <p>[sdk/python] Allow older grpcio and protobuf dependencies <a href="https://redirect.github.com/pulumi/pulumi/pull/21007">#21007</a></p> </li> <li> <p>[sdkgen/{dotnet,go,nodejs,python}] Generate .gitignore and .gitattributes files for generated SDKs <a href="https://redirect.github.com/pulumi/pulumi/pull/21034">#21034</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli/install] Correctly install non-standard plugins. See <a href="https://redirect.github.com/pulumi/pulumi/issues/20953">pulumi/pulumi#20953</a> for more information <a href="https://redirect.github.com/pulumi/pulumi/pull/20983">#20983</a></p> </li> <li> <p>[cli/new] Create pyproject.toml for uv and poetry projects when using --generate-only <a href="https://redirect.github.com/pulumi/pulumi/pull/20979">#20979</a></p> </li> <li> <p>[sdk/nodejs] Fix serialization errors due to SxS copies of the SDK <a href="https://redirect.github.com/pulumi/pulumi/pull/21029">#21029</a></p> </li> <li> <p>[sdk/python] Add <code>PropertyValue</code> runtime validation checks <a href="https://redirect.github.com/pulumi/pulumi/pull/21058">#21058</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li> <p>[engine] Don't send root directory and runtime options to language plugins as command line arguments <a href="https://redirect.github.com/pulumi/pulumi/pull/21054">#21054</a></p> </li> <li> <p>[sdk/{dotnet,java,yaml}] Bump language runtimes for yaml, dotnet and java</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
5cc553d1ca |
Upgrade Go to 1.24.11 to fix GO-2025-4155 vulnerability (#815)
Prepared by Claude Code, reviewd by me. ## Summary - Upgrade Go from 1.24.9 to 1.24.11 in the main `go.mod` to fix govulncheck CI failure - Upgrade Go from 1.24.7 to 1.24.11 in `deploy/go.mod` for the same vulnerability fix ## Details This PR addresses the failing `govulncheck` check in CI caused by vulnerability **GO-2025-4155**: - **Vulnerability**: Excessive resource consumption when printing error string for host certificate validation in `crypto/x509` - **Found in**: `crypto/x509@go1.24.9` (and earlier versions like go1.24.7) - **Fixed in**: `crypto/x509@go1.24.11` - **More info**: https://pkg.go.dev/vuln/GO-2025-4155 Both Go module files in the repository are updated to 1.24.11 to ensure consistent vulnerability remediation. ## Test plan - [x] CI passes govulncheck after the Go version upgrade 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
51c70ba034 |
Fix misleading server.json schema URL label (#803)
The schema in this repo may contain unreleased changes, so labeling it with a dated version URL is misleading. Change to use a `draft` URL instead, and add documentation for the schema contribution process. - Update $id in server.schema.json to use draft URL - Update example $schema URL in openapi.yaml - Add Draft (Unreleased) section to CHANGELOG.md - Add CONTRIBUTING.md with process for making/releasing schema changes Written by Claude Code, reviewed and tweaked by me. Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
d528ac5bbc |
Fix version mismatch in OpenAPI and changelog (#804)
## What this fixes The API changelog had a section header dated `2025-11-17`, but the openapi.yaml version is `2025-10-17`. This was confusing because they appeared to be tracking the same thing but didn't match. ## What happened 1. Various API changes (v0.1 introduction, endpoint removal) were made in early-to-mid October 2. On **Oct 17**, commit |
||
|
|
34daa90f6a |
build(deps): bump github.com/google/go-containerregistry from 0.20.6 to 0.20.7 (#797)
Bumps [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry) from 0.20.6 to 0.20.7. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/go-containerregistry/releases">github.com/google/go-containerregistry's releases</a>.</em></p> <blockquote> <h2>v0.20.7</h2> <h2>What's Changed</h2> <ul> <li>Fix ArgsEscaped lint directive by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2137">google/go-containerregistry#2137</a></li> <li>transport: Fix broken links to distribution docs by <a href="https://github.com/guzalv"><code>@guzalv</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2136">google/go-containerregistry#2136</a></li> <li>fix(remote): using customized retry predicate func if provided by <a href="https://github.com/derekhjray"><code>@derekhjray</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2135">google/go-containerregistry#2135</a></li> <li>Adding docker file by <a href="https://github.com/HassanJasim"><code>@HassanJasim</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2138">google/go-containerregistry#2138</a></li> <li>crane: Add timestamp to flatten layer by <a href="https://github.com/Stephanie0829"><code>@Stephanie0829</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2117">google/go-containerregistry#2117</a></li> <li>feat(remote): pass retryBackoff option to transport by <a href="https://github.com/aslafy-z"><code>@aslafy-z</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/1628">google/go-containerregistry#1628</a></li> <li>Expose clobber refusal error by <a href="https://github.com/pjbgf"><code>@pjbgf</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2146">google/go-containerregistry#2146</a></li> <li>Build artifacts for riscv64 by <a href="https://github.com/ffgan"><code>@ffgan</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2159">google/go-containerregistry#2159</a></li> <li>Update dependencies and deprecate DockerVersion field by <a href="https://github.com/Subserial"><code>@Subserial</code></a> in <a href="https://redirect.github.com/google/go-containerregistry/pull/2164">google/go-containerregistry#2164</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/guzalv"><code>@guzalv</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2136">google/go-containerregistry#2136</a></li> <li><a href="https://github.com/derekhjray"><code>@derekhjray</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2135">google/go-containerregistry#2135</a></li> <li><a href="https://github.com/HassanJasim"><code>@HassanJasim</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2138">google/go-containerregistry#2138</a></li> <li><a href="https://github.com/Stephanie0829"><code>@Stephanie0829</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2117">google/go-containerregistry#2117</a></li> <li><a href="https://github.com/pjbgf"><code>@pjbgf</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2146">google/go-containerregistry#2146</a></li> <li><a href="https://github.com/ffgan"><code>@ffgan</code></a> made their first contribution in <a href="https://redirect.github.com/google/go-containerregistry/pull/2159">google/go-containerregistry#2159</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/google/go-containerregistry/compare/v0.20.6...v0.20.7">https://github.com/google/go-containerregistry/compare/v0.20.6...v0.20.7</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
663c9c407f |
build(deps): bump github.com/pulumi/pulumi-kubernetes/sdk/v4 from 4.24.0 to 4.24.1 in /deploy (#798)
Bumps [github.com/pulumi/pulumi-kubernetes/sdk/v4](https://github.com/pulumi/pulumi-kubernetes) from 4.24.0 to 4.24.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/releases">github.com/pulumi/pulumi-kubernetes/sdk/v4's releases</a>.</em></p> <blockquote> <h2>v4.24.1</h2> <h3>Fixed</h3> <ul> <li>Fixed a regression of <a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/2943">#2943</a> which could cause Deployments to erroneously report diffs.</li> </ul> <h3>Changed</h3> <ul> <li>Upgraded <code>helm.sh/helm</code> to v3.18.6. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/3969">pulumi/pulumi-kubernetes#3969</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/blob/master/CHANGELOG.md">github.com/pulumi/pulumi-kubernetes/sdk/v4's changelog</a>.</em></p> <blockquote> <!-- raw HTML omitted --> <h1>CHANGELOG</h1> <h2>Unreleased</h2> <h3>Fixed</h3> <ul> <li>Fixed a regression of <a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/2943">#2943</a> which could cause Deployments to erroneously report diffs.</li> </ul> <h3>Changed</h3> <ul> <li>Upgraded <code>helm.sh/helm</code> to v3.18.6. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/3969">pulumi/pulumi-kubernetes#3969</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
8f8fc89801 |
Fix missing $schema entries - data migration (#806)
Drafted by Claude Code, reviewed by me. ## Summary This PR adds a data migration to fix 17 server entries that were published with empty `$schema` fields. **This is a pure data migration** - no code changes are needed because: - Validation for the `$schema` field was already added in commit [ |
||
|
|
52e3744831 |
build(deps): bump golang.org/x/crypto from 0.41.0 to 0.45.0 in /deploy in the go_modules group across 1 directory (#792)
Bumps the go_modules group with 1 update in the /deploy directory: [golang.org/x/crypto](https://github.com/golang/crypto). Updates `golang.org/x/crypto` from 0.41.0 to 0.45.0 <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
9a4edd02fd |
build(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0 in the go_modules group across 1 directory (#791)
Bumps the go_modules group with 1 update in the / directory: [golang.org/x/crypto](https://github.com/golang/crypto). Updates `golang.org/x/crypto` from 0.42.0 to 0.45.0 <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
85fc6afb81 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.207.0 to 3.208.0 in /deploy (#796)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.207.0 to 3.208.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.208.0</h2> <h2>3.208.0 (2025-11-20)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Expose all command flags as env vars (e.g. --refresh can now be set with PULUMI_OPTION_REFRESH) <a href="https://redirect.github.com/pulumi/pulumi/pull/20868">#20868</a></p> </li> <li> <p>[cli/install] Make <code>pulumi install</code> recurse into local packages <a href="https://redirect.github.com/pulumi/pulumi/pull/20945">#20945</a></p> </li> <li> <p>[engine] Add a <code>replacement_trigger</code> resource option. Any change to this value between program runs will trigger a replace of the resource <a href="https://redirect.github.com/pulumi/pulumi/pull/20936">#20936</a></p> </li> <li> <p>[engine] Add a new builtin <code>Stash</code> resource which can be used to save a value to state <a href="https://redirect.github.com/pulumi/pulumi/pull/20819">#20819</a></p> </li> <li> <p>[protobuf] Add <code>Language.Template</code> RPC to protos <a href="https://redirect.github.com/pulumi/pulumi/pull/20948">#20948</a></p> </li> <li> <p>[sdk/go] Add support for <code>replacement_trigger</code> in the Go SDK <a href="https://redirect.github.com/pulumi/pulumi/pull/20937">#20937</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[engine] Fix duplicate resource snapshot integrity issue with aliases <a href="https://redirect.github.com/pulumi/pulumi/pull/20926">#20926</a></p> </li> <li> <p>[engine] Allow resources marked as <code>Delete</code> to be targeted, and take them into account for dependency calculation <a href="https://redirect.github.com/pulumi/pulumi/pull/20962">#20962</a></p> </li> <li> <p>[engine] Fix a panic when previewing and import of a resource that wants to delete and then replace due to diffs <a href="https://redirect.github.com/pulumi/pulumi/pull/20997">#20997</a></p> </li> <li> <p>[pkg] Include invalid property names in bind errors <a href="https://redirect.github.com/pulumi/pulumi/pull/20989">#20989</a></p> </li> <li> <p>[sdk/python] Don’t raise when looking up a stack reference output that does not exist <a href="https://redirect.github.com/pulumi/pulumi/pull/20938">#20938</a></p> </li> <li> <p>[sdkgen/python] Ensure resource args accept typeddicts when no language info is specified <a href="https://redirect.github.com/pulumi/pulumi/pull/20982">#20982</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[cli] Document the [template|url] argument in <code>pulumi up</code> command help text <a href="https://redirect.github.com/pulumi/pulumi/pull/20996">#20996</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.208.0 (2025-11-20)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Expose all command flags as env vars (e.g. --refresh can now be set with PULUMI_OPTION_REFRESH) <a href="https://redirect.github.com/pulumi/pulumi/pull/20868">#20868</a></p> </li> <li> <p>[cli/install] Make <code>pulumi install</code> recurse into local packages <a href="https://redirect.github.com/pulumi/pulumi/pull/20945">#20945</a></p> </li> <li> <p>[engine] Add a <code>replacement_trigger</code> resource option. Any change to this value between program runs will trigger a replace of the resource <a href="https://redirect.github.com/pulumi/pulumi/pull/20936">#20936</a></p> </li> <li> <p>[engine] Add a new builtin <code>Stash</code> resource which can be used to save a value to state <a href="https://redirect.github.com/pulumi/pulumi/pull/20819">#20819</a></p> </li> <li> <p>[protobuf] Add <code>Language.Template</code> RPC to protos <a href="https://redirect.github.com/pulumi/pulumi/pull/20948">#20948</a></p> </li> <li> <p>[sdk/go] Add support for <code>replacement_trigger</code> in the Go SDK <a href="https://redirect.github.com/pulumi/pulumi/pull/20937">#20937</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[engine] Fix duplicate resource snapshot integrity issue with aliases <a href="https://redirect.github.com/pulumi/pulumi/pull/20926">#20926</a></p> </li> <li> <p>[engine] Allow resources marked as <code>Delete</code> to be targeted, and take them into account for dependency calculation <a href="https://redirect.github.com/pulumi/pulumi/pull/20962">#20962</a></p> </li> <li> <p>[engine] Fix a panic when previewing and import of a resource that wants to delete and then replace due to diffs <a href="https://redirect.github.com/pulumi/pulumi/pull/20997">#20997</a></p> </li> <li> <p>[pkg] Include invalid property names in bind errors <a href="https://redirect.github.com/pulumi/pulumi/pull/20989">#20989</a></p> </li> <li> <p>[sdk/python] Don’t raise when looking up a stack reference output that does not exist <a href="https://redirect.github.com/pulumi/pulumi/pull/20938">#20938</a></p> </li> <li> <p>[sdkgen/python] Ensure resource args accept typeddicts when no language info is specified <a href="https://redirect.github.com/pulumi/pulumi/pull/20982">#20982</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[cli] Document the [template|url] argument in <code>pulumi up</code> command help text <a href="https://redirect.github.com/pulumi/pulumi/pull/20996">#20996</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
453e020464 |
build(deps): bump github.com/coreos/go-oidc/v3 from 3.16.0 to 3.17.0 (#794)
Bumps [github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc)
from 3.16.0 to 3.17.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/coreos/go-oidc/releases">github.com/coreos/go-oidc/v3's
releases</a>.</em></p>
<blockquote>
<h2>v3.17.0</h2>
<h2>What's Changed</h2>
<ul>
<li>oidc: improve error message for mismatched issuer URLs by <a
href="https://github.com/ericchiang"><code>@ericchiang</code></a> in <a
href="https://redirect.github.com/coreos/go-oidc/pull/469">coreos/go-oidc#469</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/coreos/go-oidc/compare/v3.16.0...v3.17.0">https://github.com/coreos/go-oidc/compare/v3.16.0...v3.17.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="
|
||
|
|
fadbba2364 |
Fix remaining broken links from docs reorganization (#789)
Follow-up to #728. This fixes broken links due to file renames. Fixes #788. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
3134575712 |
Add DELETE method to the OpenAPI specification (#782)
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
The following adds a DELETE method to the reference API specification of
the registry.
The endpoint is consistent with the rest of the spec and provides a
standardised way for registry implementations to support deletion if
they choose to.
**Details:**
* Endpoint: DELETE /v0/servers/{serverName}/versions/{version}
* Uses tags: [publish] (same as POST /v0/publish for write operations)
* Requires security: bearerAuth authentication
* Returns ServerResponse on success (200) - matching POST pattern
* Same error responses: 401 (Unauthorized), 403 (Forbidden), 500
(Internal error)
* Added 404 (Not Found) for when server/version doesn't exist
* Parameters match the GET endpoint format with URL-encoding examples
* Marked as "(Optional)" in summary
* Explicit note that it's not implemented by the official registry
* States it's included for standardization purposes
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
---------
Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com>
|
||
|
|
df06235a02 |
Fix broken links in README (#786)
Follow-up to #728. This fixes a few links in the README that were broken due to file renames. Fixes #785. |
||
|
|
43d41a242e |
Prepare docs for modelcontextprotocol.io (#728)
This PR reorganizes and extends the existing documentation in preparation for publishing on https://modelcontextprotocol.io/. The current plan is for docs to remain in this repo, and be synced to the `modelcontextprotocol/modelcontextprotocol` whenever necessary (e.g., accompanying a release of the registry). I have included a script in https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1725 (`bin/pull-registry-docs.sh`) that can be run manually to perform the sync. If we later decide to permanently move the docs to the `modelcontextprotocol/modelcontextprotocol` repo, that also works. This PR puts all https://modelcontextprotocol.io/ docs into `docs/modelcontextprotocol-io/`. Docs outside that subdirectory, such as `docs/administration/admin-operations.md`, are intended to be accessible solely via this repo. One major exception is the `docs/reference/server-json/` subdirectory, which will depend on the resolution of https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1649. However, I think we could address that in a follow-up PR. --------- Co-authored-by: Adam Jones <adamj+git@anthropic.com> Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
3d3337942b |
Update prod to 1.3.10 (#780)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR promotes prod to 1.3.10 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
467a7fd897 |
build(deps): bump the actions group with 2 updates (#779)
Bumps the actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `actions/checkout` from 5.0.0 to 5.0.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p> <blockquote> <h2>v5.0.1</h2> <h2>What's Changed</h2> <ul> <li>Port v6 cleanup to v5 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v5...v5.0.1">https://github.com/actions/checkout/compare/v5...v5.0.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
2ca4ae9977 |
Add support for ACR (Azure Container Registry) and MCR (Microsoft Container Registry) (#754)
<!-- Provide a brief summary of your changes --> ## Motivation and Context Microsoft uses `mcr.microsoft.com` to host our public containers. These are syndicated to Docker Hub but image references use `mcr.microsoft.com` which is not currently supported by the Official MCP Registry. See https://github.com/modelcontextprotocol/registry/issues/753. Microsoft teams want to use MCR-based images for Microsoft MCP servers. I believe we should be adding ACR support as well, so that our customers using Azure Container Registry can use the MCP Registry as well. In short, MCR is used for Microsoft managed containers. ACR is a solution for Azure customers to host their own containers. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> Unit tests. Manual test: local push of a server.json with `mcr.microsoft.com/azure-sdk/azure-mcp:2.0.0-beta.1` and `azurearcjumpstart.azurecr.io/hello-arc:latest` in it. The error is now about missing annotation not unsupported OCI registry. ## Breaking Changes <!-- Will users need to update their code or configurations? --> No. ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
32b37e71f8 |
Add registry authorization specification (#756)
Add a standardized OAuth 2.1-based authentication specification for MCP sub-registries, aligned with the MCP Authorization Specification. This enables: - Private registry entries with access control - Permission-based server visibility - Client code reuse (clients can use their existing MCP auth implementation) The spec is intended for downstream sub-registries. The official registry remains public for reading. Fixes #751 --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
da835059b3 |
Promote prod to v1.3.9 (#775)
Deploys v1.3.9 to production. ## Changes in v1.3.9 - New web UI for browsing the registry (#757) - Fixed namespace match validation for websiteUrl and remote URL (#769) - Added releases administration guide (#764) - Updated community projects documentation - Multiple dependency updates Release notes: https://github.com/modelcontextprotocol/registry/releases/tag/v1.3.9 The [deploy-production workflow](https://github.com/modelcontextprotocol/registry/actions/workflows/deploy-production.yml) will automatically deploy once this PR is merged. |
||
|
|
71fd7d0683 |
Update Claude Code GitHub Action from beta to v1 (#773)
Updates the Claude Code GitHub Action to use the stable v1 GA release instead of the beta version. ## Changes - Updates action version from `@beta` to `@v1` - Migrates `allowed_tools` to `claude_args: --allowedTools` - Migrates `custom_instructions` to `claude_args: --system-prompt` - Retains `additional_permissions` and `assignee_trigger` (both still supported in v1) ## Behavior The action continues to work the same way: - Triggers on `@claude` mentions in comments, reviews, and issues - Triggers when assigned to an issue as "claude" - Allows Claude to run Bash commands - Allows Claude to read CI results on PRs - Applies custom instructions for posting concise summaries |
||
|
|
7b3f01ab22 |
docs: Update API changelog for v1.3.9 release (#774)
Updates the API changelog to reflect the v1.3.9 release date (2025-11-17). This moves the 'Unreleased' section to a dated section as part of the v1.3.9 release process. |
||
|
|
e7de7541c7 |
improve: Add hint about making GitHub org membership public in error messages (#772)
When users try to publish to a GitHub organization but don't have permission, the error message now includes a helpful hint suggesting they may need to make their organization membership public in GitHub settings. This addresses the issue where users couldn't understand why they were unable to publish servers from organization repositories, even when they were members of the organization. Fixes #398 Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: adam jones <domdomegg@users.noreply.github.com> |
||
|
|
45bf43f9d1 |
Remove namespace match validation for websiteUrl and remote URL (#769)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Resolve https://github.com/modelcontextprotocol/registry/issues/768 and https://github.com/modelcontextprotocol/registry/issues/494. Require HTTPS for remote URLs. Currently all remote URLs on the MCP Registry are HTTPS. Also fix a test bug when running on Windows (bad temp path). ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> Unit tests. Published a server.json locally with a website URL not matching the server name. ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [ ] ~I have added or updated documentation as needed~ N/A ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
d9c2e506a9 |
docs: Add releases administration guide (#764)
Add comprehensive documentation for the release process including version bumping, changelog generation, and deployment steps. |
||
|
|
2ee0219aee |
build(deps): bump pulumi/actions from 6.6.0 to 6.6.1 in the actions group (#765)
Bumps the actions group with 1 update: [pulumi/actions](https://github.com/pulumi/actions). Updates `pulumi/actions` from 6.6.0 to 6.6.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/actions/releases">pulumi/actions's releases</a>.</em></p> <blockquote> <h2>v6.6.1</h2> <h2>What's Changed</h2> <ul> <li>upgrade pulumi/pulumi to latest by <a href="https://github.com/tgummerer"><code>@tgummerer</code></a> in <a href="https://redirect.github.com/pulumi/actions/pull/1394">pulumi/actions#1394</a></li> <li>Prepare changelog for 6.6.1 by <a href="https://github.com/tgummerer"><code>@tgummerer</code></a> in <a href="https://redirect.github.com/pulumi/actions/pull/1395">pulumi/actions#1395</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pulumi/actions/compare/v6...v6.6.1">https://github.com/pulumi/actions/compare/v6...v6.6.1</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/actions/blob/main/CHANGELOG.md">pulumi/actions's changelog</a>.</em></p> <blockquote> <h1>CHANGELOG</h1> <h2>HEAD (Unreleased)</h2> <p><strong>(none)</strong></p> <hr /> <h2>6.6.1 (2025-11-12)</h2> <ul> <li>chore: Update pulumi/pulumi dependency (<a href="https://redirect.github.com/pulumi/actions/pull/1394">#1394</a>)</li> </ul> <h2>6.6.0 (2025-09-29)</h2> <ul> <li>feat: Strip ansi control characters from GitHub step Summary and PR comment (<a href="https://redirect.github.com/pulumi/actions/pull/1312">#1312</a>)</li> </ul> <h2>6.4.0 (2025-07-16)</h2> <ul> <li>feat: Add <code>run-program</code> flag support for refresh, destroy, preview, and up/update commands (<a href="https://redirect.github.com/pulumi/actions/pull/1376">#1376</a>)</li> </ul> <h2>6.3.0 (2025-05-08)</h2> <ul> <li> <p>feat: support <code>--exclude</code> and <code>--exclude-dependents</code> flags (<a href="https://redirect.github.com/pulumi/actions/pull/1363">#1363</a>)</p> </li> <li> <p>feat: verbosity and debug inputs to enable debug options (<a href="https://redirect.github.com/pulumi/actions/pull/1046">#1046</a>)</p> </li> <li> <p>fix: update "user agent" string to pulumi/actions@v6 (<a href="https://redirect.github.com/pulumi/actions/pull/1367">#1357</a>)</p> </li> </ul> <h2>6.2.0 (2025-03-05)</h2> <ul> <li>feat: support continue on error flag (--continue-on-error) (<a href="https://redirect.github.com/pulumi/actions/pull/1357">#1357</a>)</li> </ul> <h2>6.1.0 (2025-02-27)</h2> <ul> <li>feat: Add clickable View Live link to PR comments (<a href="https://redirect.github.com/pulumi/actions/pull/1355">#1355</a>)</li> </ul> <h2>6.0.1 (2025-01-13)</h2> <ul> <li> <p>fix: Make <code>pulumi login</code> respect configuration in <code>Pulumi.yaml</code> (<a href="https://redirect.github.com/pulumi/actions/pull/1299">#1299</a>)</p> </li> <li> <p>fix: Log stderr from commands</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
9a492cb845 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.206.0 to 3.207.0 in /deploy (#766)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.206.0 to 3.207.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.207.0</h2> <h2>3.207.0 (2025-11-12)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Log gRPC requests before invoking them in gRPC debug interceptor <a href="https://redirect.github.com/pulumi/pulumi/pull/20817">#20817</a></p> </li> <li> <p>[engine] Add <code>ReplaceWith</code> resource option to allow one resource's replace operations to trigger another's <a href="https://redirect.github.com/pulumi/pulumi/pull/20693">#20693</a></p> </li> <li> <p>[sdkgen/python] Allow all PEP440 version specifiers to be used</p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli/import] Return errors when an import fails <a href="https://redirect.github.com/pulumi/pulumi/pull/20904">#20904</a></p> </li> <li> <p>[engine] Fix parenting of resources in some cases in <code>refresh --run-program</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/20894">#20894</a></p> </li> <li> <p>[engine] Fix StackReference secrets performance <a href="https://redirect.github.com/pulumi/pulumi/pull/20908">#20908</a></p> </li> <li> <p>[programgen] Do not panic when re-writing type-invalid PCL <a href="https://redirect.github.com/pulumi/pulumi/pull/20770">#20770</a></p> </li> <li> <p>[sdk/go] Fix import path in instructions when linking a package in Go <a href="https://redirect.github.com/pulumi/pulumi/pull/20888">#20888</a></p> </li> <li> <p>[sdk/nodejs] Fix closure serialization on Node.js v25.2.0 <a href="https://redirect.github.com/pulumi/pulumi/pull/20913">#20913</a></p> </li> <li> <p>[sdk/{nodejs,python}] Avoid cancellations due to do slow processing of requests</p> </li> <li> <p>[sdk/python] Avoid cancellations due to do slow processing of requests in the callbacks server <a href="https://redirect.github.com/pulumi/pulumi/pull/20917">#20917</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[engine] Stop sending ConfigPropertyMap as part of RunRequest <a href="https://redirect.github.com/pulumi/pulumi/pull/20887">#20887</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.207.0 (2025-11-12)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Log gRPC requests before invoking them in gRPC debug interceptor <a href="https://redirect.github.com/pulumi/pulumi/pull/20817">#20817</a></p> </li> <li> <p>[engine] Add <code>ReplaceWith</code> resource option to allow one resource's replace operations to trigger another's <a href="https://redirect.github.com/pulumi/pulumi/pull/20693">#20693</a></p> </li> <li> <p>[sdkgen/python] Allow all PEP440 version specifiers to be used</p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[cli/import] Return errors when an import fails <a href="https://redirect.github.com/pulumi/pulumi/pull/20904">#20904</a></p> </li> <li> <p>[engine] Fix parenting of resources in some cases in <code>refresh --run-program</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/20894">#20894</a></p> </li> <li> <p>[engine] Fix StackReference secrets performance <a href="https://redirect.github.com/pulumi/pulumi/pull/20908">#20908</a></p> </li> <li> <p>[programgen] Do not panic when re-writing type-invalid PCL <a href="https://redirect.github.com/pulumi/pulumi/pull/20770">#20770</a></p> </li> <li> <p>[sdk/go] Fix import path in instructions when linking a package in Go <a href="https://redirect.github.com/pulumi/pulumi/pull/20888">#20888</a></p> </li> <li> <p>[sdk/nodejs] Fix closure serialization on Node.js v25.2.0 <a href="https://redirect.github.com/pulumi/pulumi/pull/20913">#20913</a></p> </li> <li> <p>[sdk/{nodejs,python}] Avoid cancellations due to do slow processing of requests</p> </li> <li> <p>[sdk/python] Avoid cancellations due to do slow processing of requests in the callbacks server <a href="https://redirect.github.com/pulumi/pulumi/pull/20917">#20917</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[engine] Stop sending ConfigPropertyMap as part of RunRequest <a href="https://redirect.github.com/pulumi/pulumi/pull/20887">#20887</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
e726cfe11a |
build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.13.0 to 1.13.1 (#760)
Bumps [github.com/Azure/azure-sdk-for-go/sdk/azidentity](https://github.com/Azure/azure-sdk-for-go) from 1.13.0 to 1.13.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Azure/azure-sdk-for-go/releases">github.com/Azure/azure-sdk-for-go/sdk/azidentity's releases</a>.</em></p> <blockquote> <h2>sdk/azidentity/v1.13.1</h2> <h2>1.13.1 (2025-11-10)</h2> <h3>Bugs Fixed</h3> <ul> <li><code>AzureCLICredential</code> quoted arguments incorrectly on Windows</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
b66dc77cfe |
build(deps): bump golangci/golangci-lint-action from 8.0.0 to 9.0.0 in the actions group (#761)
Bumps the actions group with 1 update: [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action). Updates `golangci/golangci-lint-action` from 8.0.0 to 9.0.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/golangci/golangci-lint-action/releases">golangci/golangci-lint-action's releases</a>.</em></p> <blockquote> <h2>v9.0.0</h2> <p>In the scope of this release, we change Nodejs runtime from node20 to node24 (<a href="https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/">https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/</a>).</p> <h2>What's Changed</h2> <h3>Changes</h3> <ul> <li>feat: add install-only option by <a href="https://github.com/ldez"><code>@ldez</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1305">golangci/golangci-lint-action#1305</a></li> <li>feat: support Module Plugin System by <a href="https://github.com/ldez"><code>@ldez</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1306">golangci/golangci-lint-action#1306</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/golangci/golangci-lint-action/compare/v8.0.0...v9.0.0">https://github.com/golangci/golangci-lint-action/compare/v8.0.0...v9.0.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
cf8e7b8b98 |
build(deps): bump golang.org/x/mod from 0.29.0 to 0.30.0 (#762)
Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.29.0 to 0.30.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
8cf317af68 |
Add simple web UI for browsing the registry (#757)
## Summary Adds a clean, minimal web interface at `/` for browsing MCP servers in the registry. Built as a single self-contained HTML file embedded in the Go binary. ## Features - Responsive grid layout (1/2/3 columns based on screen size) - Search servers by name - Filter to show only latest versions (default on) - "Recently Updated" section for servers updated in the last hour - Expandable cards with full server metadata and JSON viewer - Debug modal to switch between production/staging/local/custom API endpoints - Full URL parameter support and browser history navigation ## Implementation - Single HTML file (~400 lines) with Tailwind CSS via CDN - Zero build dependencies - Embedded using `//go:embed` - Served directly from router at root path - Uses stable v0.1 API endpoints Fixes #99 --- AI disclosure: this is 99% vibed with Claude. It's intended as a v0 to get something up and working, and then maybe at a later date we can replace it with something more real. |
||
|
|
ba5648cc3e |
docs: Split community projects into sections, and add Java client (#758)
## Motivation and Context I found the current raw assorted list of community project a bit overwhelming and confusing at first. So I gave some thought to it, and realized that at first I primarily wanted to see what there is to browse the registry - so that should probably go first? (The current magnifying glass icon, which was even missing on one of the links, wasn't obvious enough, for me.) Also I was looking for a Java client, and realized there already Go and TS clients in this list - let's group those. The Other section in the middle is for everything else (for now, it can always further evolve, later). ## How Has This Been Tested? N/A, as documentation only. ## Breaking Changes Nope, it's documentation only. ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [X] Documentation update ## Checklist - [X] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [X] My code follows the repository's style guidelines - [X] New and existing tests pass locally - [X] I have added appropriate error handling - [X] I have added or updated documentation as needed |
||
|
|
92bab48788 |
build(deps): bump github.com/pulumi/pulumi-kubernetes/sdk/v4 from 4.23.0 to 4.24.0 in /deploy (#755)
Bumps [github.com/pulumi/pulumi-kubernetes/sdk/v4](https://github.com/pulumi/pulumi-kubernetes) from 4.23.0 to 4.24.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/releases">github.com/pulumi/pulumi-kubernetes/sdk/v4's releases</a>.</em></p> <blockquote> <h2>v4.24.0</h2> <h3>Added</h3> <ul> <li>Added a <code>plainHttp</code> option to the <code>v4.Chart</code> resource. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/3250">pulumi/pulumi-kubernetes#3250</a>)</li> </ul> <h3>Changed</h3> <ul> <li> <p>The <code>pulumi.com/waitFor</code> annotation now uses an <a href="https://www.rfc-editor.org/rfc/rfc9535.html">RFC9535</a>-compliant JSONPath parser. This makes it possible to wait for more complex scenarios.</p> <p>For example:</p> <ul> <li> <p>To wait for a Pod's <code>status.phase</code> to be "Running" or "Succeeded":</p> <p><code>pulumi.com/waitFor: "jsonpath={.status[?@ == 'Running' || @ == 'Succeeded' ]}"</code></p> </li> <li> <p>To wait for for an object to have a "Failed" <em>or</em> "Complete" condition with a "True" value:</p> <p><code>pulumi.com/waitFor: "jsonpath={.conditions[?(@.type=='Failed'||@.type=='Complete')].status}=True</code></p> </li> </ul> <p>(Tools like <a href="https://jsonpath.com">jsonpath.com</a> are very helpful for ensuring your JSONPath expression works as expected.)</p> <p>Importantly, please note that <code>kubectl wait --for=jsonpath=...</code> supports only a <em>subset</em> of RFC9535. This means some complex <code>waitFor</code> annotations will not be reproducible with <code>kubectl</code>.</p> <p>Existing expressions should continue to work normally with one notable exception: a selector like <code>.items[]</code> now requires an explicit wildcard, i.e. <code>.items[*]</code>.</p> <p>As a reminder, the <code>pulumi.com/waitFor</code> annotation is experimental and subject to change. Similarly, RFC9535 is still only <em>proposed</em> and may also change in the future.</p> </li> <li> <p><code>enableConfigMapMutable</code> and <code>enableSecretMutable</code> are now stable. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3886">pulumi/pulumi-kubernetes#3886</a>)</p> </li> </ul> <h3>Fixed</h3> <ul> <li> <p>Helm resources all now use the correct <code>registry/config.json</code> file for credentials. For backward-compatibility <code>registry.json</code> is preferred if it exists. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/3606">pulumi/pulumi-kubernetes#3606</a>)</p> </li> <li> <p>Fixed an issue where deletions could take longer than necessary. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/3317">pulumi/pulumi-kubernetes#3317</a>)</p> </li> <li> <p>Significantly reduced memory usage. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/3713">pulumi/pulumi-kubernetes#3713</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/blob/master/CHANGELOG.md">github.com/pulumi/pulumi-kubernetes/sdk/v4's changelog</a>.</em></p> <blockquote> <!-- raw HTML omitted --> <h1>CHANGELOG</h1> <h2>Unreleased</h2> <h3>Added</h3> <ul> <li>Added a <code>plainHttp</code> option to the <code>v4.Chart</code> resource. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/3250">pulumi/pulumi-kubernetes#3250</a>)</li> </ul> <h3>Changed</h3> <ul> <li> <p>The <code>pulumi.com/waitFor</code> annotation now uses an <a href="https://www.rfc-editor.org/rfc/rfc9535.html">RFC9535</a>-compliant JSONPath parser. This makes it possible to wait for more complex scenarios.</p> <p>For example:</p> <ul> <li> <p>To wait for a Pod's <code>status.phase</code> to be "Running" or "Succeeded":</p> <p><code>pulumi.com/waitFor: "jsonpath={.status[?@ == 'Running' || @ == 'Succeeded' ]}"</code></p> </li> <li> <p>To wait for for an object to have a "Failed" <em>or</em> "Complete" condition with a "True" value:</p> <p><code>pulumi.com/waitFor: "jsonpath={.conditions[?(@.type=='Failed'||@.type=='Complete')].status}=True</code></p> </li> </ul> <p>(Tools like <a href="https://jsonpath.com">jsonpath.com</a> are very helpful for ensuring your JSONPath expression works as expected.)</p> <p>Importantly, please note that <code>kubectl wait --for=jsonpath=...</code> supports only a <em>subset</em> of RFC9535. This means some complex <code>waitFor</code> annotations will not be reproducible with <code>kubectl</code>.</p> <p>Existing expressions should continue to work normally with one notable exception: a selector like <code>.items[]</code> now requires an explicit wildcard, i.e. <code>.items[*]</code>.</p> <p>As a reminder, the <code>pulumi.com/waitFor</code> annotation is experimental and subject to change. Similarly, RFC9535 is still only <em>proposed</em> and may also change in the future.</p> </li> <li> <p><code>enableConfigMapMutable</code> and <code>enableSecretMutable</code> are now stable. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3886">pulumi/pulumi-kubernetes#3886</a>)</p> </li> </ul> <h3>Fixed</h3> <ul> <li>Helm resources all now use the correct <code>registry/config.json</code> file for credentials. For backward-compatibility <code>registry.json</code> is preferred if it exists. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/3606">pulumi/pulumi-kubernetes#3606</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
4564cb3f0a |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.205.0 to 3.206.0 in /deploy (#752)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.205.0 to 3.206.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.206.0</h2> <h2>3.206.0 (2025-11-05)</h2> <h3>Features</h3> <ul> <li> <p>[protobuf] Pass a <code>preview</code> flag to invokes so they can tell if they're being called during a preview <a href="https://redirect.github.com/pulumi/pulumi/pull/20827">#20827</a></p> </li> <li> <p>[cli/about] Include PULUMI_* environment variables in the <code>pulumi about</code> output <a href="https://redirect.github.com/pulumi/pulumi/pull/20855">#20855</a></p> </li> <li> <p>[auto/go] Get event log over gRPC instead of trying to read it from a text file <a href="https://redirect.github.com/pulumi/pulumi/pull/20822">#20822</a></p> </li> <li> <p>[auto/nodejs] Get event log over gRPC instead of trying to read it from a text file <a href="https://redirect.github.com/pulumi/pulumi/pull/20824">#20824</a></p> </li> <li> <p>[auto/python] Get event log over gRPC instead of trying to read it from a text file <a href="https://redirect.github.com/pulumi/pulumi/pull/20833">#20833</a></p> </li> <li> <p>[cli/engine] Add environment variable to add --refresh to preview,update,destroy <a href="https://redirect.github.com/pulumi/pulumi/pull/20797">#20797</a></p> </li> <li> <p>[sdk/nodejs] Add PULUMI_NODEJS_SKIP_COMPONENT_INPUTS environment variable to skip the new feature of sending component inputs to the engine for diffing and state storage <a href="https://redirect.github.com/pulumi/pulumi/pull/20842">#20842</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[engine] Fix duplicate resource snapshot integrity issue, when running <code>pulumi up --refresh --run-program</code> and when a resource <code>PendingReplacement</code> exists in the snapshot <a href="https://redirect.github.com/pulumi/pulumi/pull/20812">#20812</a></p> </li> <li> <p>[engine] Support floating point NaN and Inf values in resource state <a href="https://redirect.github.com/pulumi/pulumi/pull/20843">#20843</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[sdk/go] Use Language.Link to link Go packages <a href="https://redirect.github.com/pulumi/pulumi/pull/20811">#20811</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.206.0 (2025-11-05)</h2> <h3>Features</h3> <ul> <li> <p>[protobuf] Pass a <code>preview</code> flag to invokes so they can tell if they're being called during a preview <a href="https://redirect.github.com/pulumi/pulumi/pull/20827">#20827</a></p> </li> <li> <p>[cli/about] Include PULUMI_* environment variables in the <code>pulumi about</code> output <a href="https://redirect.github.com/pulumi/pulumi/pull/20855">#20855</a></p> </li> <li> <p>[auto/go] Get event log over gRPC instead of trying to read it from a text file <a href="https://redirect.github.com/pulumi/pulumi/pull/20822">#20822</a></p> </li> <li> <p>[auto/nodejs] Get event log over gRPC instead of trying to read it from a text file <a href="https://redirect.github.com/pulumi/pulumi/pull/20824">#20824</a></p> </li> <li> <p>[auto/python] Get event log over gRPC instead of trying to read it from a text file <a href="https://redirect.github.com/pulumi/pulumi/pull/20833">#20833</a></p> </li> <li> <p>[cli/engine] Add environment variable to add --refresh to preview,update,destroy <a href="https://redirect.github.com/pulumi/pulumi/pull/20797">#20797</a></p> </li> <li> <p>[sdk/nodejs] Add PULUMI_NODEJS_SKIP_COMPONENT_INPUTS environment variable to skip the new feature of sending component inputs to the engine for diffing and state storage <a href="https://redirect.github.com/pulumi/pulumi/pull/20842">#20842</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[engine] Fix duplicate resource snapshot integrity issue, when running <code>pulumi up --refresh --run-program</code> and when a resource <code>PendingReplacement</code> exists in the snapshot <a href="https://redirect.github.com/pulumi/pulumi/pull/20812">#20812</a></p> </li> <li> <p>[engine] Support floating point NaN and Inf values in resource state <a href="https://redirect.github.com/pulumi/pulumi/pull/20843">#20843</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[sdk/go] Use Language.Link to link Go packages <a href="https://redirect.github.com/pulumi/pulumi/pull/20811">#20811</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
5e565ed19f |
docs(community): update project link and name to ToolSDK MCP Registry (#747)
<!-- Provide a brief summary of your changes --> Updated the project entry from **Awesome MCP Registry** to **ToolSDK MCP Registry**, reflecting the new GitHub repository name and official project name. > We’re honored that our Sub Registry project has been included in the official MCP Registry. To better reflect its purpose and maintain a more professional naming convention, we’re updating the entry name from **Awesome MCP Registry** to **ToolSDK MCP Registry**. This change replaces the earlier, more generic name “Awesome” with a clearer and more representative title for the project. > > *Based on GitHub’s renaming mechanism, the old link remains valid and will automatically redirect to the new repository.* ## Motivation and Context The project repository has been renamed and migrated from [`toolsdk-ai/awesome-mcp-registry`](https://github.com/toolsdk-ai/awesome-mcp-registry) → [`toolsdk-ai/toolsdk-mcp-registry`](https://github.com/toolsdk-ai/toolsdk-mcp-registry). This update ensures that the community registry points to the **correct and active repository**, while maintaining the same project description and context. The **ToolSDK MCP Registry** continues to extend the MCP Registry with **API-based MCP execution**, **private deployment**, and **secure sandbox isolation**. --- ## How Has This Been Tested? Verified that the new link is accessible and points to the correct repository. All descriptions and formatting remain consistent with other community entries. --- ## Breaking Changes No breaking changes — documentation update only. --- ## Types of changes * [x] Documentation update --- ## Checklist * [x] I have verified the new link and repository name * [x] I have followed the repository’s documentation style * [x] The update aligns with MCP community contribution guidelines --- ## Additional context This change reflects a **repository rename** for clarity and branding consistency. The project functionality and scope remain the same. |
||
|
|
9c1a1a8605 |
Promote prod to 1.3.8 (#745) | ||
|
|
9c776acc95 |
docs(community): Add Awesome MCP Registry project link (#734)
<!-- Provide a brief summary of your changes --> Added **Awesome MCP Registry** to the Featured Projects list — a community project that extends the MCP Registry with **API-based MCP execution**, **private deployment**, and **secure sandbox isolation**. --- ## Motivation and Context Most existing MCP Registry projects primarily serve as directories — they list available MCP servers but do not support actual invocation or interaction. **Awesome MCP Registry** bridges this gap by enabling **direct API execution of MCPs** within a **sandboxed** and **self-hostable** environment. This allows developers and enterprises to safely run, test, and integrate MCP servers in **private infrastructure** while maintaining full control over data and execution. --- ## How Has This Been Tested? The project has been validated in private and local deployments using various MCP servers. API execution, sandbox isolation, and registry synchronization have been tested successfully in both development and production-like environments. --- ## Breaking Changes No breaking changes — documentation update only. --- ## Types of changes * [x] Documentation update --- ## Checklist * [x] I have read the [[MCP Documentation](https://modelcontextprotocol.io/)](https://modelcontextprotocol.io) * [x] The project description follows the repository’s style guidelines * [x] The project link and summary are verified and accurate * [x] The addition aligns with the MCP community contribution standards --- ## Additional context This addition highlights a project that **extends the traditional MCP Registry model** by introducing **execution capabilities**, making it a practical foundation for **secure, private, and automated MCP workflows**. --------- Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
16678cfb2b |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.204.0 to 3.205.0 in /deploy (#731)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.204.0 to 3.205.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.205.0</h2> <h2>3.205.0 (2025-10-28)</h2> <h3>Bug Fixes</h3> <ul> <li> <p>[cli/display] Improve how the severity is displayed for policy violations <a href="https://redirect.github.com/pulumi/pulumi/pull/20805">#20805</a></p> </li> <li> <p>[engine] Fix an issue where <code>refresh --run-program</code> could potentially run forever <a href="https://redirect.github.com/pulumi/pulumi/pull/20781">#20781</a></p> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.205.0 (2025-10-28)</h2> <h3>Bug Fixes</h3> <ul> <li> <p>[cli/display] Improve how the severity is displayed for policy violations <a href="https://redirect.github.com/pulumi/pulumi/pull/20805">#20805</a></p> </li> <li> <p>[engine] Fix an issue where <code>refresh --run-program</code> could potentially run forever <a href="https://redirect.github.com/pulumi/pulumi/pull/20781">#20781</a></p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
309b77d20e |
build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.12.0 to 1.13.0 (#730)
Bumps [github.com/Azure/azure-sdk-for-go/sdk/azidentity](https://github.com/Azure/azure-sdk-for-go) from 1.12.0 to 1.13.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Azure/azure-sdk-for-go/releases">github.com/Azure/azure-sdk-for-go/sdk/azidentity's releases</a>.</em></p> <blockquote> <h2>sdk/azidentity/v1.13.0</h2> <h2>1.13.0 (2025-10-07)</h2> <h3>Features Added</h3> <ul> <li>Added <code>AzurePowerShellCredential</code>, which authenticates as the identity logged in to Azure PowerShell (thanks <a href="https://github.com/ArmaanMcleod">ArmaanMcleod</a>)</li> <li>When <code>AZURE_TOKEN_CREDENTIALS</code> is set to <code>ManagedIdentityCredential</code>, <code>DefaultAzureCredential</code> behaves the same as does <code>ManagedIdentityCredential</code> when used directly. It doesn't apply special retry configuration or attempt to determine whether IMDS is available. (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/25265">#25265</a>)</li> </ul> <h3>Breaking Changes</h3> <ul> <li>Removed the <code>WorkloadIdentityCredential</code> support for identity binding mode added in v1.13.0-beta.1. It will return in v1.14.0-beta.1</li> </ul> <h2>sdk/azidentity/v1.13.0-beta.1</h2> <h2>1.13.0-beta.1 (2025-09-17)</h2> <h3>Features Added</h3> <ul> <li>Added <code>AzurePowerShellCredential</code>, which authenticates as the identity logged in to Azure PowerShell (thanks <a href="https://github.com/ArmaanMcleod">ArmaanMcleod</a>)</li> <li><code>WorkloadIdentityCredential</code> supports identity binding mode (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/25056">#25056</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
68213d2bef |
build(deps): bump cloud.google.com/go/kms from 1.23.0 to 1.23.2 (#729)
Bumps [cloud.google.com/go/kms](https://github.com/googleapis/google-cloud-go) from 1.23.0 to 1.23.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-cloud-go/releases">cloud.google.com/go/kms's releases</a>.</em></p> <blockquote> <h2>kms: v1.23.2</h2> <h2><a href="https://github.com/googleapis/google-cloud-go/compare/kms/v1.23.1...kms/v1.23.2">1.23.2</a> (2025-10-15)</h2> <h3>Bug Fixes</h3> <ul> <li><strong>kms:</strong> Conditionally enable AllowHardBoundTokens (<a href=" |
||
|
|
b4c172617f |
Use the official govulncheck-action (#733)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Better to use the action with proper versioning instead of latest. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
8290e53aef |
Bump go to 1.24.9 (#732)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Motivated by vulnerabilities found in 1.24.6 - https://github.com/modelcontextprotocol/registry/actions/runs/18924936129/job/54058441000?pr=729 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
18cde88a7e |
Promote prod to 1.3.7 (#727)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> This needs to be merged after we merge https://github.com/modelcontextprotocol/registry/pull/726 and we cut a release for v1.3.7 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
be0fa8ca6b |
Fix the image tag to strip the v prefix (#726)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> We forgot to strip the v prefix when we made the switch to ko so this PR fixes it. Once we merge it we'll cut a new release so we can apply this change 👍 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
382853a0da |
Promote prod to 1.3.6 (#722) | ||
|
|
f5f08bc92d |
Implement --token and MCP_GITHUB_TOKEN login support (#705)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR implements the missing support for logging in via `--token` or `MCP_GITHUB_TOKEN` ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Fixes: #698 --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
b0a79c110c |
Use ko in favour of docker build (#708)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR leverages ko instead of docker build for building the container image. The motivation for the move is that ko has been one of the widely adopted ways to build Go applications, but overall its benefits are: * Build time is much faster - around 70-80% * The resulting image size is much smaller (also more secure) - around 50% smaller The changes in this PR are: * Updated the workflows for staging and release to prod to use it * Updated the local development + the integration tests to use it (the integration tests overwrite the base image from chainguards one to alpine mostly because we rely on wget to check the health status and you don't get that in the stripped down one) From the user point of view everything should continue to work as it is. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
2f2339de05 |
Upgrade cosign to version v2.6.1 (#720)
Updated cosign installation to version v2.6.1. <!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following pins cosign to v2.6.1. For more context: - https://github.com/goreleaser/goreleaser/issues/6195 - https://github.com/modelcontextprotocol/registry/pull/706 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
ef4a60505e |
Make Repository field properly optional in server.json (#717)
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
The Repository field in ServerJSON was not properly omitting empty
values
when marshaling to JSON. Even when a server had no repository
configured,
the JSON would include `"repository": {"url": "", "source": ""}` due to:
1. Repository struct fields (URL, Source) lacking omitempty tags
2. Repository being a value type instead of pointer in ServerJSON
This caused validation warnings for servers without repository URLs.
Changes:
- Add omitempty tags to Repository.URL and Repository.Source fields
- Change ServerJSON.Repository from model.Repository to
*model.Repository
- Update validateRepository to handle nil pointers
- Update all code creating Repository instances to use pointers
Now, servers without repository information correctly omit the field
entirely from JSON output, eliminating spurious validation warnings.
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com>
|
||
|
|
88c2e1be16 |
Enable Google KMS and Azure Key Vault for publisher login tool (#696)
<!-- Provide a brief summary of your changes --> ## Motivation and Context This allows the private key used for DNS or HTTP based authentication to be stored securely in a cloud key management system. These services often provide HSM storage which makes it very hard to leak the private key. The full context is described in my design document here: https://github.com/modelcontextprotocol/registry/issues/482#issuecomment-3437117171 ## How Has This Been Tested? I have tested it against PROD using an Ed25519 key stored in Google KMS. I have added unit tests. I have tested both ECDSA P-384 and Ed25519 with Az KV and Google KMS against a locally running server. ## Breaking Changes None intended. ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Co-authored-by: adam jones <domdomegg+git@gmail.com> |
||
|
|
3d375e6544 |
Add go-mcp-registry to community projects (#719)
Adds [go-mcp-registry](https://github.com/leefowlercu/go-mcp-registry) to the Community Projects documentation ## Motivation and Context Wanted to add my project to your community projects documentation ## How Has This Been Tested? No testing necessary ## Breaking Changes None ## Types of changes - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed |
||
|
|
913147be3a |
Add support for Google Artifact Registry (GAR) (#692)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR: * Deprecates the existing OCI reference parser * Deprecates the existing OCI way of authenticating and accessing the image manifest * Replaces the above by leveraging go-containerregistry * Introduces support for Google Artifact Registry * Enables us to easily add support for other OCI-compliant registries in the future * Introduces better error handling * Introduces custom context timeouts for validation ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Related to #427 --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
31d35d2f77 |
Remove the test-unit-verbose target (#716)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> As per @domdomegg's comment - https://github.com/modelcontextprotocol/registry/pull/713#discussion_r2466295123 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
39824fbfa1 |
fix formatting in community-projects.md (#715)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
ce2171d207 |
fix: detect server subfolder in init (#566)
<!-- Provide a brief summary of your changes --> ## Motivation and Context Discussion from this issue: https://github.com/modelcontextprotocol/registry/issues/538 We want to make it clearer that repo name & server name do not HAVE to be the same, especially in monorepos. @tadasant this seems like a minor thing that doesn't have to be documented specifically, lmk if you disagree :) ## How Has This Been Tested? Tested the init flow locally, running the built `init` command from a subfolder and the repo root. ## Breaking Changes No ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
73d2174cec |
feat: add CORS support to registry API (#711)
Fixes #710 This PR adds CORS middleware to enable browser-based clients and web applications to access the registry API. ## Changes - Add CORSMiddleware in internal/api/cors.go to handle preflight OPTIONS requests and inject CORS headers - Integrate CORS middleware into the server middleware stack - Add CORS configuration options (CORS_ENABLED and CORS_ALLOWED_ORIGIN) ## Testing - All existing tests pass - Manual testing confirms CORS headers are present in responses - OPTIONS preflight requests now return 204 with proper headers ## Configuration New environment variables: - MCP_REGISTRY_CORS_ENABLED (default: true) - MCP_REGISTRY_CORS_ALLOWED_ORIGIN (default: *) |
||
|
|
237758b081 |
Make test output less verbose (#713) | ||
|
|
d6aaadc3e3 |
feat: add community project link to browsable database (#712)
Adds a link to a new community project ## Motivation and Context This addresses the need to have a web browsable, live page of the MCP server registry. ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Additional context Provides both a web browsable link and a SQLite database. Database can be connected to or downloaded. |
||
|
|
1e6fba7a4d |
build(deps): bump the actions group with 2 updates (#709)
Bumps the actions group with 2 updates: [actions/upload-artifact](https://github.com/actions/upload-artifact) and [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer). Updates `actions/upload-artifact` from 4.6.2 to 5.0.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's releases</a>.</em></p> <blockquote> <h2>v5.0.0</h2> <h2>What's Changed</h2> <p><strong>BREAKING CHANGE:</strong> this update supports Node <code>v24.x</code>. This is not a breaking change per-se but we're treating it as such.</p> <ul> <li>Update README.md by <a href="https://github.com/GhadimiR"><code>@GhadimiR</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/681">actions/upload-artifact#681</a></li> <li>Update README.md by <a href="https://github.com/nebuk89"><code>@nebuk89</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/712">actions/upload-artifact#712</a></li> <li>Readme: spell out the first use of GHES by <a href="https://github.com/danwkennedy"><code>@danwkennedy</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/727">actions/upload-artifact#727</a></li> <li>Update GHES guidance to include reference to Node 20 version by <a href="https://github.com/patrikpolyak"><code>@patrikpolyak</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/725">actions/upload-artifact#725</a></li> <li>Bump <code>@actions/artifact</code> to <code>v4.0.0</code></li> <li>Prepare <code>v5.0.0</code> by <a href="https://github.com/danwkennedy"><code>@danwkennedy</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/734">actions/upload-artifact#734</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/GhadimiR"><code>@GhadimiR</code></a> made their first contribution in <a href="https://redirect.github.com/actions/upload-artifact/pull/681">actions/upload-artifact#681</a></li> <li><a href="https://github.com/nebuk89"><code>@nebuk89</code></a> made their first contribution in <a href="https://redirect.github.com/actions/upload-artifact/pull/712">actions/upload-artifact#712</a></li> <li><a href="https://github.com/danwkennedy"><code>@danwkennedy</code></a> made their first contribution in <a href="https://redirect.github.com/actions/upload-artifact/pull/727">actions/upload-artifact#727</a></li> <li><a href="https://github.com/patrikpolyak"><code>@patrikpolyak</code></a> made their first contribution in <a href="https://redirect.github.com/actions/upload-artifact/pull/725">actions/upload-artifact#725</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/upload-artifact/compare/v4...v5.0.0">https://github.com/actions/upload-artifact/compare/v4...v5.0.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
4805f5c66d |
Fix main by implementing a go1.24 compliant parseRawPrivateKey method (#707)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following fixes the currently failing build on main because we reverted to go 1.24 and the last commit was relying on a method solely available in 1.25. The method is quite straightforward so we just reimplemented it. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
6c0f085708 |
Add support for ECDSA P-384 (#685)
## Motivation and Context See https://github.com/modelcontextprotocol/registry/issues/482#issuecomment-3436993157 for full details. This adds ECDSA P-384 (a popular NIST approved curve) in addition to Ed25519. ## How Has This Been Tested? I have tested with a local deployment against `mcp.joelverhagen.com`. Also, I have added significant tests. ## Breaking Changes None. (hopefully) ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> @domdomegg and I spoke a bit about this on Discord: https://discord.com/channels/1358869848138059966/1369487942862504016/1423710918180606052 --------- Co-authored-by: adam jones <domdomegg+git@gmail.com> |
||
|
|
0ef5b90ed7 |
Clarify the docs around _meta publisher extensions (#695) | ||
|
|
12b5b0f477 |
Update README with API freeze announcement (#704) | ||
|
|
4e2699a529 |
Revert cosign to 3.10.1 instead of 4.0.0 (#706)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
be4182606e |
build(deps): bump github.com/pulumi/pulumi-kubernetes/sdk/v4 from 4.18.2 to 4.23.0 in /deploy (#701)
Bumps [github.com/pulumi/pulumi-kubernetes/sdk/v4](https://github.com/pulumi/pulumi-kubernetes) from 4.18.2 to 4.23.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/releases">github.com/pulumi/pulumi-kubernetes/sdk/v4's releases</a>.</em></p> <blockquote> <h2>v4.23.0</h2> <h3>Changed</h3> <ul> <li>Updated Kubernetes schemas and libraries to v1.33.0. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3619">pulumi/pulumi-kubernetes#3619</a>)</li> </ul> <h2>v4.22.2</h2> <h3>Fixed</h3> <ul> <li>Fix panic when <code>valueYamlFiles</code> field in <code>helm.v3.Release</code> resources are nil (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3601">pulumi/pulumi-kubernetes#3601</a>)</li> </ul> <h2>v4.22.1</h2> <h3>Fixed</h3> <ul> <li>Fix race condition in Deleted condition (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3550">pulumi/pulumi-kubernetes#3550</a>)</li> </ul> <h2>v4.22.0</h2> <h3>Changed</h3> <ul> <li>Update Pulumi dependency to v3.153.1 (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3534">pulumi/pulumi-kubernetes#3534</a>)</li> <li>Update ESC dependency to v0.13.0 (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3551">pulumi/pulumi-kubernetes#3551</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix race condition in Deleted condition. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3550">pulumi/pulumi-kubernetes#3550</a>)</li> </ul> <h2>v4.21.1</h2> <h3>Added</h3> <ul> <li>Windows executable releases are now signed. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3455">pulumi/pulumi-kubernetes#3455</a>)</li> </ul> <h2>v4.21.0</h2> <h3>Changed</h3> <ul> <li>Upgrade <code>pulumi-java</code> to version <code>v1.0.0</code> (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3436">pulumi/pulumi-kubernetes#3436</a>)</li> </ul> <h2>v4.20.0</h2> <h3>Added</h3> <ul> <li>Added support for autonaming configuration specified by the engine. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/3363">pulumi/pulumi-kubernetes#3363</a>)</li> </ul> <h2>v4.19.0</h2> <h3>Changed</h3> <ul> <li>Updated Kubernetes schemas and libraries to v1.32.0. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3343">pulumi/pulumi-kubernetes#3343</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-kubernetes/blob/master/CHANGELOG.md">github.com/pulumi/pulumi-kubernetes/sdk/v4's changelog</a>.</em></p> <blockquote> <h2>4.23.0 (May 1, 2025)</h2> <h3>Changed</h3> <ul> <li>Updated Kubernetes schemas and libraries to v1.33.0. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3619">pulumi/pulumi-kubernetes#3619</a>)</li> </ul> <h2>4.22.2 (April 15, 2025)</h2> <h3>Fixed</h3> <ul> <li>Fix panic when <code>valueYamlFiles</code> field in <code>helm.v3.Release</code> resources are nil (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3601">pulumi/pulumi-kubernetes#3601</a>)</li> </ul> <h2>4.22.1 (March 14, 2025)</h2> <h3>Fixed</h3> <ul> <li>Fix race condition in Deleted condition (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3550">pulumi/pulumi-kubernetes#3550</a>)</li> </ul> <h2>4.22.0 (March 13, 2025)</h2> <h3>Changed</h3> <ul> <li>Update Pulumi dependency to v3.153.1 (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3534">pulumi/pulumi-kubernetes#3534</a>)</li> <li>Update ESC dependency to v0.13.0 (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3551">pulumi/pulumi-kubernetes#3551</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix race condition in Deleted condition. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3550">pulumi/pulumi-kubernetes#3550</a>)</li> </ul> <h2>4.21.1 (January 27, 2025)</h2> <h3>Added</h3> <ul> <li>Windows executable releases are now signed. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3455">pulumi/pulumi-kubernetes#3455</a>)</li> </ul> <h2>4.21.0 (January 16, 2025)</h2> <h3>Changed</h3> <ul> <li>Upgrade <code>pulumi-java</code> to version <code>v1.0.0</code> (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/pull/3436">pulumi/pulumi-kubernetes#3436</a>)</li> </ul> <h2>4.20.0 (January 14, 2025)</h2> <h3>Added</h3> <ul> <li>Added support for autonaming configuration specified by the engine. (<a href="https://redirect.github.com/pulumi/pulumi-kubernetes/issues/3363">pulumi/pulumi-kubernetes#3363</a>)</li> </ul> <h2>4.19.0 (December 11, 2024)</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
3c0320bc64 |
build(deps): bump github.com/pulumi/pulumi/sdk/v3 from 3.175.0 to 3.204.0 in /deploy (#700)
Bumps [github.com/pulumi/pulumi/sdk/v3](https://github.com/pulumi/pulumi) from 3.175.0 to 3.204.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/releases">github.com/pulumi/pulumi/sdk/v3's releases</a>.</em></p> <blockquote> <h2>v3.204.0</h2> <h2>3.204.0 (2025-10-23)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Print replace diffs when a resource tries to replace but is blocked by still having an import id set <a href="https://redirect.github.com/pulumi/pulumi/pull/20762">#20762</a></p> </li> <li> <p>[engine] Support overriding policy severity on violations <a href="https://redirect.github.com/pulumi/pulumi/pull/20767">#20767</a></p> </li> <li> <p>[backend/service] Send journal entries to the backend if it's supported <a href="https://redirect.github.com/pulumi/pulumi/pull/20343">#20343</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[engine] Fix a potential snapshot integrity error when a resources dependency fails to be destroyed using <code>destroy --run-program</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/20692">#20692</a></p> </li> <li> <p>[engine] Fix import error to contain the import ID of non-existent resources <a href="https://redirect.github.com/pulumi/pulumi/pull/20753">#20753</a></p> </li> <li> <p>[sdk/nodejs] Pass secret values as Output objects to resource hooks to properly maintain their secretness. Previously hooks received an internal representation for secret values. <a href="https://redirect.github.com/pulumi/pulumi/pull/20774">#20774</a></p> </li> <li> <p>[sdk/python] Pass secret values as Output objects to resource hooks to properly maintain their secretness. Previously hooks received an internal representation for secret values. <a href="https://redirect.github.com/pulumi/pulumi/pull/20769">#20769</a></p> </li> <li> <p>[sdkgen/go] Fix codegen of scalar return SDK functions <a href="https://redirect.github.com/pulumi/pulumi/pull/20754">#20754</a></p> </li> <li> <p>[sdkgen/{nodejs,python}] Fix scalar return protocol to allow returning secret maps <a href="https://redirect.github.com/pulumi/pulumi/pull/20747">#20747</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[sdk/nodejs] Use Language.Link to link Node.js packages <a href="https://redirect.github.com/pulumi/pulumi/pull/20715">#20715</a></li> </ul> <h2>v3.203.0</h2> <h2>3.203.0 (2025-10-15)</h2> <h3>Features</h3> <ul> <li>[cli/display] Display policy severity for violations <a href="https://redirect.github.com/pulumi/pulumi/pull/20746">#20746</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi/blob/master/CHANGELOG.md">github.com/pulumi/pulumi/sdk/v3's changelog</a>.</em></p> <blockquote> <h2>3.204.0 (2025-10-23)</h2> <h3>Features</h3> <ul> <li> <p>[cli] Print replace diffs when a resource tries to replace but is blocked by still having an import id set <a href="https://redirect.github.com/pulumi/pulumi/pull/20762">#20762</a></p> </li> <li> <p>[engine] Support overriding policy severity on violations <a href="https://redirect.github.com/pulumi/pulumi/pull/20767">#20767</a></p> </li> <li> <p>[backend/service] Send journal entries to the backend if it's supported <a href="https://redirect.github.com/pulumi/pulumi/pull/20343">#20343</a></p> </li> </ul> <h3>Bug Fixes</h3> <ul> <li> <p>[engine] Fix a potential snapshot integrity error when a resources dependency fails to be destroyed using <code>destroy --run-program</code> <a href="https://redirect.github.com/pulumi/pulumi/pull/20692">#20692</a></p> </li> <li> <p>[engine] Fix import error to contain the import ID of non-existent resources <a href="https://redirect.github.com/pulumi/pulumi/pull/20753">#20753</a></p> </li> <li> <p>[sdk/nodejs] Pass secret values as Output objects to resource hooks to properly maintain their secretness. Previously hooks received an internal representation for secret values. <a href="https://redirect.github.com/pulumi/pulumi/pull/20774">#20774</a></p> </li> <li> <p>[sdk/python] Pass secret values as Output objects to resource hooks to properly maintain their secretness. Previously hooks received an internal representation for secret values. <a href="https://redirect.github.com/pulumi/pulumi/pull/20769">#20769</a></p> </li> <li> <p>[sdkgen/go] Fix codegen of scalar return SDK functions <a href="https://redirect.github.com/pulumi/pulumi/pull/20754">#20754</a></p> </li> <li> <p>[sdkgen/{nodejs,python}] Fix scalar return protocol to allow returning secret maps <a href="https://redirect.github.com/pulumi/pulumi/pull/20747">#20747</a></p> </li> </ul> <h3>Miscellaneous</h3> <ul> <li>[sdk/nodejs] Use Language.Link to link Node.js packages <a href="https://redirect.github.com/pulumi/pulumi/pull/20715">#20715</a></li> </ul> <h2>3.203.0 (2025-10-15)</h2> <h3>Features</h3> <ul> <li> <p>[cli/display] Display policy severity for violations <a href="https://redirect.github.com/pulumi/pulumi/pull/20746">#20746</a></p> </li> <li> <p>[cli/package] Show functions in <code>package info</code></p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
402c4b88dc |
build(deps): bump anchore/sbom-action from 0.20.8 to 0.20.9 in the actions group (#702)
Bumps the actions group with 1 update:
[anchore/sbom-action](https://github.com/anchore/sbom-action).
Updates `anchore/sbom-action` from 0.20.8 to 0.20.9
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anchore/sbom-action/releases">anchore/sbom-action's
releases</a>.</em></p>
<blockquote>
<h2>v0.20.9</h2>
<h2>Changes in v0.20.9</h2>
<ul>
<li>chore(deps): update Syft to v1.36.0 (<a
href="https://redirect.github.com/anchore/sbom-action/issues/546">#546</a>)
[[<a
href="https://github.com/apps/anchore-actions-token-generator">anchore-actions-token-generator[bot]</a>](<a
href="https://github.com/%5Banchore-actions-token-generator%5Bbot%5D%5D(https://github.com/apps/anchore-actions-token-generator))%5D">https://github.com/[anchore-actions-token-generator[bot]](https://github.com/apps/anchore-actions-token-generator))]</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="
|
||
|
|
89178d220b |
build(deps): bump github.com/pulumi/pulumi-gcp/sdk/v8 from 8.39.0 to 8.41.1 in /deploy (#699)
Bumps [github.com/pulumi/pulumi-gcp/sdk/v8](https://github.com/pulumi/pulumi-gcp) from 8.39.0 to 8.41.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/pulumi-gcp/releases">github.com/pulumi/pulumi-gcp/sdk/v8's releases</a>.</em></p> <blockquote> <h2>v8.41.1</h2> <h2>What's Changed</h2> <ul> <li>Combined dependencies PR by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3346">pulumi/pulumi-gcp#3346</a></li> <li>Bump github.com/cloudflare/circl from 1.3.7 to 1.6.1 in /examples/bucket-go in the go_modules group across 1 directory by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3327">pulumi/pulumi-gcp#3327</a></li> <li>Upgrade terraform-provider-google-beta to v6.49.2 by <a href="https://github.com/guineveresaenger"><code>@guineveresaenger</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3347">pulumi/pulumi-gcp#3347</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pulumi/pulumi-gcp/compare/v8.41.0...v8.41.1">https://github.com/pulumi/pulumi-gcp/compare/v8.41.0...v8.41.1</a></p> <h2>v8.41.0</h2> <h2>What's Changed</h2> <ul> <li>Update GitHub Actions workflows. by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3320">pulumi/pulumi-gcp#3320</a></li> <li>Update GitHub Actions workflows. by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3323">pulumi/pulumi-gcp#3323</a></li> <li>Update GitHub Actions workflows. by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3324">pulumi/pulumi-gcp#3324</a></li> <li>Update GitHub Actions workflows. by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3326">pulumi/pulumi-gcp#3326</a></li> <li>Combined dependencies PR by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3329">pulumi/pulumi-gcp#3329</a></li> <li>Bump the npm_and_yarn group across 3 directories with 1 update by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3305">pulumi/pulumi-gcp#3305</a></li> <li>Upgrade terraform provider google beta to v6.48.0 by <a href="https://github.com/ruifung"><code>@ruifung</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3330">pulumi/pulumi-gcp#3330</a></li> <li>Update resources.go to use underscore for role_ids by <a href="https://github.com/maelp"><code>@maelp</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3331">pulumi/pulumi-gcp#3331</a></li> <li>Upgrade pulumi-terraform-bridge to v3.112.0 by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3339">pulumi/pulumi-gcp#3339</a></li> <li>Update GitHub Actions workflows. by <a href="https://github.com/pulumi-bot"><code>@pulumi-bot</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3341">pulumi/pulumi-gcp#3341</a></li> <li>Upgrade terraform-provider-google-beta to v6.49.0 by <a href="https://github.com/blampe"><code>@blampe</code></a> in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3340">pulumi/pulumi-gcp#3340</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ruifung"><code>@ruifung</code></a> made their first contribution in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3330">pulumi/pulumi-gcp#3330</a></li> <li><a href="https://github.com/maelp"><code>@maelp</code></a> made their first contribution in <a href="https://redirect.github.com/pulumi/pulumi-gcp/pull/3331">pulumi/pulumi-gcp#3331</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pulumi/pulumi-gcp/compare/v8.40.0...v8.41.0">https://github.com/pulumi/pulumi-gcp/compare/v8.40.0...v8.41.0</a></p> <h2>v8.40.0</h2> <h3>Does the PR have any schema changes?</h3> <p>Found 19 breaking changes:</p> <h4>Resources</h4> <ul> <li>"gcp:oracledatabase/autonomousDatabase:AutonomousDatabase": required: <ul> <li><code>🟢</code> "cidr" property is no longer Required</li> <li><code>🟢</code> "network" property is no longer Required</li> </ul> </li> <li>"gcp:oracledatabase/cloudVmCluster:CloudVmCluster": required: <ul> <li><code>🟢</code> "backupSubnetCidr" property is no longer Required</li> <li><code>🟢</code> "cidr" property is no longer Required</li> <li><code>🟢</code> "network" property is no longer Required</li> </ul> </li> </ul> <h4>Types</h4> <ul> <li><code>🟢</code> "gcp:cloudrunv2/getJobTemplateTemplate:getJobTemplateTemplate": required: "gpuZonalRedundancyDisabled" property has changed to Required</li> <li><code>🟢</code> "gcp:compute/getSubnetworksSubnetwork:getSubnetworksSubnetwork": required: "networkName" property has changed to Required</li> <li><code>🟢</code> "gcp:container/getClusterAddonsConfig:getClusterAddonsConfig": required: "lustreCsiDriverConfigs" property has changed to Required</li> <li><code>🟢</code> "gcp:container/getClusterIpAllocationPolicy:getClusterIpAllocationPolicy": required: "additionalIpRangesConfigs" property has changed to Required</li> <li><code>🟢</code> "gcp:container/getClusterNodePoolNetworkConfig:getClusterNodePoolNetworkConfig": required: "subnetwork" property has changed to Required</li> <li><code>🟢</code> "gcp:dataproc/ClusterClusterConfigSecurityConfig:ClusterClusterConfigSecurityConfig": required: "kerberosConfig" property is no longer Required</li> <li><code>🟢</code> "gcp:diagflow/CxWebhookServiceDirectory:CxWebhookServiceDirectory": required: "genericWebService" property is no longer Required</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
5d1f670936 |
Enable dependabot for /deploy and pin Go version to 1.24 (#697)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> There was feedback that other projects wanting to use the registry package have to upgrade to 1.25 (because of how Go works). In the registry itself we are not relying on 1.25 features so this PR reverts us back to 1.24 until 1.25 becomes better adopted and we can safely move to it. Also realised we were not keeping our dependencies for our deploy/infra code up to date with Dependabot so this fixes that too. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
d70419222f |
Disable automatic sync schedule in sync-db.yml (#693)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> We have some more work to do on that so let's temporarily comment out the scheduled cron job for syncing the database. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
9164415d59 |
Add failure modes telemetry (#646)
Telemetry to cover failure modes which are not covered by container logs and metrics for finding resource constraints. ## Motivation and Context When there is any issue with registry container we should be notified. ## How Has This Been Tested? - Local seup ## Breaking Changes - No ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [X] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context - No additional exporter is used, taken advantage of opentelemetry collector - It covers metrics related to resource constraints, currently only limited to default namespace. - Takes cares of kubernetes events as logs which are the source of figuring out any problem with service, covers all such scenarios where pod is not able to start yet and get missed because there are no container logs for such cases. Limited to default namespace. - Taken care of daemonset deployment i.e. deploying otel collector as agent by using correct filtering. - Cardinality contributing factors are only pod ids (but have to observe more), node ids will not increase cardinality as scale up will lead to limited nodes. - Shipping of metrics for resources happens every 60s and list of metrics that will be emitted [https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/kubeletstatsreceiver/metadata.yaml](url) - Container errors <img width="1440" height="816" alt="Screenshot 2025-10-10 at 1 21 14 AM" src="https://github.com/user-attachments/assets/ba90a217-2a49-4522-aa44-a98c02adf95b" /> - Resource metrics <img width="1440" height="816" alt="Screenshot 2025-10-10 at 1 23 51 AM" src="https://github.com/user-attachments/assets/3467be96-db3c-4930-afa2-3cbf5f0ced8b" /> |
||
|
|
8f047f3398 |
build(deps): bump the actions group with 2 updates (#688)
Bumps the actions group with 2 updates: [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) and [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `sigstore/cosign-installer` from 3.10.0 to 4.0.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sigstore/cosign-installer/releases">sigstore/cosign-installer's releases</a>.</em></p> <blockquote> <h2>v4.0.0</h2> <h2>What's Changed?</h2> <p><strong>Note:</strong> You must upgrade to cosign-installer v4 if you want to install <a href="https://blog.sigstore.dev/cosign-3-0-available/">Cosign v3+</a>. You may still install Cosign v2.x with cosign-installer v4.</p> <ul> <li>Add support for Cosign v3 releases (<a href="https://redirect.github.com/sigstore/cosign-installer/issues/201">#201</a>)</li> </ul> <h2>v3.10.1</h2> <h2>What's Changed?</h2> <p><strong>Note:</strong> cosign-installer v3.x cannot be used to install <a href="https://blog.sigstore.dev/cosign-3-0-available/">Cosign v3.x</a>. You must upgrade to cosign-installer v4 in order to use Cosign v3.</p> <p><strong>Note:</strong> This is planned to be the final release of Cosign v2, though we will cut new releases for any critical security or bug fixes. We recommend transitioning to <a href="https://blog.sigstore.dev/cosign-3-0-available/">Cosign v3</a>.</p> <ul> <li>Bump default Cosign to v2.6.1 (<a href="https://redirect.github.com/sigstore/cosign-installer/issues/203">#203</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
b6b7ae2d90 |
Promote prod to 1.3.3 (#687)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Promotes prod to 1.3.3, the main changes are making mcpb package version optional and also fixing the enforced schema validation. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
0828bc483c |
Make mcpb package version optional and fix schema validation (#686)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR: * Makes mcpb package version property optional * Bumps the schema and reflects that in the code * Makes sure the publisher tests are being covered by doing `make check` ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
f870a4c000 |
Improve golang type documentation and examples (#631)
Enhanced Go struct tags throughout `pkg/api/v0/types.go` and `pkg/model/types.go` to better align with the OpenAPI specification. ## Changes - Added comprehensive `doc` tags with detailed field descriptions matching OpenAPI - Added `example` tags showing valid values for fields (e.g., `"io.github.user/weather"`, `"npx"`) - Added `format` tags (`uri`, `date-time`) for better type specification - Added `pattern` and `enum` tags for validation constraints - Added `placeholder` field to `Input` struct matching OpenAPI spec - Removed redundant comments in favor of inline struct tags These changes improve code clarity and make the types more self-documenting, while maintaining compatibility with the OpenAPI schema definitions in `docs/reference/api/openapi.yaml`. --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
ba609e1c17 |
Promote prod to 1.3.2 (#684)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Bumps prod to 1.3.2 Note https://github.com/modelcontextprotocol/registry/actions/runs/18570490434 needs to complete before merging ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
dd3008d13e |
Populate the version details for local builds (#683)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Motivated by - https://github.com/modelcontextprotocol/registry/pull/681#discussion_r2436486062 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
4e11b81d1c |
Pass ldflags to the Dockerfile (#681)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following fixes an issue where the ldflags were not passed to the Dockerfile, so the binary cannot populate its version-related variables accordingly ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
893e31bd4c |
Reflect the latest changes on the schema (#682)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Addressing https://github.com/modelcontextprotocol/registry/pull/634#issuecomment-3410615843 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
84387c9605 |
Add hint icon to in-browser UI community projects (#679)
This PR contains a few commits, but the punchline is that we add a "🔎" icon next to community projects that provide an in-browser UI for the registry. The intention is that these projects can serve as a stopgap or substitute for https://github.com/modelcontextprotocol/registry/issues/99. This is just a first take. Very open to feedback! |
||
|
|
c73582df6d |
build(deps): bump anchore/sbom-action from 0.20.6 to 0.20.7 in the actions group (#680)
Bumps the actions group with 1 update: [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `anchore/sbom-action` from 0.20.6 to 0.20.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anchore/sbom-action/releases">anchore/sbom-action's releases</a>.</em></p> <blockquote> <h2>v0.20.7</h2> <h2>Changes in v0.20.7</h2> <ul> <li>chore(deps): update Syft to v1.34.1 (<a href="https://redirect.github.com/anchore/sbom-action/issues/544">#544</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
8930ec80fc |
Fix latest release download URLs (#677)
Versioned release download URLs use a pattern like: https://github.com/modelcontextprotocol/registry/releases/download/{version}/... But latest release download URLs use a pattern like: https://github.com/modelcontextprotocol/registry/releases/latest/download/... For example: https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_darwin_arm64.tar.gz Fixes #673. |
||
|
|
7e65f32fcf |
Deploy 1.3.1 to production (#676) | ||
|
|
2a80690063 |
Introduce a /version API (#667)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR introduces a `/version` API that serves the build details along with the version of the API server being served. The `/version` endpoint allows users to programmatically query which exact version of the registry is running in production for debugging. ~~auditing, and compatibility checks~~. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
d9099e9117 |
Fix migration numbering and add migration 010 for package format (#675)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR fixes an issue we introduced on September, 30th that caused some of the migrations to not apply. This PR fixes it. After merging we'll have to reset staging as this would not work there (this is expected). ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
1142e5d872 |
build(deps): bump golangci/golangci-lint-action from 6.1.1 to 8.0.0 in the actions group (#670)
Bumps the actions group with 1 update: [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action). Updates `golangci/golangci-lint-action` from 6.1.1 to 8.0.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/golangci/golangci-lint-action/releases">golangci/golangci-lint-action's releases</a>.</em></p> <blockquote> <h2>v8.0.0</h2> <p><strong>Requires <code>golangci-lint</code> version >= <code>v2.1.0</code></strong></p> <!-- raw HTML omitted --> <h2>What's Changed</h2> <h3>Changes</h3> <ul> <li>feat: use absolute paths by default when using working-directory option by <a href="https://github.com/ldez"><code>@ldez</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1231">golangci/golangci-lint-action#1231</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/golangci/golangci-lint-action/compare/v7...v8.0.0">https://github.com/golangci/golangci-lint-action/compare/v7...v8.0.0</a></p> <h2>v7.0.1</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <h3>Documentation</h3> <ul> <li>docs: add note about github.workspace by <a href="https://github.com/mattjohnsonpint"><code>@mattjohnsonpint</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1218">golangci/golangci-lint-action#1218</a></li> <li>docs: clarify that ’args: --path-mode=abs’ is needed for working-directory by <a href="https://github.com/HaraldNordgren"><code>@HaraldNordgren</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1230">golangci/golangci-lint-action#1230</a></li> </ul> <h3>Dependencies</h3> <ul> <li>build(deps): bump the dependencies group across 1 directory with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1213">golangci/golangci-lint-action#1213</a></li> <li>build(deps-dev): bump the dev-dependencies group with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1215">golangci/golangci-lint-action#1215</a></li> <li>build(deps-dev): bump the dev-dependencies group with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1220">golangci/golangci-lint-action#1220</a></li> <li>build(deps): bump <code>@types/node</code> from 22.13.14 to 22.14.0 in the dependencies group by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1221">golangci/golangci-lint-action#1221</a></li> <li>build(deps-dev): bump the dev-dependencies group with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1224">golangci/golangci-lint-action#1224</a></li> <li>build(deps): bump <code>@types/node</code> from 22.14.0 to 22.14.1 in the dependencies group by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1225">golangci/golangci-lint-action#1225</a></li> <li>build(deps-dev): bump the dev-dependencies group with 2 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1227">golangci/golangci-lint-action#1227</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/mattjohnsonpint"><code>@mattjohnsonpint</code></a> made their first contribution in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1218">golangci/golangci-lint-action#1218</a></li> <li><a href="https://github.com/HaraldNordgren"><code>@HaraldNordgren</code></a> made their first contribution in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1230">golangci/golangci-lint-action#1230</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/golangci/golangci-lint-action/compare/v7.0.0...v7.0.1">https://github.com/golangci/golangci-lint-action/compare/v7.0.0...v7.0.1</a></p> <h2>v7.0.0</h2> <!-- raw HTML omitted --> <p>⚠️ <strong>The GitHub Action v7 supports golangci-lint v2 only.</strong> ⚠️</p> <h2>What's Changed</h2> <h3>Changes</h3> <ul> <li>feat: golangci-lint v2 support by <a href="https://github.com/ldez"><code>@ldez</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1198">golangci/golangci-lint-action#1198</a></li> </ul> <h3>Documentation</h3> <ul> <li>docs: update annotation permissions by <a href="https://github.com/ldez"><code>@ldez</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1203">golangci/golangci-lint-action#1203</a></li> <li>docs: fix checks permissions for annotations by <a href="https://github.com/kema-dev"><code>@kema-dev</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1204">golangci/golangci-lint-action#1204</a></li> </ul> <h3>Dependencies</h3> <ul> <li>build(deps-dev): bump the dev-dependencies group with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/1207">golangci/golangci-lint-action#1207</a></li> </ul> <h2>New Contributors</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
ddd694acdf |
Fix the image reference for prod: from v1.3.0 to 1.3.0 (#669)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR fixes the docs and the image reference for prod since they don't expect to have the v prefix there. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
ea01d06377 |
Deploy v1.3.0 to production (#668)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR bumps prod to v1.3.0 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
f5ed8728d4 |
Split deploying to prod and staging (#666)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR splits the workflows for deploying to prod and staging easing the use of gitops flows for promotions. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
3592b2cc0c |
Add the rest of the tag descriptions (#661)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
6d110bf99e |
Use distribution/reference for parsing OCI references (#651)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR addresses the feedback from #634 around: * Use a proper library - https://github.com/distribution/reference, instead of the implementing the OCI parsing ourselves (note: left the tests so we can ensure we are not breaking any existing behavior) * Updating one of the error messages to now assume MCPB. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
5aff088839 |
Update the cache use in our workflows (#653)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> While debugging https://github.com/modelcontextprotocol/registry/pull/631 noticed the cache was weirdly implemented, so the following PR updates the caching strategy across a few of our CI workflows. - Replaced manual actions/cache with the built-in `cache: true` of setup-go - Switched from manual golangci-lint installation to their official golangci-lint-action - Removed redundant go mod download commands - Added cache to the deployment pipeline for both staging and production (we should see faster Pulumi deployments) - Same for the release workflow so hopefully faster release builds ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> No ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
087d8085b7 |
Replace / with - for operation IDs (#660)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Follow up from #658 addressing the feedback from @tadasant ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
3df83c99b0 |
docs(openapi): add openapi for search, updated_since, version params (#654)
Updating openapi.yaml to be in sync with latest changes. Funcitonality for search param introduced back in https://github.com/modelcontextprotocol/registry/pull/374 ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> ## How Has This Been Tested? N/A ## Breaking Changes N/A ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [x] I have added or updated documentation as needed --------- Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
cce5e5df46 |
feat: add OpenAPI tags for improved SDK generation and API organization (#655)
## Summary Adds OpenAPI tags to improve SDK generation and API documentation organization, as discussed in #644. ## Changes - **Go Code**: Define tag metadata (name + description) in `internal/api/router/router.go` using Huma's `api.OpenAPI().Tags` - **Reference Spec**: Update `docs/reference/api/openapi.yaml` to match the generated spec - **Tags Added**: servers, publish, auth, admin, health, ping ## Benefits - ✅ Improved SDK generation with proper service grouping (e.g., `serversService`, `publishService`) - ✅ Better API documentation organization in Scalar UI, Swagger UI, and other tools - ✅ Code-first approach ensures reference spec stays in sync via compliance tests ## Testing - ✅ Compliance test passes: `go test -v ./internal/api -run TestOpenAPIEndpointCompliance` - ✅ All 4 reference endpoints verified as implemented - ✅ TypeScript SDK regenerated successfully with proper tag-based grouping ## Related Closes #644 |
||
|
|
1a7cd97099 |
Introduce v0.1 version of the API (#658)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR adds a new v0.1 API version. The goal is to mark v0.1 as a "freeze" point while keeping v0 as the moving target for new features so integrators can start building on top of something stable(r). Details: * This change is quite simple - we re-register the same handlers twice, once as `v0` and once as `v0.1` * Going forward, we'll keep v0.1 frozen while we add changes either on top of both (non-breaking) or we'll have to branch if breaking changes are necessary * We all acknowledge this is not exactly best-practice, but it gives us a way to gather feedback and allow clients to start integrating with the API without breaking them (**note** this implies a follow up PR that would branch the handlers used in v0.1). * For integrators/clients: please provide your feedback - what works well, what doesn't so we can take this into account going towards GA. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> No, this just adds a new API version alongside the existing one. ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Fixes: #649 Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
69f45c459c |
build(deps): bump golang.org/x/mod from 0.28.0 to 0.29.0 (#647)
Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.28.0 to
0.29.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="
|
||
|
|
632cbce815 |
Refactor package types to use dedicated schema types per package type (NPM, PyPI, NuGet, OCI, MCPB) (#634) | ||
|
|
5055c79531 |
Fix sync-db workflow: k8up restore job detection and timing issues (#641)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR addresses the failing sync job - https://github.com/modelcontextprotocol/registry/actions/runs/18374711984/job/52345853050 **Root Cause** 1. Job detection failure: The workflow was looking for a job with a specific labeling pattern (k8up.io/owned-by=restore), but k8up creates jobs with a naming convention `restore-<restore-name>` 2. Race condition: The cleanup step (with if: always()) was deleting the prod-to-staging-sync-credentials secret even when the restore job hadn't been created yet or was still running **The Fix** 1. Updated job detection logic: Now searches for jobs by name pattern restore-$RESTORE_NAME instead of relying on labels 2. Added better diagnostics: If the job isn't found, the workflow now shows: - Restore resource status - Any existing restore jobs - k8up operator logs 3. Fixed cleanup race condition: The cleanup step now waits up to 2 minutes for any running restore jobs to complete before deleting credentials 4. Improved error handling: Better logging when restore jobs fail, including checking if credentials still exist **The changes ensure:** - The workflow correctly finds the k8up restore job - Credentials aren't deleted while jobs are still running - Better visibility into failures for easier debugging ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
036c935733 |
Add Remote MCP and link for Registry project (#640)
<!-- Provide a brief summary of your changes --> Adds a remote mcp server so that you can browse the mcp registry using MCP - all remote, so you only need a URL `https://registry-mcp.remote-mcp.com/` ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
8de5283995 |
Introduce a cron job that syncs the prod base into staging (#633)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR adds a workflow that should: * Runs daily but also can be manually triggered * Drops the staging database and copies the prod database into it This should improve our release confidence by reducing the likelihood of regressions or unexpected breakages. Copy from Claude: ```bash What This Does: 1. Connects to prod → Extracts backup credentials 2. Switches to staging → Configures backup access 3. Creates restore PVC → 50GB temporary storage 4. Triggers k8up restore → Downloads latest prod backup 5. Waits for restore → With proper job discovery 6. Finds PostgreSQL PVC → Dynamically 7. Scales down DB → Safely 8. Copies data → With validation and backup 9. Scales up DB → With pod creation waiting 10. Verifies DB → Tests tables and queries 11. Cleans up → Removes temporary resources ``` ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> No ## Breaking Changes <!-- Will users need to update their code or configurations? --> No (I assume no one relies on staging keeping its state) ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> Co-authored-by: Adam Jones <adamj@anthropic.com> |
||
|
|
7d1a6f0252 |
Fix link to MCP server architecture documentation (#639)
Updated the link to MCP server architecture documentation. <!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Fixes #638 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
568748e4bf |
Add tooling to auto-generate server.schema.json from OpenAPI spec (#629)
This PR adds a Go tool that extracts the ServerDetail schema from
openapi.yaml and generates server.schema.json, ensuring the two specs
stay in sync.
## Key Changes
### New Tooling
- **Go tool** at `tools/extract-server-schema/` that auto-discovers all
schemas referenced by ServerDetail and extracts them from OpenAPI
- **make targets**: `generate-schema` (generates schema) and
`check-schema` (verifies sync)
- `check-schema` is now included in `make validate` and `make check`
### Preserved Validation Constraints
The initial auto-generated schema lost many important validation rules
and descriptive guidance from the hand-crafted version. The OpenAPI spec
has been updated to preserve:
**Security & Descriptions:**
- Command injection security warning on Arguments
- Detailed field descriptions with usage guidance
- `placeholder` field for Input schema
**Validation Constraints:**
- `fileSha256` pattern validation (`^[a-f0-9]{64}$`)
- Package version restrictions (minLength: 1, no "latest")
- `transport` as required field in Package
- ServerDetail `name` pattern and length constraints (3-200 chars)
- Description, title, and version length limits
**Documentation:**
- Repository field descriptions (url, source, id, subfolder)
- PositionalArgument `valueHint` explains transport URL substitution
- Updated examples to match hand-crafted version (Weather API theme)
**Intentional Changes:**
- Removed `additionalProperties` constraints for flexibility
- Updated schema title to be more descriptive
- Added `$comment` noting auto-generation
See the commit "Preserve validation constraints in auto-generated
server.schema.json" for details.
### Fixed Missing Package.transport
- Added `transport` field to OpenAPI Package schema (was in Go model at
`pkg/model/types.go:30` but missing from OpenAPI)
- Split transport types into three separate schemas with proper
discriminated unions:
- `StdioTransport` - Only requires `type: stdio`
- `StreamableHttpTransport` - Requires `type` and `url`, supports
`headers`
- `SseTransport` - Requires `type` and `url`, supports `headers`
- `Package.transport` uses `anyOf` with all three types
- `ServerDetail.remotes` uses `anyOf` with only remote types (no stdio)
### Other Improvements
- Added `GOTOOLCHAIN=auto` to Makefile for Go 1.25 compatibility
- Added `DRIFT_ANALYSIS.md` documenting all schema drift issues found
between specs
## Benefits
**Single Source of Truth**: The OpenAPI spec now serves as the
authoritative schema definition, with server.schema.json automatically
derived from it.
**Better Validation**: All critical validation rules (patterns, length
constraints, required fields) and security warnings are preserved in the
generated schema.
**Improved Developer Experience**:
- Schema changes only need to be made in one place (openapi.yaml)
- CI validation ensures specs never drift apart
- Clear auto-generation comment prevents manual edits
## Validation
✅ All 20 examples validate correctly
✅ Lint passes with 0 issues
✅ Schema is in sync with OpenAPI
✅ All validation constraints from hand-crafted schema preserved
---------
Co-authored-by: Claude <noreply@anthropic.com>
|
||
|
|
a09ae89b4c |
Align golang types with openapi.yaml schema (#628)
Change Format constant from `file_path` to `filepath` to match the OpenAPI schema definition. This is not used by any servers yet, nor is it enforced by the database, so it's safe to change. |
||
|
|
66993e9121 |
Add icon support to server.json schema (#620)
Implements icon support based on the Model Context Protocol specification, allowing servers to specify display icons with optional size, MIME type, and theme variants. ## Changes - Add `Icon` type to `pkg/model/types.go` with struct tags for automatic API validation - Add `icons` field to `ServerJSON` in `pkg/api/v0/types.go` - Add icon validation in `internal/validators/validators.go`: - Only HTTPS URLs allowed (no HTTP or data URIs) - Maximum URL length of 255 characters - Validates absolute URLs with proper scheme - Update JSON schema and OpenAPI documentation with Icon definitions - Add comprehensive test cases for icon validation - Add example icon to seed.json (Airtable server) - Change `websiteUrl` validation to HTTPS-only for consistency ## Implementation Details The implementation uses a two-layer validation architecture: 1. **Huma framework** validates struct tags (`required`, `maxLength`, `enum`, `pattern`) and returns 422 for violations 2. **Custom validators** handle business logic (HTTPS scheme requirement, absolute URL requirement) and return 400 for violations This approach leverages Huma's automatic validation while keeping business-specific rules in the validator layer. ## Icon Field Specification - `src` (required): HTTPS URL to icon resource, max 255 characters - `mimeType` (optional): One of `image/png`, `image/jpeg`, `image/jpg`, `image/svg+xml`, `image/webp` - `sizes` (optional): Array of size strings in "WxH" format or "any" for scalable formats - `theme` (optional): Either "light" or "dark" to indicate intended background Multiple icons can be provided (e.g., for different themes or sizes). |
||
|
|
4f453ff2bd |
Drop GET /v0/servers/{serverName} endpoint (#618)
Remove redundant endpoint as suggested in #617. Clients should now use `GET /v0/servers/{serverName}/versions/latest` instead (using `latest` as a special version value in the existing endpoint). This simplifies the API surface and reduces implementation burden for subregistries, while maintaining a clear migration path for consumers. ## Changes - Removed `GET /v0/servers/{serverName}` endpoint - Updated `GET /v0/servers/{serverName}/versions/{version}` to accept `latest` as special version - Updated all tests to use new endpoint pattern - Updated documentation and OpenAPI spec - Added breaking change notice to CHANGELOG Fixes #617 Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
6d2001b831 |
Make repository id optional in OpenAPI spec (#621)
The 'id' field in the Repository schema is now optional in both openapi.yaml and server.schema.json for consistency. |
||
|
|
68e5ffd56f |
Add presentation from MCP Dev Summit October 2025 (#624)
Some folks have been asking for the slides from the recent [Dev Summit](https://mcpdevsummiteurope2025.sched.com/) presentation, and figure this is the best place to store them. |
||
|
|
9ce229d337 |
Recommended server.json schema field descriptions and new Input placeholder property (#601)
- Clarified `value` field description to remove incorrect 'default'
wording
- Improved `valueHint` description to clarify its form and purpose
(labels and variable substitution)
- Fixed NamedArgument `description` to use correct flag syntax (--flag
{value})
- Enhanced `default` field description with guidance on valid values and
when to use placeholder instead
- Added optional Input `placeholder` field for input guidance and
examples
<!-- Provide a brief summary of your changes -->
## Motivation and Context
After implementing a configuration UX for the registry supporting all
schema elements, performing schema validation on all published servers
and analyzing failures, and hand reviewing approximately a hundred
server configurations, I found a number of concerning issues
(essentially misconfigurations, verified by the docs of the server in
question, which often did not fail schema validation). I also found
"proper" configurations which disagreed with the schema guidance (for
example, all named args usage).
I documented those issues and my recommendations here:
https://github.com/modelcontextprotocol/registry/discussions/572
The fairly modest changes in this PR will address these issues (or at
least make the correct usage more clear so that we can give more
explicit guidance that is consistent with the new schema, and generally
clean up these misconfiguration).
## How Has This Been Tested?
I used my own schema validation script to apply this schema to all
published servers. The changes are only documentation (description
updates) and the addition of a new field property, so no validation
behavior change was intended nor was any observed.
## Breaking Changes
No breaking changes
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [X] New feature (non-breaking change which adds functionality)
- [X] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [X] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
|
||
|
|
44e35020b0 |
Add optional title field to server.json schema (#608)
## Summary Introduces a new optional `title` field for MCP servers to provide a clean, human-readable display name that clients and subregistries can use for display purposes. Fixes #606 ## Changes - Added `title` field to `ServerJSON` type (optional, max 100 chars) - Added validation to reject titles ending with 'MCP Server', 'MCP server', or 'MCP' suffixes - Updated JSON schema and OpenAPI specification - Added comprehensive test coverage for title validation - Updated all documentation examples to demonstrate the new field ## Validation The title field: - Is optional (can be omitted) - Must not be only whitespace if provided - Must not end with MCP-related suffixes (case-insensitive) - Can contain 'MCP' in the middle (e.g., "MCP Weather API" is valid) Examples: - ✅ Valid: "GitHub", "Weather API", "Slack Integration" - ❌ Invalid: "GitHub MCP", "Weather MCP Server", "Slack-MCP" --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
44950c23bb |
Enforce schema validation on the publish and edit API level (#598)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR: * Enforces schema validation on the API level (requests without schema or older schema will fail) * Updates the unit tests and examples to match that ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> **Note this can be considered breaking if clients have not included it before.** ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
e0f30f1a29 |
Simplify OpenAPI schema by merging Server into ServerDetail (#612)
This PR simplifies the OpenAPI schema by merging the `Server` component into `ServerDetail`, addressing the issue where the `Server` component was never used independently. ## Changes - Merged all Server properties directly into ServerDetail in both OpenAPI spec and JSON schema - Removed allOf construct for clearer, standalone definitions - Deleted unused Server components ## Benefits - Clearer schema structure - Easier to understand without inheritance tracing - Reduced maintenance complexity - No functionality loss ## Validation All schemas and documentation examples continue to validate successfully. Resolves #609 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: adam jones <domdomegg@users.noreply.github.com> |
||
|
|
c130c5017e |
Update complete.md to reference the latest release assets (#615)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Noticed a few leftover places where we were referencing the assets by their version instead of using latest. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
1592666f26 |
build(deps): bump github.com/coreos/go-oidc/v3 from 3.15.0 to 3.16.0 (#616)
Bumps [github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc) from 3.15.0 to 3.16.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/coreos/go-oidc/releases">github.com/coreos/go-oidc/v3's releases</a>.</em></p> <blockquote> <h2>v3.16.0</h2> <h2>What's Changed</h2> <ul> <li>refactor: Remove unused time injection from RemoteKeySet by <a href="https://github.com/ponimas"><code>@ponimas</code></a> in <a href="https://redirect.github.com/coreos/go-oidc/pull/466">coreos/go-oidc#466</a></li> <li>bump go to 1.24, remove 1.23 support, bump go-jose dependency, remove x/net dependency by <a href="https://github.com/wardviaene"><code>@wardviaene</code></a> in <a href="https://redirect.github.com/coreos/go-oidc/pull/467">coreos/go-oidc#467</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/wardviaene"><code>@wardviaene</code></a> made their first contribution in <a href="https://redirect.github.com/coreos/go-oidc/pull/467">coreos/go-oidc#467</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/coreos/go-oidc/compare/v3.15.0...v3.16.0">https://github.com/coreos/go-oidc/compare/v3.15.0...v3.16.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
7ff61e2d6e |
Use 'latest' tag for mcp-publisher downloads (#610)
## Summary
This PR removes version numbers from release asset names and updates
documentation to use GitHub's `latest` tag for mcp-publisher downloads.
## Changes
1. **Updated `.goreleaser.yaml`**: Removed `{{ .Version }}` from asset
name templates
- Changed from: `mcp-publisher_{{ .Version }}_{{ .Os }}_{{ .Arch }}`
- Changed to: `mcp-publisher_{{ .Os }}_{{ .Arch }}`
2. **Updated documentation**: Changed all download URLs to use `latest`
tag instead of version-pinned URLs
- `docs/guides/publishing/publish-server.md`
- `docs/guides/publishing/github-actions.md`
## Benefits
- Documentation stays automatically up-to-date without manual changes or
workflows
- Users always get the latest version by default
- Version pinning still possible using specific tags (e.g.,
`https://github.com/modelcontextprotocol/registry/releases/download/v1.2.3/mcp-publisher_darwin_amd64.tar.gz`)
- Simpler maintenance and better user experience
## Notes
The new asset naming will take effect with the next release. After that,
users can immediately start using the `latest` tag.
Fixes #607
|
||
|
|
53d67be5bd |
fix: seed from production API by default to ensure validation passes (#611)
Fixes #584 ## Summary Changes the default seed source from local file to production API with filtering to keep startup fast. This ensures local development environments mirror production behavior and all seed data passes validation by default. ## Changes - **Default seed source**: `https://registry.modelcontextprotocol.io/v0/servers?search=domdomegg` (4 servers) - Fast startup (~1-2 seconds) - All data passes validation - Production-like environment by default - **Updated `data/seed.json`**: Now contains filtered production data (4 servers) for offline development - **Clear documentation**: Added comments in `docker-compose.yml` and updated `README.md` and `.env.example` explaining: - How to use offline mode: `MCP_REGISTRY_SEED_FROM=data/seed.json` - How to fetch all servers: `MCP_REGISTRY_SEED_FROM=https://registry.modelcontextprotocol.io/v0/servers` - **Validation stays enabled**: `MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION=true` by default ## Why this approach Per @domdomegg's comment in #584, the goal is to make local environments as similar to production as possible. Using the production API with filtering achieves this while keeping startup fast. |
||
|
|
843783ac18 |
docs: make streamable-http the primary transport in examples (#602)
## Summary Changes `streamable-http` to be the recommended and primary transport type in documentation examples, while keeping SSE as a secondary option during the preview period. ## Changes - ✅ Update all primary remote server examples to use `streamable-http` - ✅ Reorder multi-transport examples to show `streamable-http` first - ✅ Add note that SSE is deprecated but still supported during preview - ✅ Update transport protocol requirements text to indicate `streamable-http` (recommended) and `sse` (deprecated) ## Context As noted in issue #487, the docs were using SSE as the primary example despite it being deprecated in the MCP specification (2025-06-18) in favor of streamable HTTP. This PR aligns the documentation with the spec while maintaining backward compatibility information for the preview period. Per maintainer feedback on the issue: - SSE is still supported during the preview phase - Eventually SSE support will be removed - The community would benefit from consistent messaging about the preferred transport ## Files Changed - `docs/guides/publishing/publish-server.md` - Main publishing guide - `docs/reference/server-json/generic-server-json.md` - Reference documentation with examples ## Approach This takes a balanced approach: - Makes streamable-http the clear primary/recommended option - Keeps SSE documented as supported during preview (not hidden) - Adds explicit note about deprecation status - Minimal changes, focused on examples and ordering Fixes #487 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
b04b013246 |
Add MCP registry cheat sheet project link (#600)
<!-- Provide a brief summary of your changes --> Add the MCP registry cheat sheet project link in `/docs/community-projects.md` ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> It will be beneficial to have a cheat sheet that describes what are the spaces of docs, organizes the spaces, and provides references to detailed docs/guides/references. With such cheat sheet, new users would quickly navigate in different spaces and find what commands and docs they need. More discussion at #540 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> No test needed. ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [ ] I have added appropriate error handling - [x] I have added or updated documentation as needed |
||
|
|
4f2b413dbc |
Enable gofmt in golangci (#597)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Enables gofmt in golangci-lint ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
ade1b797b2 |
Enable a gitops way of promoting to prod (#582)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR moves away from automatically promoting latest releases to production in favour of specifying the released version explicitly via a PR & Review process. Still sets the image tag to latest for now so we can enable it separately whenever we decide 👍 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
b2d346f94d |
Add myself to the maintainers list (#596)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> This would make it feel official 😃 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
aa0327352e |
build(deps): bump pulumi/actions from 6.5.0 to 6.6.0 in the actions group (#593)
Bumps the actions group with 1 update: [pulumi/actions](https://github.com/pulumi/actions). Updates `pulumi/actions` from 6.5.0 to 6.6.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pulumi/actions/releases">pulumi/actions's releases</a>.</em></p> <blockquote> <h2>v6.6.0</h2> <h2>What's Changed</h2> <ul> <li>Adding ARM support for win32 by <a href="https://github.com/Graham-Pedersen"><code>@Graham-Pedersen</code></a> in <a href="https://redirect.github.com/pulumi/actions/pull/1384">pulumi/actions#1384</a></li> <li>feat: Remove ANSI control chars from GitHub step Summary and PR comment by <a href="https://github.com/byian"><code>@byian</code></a> in <a href="https://redirect.github.com/pulumi/actions/pull/1312">pulumi/actions#1312</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Graham-Pedersen"><code>@Graham-Pedersen</code></a> made their first contribution in <a href="https://redirect.github.com/pulumi/actions/pull/1384">pulumi/actions#1384</a></li> <li><a href="https://github.com/byian"><code>@byian</code></a> made their first contribution in <a href="https://redirect.github.com/pulumi/actions/pull/1312">pulumi/actions#1312</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pulumi/actions/compare/v6...v6.6.0">https://github.com/pulumi/actions/compare/v6...v6.6.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pulumi/actions/blob/main/CHANGELOG.md">pulumi/actions's changelog</a>.</em></p> <blockquote> <h1>CHANGELOG</h1> <h2>HEAD (Unreleased)</h2> <p><strong>(none)</strong></p> <hr /> <h2>6.6.0 (2025-09-29)</h2> <ul> <li>feat: Strip ansi control characters from GitHub step Summary and PR comment (<a href="https://redirect.github.com/pulumi/actions/pull/1312">#1312</a>)</li> </ul> <h2>6.4.0 (2025-07-16)</h2> <ul> <li>feat: Add <code>run-program</code> flag support for refresh, destroy, preview, and up/update commands (<a href="https://redirect.github.com/pulumi/actions/pull/1376">#1376</a>)</li> </ul> <h2>6.3.0 (2025-05-08)</h2> <ul> <li> <p>feat: support <code>--exclude</code> and <code>--exclude-dependents</code> flags (<a href="https://redirect.github.com/pulumi/actions/pull/1363">#1363</a>)</p> </li> <li> <p>feat: verbosity and debug inputs to enable debug options (<a href="https://redirect.github.com/pulumi/actions/pull/1046">#1046</a>)</p> </li> <li> <p>fix: update "user agent" string to pulumi/actions@v6 (<a href="https://redirect.github.com/pulumi/actions/pull/1367">#1357</a>)</p> </li> </ul> <h2>6.2.0 (2025-03-05)</h2> <ul> <li>feat: support continue on error flag (--continue-on-error) (<a href="https://redirect.github.com/pulumi/actions/pull/1357">#1357</a>)</li> </ul> <h2>6.1.0 (2025-02-27)</h2> <ul> <li>feat: Add clickable View Live link to PR comments (<a href="https://redirect.github.com/pulumi/actions/pull/1355">#1355</a>)</li> </ul> <h2>6.0.1 (2025-01-13)</h2> <ul> <li> <p>fix: Make <code>pulumi login</code> respect configuration in <code>Pulumi.yaml</code> (<a href="https://redirect.github.com/pulumi/actions/pull/1299">#1299</a>)</p> </li> <li> <p>fix: Log stderr from commands (<a href="https://redirect.github.com/pulumi/actions/issues/1316">#1316</a>)</p> </li> <li> <p>fix: Make the <code>output</code> command work without having to be in a working directory that contains a Pulumi.yaml file. (<a href="https://redirect.github.com/pulumi/actions/pull/1327">#1327</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
3c9f330193 |
Update community projects with mcp-registry-spec-sdk (#594)
Replace Open Chat MCP Registry Client link with the mcp-registry-spec-sdk npm package. Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
6516f756f3 |
Use intermediate env vars for Pulumi passphrases (#595)
Addresses the security concern where secrets were directly interpolated in GitHub Actions run commands across multiple workflows. Following [GitHub's security best practices](https://docs.github.com/en/actions/reference/security/secure-use#use-an-intermediate-environment-variable), secrets are now passed through intermediate environment variables (matching the secret names: `PULUMI_STAGING_PASSPHRASE` and `PULUMI_PROD_PASSPHRASE`) before being written to files. ## Changes **deploy.yml:** - Fixed staging deployment (line 92) - Fixed production deployment (line 131) **cancel-pulumi-lock.yml:** - Fixed staging lock cancellation (line 62) - Fixed production lock cancellation (line 70) ## Benefits This approach: - Fixes the security issue with direct secret interpolation in 4 locations - Maintains compatibility with existing local development workflows - Keeps the Makefile unchanged - Uses environment variable names that match the secret names for clarity The key improvement is that `${{ secrets.X }}` is no longer expanded directly in the run commands, reducing the risk of accidental disclosure if GitHub's masking fails or is bypassed. |
||
|
|
e968cfdbca |
fix: renumber migrations to fix staging deployment (#592)
## Summary Fixes staging deployment by renumbering migrations to match what staging has already applied. ## Problem Staging already applied migration 008 (metadata separation) before we inserted the new cleanup migration. When we added the cleanup as 008 and renumbered metadata to 009, staging tried to apply 009 again and failed with "column already exists". ## Current State - **Staging**: Has run original 008 (metadata separation), marked as complete. Failed trying to run 009 (which is the same migration renumbered). - **Production**: Has not run either 008 or 009 yet. ## Solution - Rename `008_clean_invalid_data.sql` → `007a_clean_invalid_data.sql` - Rename `009_separate_official_metadata.sql` → `008_separate_official_metadata.sql` (back to original) ## How This Fixes It With this renumbering: 1. **Staging behavior**: - Sees 008 is already complete (the metadata migration it already ran) - Sees 007a as new and runs it, but it will be a no-op (skips because staging doesn't have the problematic production data) - Continues normally 2. **Production behavior**: - Runs 007a (cleanup migration) - removes invalid data - Runs 008 (metadata separation) - applies successfully because data is now clean - Both migrations run in the correct order as intended ## Testing - Verified migration order works correctly - Tested on empty database (test environment) - 007a skips as expected - Tested with production data snapshot - 007a cleans data, 008 applies successfully This is a critical fix to unblock staging deployment. |
||
|
|
272ee9322d |
fix: add server name validation and clean invalid data before migration 009 (#591)
## Summary This PR adds two important improvements to ensure data integrity: 1. **Adds server name format validation at the API layer** to match the database constraint from migration 008 2. **Includes migration 008 to clean up invalid data** before applying strict constraints in migration 009 ## Changes ### Server Name Validation - Enforces validation at the API layer matching the database constraint - **Namespace pattern**: `[a-zA-Z0-9][a-zA-Z0-9.-]*[a-zA-Z0-9]` - Must start and end with alphanumeric characters - Can contain dots and hyphens in the middle - **Name pattern**: `[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]` - Must start and end with alphanumeric characters - Can contain dots, underscores, and hyphens in the middle - Provides clear, user-friendly error messages indicating which part is invalid - Uses DRY approach with composed regex patterns ### Migration 008: Data Cleanup - Removes servers with invalid names or empty versions (5 servers affected in production) - Fixes invalid status values by setting them to 'active' (1 server affected) - Removes duplicate name+version combinations - Includes comprehensive safety checks to prevent accidental data loss - Must run before migration 009 which adds strict constraints ## Testing - All validator tests pass - Migration includes safety checks that match production data - CI verification included --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
e1f12d6b71 |
Add a workflow for cancelling stuck pulumi locks (#589)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR adds an easy way to cancel stuck pulumi jobs (could be temporary). ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
8bd13d5ed7 |
Apply gofmt formatting to all Go files (#588)
## Summary - Applied `gofmt -s -w` across the entire codebase to ensure consistent Go formatting - This will trigger a deployment with minimal code changes ## Test plan - [x] Pre-commit hooks pass - [x] No functional changes, formatting only 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
2d49e5b68c |
fix: prevent NULL status values during migration 008 (#587)
## Summary - Fixes migration 008 failing with "column contains null values" error - Adds COALESCE protection to handle 126 servers without status fields - Includes test utilities to reproduce and verify fixes with production data ## Problem Migration 008 was failing in production because: - 126 out of 781 servers have no `status` field in their JSON - When extracting `rec.value->>'status'`, these became NULL values - The `ALTER TABLE servers ALTER COLUMN status SET NOT NULL` constraint then failed ## Solution 1. **Prevent NULLs during migration**: Use COALESCE to provide 'active' default when status is NULL/empty 2. **Enhanced debugging**: Added RAISE NOTICE statements to log problematic values 3. **Safety check**: Double-check that throws exception if any NULLs remain 4. **Test utilities**: Created mirror_data tools to test migrations with real production data ## Testing Created and used `scripts/mirror_data/` tools to: - Fetch all 781 servers from production API - Load them into a test database - Verify the migration fix works correctly ### Results: - **Before fix**: 126 NULL status values created during migration - **After fix**: 0 NULL status values, all servers have valid status - Migration completes successfully with NOT NULL constraint ## Test plan - [x] Tested locally with production data using mirror_data tools - [x] Verified 0 NULL values after migration (vs 126 before) - [x] Confirmed NOT NULL constraint adds successfully - [ ] Deploy to staging and verify migration succeeds - [ ] Monitor production deployment 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
e39b008b41 |
Ensure we populate sane defaults for NULL values (#583)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR tries to ensure sane defaults for entries that for one reason or another have NULL values for some of their properties. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
3dc4f93370 |
fix: handle NULL status values in migration 008 (#578)
## Problem
Production deployment is failing with CrashLoopBackOff. Migration 008
fails with:
```
ERROR: column "status" of relation "servers" contains null values (SQLSTATE 23502)
```
## Root Cause
The migration extracts the `status` field from an unexpected location in
the data structure.
### Actual Data Structure (Before Migration)
In the current format, `status` is at the **top level** of the JSON, not
nested in official metadata:
```json
{
"name": "com.example/server",
"version": "1.0.0",
"status": "active", ← STATUS IS HERE (top level)
"_meta": {
"io.modelcontextprotocol.registry/official": {
"serverId": "uuid",
"publishedAt": "2025-09-01T00:00:00Z",
"isLatest": true
// NO STATUS FIELD HERE
}
}
}
```
For 120 out of 765 servers, the status field is **missing entirely**:
```json
{
"name": "com.biodnd/agent-ip",
"version": "0.1.2",
// ← NO STATUS FIELD AT ALL
"_meta": {
"io.modelcontextprotocol.registry/official": {
"serverId": "uuid",
"publishedAt": "2025-09-23T09:47:07Z",
"isLatest": true
// STILL NO STATUS FIELD HERE
}
}
}
```
### Original Migration Logic
```sql
IF official_meta IS NOT NULL THEN
UPDATE servers
SET
status = (official_meta->>'status'), -- Extracts NULL for all servers
```
**Result:**
- All 765 servers would have NULL status extracted
- Because `official_meta->>'status'` returns NULL (field doesn't exist
there)
- The migration tries to add `NOT NULL` constraint → fails
### Fixed Migration Logic
```sql
IF official_meta IS NOT NULL THEN
UPDATE servers
SET
status = COALESCE(NULLIF(rec.value->>'status', 'null'), 'active'),
```
**Result:**
- Extracts from top-level JSON where status actually exists
- `NULLIF(rec.value->>'status', 'null')` handles edge case of literal
string "null"
- `COALESCE(..., 'active')` provides fallback when status is missing
- All servers get valid status value
### Impact Breakdown
**645 servers with `"status": "active"`:**
- Before fix: Would extract NULL → migration fails
- After fix: Extracts "active" correctly
**120 servers with missing status field:**
- Before fix: Would extract NULL → migration fails
- After fix: Defaults to 'active' via COALESCE
## Example Servers with Missing Status
(First 9 discovered during investigation)
- com.biodnd/agent-ip
- io.github.jkakar/cookwith-mcp
- com.joelverhagen.mcp/Knapcode.SampleMcpServer
- io.github.Lyellr88/marm-mcp-server
- com.biodnd/agent-press
- io.github.timheuer/sampledotnetmcpserver
- io.github.CodeCraftersLLC/local-voice-mcp
- com.biodnd/agent-fin
- io.github.ruvnet/ruv-swarm
## Testing
Verified against production data (765 total servers):
- ✅ All servers have official metadata
- ✅ None have status in official metadata (expected)
- ✅ 645 have "status": "active" at top level
- ✅ 120 have missing status field (no field present)
- ✅ Fix extracts from correct location for all cases
## Impact
This unblocks production deployment. Once merged and released as v1.2.1,
the migration will:
1. Extract status from the correct location (top-level JSON)
2. Handle missing status fields with sensible defaults
3. Successfully add NOT NULL constraint
4. Allow pods to start normally
---
🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
||
|
|
bef665a442 |
build(deps): bump docker/login-action from 3.5.0 to 3.6.0 in the actions group (#577)
Bumps the actions group with 1 update: [docker/login-action](https://github.com/docker/login-action). Updates `docker/login-action` from 3.5.0 to 3.6.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/docker/login-action/releases">docker/login-action's releases</a>.</em></p> <blockquote> <h2>v3.6.0</h2> <ul> <li>Add <code>registry-auth</code> input for raw authentication to registries by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/887">docker/login-action#887</a></li> <li>Bump <code>@aws-sdk/client-ecr</code> to 3.890.0 in <a href="https://redirect.github.com/docker/login-action/pull/882">docker/login-action#882</a> <a href="https://redirect.github.com/docker/login-action/pull/890">docker/login-action#890</a></li> <li>Bump <code>@aws-sdk/client-ecr-public</code> to 3.890.0 in <a href="https://redirect.github.com/docker/login-action/pull/882">docker/login-action#882</a> <a href="https://redirect.github.com/docker/login-action/pull/890">docker/login-action#890</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.62.1 to 0.63.0 in <a href="https://redirect.github.com/docker/login-action/pull/883">docker/login-action#883</a></li> <li>Bump brace-expansion from 1.1.11 to 1.1.12 in <a href="https://redirect.github.com/docker/login-action/pull/880">docker/login-action#880</a></li> <li>Bump undici from 5.28.4 to 5.29.0 in <a href="https://redirect.github.com/docker/login-action/pull/879">docker/login-action#879</a></li> <li>Bump tmp from 0.2.3 to 0.2.4 in <a href="https://redirect.github.com/docker/login-action/pull/881">docker/login-action#881</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v3.5.0...v3.6.0">https://github.com/docker/login-action/compare/v3.5.0...v3.6.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
83432d8806 |
docs: add MCP Server for MCP Registry to community-projects (#579)
<!-- Provide a brief summary of your changes --> ## Motivation and Context Add MCP Server for MCP Registry to community-projects ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
a0bc09dbe1 |
Revert "docs: clarify release deployment process and enable manual deploy trigger"
This reverts commit
|
||
|
|
c40374c280 |
docs: clarify release deployment process and enable manual deploy trigger
- Add workflow_dispatch to deploy.yml for manual deployment triggers - Document that releases don't auto-deploy to production - Add instructions for deploying releases to production - Add verification steps for deployment 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|
|
df018fc43b |
Share more code between DNS and HTTP auth flows (#552)
<!-- Provide a brief summary of your changes --> ## Motivation and Context Currently the `dns` and `http` based auth flows share code well in the publisher tool. However there is a lot of duplication in the auth endpoint. This on it's own is not a problem but it does make enhancements to the proof record (the `v=MCPv1; ...` string) harder to keep in sync. This PR adds a `common.go` file to share logic between the two. This supports work I am prototyping for https://github.com/modelcontextprotocol/registry/issues/482. ## How Has This Been Tested? Added new test cases for the permissions. Ran them before and after the refactoring to ensure no behavior change. Ran existing UTs. Ran the integration tests. Manually exercised the flows locally. ## Breaking Changes None. ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
28220b0be6 |
Clarify the docs around open/closed source and public/private MCP servers (#573)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR adds more clarity to the docs around what's considered open source, closed source, public and private in the context of MCP servers. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
999cf9ecf4 |
docs: add community projects to registry list (#574)
Add three new community projects to the community-projects.md reference: - mcp-registry-cli: CLI tool for navigating registry servers - mcp-insights: Analytics and insights platform - Open Chat MCP Registry Client: TypeScript client implementation |
||
|
|
6972e542c3 |
docs: remove status field from server.json examples (#575)
## Summary
- Remove the `status` field from all server.json examples in
documentation
- Remove the deprecated server example that was primarily about
demonstrating the status field
- Update example count validation from 13 to 12
## Context
The `status` field was removed from the server.json schema in commit
|
||
|
|
a0117a629f |
docs: add community resources section with OtherVibes/mcp-publish-action (#544)
## Summary Add Community Resources section to GitHub Actions guide referencing OtherVibes/mcp-publish-action as requested in discussion #518. ## Changes - Add "Community Resources" section to `docs/guides/publishing/github-actions.md` - Include reference to OtherVibes/mcp-publish-action with appropriate disclaimers - Provide example usage and key features - Position after Tips section for discoverability - Structure allows for future community tool additions ## Context This addresses the community request in discussion #518 where @OtherVibes suggested adding a reference to their reusable GitHub Action in the publishing docs. The maintainers (@tadasant, @domdomegg) approved adding a community resources section with appropriate disclaimers. The implementation follows the original request to add the reference specifically to the GitHub Actions guide (`docs/guides/publishing/github-actions.md`) rather than creating a separate page. ## Benefits - Provides users with a streamlined, community-built option for MCP server publishing - Reduces workflow boilerplate for developers - Includes clear disclaimers about third-party tools - Maintains documentation cohesion by keeping everything in the relevant file Closes #518 --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> Co-authored-by: OtherVibes <othervibes@users.noreply.github.com> Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
3762542ddc |
Ensure registry API implements the reference openapi schema (#568)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR adds a simple unit test to ensure the served API handlers are a superset of the reference OpenAPI schema. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Fixes: https://github.com/modelcontextprotocol/registry/issues/567 --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
5a584b86f4 |
Add community-projects reference document (#569)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following adds a doc to reference community projects. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
e992562a78 |
fix(spec): registryType, identifier, version should be required fields (#548)
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
This seems to be a regresion after rename, those fields were originally
required:
|
||
|
|
b21c6f564d |
Changes on the server.json format and the API (#562) | ||
|
|
4962609697 |
docs: update download link of mcp-publisher in GitHub Actions to 1.1.0 (#565)
This pull request makes a minor update to the documentation for installing the MCP Publisher in GitHub Actions workflows. The change updates the installation command to use version 1.1.0 of the MCP Publisher instead of version 1.0.0. ## Motivation and Context The `mcp-publisher` version in GitHub Actions has to be updated so it can publish the MCP server to the newest version of MCP Registry. ## How Has This Been Tested? Documentation update only. No test needed. ## Breaking Changes No ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [ ] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context None |
||
|
|
f58bce806a |
docs: Force white background for ecosystem diagram (#564)
## Motivation and Context The diagram looks horrible when viewed in dark mode. Re-exported with white background enabled, preserving Excalidraw diagram source embedded. ## How Has This Been Tested? N/A ## Breaking Changes N/A ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update |
||
|
|
76365a61e3 |
fix: use io.LimitReader in key fetcher (#558)
## Motivation and Context Replace server-only `http.MaxBytesReader(nil, ...)` with `io.LimitReader` to cap the fetched body to 4KB in key fetcher. This avoids passing a `nil` ResponseWriter and aligns with Go idioms. If more than 4KB is received, return a clear error. Previously `MaxBytesReader` returned a misleading `http: request body too large` error, which is server-oriented. With this change the error becomes `HTTP auth key response too large`. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> Add tests covering success, oversized bodies, connection failure, non-200 status, and read failures. This covers almost all lines of `FetchKey` method of `DefaultHTTPKeyFetcher`. For tests, I also added a new initialiser `NewDefaultHTTPKeyFetcherWithClient` so that the HTTP client could be modified for test use. Tests use `httptest.NewTLSServer` plus a helper to construct a client pinned to the test server. `auth` package test coverage increased from 56.8% to 59.3%. ## Breaking Changes <!-- Will users need to update their code or configurations? --> None. ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Ville Vesilehto <ville@vesilehto.fi> |
||
|
|
f0cce8559f |
build(deps): bump actions/cache from 4.2.4 to 4.3.0 in the actions group (#545)
Bumps the actions group with 1 update: [actions/cache](https://github.com/actions/cache). Updates `actions/cache` from 4.2.4 to 4.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/cache/releases">actions/cache's releases</a>.</em></p> <blockquote> <h2>v4.3.0</h2> <h2>What's Changed</h2> <ul> <li>Add note on runner versions by <a href="https://github.com/GhadimiR"><code>@GhadimiR</code></a> in <a href="https://redirect.github.com/actions/cache/pull/1642">actions/cache#1642</a></li> <li>Prepare <code>v4.3.0</code> release by <a href="https://github.com/Link"><code>@Link</code></a>- in <a href="https://redirect.github.com/actions/cache/pull/1655">actions/cache#1655</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/GhadimiR"><code>@GhadimiR</code></a> made their first contribution in <a href="https://redirect.github.com/actions/cache/pull/1642">actions/cache#1642</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/cache/compare/v4...v4.3.0">https://github.com/actions/cache/compare/v4...v4.3.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions/cache/blob/main/RELEASES.md">actions/cache's changelog</a>.</em></p> <blockquote> <h1>Releases</h1> <h3>4.3.0</h3> <ul> <li>Bump <code>@actions/cache</code> to <a href="https://redirect.github.com/actions/toolkit/pull/2132">v4.1.0</a></li> </ul> <h3>4.2.4</h3> <ul> <li>Bump <code>@actions/cache</code> to v4.0.5</li> </ul> <h3>4.2.3</h3> <ul> <li>Bump <code>@actions/cache</code> to v4.0.3 (obfuscates SAS token in debug logs for cache entries)</li> </ul> <h3>4.2.2</h3> <ul> <li>Bump <code>@actions/cache</code> to v4.0.2</li> </ul> <h3>4.2.1</h3> <ul> <li>Bump <code>@actions/cache</code> to v4.0.1</li> </ul> <h3>4.2.0</h3> <p>TLDR; The cache backend service has been rewritten from the ground up for improved performance and reliability. <a href="https://github.com/actions/cache">actions/cache</a> now integrates with the new cache service (v2) APIs.</p> <p>The new service will gradually roll out as of <strong>February 1st, 2025</strong>. The legacy service will also be sunset on the same date. Changes in these release are <strong>fully backward compatible</strong>.</p> <p><strong>We are deprecating some versions of this action</strong>. We recommend upgrading to version <code>v4</code> or <code>v3</code> as soon as possible before <strong>February 1st, 2025.</strong> (Upgrade instructions below).</p> <p>If you are using pinned SHAs, please use the SHAs of versions <code>v4.2.0</code> or <code>v3.4.0</code></p> <p>If you do not upgrade, all workflow runs using any of the deprecated <a href="https://github.com/actions/cache">actions/cache</a> will fail.</p> <p>Upgrading to the recommended versions will not break your workflows.</p> <h3>4.1.2</h3> <ul> <li>Add GitHub Enterprise Cloud instances hostname filters to inform API endpoint choices - <a href="https://redirect.github.com/actions/cache/pull/1474">#1474</a></li> <li>Security fix: Bump braces from 3.0.2 to 3.0.3 - <a href="https://redirect.github.com/actions/cache/pull/1475">#1475</a></li> </ul> <h3>4.1.1</h3> <ul> <li>Restore original behavior of <code>cache-hit</code> output - <a href="https://redirect.github.com/actions/cache/pull/1467">#1467</a></li> </ul> <h3>4.1.0</h3> <ul> <li>Ensure <code>cache-hit</code> output is set when a cache is missed - <a href="https://redirect.github.com/actions/cache/pull/1404">#1404</a></li> <li>Deprecate <code>save-always</code> input - <a href="https://redirect.github.com/actions/cache/pull/1452">#1452</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
ad49033b27 |
Update prod to follow the release cycles (#547)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR updates production to automatically receive new stable releases when GitHub releases are cut while staging will continue testing the latest main branch builds Deails: - Configures production deployment to **use latest stable** releases instead of main branch -`ghcr.io/modelcontextprotocol/registry:latest`(stable releases). Released CLI matches version of the prod service API. - Staging continues to **use main branch** for testing latest development code - `ghcr.io/modelcontextprotocol/registry:main` (latest development). Building the CLI from main would match the version of the staging service API. - Added environment-based Docker image tag selection logic ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> No ## Breaking Changes <!-- Will users need to update their code or configurations? --> No ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
025800aadb |
docs: update download link of mcp-publisher to 1.1.0 (#551)
<!-- Provide a brief summary of your changes --> ## Motivation and Context Update download link of mcp-publisher from 1.0.0 to 1.1.0 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
747ad310bb |
Fix atomic latest version update to prevent missing isLatest flags (#530)
## Summary Fixes a race condition where a server could have no version marked as `isLatest` if the database operations failed independently. ## Changes - **CreateServer signature**: Now accepts `oldLatestVersionID` parameter to atomically unmark previous latest version - **PostgreSQL implementation**: Uses a transaction to ensure UPDATE (unmark old latest) and INSERT (create new version) happen atomically - **Service layer**: Maintains `WithPublishLock` for concurrent operation serialization - **Two-level protection**: Advisory lock prevents races, transaction ensures atomicity ## Test plan - [x] Existing race condition tests pass - [x] Integration tests pass - [x] Unit tests pass 🤖 Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
ae00f70eaf |
Remove leftover psql references (#541)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> Housekeeping on leftover psql references ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
31e16a18ec |
Extra validation for registries (#484)
<!-- Provide a brief summary of your changes --> Package identifier and version are required for some of the registries else we won't be able to pull the meta data to validate the packages. ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> This is in continuation to https://github.com/modelcontextprotocol/registry/pull/424 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> Unit test. ## Breaking Changes <!-- Will users need to update their code or configurations? --> No ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Co-authored-by: Avish Porwal <avishporwal@microsoft.com> |
||
|
|
ddcc586842 |
Remove the in-memory database (#537)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The follow PR removes the in-memory database option from the registry. We had a chat about this with @domdomegg and although it is supposed to be convenient, it isn't that useful in reality. We want to test and develop the registry in a setup that is closer to the environment it is supposed to be run. One of the main reasons are: * We don't use it anywhere else besides unit testing and potentially local development. Instead we should use postgresql for reliable results (in-memory was actually giving false positive results) * We have to keep maintaining it and make sure it mimics the behaviour we have for postgresql which is not yielding a lot of value ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> Yes, I've updated the test unit make target to run in the postgresql environment and now we can see the race condition issue happening. ## Breaking Changes <!-- Will users need to update their code or configurations? --> No ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
9d184933c5 |
fix: update server.json examples in publishing guide to be valid (#524)
- Add missing required fields (description, transport) to all server.json examples - Add $schema field to examples that were missing it - Add version field to MCPB example - Create validation tool for guide examples with $schema - Integrate guide validation into Makefile and CI Fixes #507 🤖 Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: adam jones <domdomegg@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
5746e7e99b |
Remove OIDC authorization flow to fix data race vulnerability (#526)
## Summary Fixes a concurrent map access vulnerability in the OIDC handler that could cause remote unauthenticated DoS. ## Changes - Removed OIDC authorization flow endpoints ( and ) - Removed the unsynchronized map that caused the data race - Kept only the OIDC token exchange endpoint () - Simplified by removing OAuth2 flow dependencies The map was being accessed concurrently by the start (write) and callback (read/delete) endpoints without synchronization, causing runtime panics. Since the token exchange flow doesn't require session state, removing the authorization flow eliminates the vulnerability entirely. |
||
|
|
60c801c0c2 |
Fix race conditions in concurrent server publishing (#528)
## Summary Fixes race conditions in concurrent server publishing that could result in data integrity violations: - Multiple versions marked as `isLatest=true` for the same server - Duplicate (serverId, version) combinations - Same server name assigned different serverIDs ## Solution Uses two complementary approaches for correctness: ### 1. PostgreSQL Advisory Locks - Serializes concurrent publishes per server name using `pg_advisory_xact_lock` - Uses FNV-1a hash to convert server name to lock ID - Transaction-scoped locks auto-release on commit/rollback - **Required after #465**: The serverId introduction means concurrent publishes must atomically coordinate whether to reuse an existing serverId (for additional versions) or generate a new one (for first version). Without locks, race conditions would assign different serverIDs to versions of the same server. ### 2. Unique Constraints (Migration 007) Two new indexes provide data integrity guarantees: - **idx_unique_server_version**: Ensures (serverId, version) is unique across all versions - **idx_unique_latest_version**: Partial index ensuring only one version per serverId has `isLatest=true` These constraints serve as defense-in-depth safety nets. Even if lock logic had a bug, the database would reject integrity violations. Also drops redundant `idx_servers_version_id` since `version_id` is already the primary key. ## Why WithPublishLock validation is needed after #465 The `ctx.Err()` check at the start of `WithPublishLock` is critical because: 1. After #465 introduced serverId, the publish flow must atomically check existing versions and assign/reuse serverId 2. If the context is cancelled during lock acquisition, we could deadlock 3. Checking ctx validity before acquiring locks prevents these deadlocks ## Testing Added `TestPublishConcurrentVersionsNoRace` with 100 concurrent goroutines publishing different versions of the same server. All succeed with: - Exactly one version marked as latest - All versions sharing the same serverId - No duplicate (serverId, version) combinations NB: this only covers the in memory db, not the postgres db. It'd be nice to write tests for this one as well, but our current setup is a bit annoying for this. Separately looking into ways to easily run all our tests with real postgres and ideally scrap memory.go completely. |
||
|
|
53f808a2c1 |
add migraiton file to convert snake case to camel case (#522)
## Motivation and Context - Make all entries in current database matching the new schema ## How Has This Been Tested? - locally ## Breaking Changes - Yes ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [X] Breaking change (fix or feature that would cause existing functionality to change) - [X] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [X] My code follows the repository's style guidelines - [X] New and existing tests pass locally - [ ] I have added appropriate error handling - [X] I have added or updated documentation as needed Before migration: ``` { "name": "io.github.kenjihikmatullah/productboard-mcp", "description": "Integrate the Productboard API into agentic workflows via MCP", "status": "active", "repository": { "url": "https://github.com/kenjihikmatullah/productboard-mcp", "source": "github", "id": "939104710" }, "version": "0.0.1-seed", "packages": [ { "registry_type": "npm", "identifier": "productboard-mcp", "version": "1.0.1", "transport": { "type": "stdio" } } ], "_meta": { "io.modelcontextprotocol.registry/official": { "id": "00613acb-73e2-4f93-8b96-296df17316c8", "published_at": "0001-01-01T00:00:00Z", "updated_at": "0001-01-01T00:00:00Z", "is_latest": true } } } ``` After migration: ``` { "name": "io.github.kenjihikmatullah/productboard-mcp", "description": "Integrate the Productboard API into agentic workflows via MCP", "status": "active", "repository": { "url": "https://github.com/kenjihikmatullah/productboard-mcp", "source": "github", "id": "939104710" }, "version": "0.0.1-seed", "packages": [ { "registryType": "npm", "identifier": "productboard-mcp", "version": "1.0.1", "transport": { "type": "stdio" }, } ], "_meta": { "io.modelcontextprotocol.registry/official": { "serverId": "83cfe55c-55c5-4e7e-b9c0-6d7d369f52ed", "versionId": "00613acb-73e2-4f93-8b96-296df17316c8", "publishedAt": "0001-01-01T00:00:00Z", "updatedAt": "0001-01-01T00:00:00Z", "isLatest": true } } } |
||
|
|
56e8b4879b |
Introduce serverId, rename id to versionId (#465)
Wielded Claude Code to do this; across many iterations and have reviewed all the code + largely rewritten the PR commentary here. This PR implements the server ID consistency changes from [#396](https://github.com/modelcontextprotocol/registry/issues/396). Our goal is to: - Rename `id` to `versionId` to make it clear that it is the ID for a specific version, not a server - Introduce `serverId` as a net new concept. This will be 1:1 with `name`. While not strictly necessary (we could just use name as a PK), the convention of having a UUID as an ID on our objects is just a helpful subjective architecture decision. Plus also leaves open the door to reconsidering the "should we allow renames" question. ## Key Changes ### 🗄️ Database Schema Changes - **Renamed**: `id` column → `version_id` (unique identifier for each server version) ### 📋 Metadata Structure Updates - **JSON Schema**: Updated `_meta.io.modelcontextprotocol.registry/official` to include: - `serverId`: Consistent ID across all versions of a server - `versionId`: Unique ID for this specific version (renamed from `id`) ### 🔧 API Endpoint Updates - **New endpoint structure**: Changed from version-ID-based to server-ID-based URLs: - `GET /v0/servers/{server_id}` - Get latest version of server - `GET /v0/servers/{server_id}?version=X.X.X` - Get specific version - `GET /v0/servers/{server_id}/versions` - List all versions of a server - `PUT /v0/servers/{server_id}?version=X.X.X` - Edit specific version - **Consistent URL patterns**: All server endpoints now use `server_id` as the primary identifier ### Database Migration Strategy The migration (`005_add_server_id_rename_version_id.sql`): 1. Adds new `version_id` column 2. Generates deterministic UUIDs for servers with the same name 3. Updates JSON metadata to add `serverId` and rename `id` to `versionId` 4. Copies existing `id` values to `version_id` column 5. Drops old `id` column and makes `version_id` the new primary key ## Testing Besides of course automated tests passing, I: 1. Set up my local db with the pre-005-migration state, imported all the production data 2. Ran the migration 3. Spot checked some diffs of the data that resulted -- ```json // before { "name": "io.github.ruvnet/ruv-swarm", "_meta": { "io.modelcontextprotocol.registry/official": { "id": "0a9cda7f-2b73-4839-844b-6582f335de42", "is_latest": false, "updated_at": "2025-09-10T17:21:34.92137012Z", "published_at": "2025-09-10T17:15:32.69690433Z" } }, "version": "1.0.18", "repository": { "url": "", "source": "" }, "description": "Neural network swarm orchestration with WebAssembly acceleration and MCP integration" } // after { "name": "io.github.ruvnet/ruv-swarm", "_meta": { "io.modelcontextprotocol.registry/official": { "serverId": "e8538952-96af-4a33-9e31-7fbed012521e", "is_latest": false, "versionId": "0a9cda7f-2b73-4839-844b-6582f335de42", "updated_at": "2025-09-10T17:21:34.92137012Z", "published_at": "2025-09-10T17:15:32.69690433Z" } }, "version": "1.0.18", "repository": { "url": "", "source": "" }, "description": "Neural network swarm orchestration with WebAssembly acceleration and MCP integration" } ``` Servers that have multiple versions stayed consistent in their `serverId`: ```json // First version { "name": "app.getdialer/dialer", "_meta": { "io.modelcontextprotocol.registry/official": { "serverId": "80f08bdb-f3e4-4f19-b072-1676ae49b663", "is_latest": false, "versionId": "04f25b17-331d-48d7-b08b-37baece208a7", "updated_at": "2025-09-09T00:16:49.162620072Z", "published_at": "2025-09-08T23:47:09.452137971Z" } }, "status": "active", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json", "remotes": [ { "url": "https://getdialer.app/mcp", "type": "streamable-http" }, { "url": "https://getdialer.app/sse", "type": "sse" } ], "version": "1.0.0", "repository": { "url": "", "source": "" }, "description": "An MCP server that provides your you make outbound phone calls using your own phone number" } // Second version { "name": "app.getdialer/dialer", "_meta": { "io.modelcontextprotocol.registry/official": { "serverId": "80f08bdb-f3e4-4f19-b072-1676ae49b663", "is_latest": true, "versionId": "faa26cb9-3aad-415e-aece-f715fff5fe5e", "updated_at": "2025-09-09T00:16:49.107842808Z", "published_at": "2025-09-09T00:16:49.107842808Z" } }, "status": "active", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json", "remotes": [ { "url": "https://getdialer.app/mcp", "type": "streamable-http" }, { "url": "https://getdialer.app/sse", "type": "sse" } ], "version": "1.0.1", "repository": { "url": "", "source": "" }, "description": "An MCP server that provides lets you make outbound phone calls using your own phone number" } ``` And I also tried publishing a test server anew; looked good: ```bash ⏺ Bash(curl -s "http://localhost:8080/v0/servers/102dc4e4-6ca8-40e6-aa11-cd45763d3352" | jq '.') ⎿ { "$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json", "name": "io.modelcontextprotocol.anonymous/test-claude-migration-server", "description": "A test server to verify the new migration and API endpoints work correctly", "status": "active", "repository": { "url": "https://github.com/example/test-claude-migration-server", "source": "github", "id": "example/test-claude-migration-server" }, "version": "1.0.0", "_meta": { "io.modelcontextprotocol.registry/official": { "serverId": "102dc4e4-6ca8-40e6-aa11-cd45763d3352", "versionId": "48c9cd55-7bc4-4ac2-896e-59e81eb653e4", "published_at": "2025-09-12T18:33:23.264203-07:00", "updated_at": "2025-09-12T18:33:23.264203-07:00", "is_latest": true } } } ⏺ Bash(curl -s "http://localhost:8080/v0/servers/102dc4e4-6ca8-40e6-aa11-cd45763d3352/versions" | jq '.') ⎿ { "servers": [ { "$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json", "name": "io.modelcontextprotocol.anonymous/test-claude-migration-server", "description": "A test server to verify the new migration and API endpoints work correctly", "status": "active", "repository": { "url": "https://github.com/example/test-claude-migration-server", "source": "github", "id": "example/test-claude-migration-server" }, "version": "1.0.0", "_meta": { "io.modelcontextprotocol.registry/official": { "serverId": "102dc4e4-6ca8-40e6-aa11-cd45763d3352", "versionId": "48c9cd55-7bc4-4ac2-896e-59e81eb653e4", "published_at": "2025-09-12T18:33:23.264203-07:00", "updated_at": "2025-09-12T18:33:23.264203-07:00", "is_latest": true } } } ], "metadata": { "count": 1 } } ``` Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Preeti Dewani <preetidewani1990@gmail.com> Co-authored-by: adam jones <adamj+git@anthropic.com> Co-authored-by: Adam Jones <adamj@anthropic.com> |
||
|
|
52b1dc71b6 |
Fix OpenAPI spec: use correct Remote type field name (#516)
## Summary - Fixed `Remote` schema in OpenAPI spec to use correct field name `type` instead of `transport_type` - Updated enum values from `[streamable, sse]` to `[streamable-http, sse]` to match actual API ## Context The OpenAPI spec was inconsistent with the actual API implementation. The live API at https://registry.modelcontextprotocol.io/v0/servers returns `type: 'sse'` and `type: 'streamable-http'`, but the spec defined `transport_type` with values `streamable` and `sse`. This now matches: - The Go constants in pkg/model/constants.go - The actual API responses |
||
|
|
bd6c711627 |
docs: add kubectl configuration instructions for GKE access (#514)
Added documentation for configuring kubectl to access existing GKE clusters for both production and staging environments. |
||
|
|
6e38137ce4 |
Increase GKE node size to e2-standard-2 (#513)
## Summary Bumps the node machine type from e2-small to e2-standard-2 to provide more CPU and memory headroom for the cluster. Also disables PodDisruptionBudgets (PDBs) for single-instance PostgreSQL clusters to prevent node upgrade operations from becoming blocked. ## Changes - Increase GKE node machine type from e2-small to e2-standard-2 - Set `enablePDB: false` for registry and Grafana PostgreSQL clusters ## Context The machine type increase addresses resource constraints causing deployment failures. The PDB change prevents a specific issue where GKE node upgrades get stuck when trying to drain nodes containing single-instance PostgreSQL pods. With `minAvailable: 1` PDBs, evicting the only database instance violates the availability requirement, blocking the drain operation indefinitely. Disabling PDBs for these development/staging single-instance databases allows node maintenance to proceed smoothly. For production deployments requiring high availability, the instances count should be increased to 3 with PDBs enabled. --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
edd93af8ac |
Set workflow permissions to resolve CodeQL warnings (#474)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following resolves warnings raised by CodeQL by setting the appropriate permissions for each workflow. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
6ed625f476 |
464 logs infra (#478)
## Motivation and Context Logs will help in fixing issues quickly, thereby reducing the downtime and MTTD. ## How Has This Been Tested? End to end local setup is tested ## Breaking Changes No ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context - It handles container logs for mcp-registry pods. - It supports k8sattributes resources which helps in identifying from where the logs are coming. - Supports victorialogs and it's plugin in grafana. <img width="1129" height="383" alt="Screenshot 2025-09-15 at 1 43 51 AM" src="https://github.com/user-attachments/assets/a560c541-721d-415c-a0a8-8cbe008c3af6" /> <img width="1134" height="703" alt="Screenshot 2025-09-15 at 1 44 34 AM" src="https://github.com/user-attachments/assets/8b5b4132-9fc3-4b8e-8027-27c7787070f1" /> <img width="1134" height="727" alt="Screenshot 2025-09-15 at 1 46 10 AM" src="https://github.com/user-attachments/assets/bcdb4d9d-cea1-4d88-8dd5-fa4cdb51031f" /> --------- Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
2280e4da38 |
Add GitHub Container Registry (GHCR) support for MCP servers (#439)
This commit implements support for publishing MCP servers to GitHub Container Registry (ghcr.io) in addition to the existing Docker Hub support, addressing Docker Hub rate limiting concerns as requested in #393. Key changes: - Add RegistryURLGHCR constant for https://ghcr.io - Refactor OCI validation to support multiple container registries with extensible RegistryConfig system - Implement registry-agnostic authentication system that handles: - Docker Hub token-based authentication via auth.docker.io - GHCR token-based authentication via ghcr.io/token service - Update Accept headers to support OCI image indexes for multi-arch images - Extract helper functions to reduce cyclomatic complexity and improve code maintainability - Add comprehensive test coverage for both Docker Hub and GHCR scenarios - Include real image testing with github/github-mcp-server and nkapila6/mcp-local-rag - Update publishing documentation with GHCR examples and authentication details The implementation maintains backward compatibility with existing Docker Hub usage while providing a future-proof architecture for adding additional container registries. All authentication is now handled through proper token services for both registries. Fixes #393 ## Motivation and Context Docker Hub rate limiting has been causing issues for the MCP registry when validating OCI images. Adding GHCR support provides an alternative container registry that many MCP server authors are already using, reducing the load on Docker Hub and providing more options for the community. ## How Has This Been Tested? - All existing unit tests continue to pass - Added comprehensive test coverage for GHCR scenarios including: - Non-existent images (proper error handling) - Real images without MCP annotations (github/github-mcp-server) - Real images with proper MCP annotations (nkapila6/mcp-local-rag) - Registry URL validation for both supported registries - Tested authentication flow manually using curl commands - Verified multi-arch image support with OCI index manifests ## Breaking Changes None. This is a purely additive change that maintains full backward compatibility with existing Docker Hub configurations. ## Types of changes - [x] New feature (non-breaking change which adds functionality) - [x] Documentation update ## Checklist - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context The implementation uses a RegistryConfig struct to abstract registry-specific details like API endpoints, authentication URLs, and token services. This design makes it straightforward to add support for additional container registries in the future (such as AWS ECR, Azure Container Registry, etc.) by simply adding new cases to the getRegistryConfig function. The authentication system properly handles the different token services used by each registry: - Docker Hub: auth.docker.io with service=registry.docker.io - GHCR: ghcr.io/token with service=ghcr.io Both registries now support the full OCI specification including multi-arch images via OCI image indexes. |
||
|
|
516e2ab1f0 |
Add NuGet to package deployment options (#497)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> NuGet package deployment option is mentioned in the [guidelines](https://github.com/modelcontextprotocol/registry/blob/main/docs/guides/publishing/publish-server.md#configure-deployment-methods) for publishing MCP Server to the registry, but `NuGet` is not mentioned in the top of the page. <img width="617" height="134" alt="image (3)" src="https://github.com/user-attachments/assets/e64559f4-5ab5-44f3-922b-82dda1e781db" /> ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> Documentation update ## Breaking Changes <!-- Will users need to update their code or configurations? --> No breaking changes ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
e079d38ba1 |
build(deps): bump anchore/sbom-action from 0.20.5 to 0.20.6 in the actions group (#489)
Bumps the actions group with 1 update: [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `anchore/sbom-action` from 0.20.5 to 0.20.6 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anchore/sbom-action/releases">anchore/sbom-action's releases</a>.</em></p> <blockquote> <h2>v0.20.6</h2> <h2>Changes in v0.20.6</h2> <ul> <li>chore(deps): update Syft to v1.33.0 (<a href="https://redirect.github.com/anchore/sbom-action/issues/537">#537</a>) [[<a href="https://github.com/apps/anchore-actions-token-generator">anchore-actions-token-generator[bot]</a>](<a href="https://github.com/%5Banchore-actions-token-generator%5Bbot%5D%5D(https://github.com/apps/anchore-actions-token-generator))%5D">https://github.com/[anchore-actions-token-generator[bot]](https://github.com/apps/anchore-actions-token-generator))]</a></li> <li>chore: update actions library to resolve critical vulnerability (<a href="https://redirect.github.com/anchore/sbom-action/issues/536">#536</a>) [<a href="https://github.com/spiffcs">spiffcs</a>]</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
63cf08efad |
fix: validate server names to allow only single slash (#471) (#476)
## Summary Added validation to reject server names with multiple slashes, ensuring consistency between JSON schema pattern and API validation. - Count slashes in parseServerName() and reject if > 1 - Add ErrMultipleSlashesInServerName error constant - Add unit tests in validators_test.go - Add integration test in publish_test.go ## Motivation and Context Fixes #471. The JSON schema regex pattern `^[^/]+/[^/]+$` only allows a single slash in server names, but the API validation was not enforcing this constraint. This inconsistency allowed invalid server names like `com.example/server/path` to be published. ## How Has This Been Tested? - Unit tests added to verify slash validation logic - Integration tests added to verify the publish endpoint rejects multi-slash names - Tested various edge cases: trailing slashes, consecutive slashes, URL-like paths - All existing tests pass ## Breaking Changes None. This change only adds validation to reject previously invalid server names that shouldn't have been accepted. ## Types of changes - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context - The fix ensures server names follow the intended format: `namespace/name` (e.g., `com.example/my-server`) - This validation aligns the API behavior with the existing JSON schema regex pattern - Test coverage includes edge cases like `com.example//server`, `com.example/server/`, and `a/b/c/d/e/f` - The error message clearly indicates the issue: "server name cannot contain multiple slashes" |
||
|
|
b77e382b98 |
build(deps): bump go.opentelemetry.io/otel/exporters/prometheus from 0.59.1 to 0.60.0 (#468)
Bumps [go.opentelemetry.io/otel/exporters/prometheus](https://github.com/open-telemetry/opentelemetry-go) from 0.59.1 to 0.60.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md">go.opentelemetry.io/otel/exporters/prometheus's changelog</a>.</em></p> <blockquote> <h2>[1.38.0/0.60.0/0.14.0/0.0.13] 2025-08-29</h2> <p>This release is the last to support [Go 1.23]. The next release will require at least [Go 1.24].</p> <h3>Added</h3> <ul> <li>Add native histogram exemplar support in <code>go.opentelemetry.io/otel/exporters/prometheus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6772">#6772</a>)</li> <li>Add template attribute functions to the <code>go.opentelmetry.io/otel/semconv/v1.34.0</code> package. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6939">#6939</a>) <ul> <li><code>ContainerLabel</code></li> <li><code>DBOperationParameter</code></li> <li><code>DBSystemParameter</code></li> <li><code>HTTPRequestHeader</code></li> <li><code>HTTPResponseHeader</code></li> <li><code>K8SCronJobAnnotation</code></li> <li><code>K8SCronJobLabel</code></li> <li><code>K8SDaemonSetAnnotation</code></li> <li><code>K8SDaemonSetLabel</code></li> <li><code>K8SDeploymentAnnotation</code></li> <li><code>K8SDeploymentLabel</code></li> <li><code>K8SJobAnnotation</code></li> <li><code>K8SJobLabel</code></li> <li><code>K8SNamespaceAnnotation</code></li> <li><code>K8SNamespaceLabel</code></li> <li><code>K8SNodeAnnotation</code></li> <li><code>K8SNodeLabel</code></li> <li><code>K8SPodAnnotation</code></li> <li><code>K8SPodLabel</code></li> <li><code>K8SReplicaSetAnnotation</code></li> <li><code>K8SReplicaSetLabel</code></li> <li><code>K8SStatefulSetAnnotation</code></li> <li><code>K8SStatefulSetLabel</code></li> <li><code>ProcessEnvironmentVariable</code></li> <li><code>RPCConnectRPCRequestMetadata</code></li> <li><code>RPCConnectRPCResponseMetadata</code></li> <li><code>RPCGRPCRequestMetadata</code></li> <li><code>RPCGRPCResponseMetadata</code></li> </ul> </li> <li>Add <code>ErrorType</code> attribute helper function to the <code>go.opentelmetry.io/otel/semconv/v1.34.0</code> package. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6962">#6962</a>)</li> <li>Add <code>WithAllowKeyDuplication</code> in <code>go.opentelemetry.io/otel/sdk/log</code> which can be used to disable deduplication for log records. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6968">#6968</a>)</li> <li>Add <code>WithCardinalityLimit</code> option to configure the cardinality limit in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6996">#6996</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7065">#7065</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7081">#7081</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7164">#7164</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7165">#7165</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7179">#7179</a>)</li> <li>Add <code>Clone</code> method to <code>Record</code> in <code>go.opentelemetry.io/otel/log</code> that returns a copy of the record with no shared state. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7001">#7001</a>)</li> <li>Add experimental self-observability span and batch span processor metrics in <code>go.opentelemetry.io/otel/sdk/trace</code>. Check the <code>go.opentelemetry.io/otel/sdk/trace/internal/x</code> package documentation for more information. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7027">#7027</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6393">#6393</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7209">#7209</a>)</li> <li>The <code>go.opentelemetry.io/otel/semconv/v1.36.0</code> package. The package contains semantic conventions from the <code>v1.36.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/semconv/v1.36.0/MIGRATION.md">migration documentation</a> for information on how to upgrade from <code>go.opentelemetry.io/otel/semconv/v1.34.0.</code>(<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7032">#7032</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7041">#7041</a>)</li> <li>Add support for configuring Prometheus name translation using <code>WithTranslationStrategy</code> option in <code>go.opentelemetry.io/otel/exporters/prometheus</code>. The current default translation strategy when UTF-8 mode is enabled is <code>NoUTF8EscapingWithSuffixes</code>, but a future release will change the default strategy to <code>UnderscoreEscapingWithSuffixes</code> for compliance with the specification. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7111">#7111</a>)</li> <li>Add experimental self-observability log metrics in <code>go.opentelemetry.io/otel/sdk/log</code>. Check the <code>go.opentelemetry.io/otel/sdk/log/internal/x</code> package documentation for more information. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7121">#7121</a>)</li> <li>Add experimental self-observability trace exporter metrics in <code>go.opentelemetry.io/otel/exporters/stdout/stdouttrace</code>.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
c5921adc7f |
build(deps): bump sigstore/cosign-installer from 3.9.2 to 3.10.0 in the actions group (#470)
Bumps the actions group with 1 update: [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer). Updates `sigstore/cosign-installer` from 3.9.2 to 3.10.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sigstore/cosign-installer/releases">sigstore/cosign-installer's releases</a>.</em></p> <blockquote> <h2>v3.10.0</h2> <h2>What's Changed</h2> <ul> <li>Bump default Cosign to v2.6.0 in <a href="https://redirect.github.com/sigstore/cosign-installer/pull/200">sigstore/cosign-installer#200</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/sigstore/cosign-installer/compare/v3.9.2...v3.10.0">https://github.com/sigstore/cosign-installer/compare/v3.9.2...v3.10.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
5e421d01c8 |
build(deps): bump golang.org/x/oauth2 from 0.30.0 to 0.31.0 (#469)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.30.0 to 0.31.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
3443121b50 |
build(deps): bump github.com/prometheus/client_golang from 1.23.0 to 1.23.2 (#467)
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.23.0 to 1.23.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/prometheus/client_golang/releases">github.com/prometheus/client_golang's releases</a>.</em></p> <blockquote> <h2>v1.23.2 - 2025-09-05</h2> <p>This release is made to upgrade to prometheus/common v0.66.1, which drops the dependencies github.com/grafana/regexp and go.uber.org/atomic and replaces gopkg.in/yaml.v2 with go.yaml.in/yaml/v2 (a drop-in replacement). There are no functional changes.</p> <!-- raw HTML omitted --> <ul> <li>[release-1.23] Upgrade to prometheus/common@v0.66.1 by <a href="https://github.com/aknuds1"><code>@aknuds1</code></a> in <a href="https://redirect.github.com/prometheus/client_golang/pull/1869">prometheus/client_golang#1869</a></li> <li>[release-1.23] Cut v1.23.2 by <a href="https://github.com/aknuds1"><code>@aknuds1</code></a> in <a href="https://redirect.github.com/prometheus/client_golang/pull/1870">prometheus/client_golang#1870</a></li> </ul> <!-- raw HTML omitted --> <p><strong>Full Changelog</strong>: <a href="https://github.com/prometheus/client_golang/compare/v1.23.1...v1.23.2">https://github.com/prometheus/client_golang/compare/v1.23.1...v1.23.2</a></p> <h2>v1.23.1 - 2025-09-04</h2> <p>This release is made to be compatible with a backwards incompatible API change in prometheus/common v0.66.0. There are no functional changes.</p> <!-- raw HTML omitted --> <ul> <li>[release-1.23] Upgrade to prometheus/common v0.66 by <a href="https://github.com/aknuds1"><code>@aknuds1</code></a> in <a href="https://redirect.github.com/prometheus/client_golang/pull/1866">prometheus/client_golang#1866</a></li> <li>[release-1.23] Cut v1.23.1 by <a href="https://github.com/aknuds1"><code>@aknuds1</code></a> in <a href="https://redirect.github.com/prometheus/client_golang/pull/1867">prometheus/client_golang#1867</a></li> </ul> <!-- raw HTML omitted --> <p><strong>Full Changelog</strong>: <a href="https://github.com/prometheus/client_golang/compare/v1.23.0...v1.23.1">https://github.com/prometheus/client_golang/compare/v1.23.0...v1.23.1</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md">github.com/prometheus/client_golang's changelog</a>.</em></p> <blockquote> <h2>1.23.2 / 2025-09-05</h2> <p>This release is made to upgrade to prometheus/common v0.66.1, which drops the dependencies github.com/grafana/regexp and go.uber.org/atomic and replaces gopkg.in/yaml.v2 with go.yaml.in/yaml/v2 (a drop-in replacement). There are no functional changes.</p> <h2>1.23.1 / 2025-09-04</h2> <p>This release is made to be compatible with a backwards incompatible API change in prometheus/common v0.66.0. There are no functional changes.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
9d63afb05a |
chore: remove outdated version tags from GitHub Actions (#457)
## Summary - Removes version comment tags (e.g. `#v4`, `#v5`) from all GitHub Actions workflow files - These tags become incorrect when Dependabot updates the action SHAs - The SHA pins are sufficient for version control ## Context This addresses @domdomegg's comment in #453 about these tags becoming outdated when using Dependabot. The SHAs already provide version pinning, making the comment tags redundant and potentially misleading. ## Changes - Removed version tags from all `uses:` statements in `.github/workflows/*.yml` - No functional changes to workflows |
||
|
|
05003c5dbf |
Bump Go to 1.25 (#456)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR: * Bumps Go to the latest stable version * Moves away from setting the Go version as an env var in favour of reading it automatically from the go.mod file (better consistency) Closes: #447 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> Locally ## Breaking Changes <!-- Will users need to update their code or configurations? --> No ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
bec92b848e |
Update the docs with info for remote MCP servers (#444)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR updates the publishing docs with information about remote MCP servers. Motivated by https://github.com/modelcontextprotocol/registry/discussions/438 ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> ## Breaking Changes <!-- Will users need to update their code or configurations? --> No ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
ba86c6beb5 |
docs: simplify GitHub Actions publishing guide (#446)
Simplifies the GitHub Actions publishing guide to be more concise and easier to follow: ## Changes - Streamlined MCP publisher installation with single-line curl command (no more chmod/directory operations) - Condensed authentication methods into compact sections - Reduced language-specific examples to essential steps only - Updated GitHub Actions to use latest versions (v5) - Made test/build steps optional with `--if-present` flag - Added helpful AI assistant prompt tip to publish-server.md ## Result The guide is now much more succinct while maintaining all essential information, following the same simplified approach as the main publishing guide. |
||
|
|
9322e7855c |
build(deps): bump go.opentelemetry.io/contrib/instrumentation/runtime from 0.62.0 to 0.63.0 (#450)
Bumps [go.opentelemetry.io/contrib/instrumentation/runtime](https://github.com/open-telemetry/opentelemetry-go-contrib) from 0.62.0 to 0.63.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/releases">go.opentelemetry.io/contrib/instrumentation/runtime's releases</a>.</em></p> <blockquote> <h2>Release v1.38.0/v2.0.0/v0.63.0/v0.32.0/v0.18.0/v0.13.0/v0.11.0/v0.10.0</h2> <h2>Overview</h2> <p>This release is the last to support [Go 1.23]. The next release will require at least [Go 1.24].</p> <h3>Added</h3> <ul> <li>Add v2 version of AWS EC2 detector <code>go.opentelemetry.io/contrib/detectors/aws/ec2/v2</code> due to deprecation of <code>github.com/aws/aws-sdk-go</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/6961">#6961</a>)</li> <li>Add the unit <code>ns</code> to deprecated runtime metrics <code>process.runtime.go.gc.pause_total_ns</code> and <code>process.runtime.go.gc.pause_ns</code> in <code>go.opentelemetry.io/contrib/instrumentation/runtime</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7490">#7490</a>)</li> <li>The <code>go.opentelemetry.io/contrib/detectors/autodetect</code> package is added to automatically compose user defined <code>resource.Detector</code>s at runtime. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7522">#7522</a>)</li> <li>Add the <code>WithLoggerProviderOptions</code>, <code>WithMeterProviderOptions</code> and <code>WithTracerProviderOptions</code> options to <code>NewSDK</code> to allow passing custom options to providers in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7552">#7552</a>)</li> <li>Set <code>SeverityText</code> field to logrus hook in <code>go.opentelemetry.io/contrib/bridges/otellogrus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7553">#7553</a>)</li> <li>Add the <code>WithTraceAttributeFn</code> option to <code>go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-lambda-go/otellambda</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7556">#7556</a>)</li> <li>Add support for HTTP server metrics in <code>go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7668">#7668</a>)</li> <li>Support testing of [Go 1.25]. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7732">#7732</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Change the default span name to be <code>GET /path</code> so it complies with the HTTP semantic conventions in <code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7551">#7551</a>)</li> <li>Transform attribute values of <code>go.opentelemetry.io/otel/attribute.Value</code> and <code>go.opentelemetry.io/otel/log.Value</code> types to appropriate <code>go.opentelemetry.io/otel/log.Value</code> type instead of <code>log.StringValue</code> in the modules below. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7660">#7660</a>) <ul> <li><code>go.opentelemetry.io/contrib/bridges/otellogr</code></li> <li><code>go.opentelemetry.io/contrib/bridges/otellogrus</code></li> <li><code>go.opentelemetry.io/contrib/bridges/otelslog</code></li> <li><code>go.opentelemetry.io/contrib/bridges/otelzap</code></li> </ul> </li> <li>The <code>Severity</code> type from <code>go.opentelemetry.io/contrib/processors/minsev</code> now implements the <code>fmt.Stringer</code>, <code>encoding.TextMarshaler</code>, <code>encoding.TextUnmarshaler</code>, <code>encoding.TextAppender</code>, <code>json.Marshaler</code>, and <code>json.Unmarshaler</code> interfaces. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7652">#7652</a>)</li> <li>The <code>SeverityVar</code> type from <code>go.opentelemetry.io/contrib/processors/minsev</code> now implements the <code>fmt.Stringer</code>, <code>encoding.TextMarshaler</code>, <code>encoding.TextUnmarshaler</code>, and <code>encoding.TextAppender</code> interfaces. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7652">#7652</a>)</li> <li>Change the faas.max_memory unit to be bytes instead of MB to comply with the semantic conventions in <code>go.opentelemetry.io/contrib/detectors/aws/lambda</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7745">#7745</a>)</li> <li><code>Severity.Severity()</code> in <code>go.opentelemetry.io/contrib/processors/minsev</code> now returns <code>log.SeverityTrace1</code> for severities less than <code>minsev.SeverityTrace1</code> and <code>log.SeverityFatal4</code> for severities greater than <code>minsev.SeverityFatal4</code> instead of <code>log.SeverityUndefined</code>. All other conversions are the same. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7748">#7748</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Improve the ECS detector correctness in <code>go.opentelemetry.io/contrib/detectors/aws/ecs</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7607">#7607</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li><code>WithSpanOptions</code> in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code> is deprecated. It is only used by the deprecated interceptor, and is unused by <code>NewClientHandler</code> and <code>NewServerHandler</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7601">#7601</a>)</li> <li><code>Extract</code> and <code>Inject</code> in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code> are deprecated. These functions were initially exposed in the public API, but are now considered unnecessary. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7689">#7689</a>)</li> <li>The <code>go.opentelemetry.io/contrib/detectors/aws/ec2</code> package is deprecated, use <code>go.opentelemetry.io/contrib/detectors/aws/ec2/v2</code> instead. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7725">#7725</a>)</li> </ul> <h3>Removed</h3> <ul> <li>Remove support for the <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment variable as well as support for semantic conventions v1.20.0 in the modules below. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7584">#7584</a>) <ul> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code></li> </ul> </li> <li>The deprecated <code>StreamClientInterceptor</code> function from <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code> is removed. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7646">#7646</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md">go.opentelemetry.io/contrib/instrumentation/runtime's changelog</a>.</em></p> <blockquote> <h2>[1.38.0/2.0.0/0.63.0/0.32.0/0.18.0/0.13.0/0.11.0/0.10.0] - 2025-08-29</h2> <p>This release is the last to support [Go 1.23]. The next release will require at least [Go 1.24].</p> <h3>Added</h3> <ul> <li>Add v2 version of AWS EC2 detector <code>go.opentelemetry.io/contrib/detectors/aws/ec2/v2</code> due to deprecation of <code>github.com/aws/aws-sdk-go</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/6961">#6961</a>)</li> <li>Add the unit <code>ns</code> to deprecated runtime metrics <code>process.runtime.go.gc.pause_total_ns</code> and <code>process.runtime.go.gc.pause_ns</code> in <code>go.opentelemetry.io/contrib/instrumentation/runtime</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7490">#7490</a>)</li> <li>The <code>go.opentelemetry.io/contrib/detectors/autodetect</code> package is added to automatically compose user defined <code>resource.Detector</code>s at runtime. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7522">#7522</a>)</li> <li>Add the <code>WithLoggerProviderOptions</code>, <code>WithMeterProviderOptions</code> and <code>WithTracerProviderOptions</code> options to <code>NewSDK</code> to allow passing custom options to providers in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7552">#7552</a>)</li> <li>Set <code>SeverityText</code> field to logrus hook in <code>go.opentelemetry.io/contrib/bridges/otellogrus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7553">#7553</a>)</li> <li>Add the <code>WithTraceAttributeFn</code> option to <code>go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-lambda-go/otellambda</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7556">#7556</a>)</li> <li>Add support for HTTP server metrics in <code>go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7668">#7668</a>)</li> <li>Support testing of [Go 1.25]. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7732">#7732</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Change the default span name to be <code>GET /path</code> so it complies with the HTTP semantic conventions in <code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7551">#7551</a>)</li> <li>Transform attribute values of <code>go.opentelemetry.io/otel/attribute.Value</code> and <code>go.opentelemetry.io/otel/log.Value</code> types to appropriate <code>go.opentelemetry.io/otel/log.Value</code> type instead of <code>log.StringValue</code> in the modules below. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7660">#7660</a>) <ul> <li><code>go.opentelemetry.io/contrib/bridges/otellogr</code></li> <li><code>go.opentelemetry.io/contrib/bridges/otellogrus</code></li> <li><code>go.opentelemetry.io/contrib/bridges/otelslog</code></li> <li><code>go.opentelemetry.io/contrib/bridges/otelzap</code></li> </ul> </li> <li>The <code>Severity</code> type from <code>go.opentelemetry.io/contrib/processors/minsev</code> now implements the <code>fmt.Stringer</code>, <code>encoding.TextMarshaler</code>, <code>encoding.TextUnmarshaler</code>, <code>encoding.TextAppender</code>, <code>json.Marshaler</code>, and <code>json.Unmarshaler</code> interfaces. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7652">#7652</a>)</li> <li>The <code>SeverityVar</code> type from <code>go.opentelemetry.io/contrib/processors/minsev</code> now implements the <code>fmt.Stringer</code>, <code>encoding.TextMarshaler</code>, <code>encoding.TextUnmarshaler</code>, and <code>encoding.TextAppender</code> interfaces. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7652">#7652</a>)</li> <li>Change the faas.max_memory unit to be bytes instead of MB to comply with the semantic conventions in <code>go.opentelemetry.io/contrib/detectors/aws/lambda</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7745">#7745</a>)</li> <li><code>Severity.Severity()</code> in <code>go.opentelemetry.io/contrib/processors/minsev</code> now returns <code>log.SeverityTrace1</code> for severities less than <code>minsev.SeverityTrace1</code> and <code>log.SeverityFatal4</code> for severities greater than <code>minsev.SeverityFatal4</code> instead of <code>log.SeverityUndefined</code>. All other conversions are the same. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7748">#7748</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Improve the ECS detector correctness in <code>go.opentelemetry.io/contrib/detectors/aws/ecs</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7607">#7607</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li><code>WithSpanOptions</code> in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code> is deprecated. It is only used by the deprecated interceptor, and is unused by <code>NewClientHandler</code> and <code>NewServerHandler</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7601">#7601</a>)</li> <li><code>Extract</code> and <code>Inject</code> in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code> are deprecated. These functions were initially exposed in the public API, but are now considered unnecessary. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7689">#7689</a>)</li> <li>The <code>go.opentelemetry.io/contrib/detectors/aws/ec2</code> package is deprecated, use <code>go.opentelemetry.io/contrib/detectors/aws/ec2/v2</code> instead. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7725">#7725</a>)</li> </ul> <h3>Removed</h3> <ul> <li>Remove support for the <code>OTEL_SEMCONV_STABILITY_OPT_IN</code> environment variable as well as support for semantic conventions v1.20.0 in the modules below. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/7584">#7584</a>) <ul> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho</code></li> <li><code>go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace</code></li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
b007fcf210 |
build(deps): bump github.com/jackc/pgx/v5 from 5.7.5 to 5.7.6 (#451)
Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.7.5 to 5.7.6. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jackc/pgx/blob/master/CHANGELOG.md">github.com/jackc/pgx/v5's changelog</a>.</em></p> <blockquote> <h1>5.7.6 (September 8, 2025)</h1> <ul> <li>Use ParseConfigError in pgx.ParseConfig and pgxpool.ParseConfig (Yurasov Ilia)</li> <li>Add PrepareConn hook to pgxpool (Jonathan Hall)</li> <li>Reduce allocations in QueryContext (Dominique Lefevre)</li> <li>Add MarshalJSON and UnmarshalJSON for pgtype.Uint32 (Panos Koutsovasilis)</li> <li>Configure ping behavior on pgxpool with ShouldPing (Christian Kiely)</li> <li>zeronull int types implement Int64Valuer and Int64Scanner (Li Zeghong)</li> <li>Fix panic when receiving terminate connection message during CopyFrom (Michal Drausowski)</li> <li>Fix statement cache not being invalidated on error during batch (Muhammadali Nazarov)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
4bbb9ba642 |
build(deps): bump golang.org/x/mod from 0.27.0 to 0.28.0 (#449)
Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.27.0 to 0.28.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
a04e2ae567 |
build(deps): bump go.opentelemetry.io/otel/sdk from 1.37.0 to 1.38.0 (#452)
Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.37.0 to 1.38.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md">go.opentelemetry.io/otel/sdk's changelog</a>.</em></p> <blockquote> <h2>[1.38.0/0.60.0/0.14.0/0.0.13] 2025-08-29</h2> <p>This release is the last to support [Go 1.23]. The next release will require at least [Go 1.24].</p> <h3>Added</h3> <ul> <li>Add native histogram exemplar support in <code>go.opentelemetry.io/otel/exporters/prometheus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6772">#6772</a>)</li> <li>Add template attribute functions to the <code>go.opentelmetry.io/otel/semconv/v1.34.0</code> package. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6939">#6939</a>) <ul> <li><code>ContainerLabel</code></li> <li><code>DBOperationParameter</code></li> <li><code>DBSystemParameter</code></li> <li><code>HTTPRequestHeader</code></li> <li><code>HTTPResponseHeader</code></li> <li><code>K8SCronJobAnnotation</code></li> <li><code>K8SCronJobLabel</code></li> <li><code>K8SDaemonSetAnnotation</code></li> <li><code>K8SDaemonSetLabel</code></li> <li><code>K8SDeploymentAnnotation</code></li> <li><code>K8SDeploymentLabel</code></li> <li><code>K8SJobAnnotation</code></li> <li><code>K8SJobLabel</code></li> <li><code>K8SNamespaceAnnotation</code></li> <li><code>K8SNamespaceLabel</code></li> <li><code>K8SNodeAnnotation</code></li> <li><code>K8SNodeLabel</code></li> <li><code>K8SPodAnnotation</code></li> <li><code>K8SPodLabel</code></li> <li><code>K8SReplicaSetAnnotation</code></li> <li><code>K8SReplicaSetLabel</code></li> <li><code>K8SStatefulSetAnnotation</code></li> <li><code>K8SStatefulSetLabel</code></li> <li><code>ProcessEnvironmentVariable</code></li> <li><code>RPCConnectRPCRequestMetadata</code></li> <li><code>RPCConnectRPCResponseMetadata</code></li> <li><code>RPCGRPCRequestMetadata</code></li> <li><code>RPCGRPCResponseMetadata</code></li> </ul> </li> <li>Add <code>ErrorType</code> attribute helper function to the <code>go.opentelmetry.io/otel/semconv/v1.34.0</code> package. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6962">#6962</a>)</li> <li>Add <code>WithAllowKeyDuplication</code> in <code>go.opentelemetry.io/otel/sdk/log</code> which can be used to disable deduplication for log records. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6968">#6968</a>)</li> <li>Add <code>WithCardinalityLimit</code> option to configure the cardinality limit in <code>go.opentelemetry.io/otel/sdk/metric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6996">#6996</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7065">#7065</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7081">#7081</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7164">#7164</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7165">#7165</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7179">#7179</a>)</li> <li>Add <code>Clone</code> method to <code>Record</code> in <code>go.opentelemetry.io/otel/log</code> that returns a copy of the record with no shared state. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7001">#7001</a>)</li> <li>Add experimental self-observability span and batch span processor metrics in <code>go.opentelemetry.io/otel/sdk/trace</code>. Check the <code>go.opentelemetry.io/otel/sdk/trace/internal/x</code> package documentation for more information. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7027">#7027</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6393">#6393</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7209">#7209</a>)</li> <li>The <code>go.opentelemetry.io/otel/semconv/v1.36.0</code> package. The package contains semantic conventions from the <code>v1.36.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/semconv/v1.36.0/MIGRATION.md">migration documentation</a> for information on how to upgrade from <code>go.opentelemetry.io/otel/semconv/v1.34.0.</code>(<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7032">#7032</a>, <a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7041">#7041</a>)</li> <li>Add support for configuring Prometheus name translation using <code>WithTranslationStrategy</code> option in <code>go.opentelemetry.io/otel/exporters/prometheus</code>. The current default translation strategy when UTF-8 mode is enabled is <code>NoUTF8EscapingWithSuffixes</code>, but a future release will change the default strategy to <code>UnderscoreEscapingWithSuffixes</code> for compliance with the specification. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7111">#7111</a>)</li> <li>Add experimental self-observability log metrics in <code>go.opentelemetry.io/otel/sdk/log</code>. Check the <code>go.opentelemetry.io/otel/sdk/log/internal/x</code> package documentation for more information. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7121">#7121</a>)</li> <li>Add experimental self-observability trace exporter metrics in <code>go.opentelemetry.io/otel/exporters/stdout/stdouttrace</code>.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
c6bb2f5e55 |
build(deps): bump the actions group with 5 updates (#453)
Bumps the actions group with 5 updates: | Package | From | To | | --- | --- | --- | | [actions/checkout](https://github.com/actions/checkout) | `4.3.0` | `5.0.0` | | [actions/setup-go](https://github.com/actions/setup-go) | `5.5.0` | `6.0.0` | | [docker/build-push-action](https://github.com/docker/build-push-action) | `5.4.0` | `6.18.0` | | [google-github-actions/auth](https://github.com/google-github-actions/auth) | `2.1.13` | `3.0.0` | | [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) | `2.2.1` | `3.0.1` | Updates `actions/checkout` from 4.3.0 to 5.0.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p> <blockquote> <h2>v5.0.0</h2> <h2>What's Changed</h2> <ul> <li>Update actions checkout to use node 24 by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li> <li>Prepare v5.0.0 release by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2238">actions/checkout#2238</a></li> </ul> <h2>⚠️ Minimum Compatible Runner Version</h2> <p><strong>v2.327.1</strong><br /> <a href="https://github.com/actions/runner/releases/tag/v2.327.1">Release Notes</a></p> <p>Make sure your runner is updated to this version or newer to use this release.</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v4...v5.0.0">https://github.com/actions/checkout/compare/v4...v5.0.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h2>V5.0.0</h2> <ul> <li>Update actions checkout to use node 24 by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li> </ul> <h2>V4.3.0</h2> <ul> <li>docs: update README.md by <a href="https://github.com/motss"><code>@motss</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li> <li>Add internal repos for checking out multiple repositories by <a href="https://github.com/mouismail"><code>@mouismail</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li> <li>Documentation update - add recommended permissions to Readme by <a href="https://github.com/benwells"><code>@benwells</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li> <li>Adjust positioning of user email note and permissions heading by <a href="https://github.com/joshmgross"><code>@joshmgross</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li> <li>Update README.md by <a href="https://github.com/nebuk89"><code>@nebuk89</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li> <li>Update CODEOWNERS for actions by <a href="https://github.com/TingluoHuang"><code>@TingluoHuang</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li> <li>Update package dependencies by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li> </ul> <h2>v4.2.2</h2> <ul> <li><code>url-helper.ts</code> now leverages well-known environment variables by <a href="https://github.com/jww3"><code>@jww3</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li> <li>Expand unit test coverage for <code>isGhes</code> by <a href="https://github.com/jww3"><code>@jww3</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li> </ul> <h2>v4.2.1</h2> <ul> <li>Check out other refs/* by commit if provided, fall back to ref by <a href="https://github.com/orhantoy"><code>@orhantoy</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li> </ul> <h2>v4.2.0</h2> <ul> <li>Add Ref and Commit outputs by <a href="https://github.com/lucacome"><code>@lucacome</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li> <li>Dependency updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>- <a href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>, <a href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li> </ul> <h2>v4.1.7</h2> <ul> <li>Bump the minor-npm-dependencies group across 1 directory with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li> <li>Bump actions/checkout from 3 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li> <li>Check out other refs/* by commit by <a href="https://github.com/orhantoy"><code>@orhantoy</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li> <li>Pin actions/checkout's own workflows to a known, good, stable version. by <a href="https://github.com/jww3"><code>@jww3</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li> </ul> <h2>v4.1.6</h2> <ul> <li>Check platform to set archive extension appropriately by <a href="https://github.com/cory-miller"><code>@cory-miller</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1732">actions/checkout#1732</a></li> </ul> <h2>v4.1.5</h2> <ul> <li>Update NPM dependencies by <a href="https://github.com/cory-miller"><code>@cory-miller</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li> <li>Bump github/codeql-action from 2 to 3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li> <li>Bump actions/setup-node from 1 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li> <li>Bump actions/upload-artifact from 2 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li> <li>README: Suggest <code>user.email</code> to be <code>41898282+github-actions[bot]@users.noreply.github.com</code> by <a href="https://github.com/cory-miller"><code>@cory-miller</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1707">actions/checkout#1707</a></li> </ul> <h2>v4.1.4</h2> <ul> <li>Disable <code>extensions.worktreeConfig</code> when disabling <code>sparse-checkout</code> by <a href="https://github.com/jww3"><code>@jww3</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1692">actions/checkout#1692</a></li> <li>Add dependabot config by <a href="https://github.com/cory-miller"><code>@cory-miller</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1688">actions/checkout#1688</a></li> <li>Bump the minor-actions-dependencies group with 2 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1693">actions/checkout#1693</a></li> <li>Bump word-wrap from 1.2.3 to 1.2.5 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1643">actions/checkout#1643</a></li> </ul> <h2>v4.1.3</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
999af36a30 |
fix(compose): avoid pulling registry from Docker Hub (#437)
<!-- Provide a brief summary of your changes --> ## Motivation and Context Previously running `docker-compose up` the first time, Docker would pull the official Docker Hub registry container, instead of building the MCP registry locally. This PR ensures the registry image is never pulled, and that it has a descriptive name locally without clashing with existing local container images. The `make dev-compose` command already enforces container build. This change only helps those who interface with the `docker-compose` configuration through other means. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> To validate the issue, clone the repository locally. Ensure none of the images referenced by `docker-compose` exist locally: ```bash docker rm -f registry postgres docker rmi registry postgres:16-alpine ``` Run `docker-compose up` without the `--build` flag. Notice that both `registry` and `postgres` images are pulled from Docker Hub. Registry prints the following start up logs - showing it's _a_ registry but of the wrong kind :) ``` registry | time="2025-09-11T11:16:23.966357009Z" level=debug msg="using \"text\" logging formatter" registry | time="2025-09-11T11:16:23.967075675Z" level=warning msg="No HTTP secret provided - generated random secret. This may cause problems with uploads if multiple registries are behind a load-balancer. To provide a shared secret, fill in http.secret in the configuration file or set the REGISTRY_HTTP_SECRET environment variable." environment=development go.version=go1.23.7 instance.id=566edec9-5208-4bd9-ab38-9e97d3f3b5b5 service=registry version=3.0.0 registry | time="2025-09-11T11:16:23.9671568Z" level=info msg="redis not configured" environment=development go.version=go1.23.7 instance.id=566edec9-5208-4bd9-ab38-9e97d3f3b5b5 service=registry version=3.0.0 registry | time="2025-09-11T11:16:23.967193342Z" level=info msg="Starting upload purge in 31m0s" environment=development go.version=go1.23.7 instance.id=566edec9-5208-4bd9-ab38-9e97d3f3b5b5 service=registry version=3.0.0 registry | time="2025-09-11T11:16:23.967215509Z" level=info msg="using inmemory blob descriptor cache" environment=development go.version=go1.23.7 instance.id=566edec9-5208-4bd9-ab38-9e97d3f3b5b5 service=registry version=3.0.0 registry | time="2025-09-11T11:16:23.967348634Z" level=info msg="providing prometheus metrics on /metrics" registry | time="2025-09-11T11:16:23.968138634Z" level=info msg="debug server listening :5001" registry | time="2025-09-11T11:16:23.9681758Z" level=info msg="listening on [::]:5000" environment=development go.version=go1.23.7 instance.id=566edec9-5208-4bd9-ab38-9e97d3f3b5b5 service=registry version=3.0.0 ``` Checkout the proposed change. When `docker-compose up` is ran it builds the registry container and launches it. ``` $ docker-compose up [+] Running 0/0 [+] Running 0/1stry Building 0.1s [+] Building 8.7s (18/18) FINISHED docker:desktop-linux ... registry | 2025/09/11 11:20:12 Starting MCP Registry Application vdev (commit: unknown) ... ``` ## Breaking Changes <!-- Will users need to update their code or configurations? --> None. ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Ville Vesilehto <ville@vesilehto.fi> Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
c6b8359e23 |
tidy(docs): fix erroneous paths in docs/guides/publishing/github-actions.md (#455)
Tidy docs & lint. Solves https://github.com/modelcontextprotocol/registry/issues/454 |
||
|
|
35d2bd50c4 |
Chore: Dependency pinning & Depdendabot introduction (#436)
1. Pins the Github Action workflow hashes under `.github/workflows` to full-length commit SHAs. 2. Adds a base level `.github/dependabot.yml` config to keep these (and other go/Docker) deps up to date. ## Motivation and Context - Github's [security guide](https://docs.github.com/en/actions/reference/security/secure-use#using-third-party-actions) recommends using the immutable SHA of an action when consuming third party actions. - Depdendabot makes ongoing dep house keeping manageable. |
||
|
|
7ea68db6e0 |
Fix PR #435 followups: move version range docs to description field (#445)
## Summary - Move package version 'remarks' to 'description' field in JSON schema (remarks is not a standard JSON schema field) - Confirmed non-semver version test coverage already exists Addresses followup comments from #435. Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: adam jones <domdomegg@users.noreply.github.com> |
||
|
|
f32ecf0fe8 |
Improve editor experience for server.json using schema (#441)
<!-- Provide a brief summary of your changes --> ## Motivation and Context Currently there are a couple shortcomings I found in the server.schema.json: - It uses `https://json-schema.org/draft/2020-12/schema` which is unfortunately [not supported by VS Code](https://github.com/microsoft/vscode/issues/165219) - The Package schema does not require properties that are required by the service This means that need to round trip with the publish endpoint (perhaps spinning CI builds) to get the server.json right. It would be great if we could shift left and get indications in VS Code easier. I propose we downgrade the schema to `http://json-schema.org/draft-07/schema#`. The only difference for us is the name of `$def` pointers. I looked that [SchemaStore](https://github.com/SchemaStore/schemastore) and it looks like `draft-07` is by far the most popular. I believe the concession of using an older schema is worth it to get VS Code editor hints. Schema version | Count in SchemaStore -- | -- `http://json-schema.org/draft-04/schema#` | 292 `http://json-schema.org/draft-07/schema#` | 1972 `https://json-schema.org/draft/2019-09/schema` | 4 `https://json-schema.org/draft/2020-12/schema` | 4 <!-- Why is this change needed? What problem does it solve? --> ## Open questions - [ ] Should package `transport` actually be required? Or should `stdio` be assumed? - [ ] Should package `registry_base_url` be required? All of the examples have it it's not required by the publish endpoint. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> I have tried the new schema inside VS Code and I get helpful warning. For example, these are the warnings for the old schema. <img width="1561" height="919" alt="image" src="https://github.com/user-attachments/assets/474170b8-acf8-4dca-a3d9-66c68c0d1902" /> I have run these: `go run .\tools\validate-examples\main.go` `go run .\tools\validate-schemas\main.go ` ## Breaking Changes I don't think these are breaking changes. I am expressing what the publish endpoint enforces at runtime. ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
78c482b8d9 |
feat(validators): Validate that Server versions are not ranges (#435)
<!-- Provide a brief summary of your changes --> Validates that server versions are not ranges. **NB:** This also introduces `validateVersion` as a check on the top-level `ValidateServerJSON`, as previously we were only checking version ranges of packages via `validatePackageField` (i.e. `latest` would have still been a valid top level server version), despite #413's wording suggesting otherwise. ## Motivation and Context Solves https://github.com/modelcontextprotocol/registry/issues/415 ## How Has This Been Tested? Tests added in `internal/validators/validators_test.go` `make check` is clean. ## Breaking Changes As per @domdomegg's comment, we should > check nobody has done this in the existing registry data (if they have, we should explore and understand why people have done this / if it's valid etc.). ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
a100367461 |
Fix NPM package validation for scoped packages (#429)
## Summary - Add URL encoding for package identifiers and versions in NPM registry requests - Fixes issue where scoped packages like @hellocoop/admin-mcp failed validation due to unencoded @ and / symbols - Add unit tests for scoped NPM packages to prevent regression Fixes #409 Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
7299960430 |
docs: remove redundant validation steps from GitHub Actions guide (#440)
Remove 'Test Before Publishing' and 'Notification Setup' sections from github-actions.md as these steps are redundant since the publisher API already handles validation. Fixes #432 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: adam jones <domdomegg@users.noreply.github.com> |
||
|
|
773f09441a |
fix: Remove servers with invalid package entries (#434)
Fixes #49 This PR removes 36 servers from the seed file that had package entries pointing to non-existent packages on PyPI or npm registries. ## Summary The issue reported that many servers in the registry had `packages` fields referencing non-existent packages. These servers either never published to package registries or used incorrect identifiers. ## Changes - **Removed 36 servers** that had invalid package references - Created validation tools to identify and fix these issues ## Affected Servers Servers removed include those pointing to non-existent: - PyPI packages: mcp-aiven, inkeep-mcp-server, needle-mcp, and others - npm packages: redis-mcp-server, mcp-server-applescript, ppl-ai, and others The registry now contains only servers with valid, installable packages. |
||
|
|
256c730198 |
Add test for filtered servers (#426)
Claude wrote this extra test while I was doing some other work experimenting with stuff, seems useful to have! Also deleted the unnecessary expectedServers, because we basically never assert on it. |
||
|
|
17eb56d4c7 |
feat: Add website_url field for MCP servers (#422)
Adds optional website_url field to the server.json schema allowing publishers to provide a url to the server's homepage, documentation, or project website. This provides a central link for users to learn more about the server. Particularly useful when the server has custom installation instructions or setup requirements. Issue: #183 PR: #130 Discussion: #274 ## Motivation and Context This change addresses the need identified in #130, #183 and #274 for a standardized way to direct users to an official landing page similar to `homepage` used in NPM ([example](https://www.npmjs.com/package/@modelcontextprotocol/sdk)). It is also serves as a viable option for MCP Servers that don't follow typical package manager patterns (e.g., embedded in a Desktop app). ## How Has This Been Tested? - Schema validation: All 13 example server.json files validate successfully against the updated schema - Go validator tests: Added additional test cases covering URL format validation and namespace matching - Run all checks: Updated example files to work with anonymous publishing and verified `make check` passes ## Breaking Changes None. The website_url field is optional and backward compatible with existing server.json files. ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context Security considerations: - Website URL validation enforces that the domain matches the publisher's reverse-DNS namespace - HTTP/HTTPS protocols are required (no file:// or other schemes) - Validation is consistent with existing remote URL validation patterns |
||
|
|
d0d8630925 |
docs: clarify that PyPI/NuGet mcp-name can be in README comments (#425)
## Summary - Clarifies that the `mcp-name` format can be included in comments within README files for both PyPI and NuGet packages - This allows publishers to hide this technical detail from end-user documentation while still enabling registry discovery ## Context The current documentation doesn't make it clear that the `mcp-name` line can be hidden in a comment, which might lead publishers to include visible technical details in their package documentation when they prefer to keep it clean for end users. |
||
|
|
adfbfafcf8 |
npm package validation: require identifier and version (#424)
<!-- Provide a brief summary of your changes --> Adding validation for version and identifier for packages. ## Motivation and Context While debugging a bug, I found out that we need exact version to be there in package to fetch from npm, otherwise we won't be able to parse the response as it returns all versions. Even if we do, we still need to go and figure out which version have the mcpname associated with while iterating over all versions. So, we should make mandatory to have identifier and version present in the given package object if we want to validate package association with registries. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> UTs. ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Co-authored-by: Avish Porwal <avishporwal@microsoft.com> |
||
|
|
6bb62d160e |
fix: add HTTP middleware to redirect trailing slash URLs to canonical form (#420)
Resolves #419 where URLs with trailing slashes like `/v0/servers/` would return empty responses instead of proper data. **Changes**: - Added TrailingSlashMiddleware that redirects trailing slash URLs with 301 status - Preserves root path ('/') without redirecting - Uses HTTP 301 Moved Permanently to indicate canonical form - Added comprehensive test coverage for the middleware This follows REST API best practices and is consistent with how major Go web frameworks handle trailing slash normalization. Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: adam jones <domdomegg@users.noreply.github.com> |
||
|
|
62f4453f37 |
feat: Add proper 404 error handling with helpful suggestions (#421)
Fixes #418 This PR addresses the issue where invalid API endpoints (like `/servers`) were returning blank 200 responses instead of proper 404 errors. ## Changes - Added catch-all 404 handler for unmatched routes - Return RFC 7807 compliant JSON error responses - Provide smart suggestions for common mistakes: - `/servers` → suggest `/v0/servers` - `/health` → suggest `/v0/health` - `/ping` → suggest `/v0/ping` - `/v1`, `/v2` → inform only v0 is supported - Fixes blank 200 responses for invalid endpoints - Improves API discoverability and debugging experience ## Testing - ✅ Unit tests pass - ✅ Integration tests pass - ✅ Manual testing confirms proper 404 responses with helpful messages Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: adam jones <domdomegg@users.noreply.github.com> Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
1236f3732d |
Improve publish permission error message to show available permissions (#417)
## Summary The permission error now displays what namespaces the user has permission to publish and what namespace they attempted to publish. This helps users debug permission mismatches more easily. Helps mitigate #398 to enable us to figure out what's going on |
||
|
|
41aacc1846 |
Ban 'latest' as a reserved version string (#413)
## Summary - Adds validation to prevent servers from being published with version string "latest" - "latest" is now a reserved keyword that cannot be used as a version string ## Implementation - Added `ErrReservedVersionString` error constant - Created `validateVersion` function to check for reserved version strings - Integrated validation into the package field validation flow - Added comprehensive test coverage --- This is so we can potentially support things like https://github.com/modelcontextprotocol/registry/discussions/333 in future more easily, as I imagine we might want to. |
||
|
|
64b7fc6408 |
docs: clarify registry is for subregistries, not individual clients (#414)
Update FAQ to clarify that the registry is primarily designed for subregistries rather than individual clients or end-users. I saw MCP client applications were listed here, which I think is not what we were intending. |
||
|
|
473fdca1c7 |
Add Docker Hub to list of supported registries (#412)
## Motivation and Context We just want to highlight that Docker Hub will support this project with updates to the `docker mcp` cli and the [mcp hub](https://hub.docker.com/mcp) catalog. |
||
|
|
91b3e414ec |
docs: fix server lookup instructions in publishing guide (#411)
The publishing guide incorrectly suggested users could verify their
server by directly accessing `/servers/{server-name}` or
`/v0/servers/{server-name}`, but the API only supports:
1. **Search by name**: `GET /v0/servers?search={server-name}`
2. **Get by UUID**: `GET /v0/servers/{uuid}`
This PR updates the documentation to show the correct verification
method using the search endpoint.
Fixes #410
|
||
|
|
e6b00ee0ed |
Use a connection pool instead of a single DB connection (#408)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR should fix the recent "conn busy" issue caused by the PostgreSQL implementation using a single database connection (*pgx.Conn) instead of a connection pool (*pgxpool.Pool). When multiple concurrent requests try to access the endpoint, they would conflict trying to use the same connection. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> Builds locally ## Breaking Changes <!-- Will users need to update their code or configurations? --> No ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Related to #400, #405 and #407 --------- Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
|
|
ca3da9045b |
Output new ServerID after publishing (#359)
When using `mcp-publisher publish ...`, output the new server `ID` if
publishing is successful.
## Motivation and Context
It's useful to know this during testing. It means that you don't have to
go and search for the new server ID afterwards. Once we have the
`v0/servers/{name}/{version}`, I think we could consider removing this
again.
## How Has This Been Tested?
I've been using this while I test publishing to locally running
registries.
## Breaking Changes
none
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
|
||
|
|
35ab2bdd74 |
Fix blog post announcement link (#397)
Fix broken blog post announcement link. Currently users are redirected to the getting started mcp docs. ## Motivation and Context The existing link redirects to https://modelcontextprotocol.io/docs/getting-started/intro. The actual blog post is on the `blog` subdomain. https://blog.modelcontextprotocol.io/posts/2025-09-08-mcp-registry-preview/ ## How Has This Been Tested? N/A - docs only change ## Breaking Changes N/A ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> |
||
|
|
72f9f80d68 |
perf(db): use pk id for lookups and ordering (#390)
summary - use the indexed primary key (`id`) for `getbyid`, `updateserver`, and list ordering/cursor, instead of extracting `_meta...id` from jsonb - in `updateserver`, error if the body tries to change the id; set `meta.official.id` when missing changes - database: `getbyid` → `where id = $1` - database: `updateserver` → `where id = $2`; fail on id mismatch; set id if missing - database: `list` orders by `id` and paginates via `id > $cursor` - no schema or api changes <details> <summary>performance</summary> - env: repo docker compose postgres, 5k–10k rows, warm cache - getbyid: `id` ≈ 0.02 ms vs jsonb path ≈ 0.80 ms - update: `id` ≈ 0.15 ms vs jsonb path ≈ 0.78 ms - list (limit 100): order by `id` ≈ 0.13 ms vs jsonb path id ≈ 2.24 ms (~17x slower) </details> <details> <summary>explain analyze snippets</summary> getbyid by `id` ``` Index Scan using idx_benchmark_servers_id on benchmark_servers (actual time≈0.01–0.02 ms) Buffers: shared hit≈3 ``` getbyid by jsonb path ``` Seq Scan on benchmark_servers (actual time≈0.43–0.83 ms) Filter: ((value->'_meta'->'io.modelcontextprotocol.registry/official'->>'id') = $1) Rows Removed by Filter: ≈4999 Buffers: shared hit≈455 ``` update by `id` ``` Update on benchmark_servers … -> Index Scan using idx_benchmark_servers_id … (actual time≈0.007 ms) Execution Time: ≈0.15 ms ``` update by jsonb path ``` Update on benchmark_servers … -> Seq Scan on benchmark_servers … Rows Removed by Filter: ≈4999 Execution Time: ≈0.78 ms ``` </details> <details> <summary>reproduce quickly</summary> - start postgres: `docker compose up -d postgres` - create a simple table (id varchar pk, value jsonb) with several thousand rows - compare plans: `explain (analyze, buffers) select value from … where id = $1` vs the jsonb path predicate </details> --------- Co-authored-by: Adam Jones <adamj@anthropic.com> |
||
|
|
7ed56bafa1 |
docs: update README for preview launch (#392)
## Summary - Update development status to reflect preview launch - Add navigation links for publishing, API docs, and ecosystem vision - Include announcement blog post link - Add feedback channels (GitHub discussions and Discord) |
||
|
|
0eada9b3b4 |
refactor: consolidate server list response types (#387)
## Summary - Consolidate ServerListResponse and Metadata types into pkg/api/v0 - Remove duplication between handler and API types - Change metadata from optional pointer to required value - Remove unused Total field from Metadata |
||
|
|
d43d0bfeef |
docs: fix DNS authentication to use root domain instead of _mcp-registry subdomain (#388)
Fixes #385 Updates DNS authentication documentation to correctly specify that TXT records should be placed at the root domain (e.g., `example.com`) rather than the `_mcp-registry` subdomain. The implementation correctly looks up TXT records at the root domain, but the documentation incorrectly instructed users to create records at `_mcp-registry.<domain>`. This mismatch was causing authentication failures. ## Why use root domain instead of subdomain? The root domain approach is clearer: if you want to publish to `com.example/my-server`, you authenticate with `example.com`, not `_mcp-registry.example.com`. It also aligns with other TXT DNS standards, e.g. SPF. (That said, there are other DNS standards that use subdomains e.g. DKIM 🤷) ## Changes - Updated publish-server.md to remove `_mcp-registry.` prefix from DNS examples - Updated CLI commands reference documentation - Updated namespacing explanation documentation |
||
|
|
0745bb91ce |
docs: add homebrew installation notes for mcp-publisher (#384)
- https://github.com/Homebrew/homebrew-core/pull/236635 - https://github.com/modelcontextprotocol/registry/issues/358 - https://formulae.brew.sh/formula/mcp-publisher --------- Signed-off-by: Rui Chen <rui@chenrui.dev> Co-authored-by: Adam Jones <adamj@anthropic.com> |
||
|
|
55e76066f4 |
docs: Simplify publisher CLI installation instructions (#382)
## Summary Simplifies the installation instructions in the publisher guide by: - Auto-detecting platform using `uname` and PowerShell built-ins for a single copy-paste command - Moving build-from-source to a collapsible details section to emphasize the recommended pre-built binary approach - Removing unnecessary `chmod +x` since tar preserves executable permissions - Adding explicit support for WSL This makes it much easier for users to get started - they can now just copy one command instead of picking from 4+ platform-specific options. |
||
|
|
da2965f6e2 |
ci: Add concurrency groups to prevent deployment conflicts (#381)
## Summary Add per-environment concurrency groups to staging and production deployment jobs to prevent Pulumi stack lock conflicts when multiple PRs are merged simultaneously. - `deploy-staging` job gets `deploy-staging` concurrency group - `deploy-production` job gets `deploy-production` concurrency group - Both use `cancel-in-progress: false` to queue deployments safely This eliminates CI noise from failed parallel deployments while maintaining deployment reliability. Fixes #375 |
||
|
|
e72caa07fe |
Update the publishing docs to refer to the v1.0.0 release (#380)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> The following PR updates the publishing docs to refer to the mcp-publisher release assets from v1.0.0. ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> Locally ## Breaking Changes <!-- Will users need to update their code or configurations? --> No ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com> |
249 changed files with 36678 additions and 22767 deletions
|
|
@ -1 +0,0 @@
|
|||
.db
|
||||
18
.env.example
18
.env.example
|
|
@ -5,12 +5,16 @@ MCP_REGISTRY_SERVER_ADDRESS=:8080
|
|||
MCP_REGISTRY_VERSION=dev
|
||||
|
||||
# Database configuration
|
||||
# Supported types: postgresql, memory
|
||||
MCP_REGISTRY_DATABASE_TYPE=postgresql
|
||||
MCP_REGISTRY_DATABASE_URL=postgres://username:password@localhost:5432/mcp-registry
|
||||
|
||||
# Path or URL to import seed data (supports local files and HTTP URLs)
|
||||
MCP_REGISTRY_SEED_FROM=data/seed.json
|
||||
# For offline development, use: data/seed.json
|
||||
MCP_REGISTRY_SEED_FROM=https://registry.modelcontextprotocol.io/v0/servers
|
||||
|
||||
# Validate seed data against the registry rules on import (default: true)
|
||||
# Set to false for offline development when seeding from a local file, since
|
||||
# data/seed.json is not guaranteed to pass validation
|
||||
MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION=true
|
||||
|
||||
# GitHub OAuth configuration
|
||||
# These creds are for local development with the 'MCP Registry Login (Local)' GitHub App
|
||||
|
|
@ -28,6 +32,14 @@ MCP_REGISTRY_JWT_PRIVATE_KEY=bb2c6b424005acd5df47a9e2c87f446def86dd740c888ea3efb
|
|||
# This should be disabled in prod
|
||||
MCP_REGISTRY_ENABLE_ANONYMOUS_AUTH=false
|
||||
|
||||
# GitHub OIDC token exchange (for `mcp-publisher login github-oidc`)
|
||||
# Expected `aud` claim on incoming GitHub Actions OIDC tokens. Must equal the
|
||||
# scheme + host that publishers pass via `--registry` (e.g. `https://registry.example.com`).
|
||||
# The publisher CLI derives the audience from `--registry` automatically; the server
|
||||
# rejects all OIDC exchanges if this is unset, so set it on every deployment that
|
||||
# accepts GitHub Actions publishes.
|
||||
MCP_REGISTRY_GITHUB_OIDC_AUDIENCE=
|
||||
|
||||
# Google Cloud Identity OIDC configuration for admin access
|
||||
# Enable OIDC authentication for @modelcontextprotocol.io admin accounts
|
||||
MCP_REGISTRY_OIDC_ENABLED=false
|
||||
|
|
|
|||
13
.github/copilot-instructions.md
vendored
Normal file
13
.github/copilot-instructions.md
vendored
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Copilot Instructions for MCP Registry
|
||||
|
||||
## Important: Publishing MCP servers
|
||||
|
||||
The `data/seed.json` file is seed data for local development only. Do NOT create pull requests that add or modify server entries in `data/seed.json` to publish a server.
|
||||
|
||||
To publish an MCP server to the registry, use the `mcp-publisher` CLI tool. See `docs/modelcontextprotocol-io/quickstart.mdx` for instructions.
|
||||
|
||||
## Development
|
||||
|
||||
- Use `make` targets where possible (run `make help` to see available targets)
|
||||
- Run `make check` to run lint, schema validation, and all tests (this also stops any running dev-compose environment)
|
||||
- Run `make dev-compose` to start the local development environment
|
||||
30
.github/dependabot.yml
vendored
Normal file
30
.github/dependabot.yml
vendored
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: gomod
|
||||
directory: /
|
||||
groups:
|
||||
go-dependencies:
|
||||
patterns:
|
||||
- "*"
|
||||
schedule:
|
||||
interval: weekly
|
||||
- package-ecosystem: gomod
|
||||
directory: /deploy
|
||||
groups:
|
||||
deploy-go-dependencies:
|
||||
patterns:
|
||||
- "*"
|
||||
schedule:
|
||||
interval: weekly
|
||||
- package-ecosystem: github-actions
|
||||
directory: /
|
||||
groups:
|
||||
github-actions:
|
||||
patterns:
|
||||
- "*"
|
||||
schedule:
|
||||
interval: weekly
|
||||
- package-ecosystem: docker
|
||||
directory: /
|
||||
schedule:
|
||||
interval: weekly
|
||||
76
.github/workflows/cancel-pulumi-lock.yml
vendored
Normal file
76
.github/workflows/cancel-pulumi-lock.yml
vendored
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
name: Cancel Pulumi Lock
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
environment:
|
||||
description: 'Environment to cancel lock for'
|
||||
required: true
|
||||
type: choice
|
||||
options:
|
||||
- staging
|
||||
- production
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
PULUMI_VERSION: "3.188.0"
|
||||
|
||||
jobs:
|
||||
cancel-lock:
|
||||
name: Cancel Pulumi Lock
|
||||
runs-on: ubuntu-latest
|
||||
environment: ${{ inputs.environment }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
||||
|
||||
- name: Setup Pulumi
|
||||
uses: pulumi/actions@8e5e406f4007fca908480587cb9893c07090f58d
|
||||
with:
|
||||
pulumi-version: ${{ env.PULUMI_VERSION }}
|
||||
|
||||
- name: Authenticate to Google Cloud (Staging)
|
||||
if: inputs.environment == 'staging'
|
||||
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093
|
||||
with:
|
||||
credentials_json: ${{ secrets.GCP_STAGING_SERVICE_ACCOUNT_KEY }}
|
||||
|
||||
- name: Authenticate to Google Cloud (Production)
|
||||
if: inputs.environment == 'production'
|
||||
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093
|
||||
with:
|
||||
credentials_json: ${{ secrets.GCP_PROD_SERVICE_ACCOUNT_KEY }}
|
||||
|
||||
- name: Setup Google Cloud SDK (Staging)
|
||||
if: inputs.environment == 'staging'
|
||||
uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db
|
||||
with:
|
||||
project_id: mcp-registry-staging
|
||||
|
||||
- name: Setup Google Cloud SDK (Production)
|
||||
if: inputs.environment == 'production'
|
||||
uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db
|
||||
with:
|
||||
project_id: mcp-registry-prod
|
||||
|
||||
- name: Cancel Pulumi Lock (Staging)
|
||||
if: inputs.environment == 'staging'
|
||||
working-directory: ./deploy
|
||||
env:
|
||||
PULUMI_STAGING_PASSPHRASE: ${{ secrets.PULUMI_STAGING_PASSPHRASE }}
|
||||
run: |
|
||||
echo "$PULUMI_STAGING_PASSPHRASE" > passphrase.staging.txt
|
||||
pulumi login gs://mcp-registry-staging-pulumi-state
|
||||
PULUMI_CONFIG_PASSPHRASE_FILE=passphrase.staging.txt pulumi cancel --stack gcpStaging --yes
|
||||
|
||||
- name: Cancel Pulumi Lock (Production)
|
||||
if: inputs.environment == 'production'
|
||||
working-directory: ./deploy
|
||||
env:
|
||||
PULUMI_PROD_PASSPHRASE: ${{ secrets.PULUMI_PROD_PASSPHRASE }}
|
||||
run: |
|
||||
echo "$PULUMI_PROD_PASSPHRASE" > passphrase.prod.txt
|
||||
pulumi login gs://mcp-registry-prod-pulumi-state
|
||||
PULUMI_CONFIG_PASSPHRASE_FILE=passphrase.prod.txt pulumi cancel --stack gcpProd --yes
|
||||
65
.github/workflows/ci.yml
vendored
65
.github/workflows/ci.yml
vendored
|
|
@ -6,8 +6,8 @@ on:
|
|||
pull_request:
|
||||
branches: [ main ]
|
||||
|
||||
env:
|
||||
GO_VERSION: '1.24.x'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
# Build, Lint, and Validate
|
||||
|
|
@ -16,32 +16,18 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
|
||||
- name: Cache Go modules
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cache/go-build
|
||||
~/go/pkg/mod
|
||||
key: ${{ runner.os }}-go-${{ github.sha }}-${{ hashFiles('**/go.sum', '.golangci.yml') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-go-
|
||||
|
||||
- name: Download dependencies
|
||||
run: go mod download
|
||||
|
||||
- name: Install golangci-lint
|
||||
run: |
|
||||
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v2.4.0
|
||||
go-version: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Run lint
|
||||
run: make lint
|
||||
uses: golangci/golangci-lint-action@ba0d7d2ec06a0ea1cb5fa41b2e4a3ab91d21278a
|
||||
with:
|
||||
version: v2.13.1
|
||||
|
||||
- name: Validate schemas and examples
|
||||
run: make validate
|
||||
|
|
@ -49,10 +35,12 @@ jobs:
|
|||
- name: Build application
|
||||
run: make build
|
||||
|
||||
- name: Check for vulnerabilities
|
||||
run: |
|
||||
go install golang.org/x/vuln/cmd/govulncheck@latest
|
||||
govulncheck ./...
|
||||
- name: Run govulncheck
|
||||
uses: golang/govulncheck-action@v1
|
||||
with:
|
||||
go-version-input: 'stable'
|
||||
go-package: ./...
|
||||
repo-checkout: false
|
||||
|
||||
# All Tests
|
||||
tests:
|
||||
|
|
@ -60,31 +48,22 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
go-version: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Cache Go modules
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cache/go-build
|
||||
~/go/pkg/mod
|
||||
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-go-
|
||||
|
||||
- name: Download dependencies
|
||||
run: go mod download
|
||||
- name: Set up ko
|
||||
uses: ko-build/setup-ko@v0.10
|
||||
|
||||
- name: Run all tests
|
||||
run: make test-all
|
||||
|
||||
- name: Upload coverage artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
|
||||
with:
|
||||
name: coverage-report
|
||||
path: |
|
||||
|
|
|
|||
15
.github/workflows/claude.yml
vendored
15
.github/workflows/claude.yml
vendored
|
|
@ -26,13 +26,13 @@ jobs:
|
|||
actions: read
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Run Claude Code
|
||||
id: claude
|
||||
uses: anthropics/claude-code-action@beta
|
||||
uses: anthropics/claude-code-action@v1
|
||||
with:
|
||||
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
||||
|
||||
|
|
@ -42,10 +42,7 @@ jobs:
|
|||
|
||||
# Trigger when assigned to an issue
|
||||
assignee_trigger: "claude"
|
||||
|
||||
# Allow Claude to run bash
|
||||
# This should be safe given the repo is already public
|
||||
allowed_tools: "Bash"
|
||||
|
||||
custom_instructions: |
|
||||
If posting a comment to GitHub, give a concise summary of the comment at the top and put all the details in a <details> block.
|
||||
|
||||
claude_args: |
|
||||
--allowedTools Bash
|
||||
--system-prompt "If posting a comment to GitHub, give a concise summary of the comment at the top and put all the details in a <details> block."
|
||||
|
|
|
|||
151
.github/workflows/close-invalid-publish-prs.yml
vendored
Normal file
151
.github/workflows/close-invalid-publish-prs.yml
vendored
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
name: Close invalid publish PRs
|
||||
|
||||
# Stage 2 of 2 (see detect-invalid-publish-prs.yml for stage 1).
|
||||
#
|
||||
# Runs in the trusted base-repo context (triggered by workflow_run, not by the
|
||||
# PR itself), so it has a write token. It picks up the PR number flagged by
|
||||
# stage 1 and, after independently re-validating the PR from the API, posts a
|
||||
# comment pointing at the publishing docs, labels it `invalid`, and closes it.
|
||||
#
|
||||
# Trust boundary: the ONLY thing crossing from the untrusted stage is the PR
|
||||
# number (sanitized to digits below). We re-derive every decision (state,
|
||||
# author, changed files) here, so a wrong/stale artifact can never cause us to
|
||||
# close a PR that doesn't actually match.
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["Detect invalid publish PRs"]
|
||||
types: [completed]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
issues: write # labels on PRs go through the issues API
|
||||
actions: read # needed to list/download the stage-1 artifact
|
||||
|
||||
jobs:
|
||||
close:
|
||||
if: github.event.workflow_run.conclusion == 'success'
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
GH_REPO: ${{ github.repository }}
|
||||
RUN_ID: ${{ github.event.workflow_run.id }}
|
||||
COMMENT_BODY: |
|
||||
Hi @__AUTHOR__ 👋 — thanks for your interest in the MCP Registry!
|
||||
|
||||
It looks like this PR is trying to publish an MCP server by adding or editing server files in this repository (under `servers/`, `data/servers/`, or in `data/seed.json`). That isn't how servers get published, so I'm closing this PR automatically.
|
||||
|
||||
**Servers are published with the [`mcp-publisher`](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx) CLI**, not by opening a pull request against this repo. The CLI verifies that you own your namespace and submits your `server.json` directly to the live registry API.
|
||||
|
||||
To publish your server, follow the **[Publishing Quickstart](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx)**. In short:
|
||||
|
||||
```bash
|
||||
# Build the publisher CLI
|
||||
make publisher
|
||||
|
||||
# Authenticate (e.g. via GitHub) and publish your server.json
|
||||
./bin/mcp-publisher login github
|
||||
./bin/mcp-publisher publish
|
||||
```
|
||||
|
||||
Note: `data/seed.json` is seed data for **local development only** — adding entries there does not publish anything to the registry.
|
||||
|
||||
If you believe this was closed in error, please leave a comment and a maintainer will take a look. 🙇
|
||||
|
||||
_This is an automated message._
|
||||
|
||||
steps:
|
||||
- name: Check for flagged-pr artifact
|
||||
id: check
|
||||
run: |
|
||||
set -euo pipefail
|
||||
names="$(gh api "repos/$GH_REPO/actions/runs/$RUN_ID/artifacts" --jq '.artifacts[].name' || true)"
|
||||
if printf '%s\n' "$names" | grep -qx "flagged-pr"; then
|
||||
echo "found=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "No flagged-pr artifact on run $RUN_ID; nothing to do."
|
||||
echo "found=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: Download flagged PR number
|
||||
if: steps.check.outputs.found == 'true'
|
||||
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
||||
with:
|
||||
name: flagged-pr
|
||||
run-id: ${{ github.event.workflow_run.id }}
|
||||
github-token: ${{ github.token }}
|
||||
|
||||
- name: Re-validate and close
|
||||
if: steps.check.outputs.found == 'true'
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
# Sanitize: the only cross-boundary input. Keep digits only.
|
||||
PR_NUMBER="$(tr -dc '0-9' < pr-number.txt)"
|
||||
if [ -z "$PR_NUMBER" ]; then
|
||||
echo "No valid PR number in artifact; skipping."
|
||||
exit 0
|
||||
fi
|
||||
echo "Re-validating PR #$PR_NUMBER"
|
||||
|
||||
state="$(gh pr view "$PR_NUMBER" --json state --jq '.state')"
|
||||
if [ "$state" != "OPEN" ]; then
|
||||
echo "PR #$PR_NUMBER is $state, not OPEN; skipping."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Use the REST endpoint: `gh pr view --json` does not expose an
|
||||
# authorAssociation field, so calling it there exits non-zero and,
|
||||
# under `set -euo pipefail`, aborts the job before we ever close.
|
||||
assoc="$(gh api "repos/$GH_REPO/pulls/$PR_NUMBER" --jq '.author_association')"
|
||||
case "$assoc" in
|
||||
MEMBER|OWNER|COLLABORATOR)
|
||||
echo "Author association '$assoc' is trusted; skipping."
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
# Idempotency: if a maintainer reopens after we labeled it, leave it be.
|
||||
# Capture into a var first so a transient gh failure can't fail open
|
||||
# (an errored fetch piped to grep would otherwise look "not labeled").
|
||||
labels="$(gh pr view "$PR_NUMBER" --json labels --jq '.labels[].name' || true)"
|
||||
if printf '%s\n' "$labels" | grep -qx "invalid"; then
|
||||
echo "PR #$PR_NUMBER already labeled 'invalid'; skipping."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Paginated REST endpoint (gh pr view --json files caps at 100, no pagination).
|
||||
mapfile -t FILES < <(gh api --paginate "repos/$GH_REPO/pulls/$PR_NUMBER/files" --jq '.[].filename')
|
||||
if [ "${#FILES[@]}" -eq 0 ]; then
|
||||
echo "No files for PR #$PR_NUMBER; skipping."
|
||||
exit 0
|
||||
fi
|
||||
# Keep this list in sync with the copy in stage 1.
|
||||
publish_attempt=0
|
||||
other=0
|
||||
for f in "${FILES[@]}"; do
|
||||
if [[ "$f" == servers/* \
|
||||
|| "$f" == data/servers/* \
|
||||
|| "$f" == data/data/servers/* \
|
||||
|| "$f" =~ ^data/[^/]*server\.json$ \
|
||||
|| "$f" == "data/seed.json" \
|
||||
|| "$f" == "server.json" \
|
||||
|| "$f" == "servers.json" ]]; then
|
||||
publish_attempt=1
|
||||
else
|
||||
other=1
|
||||
fi
|
||||
done
|
||||
if [ "$publish_attempt" -ne 1 ] || [ "$other" -ne 0 ]; then
|
||||
echo "PR #$PR_NUMBER no longer matches the publish-attempt pattern; skipping."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
author="$(gh pr view "$PR_NUMBER" --json author --jq '.author.login')"
|
||||
body="${COMMENT_BODY//__AUTHOR__/$author}"
|
||||
|
||||
echo "Commenting on, labeling, and closing PR #$PR_NUMBER"
|
||||
gh pr comment "$PR_NUMBER" --body "$body"
|
||||
gh pr edit "$PR_NUMBER" --add-label "invalid" || echo "Could not add label; continuing."
|
||||
gh pr close "$PR_NUMBER"
|
||||
56
.github/workflows/deploy-production.yml
vendored
Normal file
56
.github/workflows/deploy-production.yml
vendored
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
name: Deploy to Production
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'deploy/Pulumi.gcpProd.yaml'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
PULUMI_VERSION: "3.188.0"
|
||||
|
||||
jobs:
|
||||
deploy-production:
|
||||
name: Deploy to Production
|
||||
runs-on: ubuntu-latest
|
||||
environment: production
|
||||
concurrency:
|
||||
group: deploy-production
|
||||
cancel-in-progress: false
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e
|
||||
with:
|
||||
go-version: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Setup Pulumi
|
||||
uses: pulumi/actions@8e5e406f4007fca908480587cb9893c07090f58d
|
||||
with:
|
||||
pulumi-version: ${{ env.PULUMI_VERSION }}
|
||||
|
||||
- name: Authenticate to Google Cloud
|
||||
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093
|
||||
with:
|
||||
credentials_json: ${{ secrets.GCP_PROD_SERVICE_ACCOUNT_KEY }}
|
||||
|
||||
- name: Setup Google Cloud SDK
|
||||
uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db
|
||||
with:
|
||||
project_id: mcp-registry-prod
|
||||
install_components: gke-gcloud-auth-plugin
|
||||
|
||||
- name: Deploy to Production
|
||||
working-directory: ./deploy
|
||||
env:
|
||||
PULUMI_PROD_PASSPHRASE: ${{ secrets.PULUMI_PROD_PASSPHRASE }}
|
||||
run: |
|
||||
echo "$PULUMI_PROD_PASSPHRASE" > passphrase.prod.txt
|
||||
make prod-up
|
||||
103
.github/workflows/deploy-staging.yml
vendored
Normal file
103
.github/workflows/deploy-staging.yml
vendored
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
name: Deploy to Staging
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths-ignore:
|
||||
- 'deploy/Pulumi.gcpProd.yaml'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
PULUMI_VERSION: "3.188.0"
|
||||
|
||||
jobs:
|
||||
ko-push:
|
||||
name: Build and Push Image with ko
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e
|
||||
with:
|
||||
go-version: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Set up ko
|
||||
uses: ko-build/setup-ko@v0.10
|
||||
|
||||
- name: Log in to Container Registry
|
||||
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Get build timestamp and tags
|
||||
id: build-info
|
||||
run: |
|
||||
echo "timestamp=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> $GITHUB_OUTPUT
|
||||
echo "date=$(date -u +%Y%m%d)" >> $GITHUB_OUTPUT
|
||||
echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Build and push with ko
|
||||
env:
|
||||
KO_DOCKER_REPO: ghcr.io/${{ github.repository }}
|
||||
VERSION: main-${{ steps.build-info.outputs.date }}-${{ steps.build-info.outputs.short_sha }}
|
||||
GIT_COMMIT: ${{ github.sha }}
|
||||
BUILD_TIME: ${{ steps.build-info.outputs.timestamp }}
|
||||
run: |
|
||||
# Build and push multi-platform image
|
||||
ko build ./cmd/registry \
|
||||
--bare \
|
||||
--platform=linux/amd64,linux/arm64 \
|
||||
--tags=main-${{ steps.build-info.outputs.date }}-${{ steps.build-info.outputs.short_sha }},main
|
||||
|
||||
deploy-staging:
|
||||
name: Deploy to Staging
|
||||
runs-on: ubuntu-latest
|
||||
environment: staging
|
||||
needs: ko-push
|
||||
concurrency:
|
||||
group: deploy-staging
|
||||
cancel-in-progress: false
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e
|
||||
with:
|
||||
go-version: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Setup Pulumi
|
||||
uses: pulumi/actions@8e5e406f4007fca908480587cb9893c07090f58d
|
||||
with:
|
||||
pulumi-version: ${{ env.PULUMI_VERSION }}
|
||||
|
||||
- name: Authenticate to Google Cloud
|
||||
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093
|
||||
with:
|
||||
credentials_json: ${{ secrets.GCP_STAGING_SERVICE_ACCOUNT_KEY }}
|
||||
|
||||
- name: Setup Google Cloud SDK
|
||||
uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db
|
||||
with:
|
||||
project_id: mcp-registry-staging
|
||||
install_components: gke-gcloud-auth-plugin
|
||||
|
||||
- name: Deploy to Staging
|
||||
working-directory: ./deploy
|
||||
env:
|
||||
PULUMI_STAGING_PASSPHRASE: ${{ secrets.PULUMI_STAGING_PASSPHRASE }}
|
||||
run: |
|
||||
echo "$PULUMI_STAGING_PASSPHRASE" > passphrase.staging.txt
|
||||
make staging-up
|
||||
124
.github/workflows/deploy.yml
vendored
124
.github/workflows/deploy.yml
vendored
|
|
@ -1,124 +0,0 @@
|
|||
name: Deploy
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
env:
|
||||
PULUMI_VERSION: "3.188.0"
|
||||
GO_VERSION: "1.24.6"
|
||||
|
||||
jobs:
|
||||
docker-push:
|
||||
name: Build Docker Image
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Log in to Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Extract metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: ghcr.io/${{ github.repository }}
|
||||
tags: |
|
||||
type=sha,prefix=main-{{date 'YYYYMMDD'}}-,enable={{is_default_branch}}
|
||||
type=raw,value=main,enable={{is_default_branch}}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
|
||||
deploy-staging:
|
||||
name: Deploy to Staging
|
||||
runs-on: ubuntu-latest
|
||||
environment: staging
|
||||
needs: docker-push
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
|
||||
- name: Setup Pulumi
|
||||
uses: pulumi/actions@v6
|
||||
with:
|
||||
pulumi-version: ${{ env.PULUMI_VERSION }}
|
||||
|
||||
- name: Authenticate to Google Cloud
|
||||
uses: google-github-actions/auth@v2
|
||||
with:
|
||||
credentials_json: ${{ secrets.GCP_STAGING_SERVICE_ACCOUNT_KEY }}
|
||||
|
||||
- name: Setup Google Cloud SDK
|
||||
uses: google-github-actions/setup-gcloud@v2
|
||||
with:
|
||||
project_id: mcp-registry-staging
|
||||
install_components: gke-gcloud-auth-plugin
|
||||
|
||||
- name: Deploy to Staging
|
||||
working-directory: ./deploy
|
||||
run: |
|
||||
echo "${{ secrets.PULUMI_STAGING_PASSPHRASE }}" > passphrase.staging.txt
|
||||
make staging-up
|
||||
|
||||
deploy-production:
|
||||
name: Deploy to Production
|
||||
runs-on: ubuntu-latest
|
||||
environment: production
|
||||
needs: deploy-staging
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
|
||||
- name: Setup Pulumi
|
||||
uses: pulumi/actions@v6
|
||||
with:
|
||||
pulumi-version: ${{ env.PULUMI_VERSION }}
|
||||
|
||||
- name: Authenticate to Google Cloud
|
||||
uses: google-github-actions/auth@v2
|
||||
with:
|
||||
credentials_json: ${{ secrets.GCP_PROD_SERVICE_ACCOUNT_KEY }}
|
||||
|
||||
- name: Setup Google Cloud SDK
|
||||
uses: google-github-actions/setup-gcloud@v2
|
||||
with:
|
||||
project_id: mcp-registry-prod
|
||||
install_components: gke-gcloud-auth-plugin
|
||||
|
||||
- name: Deploy to Production
|
||||
working-directory: ./deploy
|
||||
run: |
|
||||
echo "${{ secrets.PULUMI_PROD_PASSPHRASE }}" > passphrase.prod.txt
|
||||
make prod-up
|
||||
96
.github/workflows/detect-invalid-publish-prs.yml
vendored
Normal file
96
.github/workflows/detect-invalid-publish-prs.yml
vendored
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
name: Detect invalid publish PRs
|
||||
|
||||
# Stage 1 of 2 (see close-invalid-publish-prs.yml for stage 2).
|
||||
#
|
||||
# Some contributors try to "publish" a server by opening a PR that adds files
|
||||
# under servers/ or edits data/seed.json. That is not how publishing works -
|
||||
# servers are published with the mcp-publisher CLI against the live registry
|
||||
# API. This job only DETECTS such PRs. It runs from the (untrusted) PR context
|
||||
# with a read-only token, so it cannot comment on or close anything. When it
|
||||
# finds a match it records just the PR number as an artifact; the privileged
|
||||
# stage-2 workflow picks that up via workflow_run and acts on it.
|
||||
#
|
||||
# We never check out or run the PR's code - we only read changed file paths.
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, reopened]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
|
||||
jobs:
|
||||
detect:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
GH_REPO: ${{ github.repository }}
|
||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
AUTHOR_ASSOCIATION: ${{ github.event.pull_request.author_association }}
|
||||
steps:
|
||||
- name: Classify PR
|
||||
id: classify
|
||||
run: |
|
||||
set -euo pipefail
|
||||
match=false
|
||||
|
||||
# Maintainers may legitimately touch these files (e.g. dev seed data),
|
||||
# so never flag their PRs.
|
||||
case "$AUTHOR_ASSOCIATION" in
|
||||
MEMBER|OWNER|COLLABORATOR)
|
||||
echo "Author association '$AUTHOR_ASSOCIATION' is trusted; not flagging."
|
||||
;;
|
||||
*)
|
||||
# Use the paginated REST endpoint: `gh pr view --json files` caps
|
||||
# at 100 files with no pagination, which could truncate a large PR
|
||||
# and cause a false match.
|
||||
mapfile -t FILES < <(gh api --paginate "repos/$GH_REPO/pulls/$PR_NUMBER/files" --jq '.[].filename')
|
||||
if [ "${#FILES[@]}" -gt 0 ]; then
|
||||
# Flag only if the PR touches *exclusively* publish-attempt files
|
||||
# and nothing else, so that legit PRs touching seed data
|
||||
# alongside real code are left alone.
|
||||
#
|
||||
# Keep this list in sync with the copy in stage 2. It stays an
|
||||
# explicit list rather than a broad `**/server.json` glob:
|
||||
# because we require *every* file to match, an over-broad
|
||||
# pattern would auto-close a legitimate single-file PR.
|
||||
# data/servers/** is here because #1524 put its server.json
|
||||
# there - a natural guess next to data/seed.json - and slipped
|
||||
# through the original servers/**-only list.
|
||||
publish_attempt=0
|
||||
other=0
|
||||
for f in "${FILES[@]}"; do
|
||||
if [[ "$f" == servers/* \
|
||||
|| "$f" == data/servers/* \
|
||||
|| "$f" == data/data/servers/* \
|
||||
|| "$f" =~ ^data/[^/]*server\.json$ \
|
||||
|| "$f" == "data/seed.json" \
|
||||
|| "$f" == "server.json" \
|
||||
|| "$f" == "servers.json" ]]; then
|
||||
publish_attempt=1
|
||||
else
|
||||
echo "Non-publish file changed: $f"
|
||||
other=1
|
||||
fi
|
||||
done
|
||||
if [ "$publish_attempt" -eq 1 ] && [ "$other" -eq 0 ]; then
|
||||
match=true
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "PR #$PR_NUMBER match=$match"
|
||||
echo "match=$match" >> "$GITHUB_OUTPUT"
|
||||
if [ "$match" = "true" ]; then
|
||||
echo "$PR_NUMBER" > pr-number.txt
|
||||
fi
|
||||
|
||||
- name: Record flagged PR number
|
||||
if: steps.classify.outputs.match == 'true'
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v4
|
||||
with:
|
||||
name: flagged-pr
|
||||
path: pr-number.txt
|
||||
retention-days: 1
|
||||
69
.github/workflows/release.yml
vendored
69
.github/workflows/release.yml
vendored
|
|
@ -14,23 +14,24 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e
|
||||
with:
|
||||
go-version: '1.24.x'
|
||||
go-version: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Install cosign
|
||||
uses: sigstore/cosign-installer@v3
|
||||
uses: sigstore/cosign-installer@6f9f17788090df1f26f669e9d70d6ae9567deba6 # v4.1.2
|
||||
|
||||
- name: Install Syft
|
||||
uses: anchore/sbom-action/download-syft@v0.20.5
|
||||
uses: anchore/sbom-action/download-syft@v0.24.2
|
||||
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@v6
|
||||
uses: goreleaser/goreleaser-action@f06c13b6b1a9625abc9e6e439d9c05a8f2190e94
|
||||
with:
|
||||
distribution: goreleaser
|
||||
version: v2.12.0
|
||||
|
|
@ -38,40 +39,48 @@ jobs:
|
|||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
docker:
|
||||
ko-push:
|
||||
name: Build and Push Image with ko
|
||||
runs-on: ubuntu-latest
|
||||
needs: goreleaser
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e
|
||||
with:
|
||||
go-version: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Set up ko
|
||||
uses: ko-build/setup-ko@v0.10
|
||||
|
||||
- name: Log in to Container Registry
|
||||
uses: docker/login-action@v3
|
||||
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Extract metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: ghcr.io/${{ github.repository }}
|
||||
tags: |
|
||||
type=semver,pattern={{version}}
|
||||
type=raw,value=latest
|
||||
- name: Get build timestamp and version
|
||||
id: build-info
|
||||
run: |
|
||||
echo "timestamp=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> $GITHUB_OUTPUT
|
||||
# Extract version from tag and strip 'v' prefix (e.g., refs/tags/v1.2.3 -> 1.2.3)
|
||||
VERSION="${GITHUB_REF#refs/tags/}"
|
||||
VERSION="${VERSION#v}"
|
||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
- name: Build and push with ko
|
||||
env:
|
||||
KO_DOCKER_REPO: ghcr.io/${{ github.repository }}
|
||||
VERSION: ${{ steps.build-info.outputs.version }}
|
||||
GIT_COMMIT: ${{ github.sha }}
|
||||
BUILD_TIME: ${{ steps.build-info.outputs.timestamp }}
|
||||
run: |
|
||||
# Build and push multi-platform image with version tag and latest
|
||||
ko build ./cmd/registry \
|
||||
--bare \
|
||||
--platform=linux/amd64,linux/arm64 \
|
||||
--tags=${{ steps.build-info.outputs.version }},latest
|
||||
|
|
|
|||
435
.github/workflows/sync-db.yml
vendored
Normal file
435
.github/workflows/sync-db.yml
vendored
Normal file
|
|
@ -0,0 +1,435 @@
|
|||
name: Sync Production DB to Staging (from backups)
|
||||
|
||||
on:
|
||||
# schedule:
|
||||
# # Run daily at 2 AM UTC (during low-traffic hours)
|
||||
# - cron: '0 2 * * *'
|
||||
workflow_dispatch: # Allow manual triggering
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
sync-database:
|
||||
name: Sync Prod DB to Staging from k8up Backups
|
||||
runs-on: ubuntu-latest
|
||||
environment: staging
|
||||
concurrency:
|
||||
group: sync-staging-database
|
||||
cancel-in-progress: false
|
||||
steps:
|
||||
- name: Authenticate to Google Cloud (Production)
|
||||
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093
|
||||
with:
|
||||
credentials_json: ${{ secrets.GCP_PROD_SERVICE_ACCOUNT_KEY }}
|
||||
|
||||
- name: Setup Google Cloud SDK
|
||||
uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db
|
||||
with:
|
||||
project_id: mcp-registry-prod
|
||||
install_components: gke-gcloud-auth-plugin
|
||||
|
||||
- name: Get backup credentials from prod cluster
|
||||
id: backup-creds
|
||||
run: |
|
||||
gcloud container clusters get-credentials mcp-registry-prod \
|
||||
--zone=us-central1-b \
|
||||
--project=mcp-registry-prod
|
||||
|
||||
# Store in outputs (GitHub Actions encrypts these automatically)
|
||||
kubectl get secret k8up-backup-credentials -n default -o json | jq -r '
|
||||
"access_key=" + (.data.AWS_ACCESS_KEY_ID | @base64d),
|
||||
"secret_key=" + (.data.AWS_SECRET_ACCESS_KEY | @base64d)
|
||||
' >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Remove all production access (SAFETY MEASURE)
|
||||
run: |
|
||||
# Remove production cluster from kubeconfig
|
||||
kubectl config delete-context gke_mcp-registry-prod_us-central1-b_mcp-registry-prod 2>/dev/null || true
|
||||
|
||||
# Revoke gcloud credentials
|
||||
gcloud auth revoke --all 2>/dev/null || true
|
||||
|
||||
# Clear gcloud configuration
|
||||
gcloud config unset project 2>/dev/null || true
|
||||
gcloud config unset account 2>/dev/null || true
|
||||
|
||||
# Verify no contexts remain
|
||||
CONTEXT_COUNT=$(kubectl config get-contexts -o name 2>/dev/null | wc -l)
|
||||
if [ "$CONTEXT_COUNT" -gt 0 ]; then
|
||||
echo "❌ ERROR: $CONTEXT_COUNT context(s) still exist after cleanup!"
|
||||
kubectl config get-contexts
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Switch to staging cluster
|
||||
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093
|
||||
with:
|
||||
credentials_json: ${{ secrets.GCP_STAGING_SERVICE_ACCOUNT_KEY }}
|
||||
|
||||
- name: Configure staging cluster access
|
||||
run: |
|
||||
gcloud config set project mcp-registry-staging
|
||||
gcloud container clusters get-credentials mcp-registry-staging \
|
||||
--zone=us-central1-b \
|
||||
--project=mcp-registry-staging
|
||||
|
||||
- name: Create secret for prod backup bucket access
|
||||
run: |
|
||||
# Create/update secret in staging with access to prod backups
|
||||
kubectl create secret generic prod-to-staging-sync-credentials \
|
||||
--from-literal=AWS_ACCESS_KEY_ID="${{ steps.backup-creds.outputs.access_key }}" \
|
||||
--from-literal=AWS_SECRET_ACCESS_KEY="${{ steps.backup-creds.outputs.secret_key }}" \
|
||||
--dry-run=client -o yaml | kubectl apply -f -
|
||||
|
||||
- name: Create restore PVC
|
||||
run: |
|
||||
kubectl apply -f - <<EOF
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: restore-data-pvc
|
||||
namespace: default
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 50Gi
|
||||
EOF
|
||||
|
||||
- name: Trigger k8up restore from prod backups
|
||||
id: restore
|
||||
run: |
|
||||
RESTORE_NAME="restore-from-prod-$(date +%Y%m%d-%H%M%S)"
|
||||
echo "restore_name=$RESTORE_NAME" >> $GITHUB_OUTPUT
|
||||
|
||||
# Create a k8up Restore resource to restore from prod backups
|
||||
kubectl apply -f - <<EOF
|
||||
apiVersion: k8up.io/v1
|
||||
kind: Restore
|
||||
metadata:
|
||||
name: $RESTORE_NAME
|
||||
namespace: default
|
||||
spec:
|
||||
snapshot: latest
|
||||
restoreMethod:
|
||||
folder:
|
||||
claimName: restore-data-pvc
|
||||
backend:
|
||||
repoPasswordSecretRef:
|
||||
name: k8up-repo-password
|
||||
key: password
|
||||
s3:
|
||||
bucket: mcp-registry-prod-backups
|
||||
endpoint: https://storage.googleapis.com
|
||||
accessKeyIDSecretRef:
|
||||
name: prod-to-staging-sync-credentials
|
||||
key: AWS_ACCESS_KEY_ID
|
||||
secretAccessKeySecretRef:
|
||||
name: prod-to-staging-sync-credentials
|
||||
key: AWS_SECRET_ACCESS_KEY
|
||||
EOF
|
||||
|
||||
- name: Wait for k8up restore to complete
|
||||
run: |
|
||||
RESTORE_NAME="${{ steps.restore.outputs.restore_name }}"
|
||||
|
||||
echo "Waiting for restore job to start..."
|
||||
sleep 15
|
||||
|
||||
# Find the job created by k8up for this restore
|
||||
# k8up creates jobs with name pattern "restore-<restore-name>"
|
||||
# Since our restore is named "restore-from-prod-*", the job will be "restore-restore-from-prod-*"
|
||||
for i in {1..60}; do
|
||||
JOB_NAME=$(kubectl get jobs -n default --no-headers 2>/dev/null | grep "^restore-$RESTORE_NAME" | awk '{print $1}' | head -1)
|
||||
if [ -n "$JOB_NAME" ]; then
|
||||
echo "Found restore job: $JOB_NAME"
|
||||
break
|
||||
fi
|
||||
echo "Waiting for job to be created... ($i/60)"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
if [ -z "$JOB_NAME" ]; then
|
||||
echo "ERROR: Restore job not found after 120 seconds"
|
||||
echo "Checking restore resource status:"
|
||||
kubectl get restore $RESTORE_NAME -n default
|
||||
kubectl describe restore $RESTORE_NAME -n default
|
||||
|
||||
echo "Checking for any restore jobs:"
|
||||
kubectl get jobs -n default | grep restore || echo "No restore jobs found"
|
||||
|
||||
echo "Checking k8up operator logs:"
|
||||
kubectl logs deployment/k8up -n default --tail=50 | grep -i restore || echo "No restore logs found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Wait for the restore job to complete (max 15 minutes)
|
||||
echo "Waiting for restore job to complete..."
|
||||
kubectl wait --for=condition=complete \
|
||||
job/$JOB_NAME \
|
||||
--timeout=900s -n default || {
|
||||
echo "Restore job failed or timed out"
|
||||
echo "Job status:"
|
||||
kubectl get job/$JOB_NAME -n default
|
||||
echo "Job details:"
|
||||
kubectl describe job/$JOB_NAME -n default
|
||||
echo "Job logs (if available):"
|
||||
kubectl logs job/$JOB_NAME -n default --tail=100 || echo "No logs available"
|
||||
|
||||
# Check if it's a credential issue
|
||||
echo "Checking if credentials exist:"
|
||||
kubectl get secret prod-to-staging-sync-credentials -n default || echo "Credentials secret missing!"
|
||||
exit 1
|
||||
}
|
||||
|
||||
- name: Find staging PostgreSQL PVC
|
||||
id: pgdata-pvc
|
||||
run: |
|
||||
# Find the PVC used by the PostgreSQL cluster
|
||||
PVC_NAME=$(kubectl get pvc -n default -l cnpg.io/cluster=registry-pg -o jsonpath='{.items[0].metadata.name}')
|
||||
|
||||
if [ -z "$PVC_NAME" ]; then
|
||||
echo "ERROR: Could not find PostgreSQL PVC"
|
||||
kubectl get pvc -n default -l cnpg.io/cluster=registry-pg
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "pvc_name=$PVC_NAME" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Scale down staging PostgreSQL
|
||||
run: |
|
||||
echo "Scaling down PostgreSQL cluster..."
|
||||
kubectl patch cluster registry-pg -n default \
|
||||
--type merge \
|
||||
--patch '{"spec":{"instances":0}}'
|
||||
|
||||
# Wait for pods to terminate
|
||||
echo "Waiting for pods to terminate..."
|
||||
kubectl wait --for=delete pod -l cnpg.io/cluster=registry-pg -n default --timeout=300s || true
|
||||
|
||||
- name: Verify we are in staging cluster (SAFETY CHECK)
|
||||
run: |
|
||||
# Get current cluster context
|
||||
CURRENT_CONTEXT=$(kubectl config current-context)
|
||||
CURRENT_PROJECT=$(gcloud config get-value project)
|
||||
|
||||
echo "Current kubectl context: $CURRENT_CONTEXT"
|
||||
echo "Current GCP project: $CURRENT_PROJECT"
|
||||
|
||||
# Verify we're in staging
|
||||
if ! echo "$CURRENT_CONTEXT" | grep -qi "staging"; then
|
||||
echo "❌ SAFETY CHECK FAILED: Not in staging cluster"
|
||||
echo "Context: $CURRENT_CONTEXT"
|
||||
echo "Expected: staging cluster"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$CURRENT_PROJECT" != "mcp-registry-staging" ]; then
|
||||
echo "❌ SAFETY CHECK FAILED: Not in staging project"
|
||||
echo "Project: $CURRENT_PROJECT"
|
||||
echo "Expected: mcp-registry-staging"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Replace staging database with restored backup
|
||||
id: copy-job
|
||||
run: |
|
||||
JOB_NAME="copy-pgdata-$(date +%Y%m%d-%H%M%S)"
|
||||
echo "job_name=$JOB_NAME" >> $GITHUB_OUTPUT
|
||||
|
||||
# Create a job to copy the restored backup data to the staging PVC
|
||||
kubectl apply -f - <<EOF
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: $JOB_NAME
|
||||
namespace: default
|
||||
spec:
|
||||
ttlSecondsAfterFinished: 600
|
||||
template:
|
||||
spec:
|
||||
restartPolicy: Never
|
||||
containers:
|
||||
- name: copy-data
|
||||
image: busybox:latest
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- |
|
||||
set -e
|
||||
echo "Finding PostgreSQL data in backup..."
|
||||
echo "Restore structure:"
|
||||
find /restore -maxdepth 3 -type d 2>/dev/null | head -20
|
||||
|
||||
# Try different possible paths for pgdata
|
||||
PGDATA_SOURCE=""
|
||||
for path in \$(find /restore -type d -name "pgdata" 2>/dev/null); do
|
||||
if [ -f "\$path/PG_VERSION" ]; then
|
||||
PGDATA_SOURCE="\$path"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z "\$PGDATA_SOURCE" ]; then
|
||||
echo "ERROR: Could not find valid pgdata directory with PG_VERSION"
|
||||
echo "Searched paths:"
|
||||
find /restore -type d -name "pgdata" 2>/dev/null
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Found pgdata at: \$PGDATA_SOURCE"
|
||||
echo "Contents:"
|
||||
ls -lah \$PGDATA_SOURCE/ | head -10
|
||||
|
||||
echo "Backing up existing staging data..."
|
||||
mkdir -p /pgdata-backup
|
||||
if [ "\$(ls -A /pgdata)" ]; then
|
||||
cp -a /pgdata/. /pgdata-backup/ || echo "Warning: Could not backup existing data"
|
||||
fi
|
||||
|
||||
echo "Clearing existing data..."
|
||||
rm -rf /pgdata/*
|
||||
|
||||
echo "Copying backup data to staging PVC..."
|
||||
cp -a \$PGDATA_SOURCE/. /pgdata/
|
||||
|
||||
echo "Setting correct permissions..."
|
||||
chmod 700 /pgdata
|
||||
|
||||
ls -lah /pgdata/ | head -20
|
||||
echo "PostgreSQL version: \$(cat /pgdata/PG_VERSION)"
|
||||
volumeMounts:
|
||||
- name: restore-data
|
||||
mountPath: /restore
|
||||
- name: staging-pgdata
|
||||
mountPath: /pgdata
|
||||
volumes:
|
||||
- name: restore-data
|
||||
persistentVolumeClaim:
|
||||
claimName: restore-data-pvc
|
||||
- name: staging-pgdata
|
||||
persistentVolumeClaim:
|
||||
claimName: ${{ steps.pgdata-pvc.outputs.pvc_name }}
|
||||
EOF
|
||||
|
||||
- name: Wait for data copy to complete
|
||||
run: |
|
||||
JOB_NAME="${{ steps.copy-job.outputs.job_name }}"
|
||||
|
||||
# Wait for copy to complete
|
||||
kubectl wait --for=condition=complete job/$JOB_NAME --timeout=600s -n default || {
|
||||
echo "Data copy job failed"
|
||||
kubectl describe job/$JOB_NAME -n default
|
||||
kubectl logs job/$JOB_NAME -n default --tail=100
|
||||
exit 1
|
||||
}
|
||||
|
||||
- name: Scale up staging PostgreSQL
|
||||
run: |
|
||||
echo "Scaling up PostgreSQL cluster..."
|
||||
kubectl patch cluster registry-pg -n default \
|
||||
--type merge \
|
||||
--patch '{"spec":{"instances":1}}'
|
||||
|
||||
# Wait for PostgreSQL pod to be created
|
||||
echo "Waiting for PostgreSQL pod to be created..."
|
||||
for i in {1..60}; do
|
||||
POD_COUNT=$(kubectl get pods -l cnpg.io/cluster=registry-pg -n default --no-headers 2>/dev/null | wc -l)
|
||||
if [ "$POD_COUNT" -gt 0 ]; then
|
||||
echo "Pod created"
|
||||
break
|
||||
fi
|
||||
echo "Waiting... ($i/60)"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
# Wait for PostgreSQL to be ready
|
||||
echo "Waiting for PostgreSQL to be ready..."
|
||||
kubectl wait --for=condition=ready pod -l cnpg.io/cluster=registry-pg -n default --timeout=300s
|
||||
|
||||
- name: Verify staging DB is functional
|
||||
run: |
|
||||
# Create a verification pod
|
||||
kubectl run pg-verify-$(date +%s) \
|
||||
--image=postgres:15 \
|
||||
--rm -i --restart=Never \
|
||||
--env="PGPASSWORD=$(kubectl get secret registry-pg-superuser -n default -o jsonpath='{.data.password}' | base64 -d)" \
|
||||
-- bash -c '
|
||||
echo "Waiting for database to accept connections..."
|
||||
for i in {1..30}; do
|
||||
if pg_isready -h registry-pg-rw -U postgres 2>/dev/null; then
|
||||
break
|
||||
fi
|
||||
echo "Waiting... ($i/30)"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
echo "Querying database..."
|
||||
TABLE_COUNT=$(psql -h registry-pg-rw -U postgres -d app -tAc "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = '\''public'\'';" 2>&1)
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR: Could not query database"
|
||||
echo "$TABLE_COUNT"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$TABLE_COUNT" -lt 1 ]; then
|
||||
echo "ERROR: Staging DB has no tables!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Staging DB has $TABLE_COUNT tables"
|
||||
echo "Top 10 tables by row count:"
|
||||
psql -h registry-pg-rw -U postgres -d app \
|
||||
-c "SELECT schemaname, tablename, n_live_tup FROM pg_stat_user_tables ORDER BY n_live_tup DESC LIMIT 10;" || true
|
||||
'
|
||||
|
||||
- name: Cleanup
|
||||
if: always()
|
||||
run: |
|
||||
# Wait for any restore jobs to finish before cleanup (max 5 minutes for large database restores)
|
||||
echo "Checking for running restore jobs..."
|
||||
RESTORE_NAME="${{ steps.restore.outputs.restore_name }}"
|
||||
|
||||
for i in {1..60}; do
|
||||
# Check specifically for our restore job in Running or Pending state
|
||||
RUNNING_JOBS=$(kubectl get jobs -n default --no-headers 2>/dev/null | grep "^restore-${RESTORE_NAME}" | grep -E "Running|Pending" | wc -l)
|
||||
if [ "$RUNNING_JOBS" -eq 0 ]; then
|
||||
echo "No running restore jobs found"
|
||||
break
|
||||
fi
|
||||
echo "Waiting for $RUNNING_JOBS restore job(s) to finish... ($i/60)"
|
||||
sleep 5
|
||||
done
|
||||
|
||||
# Clean up jobs first
|
||||
if [ -n "${{ steps.copy-job.outputs.job_name }}" ]; then
|
||||
kubectl delete job ${{ steps.copy-job.outputs.job_name }} -n default || true
|
||||
fi
|
||||
|
||||
# Clean up the restore job if it exists (with proper error handling)
|
||||
if [ -n "$RESTORE_NAME" ]; then
|
||||
if kubectl get job "restore-$RESTORE_NAME" -n default >/dev/null 2>&1; then
|
||||
echo "Deleting restore job: restore-$RESTORE_NAME"
|
||||
kubectl delete job "restore-$RESTORE_NAME" -n default || echo "Failed to delete job, may have already been cleaned up"
|
||||
else
|
||||
echo "Restore job restore-$RESTORE_NAME not found, skipping deletion"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Remove restore PVC (will wait for jobs to finish)
|
||||
kubectl delete pvc restore-data-pvc -n default || true
|
||||
|
||||
# Remove prod backup credentials (for security)
|
||||
kubectl delete secret prod-to-staging-sync-credentials -n default || true
|
||||
|
||||
# Clean up old restore resources (keep last 3)
|
||||
kubectl get restore -n default --sort-by=.metadata.creationTimestamp -o name | head -n -3 | xargs -r kubectl delete || true
|
||||
|
||||
# Clean up old restore jobs (keep last 3)
|
||||
kubectl get jobs -n default --sort-by=.metadata.creationTimestamp -o name | grep '^job.batch/restore-' | head -n -3 | xargs -r kubectl delete -n default || true
|
||||
|
||||
# Clean up old copy jobs (keep last 3)
|
||||
kubectl get jobs -n default --sort-by=.metadata.creationTimestamp -o name | grep 'copy-pgdata-' | head -n -3 | xargs -r kubectl delete -n default || true
|
||||
69
.github/workflows/sync-schema.yml
vendored
Normal file
69
.github/workflows/sync-schema.yml
vendored
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
name: Sync Schema
|
||||
|
||||
on:
|
||||
workflow_dispatch: # Manual trigger
|
||||
# TODO: Add daily schedule later
|
||||
# schedule:
|
||||
# - cron: '0 2 * * *' # Run daily at 2 AM UTC
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
sync-schema:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Checkout static repo
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
repository: modelcontextprotocol/static
|
||||
path: static-repo
|
||||
|
||||
- name: Sync schemas from static repo
|
||||
run: |
|
||||
echo "🔍 Syncing schemas from modelcontextprotocol/static..."
|
||||
mkdir -p internal/validators/schemas
|
||||
|
||||
# Copy all versioned schema files
|
||||
for dir in static-repo/schemas/*/; do
|
||||
if [ -f "$dir/server.schema.json" ]; then
|
||||
version=$(basename "$dir")
|
||||
# Skip draft directory if it exists
|
||||
if [ "$version" != "draft" ]; then
|
||||
output_file="internal/validators/schemas/${version}.json"
|
||||
if [ ! -f "$output_file" ] || ! cmp -s "$dir/server.schema.json" "$output_file"; then
|
||||
echo "⬇ Adding/updating ${version}/server.schema.json -> ${version}.json"
|
||||
cp "$dir/server.schema.json" "$output_file"
|
||||
else
|
||||
echo "✓ ${version} is already up to date"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo "✅ Schema sync complete"
|
||||
|
||||
- name: Check for changes
|
||||
id: changes
|
||||
run: |
|
||||
# Check for both modified and untracked files
|
||||
if [ -n "$(git status --porcelain internal/validators/schemas/)" ]; then
|
||||
echo "changed=true" >> $GITHUB_OUTPUT
|
||||
git status --porcelain internal/validators/schemas/
|
||||
else
|
||||
echo "changed=false" >> $GITHUB_OUTPUT
|
||||
echo "No changes to schemas"
|
||||
fi
|
||||
|
||||
- name: Commit and push changes
|
||||
if: steps.changes.outputs.changed == 'true'
|
||||
run: |
|
||||
git config --local user.email "action@github.com"
|
||||
git config --local user.name "GitHub Action"
|
||||
git add internal/validators/schemas/
|
||||
git commit -m "Sync schemas from modelcontextprotocol/static [skip ci]"
|
||||
git push
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,5 +1,6 @@
|
|||
build/
|
||||
bin/
|
||||
tmp/
|
||||
|
||||
.db
|
||||
.env
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ linters:
|
|||
- gocyclo
|
||||
- godox
|
||||
- gomoddirectives
|
||||
- gomodguard
|
||||
- gomodguard_v2
|
||||
- goprintffuncname
|
||||
- gosec
|
||||
- grouper
|
||||
|
|
@ -55,6 +55,10 @@ linters:
|
|||
max-complexity: 20
|
||||
dupl:
|
||||
threshold: 300
|
||||
goconst:
|
||||
# Repeated literals in tests are fixture data ("1.0.0", "Test server", ...);
|
||||
# hoisting them into constants hurts readability more than it helps.
|
||||
ignore-tests: true
|
||||
gocognit:
|
||||
min-complexity: 51
|
||||
nestif:
|
||||
|
|
@ -66,11 +70,18 @@ linters:
|
|||
- common-false-positives
|
||||
- legacy
|
||||
- std-error-handling
|
||||
rules:
|
||||
# httptest.NewRequest is idiomatic in tests; noctx is not useful there.
|
||||
- path: _test\.go
|
||||
linters:
|
||||
- noctx
|
||||
paths:
|
||||
- third_party$
|
||||
- builtin$
|
||||
- examples$
|
||||
formatters:
|
||||
enable:
|
||||
- gofmt
|
||||
exclusions:
|
||||
generated: lax
|
||||
paths:
|
||||
|
|
|
|||
|
|
@ -95,37 +95,35 @@ signs:
|
|||
cmd: cosign
|
||||
args:
|
||||
- "sign-blob"
|
||||
- "--output-signature=${signature}"
|
||||
- "--output-certificate=${certificate}"
|
||||
- "--bundle=${signature}" # cosign v3+: bundles signature and certificate together
|
||||
- "${artifact}"
|
||||
- "--yes" # needed on cosign 2.0.0+
|
||||
artifacts: archive
|
||||
output: true
|
||||
certificate: '{{ trimsuffix (trimsuffix .Env.artifact ".zip") ".tar.gz" }}.pem'
|
||||
|
||||
signature: "${artifact}.sigstore.json"
|
||||
|
||||
# Also sign checksums file for additional verification
|
||||
- id: checksums
|
||||
cmd: cosign
|
||||
args:
|
||||
- "sign-blob"
|
||||
- "--output-signature=${signature}"
|
||||
- "--output-certificate=${certificate}"
|
||||
- "--bundle=${signature}" # cosign v3+: bundles signature and certificate together
|
||||
- "${artifact}"
|
||||
- "--yes"
|
||||
artifacts: checksum
|
||||
output: true
|
||||
certificate: '{{ trimsuffix .Env.artifact ".txt" }}.pem'
|
||||
signature: "${artifact}.sigstore.json"
|
||||
|
||||
# This section defines the release format.
|
||||
archives:
|
||||
# Registry server archive
|
||||
- id: registry
|
||||
name_template: "registry_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
|
||||
name_template: "registry_{{ .Os }}_{{ .Arch }}"
|
||||
ids:
|
||||
- registry
|
||||
|
||||
|
||||
# Publisher CLI archive
|
||||
- id: publisher
|
||||
name_template: "mcp-publisher_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
|
||||
name_template: "mcp-publisher_{{ .Os }}_{{ .Arch }}"
|
||||
ids:
|
||||
- publisher
|
||||
|
|
|
|||
52
.ko.dockerignore
Normal file
52
.ko.dockerignore
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
# Build artifacts
|
||||
bin/
|
||||
*.exe
|
||||
*.dll
|
||||
*.so
|
||||
*.dylib
|
||||
|
||||
# Test and coverage files
|
||||
coverage.out
|
||||
coverage.html
|
||||
*.test
|
||||
|
||||
# Database files
|
||||
*.db
|
||||
.db/
|
||||
|
||||
# Deployment files
|
||||
deploy/
|
||||
|
||||
# Documentation
|
||||
docs/
|
||||
|
||||
# Tests
|
||||
tests/
|
||||
|
||||
# Git
|
||||
.git/
|
||||
.gitignore
|
||||
|
||||
# GitHub Actions
|
||||
.github/
|
||||
|
||||
# Docker files (no longer used)
|
||||
Dockerfile
|
||||
.dockerignore
|
||||
docker-compose.yml
|
||||
|
||||
# IDE and editor files
|
||||
.vscode/
|
||||
.idea/
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
|
||||
# Temporary files
|
||||
tmp/
|
||||
temp/
|
||||
*.tmp
|
||||
|
||||
# OS files
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
32
.ko.yaml
Normal file
32
.ko.yaml
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# ko configuration for MCP Registry
|
||||
# Documentation: https://ko.build/configuration/
|
||||
|
||||
# Default base image for all builds
|
||||
# Using Chainguard's static image for minimal, secure containers (~2MB)
|
||||
defaultBaseImage: cgr.dev/chainguard/static:latest
|
||||
|
||||
# Default platforms for multi-architecture builds
|
||||
defaultPlatforms:
|
||||
- linux/amd64
|
||||
- linux/arm64
|
||||
|
||||
# Build configuration
|
||||
builds:
|
||||
- id: registry
|
||||
# Main package to build
|
||||
main: ./cmd/registry
|
||||
# Inject version information at build time via ldflags
|
||||
ldflags:
|
||||
- -s -w
|
||||
- -X main.Version={{ .Env.VERSION }}
|
||||
- -X main.GitCommit={{ .Env.GIT_COMMIT }}
|
||||
- -X main.BuildTime={{ .Env.BUILD_TIME }}
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
|
||||
# SBOM (Software Bill of Materials) configuration
|
||||
sbom: spdx
|
||||
|
||||
# Base import path handling
|
||||
# Set to false to preserve full import paths in image names
|
||||
baseImportPaths: false
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue