Repository navigation
chore(deps): update dependency verdaccio to v7 - #9077
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
Contributor
|
Important Review skippedBot user detected. To trigger a single review, invoke the
|
renovate
Bot
force-pushed
the
renovate/verdaccio-7.x
branch
from
October 30, 2026 00:14
79b580c to
9fe44d8
Compare
commit: |
renovate
Bot
force-pushed
the
renovate/verdaccio-7.x
branch
3 times, most recently
from
November 11, 2026 14:54
1aef4fd to
2443bee
Compare
renovate
Bot
force-pushed
the
renovate/verdaccio-7.x
branch
from
November 11, 2026 23:15
2443bee to
29cf15a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^6.3.2→^7.0.0Release Notes
verdaccio/verdaccio (verdaccio)
v7.1.0Compare Source
Minor Changes
62163c2: Update the@verdaccio/*modules to thenext-9npm dist-tag.Minor changes
@verdaccio/config,@verdaccio/store,@verdaccio/tarball,@verdaccio/web: Add the experimentalflags.tarballMetadataoption, which lets the web UI show the README of the exact version being viewed and fills missingdist.fileCount/dist.unpackedSizefrom the tarball itself. (#6409)The npm registry does not always include READMEs in package metadata: for some large packages (for example
react) the README field is empty for every version, and Verdaccio by default keeps only the latest README for locally published packages (publish.keep_readmes). The web UI then showed "No README data found" or the README of a different version.With the flag on, a tarball is only ever unpacked in two situations: in the background right after a version is published, and when the web UI asks for a README the manifest does not have, reading the cached tarball or fetching it from the uplink. Package installs never unpack tarballs, so install performance is unaffected. The README is kept in memory, and
dist.fileCount/dist.unpackedSizeare written into the cached manifest when the uplink did not provide them. At most two tarballs are read at a time, and duplicate requests share one read.Tarballs larger than
tarball_metadata.max_size_mb(default 20) are never unpacked; those versions keep the previous fallback to the latest README. The flag is off by default and the option may change or be removed in a later prerelease:@verdaccio/middleware,@verdaccio/proxy,@verdaccio/store,@verdaccio/ui-theme,@verdaccio/web: Show the provenance and registry signature of a version in the web UI. (#6447)The package sidebar gets a "Provenance" section, under "Distribution", when the selected version carries a sigstore attestation or a registry signature, the fields registry.npmjs.org attaches to every version it signs. Its chip reads "Provenance: SLSA v1" for a version with provenance and "Registry signature" for one that only has a signature. Clicking it opens a dialog with the statement type, the signing key ids and a link to the attestation bundle. Nothing is verified in the browser: the dialog states what the registry metadata contains, and verification remains the job of
npm audit signatures.The dialog also shows what the provenance statement says about the build, read from the attestation bundle by a new web endpoint,
GET /-/verdaccio/data/package/provenance/<name>?v=<version>: the builder (GitHub Actions, self-hosted or not, or GitLab CI/CD, the two environments npm and Yarn generate provenance in), the source repository, ref and commit, the workflow file or job, the build run and the Sigstore transparency log entry, each linked to its origin. The endpoint relays the bundle from the uplink the version was synced from, applies the package access rules and answers 404 for versions without attestations. The build details therefore need an uplink that serves the npm attestation endpoint,/-/npm/v1/attestations/<name>@<version>, as registry.npmjs.org does; a Verdaccio upstream will only do so once it gains the registry signature routes, which are a separate change, and against such upstreams the dialog shows the summary and the bundle link alone. The request is made only when the dialog opens and only when the server announces the endpoint through the newcapabilities.provenanceUI option, so the theme keeps working against older servers without a single failing request: the chip, the dialog summary and the bundle link come from the sidebar data alone, and the build details simply stay out.@verdaccio/api,@verdaccio/config,@verdaccio/core,@verdaccio/middleware,@verdaccio/proxy,@verdaccio/store: Makenpm audit signatureswork through Verdaccio for packages proxied from an uplink, behind the experimentalflags.signaturessetting. (#6450)Verdaccio already kept the
dist.signaturesanddist.attestationsfields that registry.npmjs.org attaches to every version, but it did not serve the two routes the npm CLI reads to verify them. npm resolves signing keys by registry host, so against Verdaccio it requestedGET /-/npm/v1/keys, received a 404 and aborted the whole command withEMISSINGSIGNATUREKEYon the first package coming from npmjs. Attestation bundles are fetched from the registry the package was installed from as well, soGET /-/npm/v1/attestations/<name>@<version>also returned 404.Both routes now exist when
flags.signatures: trueis set in the configuration (the feature is experimental and may change).GET /-/npm/v1/keysreturns the signing keys of every configured uplink merged by key id (refreshed hourly) and answers 404 when none publishes keys.GET /-/npm/v1/attestations/<name>@<version>relays the attestations from the first uplink that proxies the package, applying the packageaccessrules, and answers 404 when the uplink has none. With thisnpm audit signaturesverifies registry signatures and provenance attestations of proxied packages exactly as it does against registry.npmjs.org. Enable it with:Packages published to Verdaccio itself are not signed yet. npm treats any registry that publishes keys as a registry whose packages should all be signed, so once the flag is on
npm audit signatureslists every locally published package as having a missing registry signature and exits with code 1; proxied packages verify, local ones are reported. Keep the flag off if that report would break a CI gate, until Verdaccio signs local packages.npm publish --provenanceis still rejected.Patch changes
@verdaccio/core,@verdaccio/package-filter: Fix HTTP 500 responses for package requests when an installation forces minimatch 11. The access-rule matcher called the removedmakeReAPI. Use the supported matching API while retaining case-insensitive package access rules and first-match precedence. (#6434)On the master and 7.x release lines, affected
@verdaccio/corereleases are9.0.0-next-9.0through9.0.0-next-9.41. Verdaccio releases using these modules include9.0.0-next-9.0through9.0.0-next-9.41and stable releases7.0.0through7.0.2. The affected 7.x prereleases using these modules are7.0.0-beta.4,7.0.0-beta.6, and7.0.0-next-7.21through7.0.0-next-7.32.The failure requires an override or resolution that replaces the declared minimatch dependency with version 11; default installations of those releases are not affected. Upgrade to a Verdaccio release containing the corrected core module before forcing minimatch 11.
Update the package filter's direct minimatch dependency as well. Existing package access and filter configuration does not need to change.
@verdaccio/api: Fix the registry closing the client connection after answering a failed tarball download, which made the next request on that keep-alive connection fail withECONNRESETor "other side closed". (#6438)When a tarball request fails before any data is sent, for example a 404 for a tarball that does not exist locally or on any uplink, the registry sent the JSON error response and then also passed the same error on to the HTTP framework. Because the response was already sent, the framework reacted by destroying the socket. Package managers reuse connections, so the request that followed on the same socket failed whenever the client sent it before noticing the close, which keep-alive clients under load usually do. Each of these failures also printed a raw
NotFoundErrorstack trace to stderr. The download of a staged tarball (available when thestageflag is enabled) had the same problem.A failed tarball request is now answered once with its JSON error and the connection stays open for the next request. Failures after the download has started are unchanged: the connection is still terminated, because no error status can be sent at that point. No configuration change is needed.
Affected: verdaccio 7.x (7.0.0 to 7.0.2) and the
@verdaccio/api9.0.0-next prereleases it ships, up to9.0.0-next-9.42. verdaccio 6.x is not affected.v7.0.2Compare Source
Patch Changes
c017767: Remove theHEALTHCHECKfrom the Docker image.The probe used
localhost, which resolves to::1on Alpine, while the image listens on IPv4 only by default. The container was always reported asunhealthyeven though it served requests normally. The image no longer declares a health check, as in6.x.If you need one, add it yourself probing
127.0.0.1, for example indocker-compose.yaml:See Health check in the Docker documentation for the
docker runand HTTPS variants.v7.0.1Compare Source
Patch Changes
449ad6b: Restore the@verdaccio/package-filterplugin in theverdaccio7 package so the filter configuration works again.Verdaccio 7.0.0 shipped a default
config.yaml(also the one inside theverdaccio/verdaccio:7Docker image) with thefilters: '@verdaccio/package-filter'section enabled, but the package no longer declared the plugin as a dependency: it was dropped when the 7.x line moved to the published@verdaccio/*modules. On startup the plugin loader loggedpackage not found, try to install @verdaccio/package-filter with a package managerand continued without it, so anyminAgeDays,dateThresholdorblockrules configured underfilterswere silently not enforced.The plugin is a dependency of
verdaccioagain, as it is on the 6.x line, and the startup error is gone. No configuration change is needed; installations that worked around the problem by commenting out thefilterssection can enable it again. Affected:verdaccio@7.0.0and theverdaccio/verdaccio:7Docker image.14aaded: Show theverdacciopackage version in the web UI footer instead of the internal module version.verdaccio@7.0.0(and theverdaccio/verdaccio:7Docker image) displayed9.0.0-next-9.40in the bottom-right corner of the web UI. The 7 binary is a thin layer over the published@verdaccio/*9.x modules, and@verdaccio/serverfilled the version shown by the UI from its own package while the command line and the startup log already reported the right one.This release updates the
@verdaccio/*modules to9.0.0-next-9.41, whose@verdaccio/serverlets the embedding binary set that value, and passes theverdacciopackage version to it, so the UI now shows the same version asverdaccio --version. No configuration change is needed.v7.0.0Compare Source
Major Changes
d33944c: Verdaccio 7.0.0 is the first stable release of the 7.x line. It is published to npm aslatestand to Docker Hub asverdaccio/verdaccio:7,7.0andlatest; the 6.x line continues under thelatest-6npm dist-tag and the6image tag. The release post is at https://verdaccio.org/blog/2026/10/25/verdaccio-7-release, the migration guide at https://verdaccio.org/blog/2026/09/27/verdaccio-6-to-7-migration, and the complete tracker with every pull request and backport at #5680.Highlights
flags.stage, npm 11.17 or newer): a pipeline uploads a version, a maintainer reviews it, and only then it becomes installable (#6176).GET /-/package/{name}/version/{version}/statusreports whether a version ispublishedorstaged(#6365).flags.tfa): time-based one-time passwords for login, account operations and publishing (#6176).publish.check_ownersnow coversnpm deprecate, version unpublish and dist-tag changes (#6219); removing a version requires the unpublish permission on its own route (#6384); publish rejects invalid tarball attachment names before saving metadata and records an upload only after the tarball is fully written (#6367).web.assetFolder(#5653); home toolbar to filter, scope and sort, onboarding guide for empty registries,web.footer,web.poweredByandweb.help, package tabs in the URL andbunamong the package managers (#6400); per-language translation progress with a single translation source (#6395); password changes from the account menu (#6366).excludeDeprecated(#6028); notification hooks for publish and unpublish (#5920).ConfigBuildercovers web, listen, https, publish, flags, notify, middlewares, filters, maxBodySize, userRateLimit, urlPrefix and i18n (#5805); newserver.cors(#6255),server.dotfiles,server.hideStaticLogs,server.hidePingLogs(#6192) andserver.legacyAuthCache(#6133).verify_cache_mscaches successful password verifications for clients that send credentials on every request (#6351);npm login,yarn npm loginandpnpm loginkeep working through the Basic exception on the login routes (#6354).@verdaccio/proxyongot(#5646, #5746) with upstream errors mapped to registry errors (#6022);/-/v1/searchwith rate limits, bounded pagination and batched access checks, uplink results paginated before the client offset (#6235), configured uplink subpaths and headers preserved (#6209), ISO timestamps, version validation and original uplink errors preserved (#6263, #6264, #6265).@verdaccio/admin-cliships averdaccio-admin storagecommand group (#6231).Bug fixes
content-length(#6194, #6234); client-controlleddist.tarballURLs are not fetched off-uplink (#6225); the uplink cache is refreshed on304(#6276).401for invalid credentials onGET /-/user/(#5844); local storage no longer uses uncontrolled data in paths (#5847); the home directory resolves throughHOMEon Windows (#6247); missingHostheader handled (#5641).Breaking changes
/*splat,/{*splat}),res.sendFile(filename, { root })for absolute paths, andreq.bodyis already parsed when plugins run.config.self_pathwas replaced byconfig.configPath(#5850)._authentries in.npmrcmust move to_authToken;401responses advertise onlyBearer. The login routes accept Basic credentials whilesecurity.api.basicLoginis enabled (the default)./-/allsearch endpoint (use/-/v1/search),npm star/unstar(#5930), the deprecated AES encryption helpers (#5744), thesearchRemoteflag (#5801) and the debug-onlyPUT /:package/:version/-tag/:tagroute.runServer, which no longer accepts{ listenArg };await runServer(config)then call.listen(). ImportConfig,ConfigBuilder,getDefaultConfigandparseConfigFilefrom@verdaccio/core.@verdaccio/logger-commonsand@verdaccio/logger-prettifyare merged into@verdaccio/logger(#5657).exportschanged, so update deep imports.verdaccio-aws-s3-storage,verdaccio-google-cloudandverdaccio-active-directorymoved to their own repositories..sinopia-db.jsondatabases are no longer read.Also in 6.x
Dual ESM/CJS output, the package filter plugin, publish and unpublish notifications, the bounded
/-/v1/search, the@verdaccio/e2e-cliworkflow, the shared@verdaccio/ui-themeWeb UI, the htpasswd, name and search validation fixes and the new Web UI home were also backported to 6.x; the tracker lists the 6.x release that carries each one.Tooling and dependencies
pnpm 12 replaces Yarn for the workspace and CI (#5748, #6216); CI runs on Windows (#6248); end-to-end tests run through
@verdaccio/e2e-cli(#5678); the repository carriesAGENTS.mdand agent skills (#6252). Runtime dependencies move to Express 5.3,got15,js-yaml5, TypeScript 7 and Vite 8, with the published advisories inbody-parser,proxy-addr,compression,lodash-es,dompurifyandfast-uripatched (#6334, #6388).Upgrading
Back up the configuration, storage and
.verdaccio-db.json, update the runtime to Node.js 24, convert any JSON or JS configuration to YAML and test with a copy of the storage before switching. Do not run 6.x and 7.x against the same storage at the same time.Thanks to @juanpicado, @mbtools, @dianmorales, @jotadeveloper, @davidus27, @koliveira15, @moglerdev, @pranshuchittora, @ReemX, @RuneStone0, @tmota900 and @vsugrob for the work in this release line.
Minor Changes
ddf993c: Adopt@verdaccio/serverand drop the local api/web/storage forks. A thinStoragewrapper is kept to support legacy callback-based storage plugins, and the unused helpers insrc/lib/utils.tswere removed.Patch Changes
e404c82: Updates the runtime dependenciesexpressto 5.3.0 andsemverto 7.8.5, and movesbody-parser(used by Express to read request bodies) to 2.4.0.body-parser2.4.0 fixes a denial of service where trailing bytes after a compressed request body could keep the server busy (GHSA-27r3-jxmh-p828). Transitive dependencies with published advisories (fast-uri,qs,ip-address) are also moved to their patched releases. None of these change any API: no configuration or plugin changes are needed.The rest of the changes in this release only affect the development toolchain and the test suite (
@cypress/requestis no longer used by the tests).a307098: Migrate the 7.x release workflow to Changesets action v2 and CLI v3.256fd40: Disable dependency lifecycle scripts and require third-party dependencies to be at least three days old when installing Verdaccio in the final Docker image stage.The production installation now uses npm's
--ignore-scriptsand--min-release-age=3options. Verdaccio and packages matching@verdaccio/*orverdaccio-*are excluded from the age restriction so new Verdaccio releases can be built immediately. The final stage updates npm to support these exclusions and disables installation audit and funding output. Image builds still fail if another required dependency has no eligible version. No configuration changes are required for operators.The Docker base image uses Node.js 24.15.0 for compatibility with the updated npm.
f565393: Update the proxy address dependency to correctly match trusted proxy subnets when determining client IP addresses. Earlier 7.x prereleases using the affected dependency can misidentify clients with certain IPv6 trust configurations. No configuration migration is required.Update
@verdaccio/e2e-clito 4.0.0, which drops pnpm 10, and remove pnpm 10 from the CLI e2e matrix.6fd3e8a: Make/-/v1/searchwork for storage plugins that still use the callback API.Verdaccio 7 keeps callback-based storage plugins running through a compatibility
adapter. Its
searchcollected whatever the plugin streamed and handed the liststraight back, with two consequences for every such plugin.
The search query was dropped before it reached the plugin, and the adapter passed a
name predicate that always returned true, so the plugin emitted its whole catalogue and
nothing ever filtered it.
/-/v1/searchanswered with every package in the registryregardless of the text searched for, and paginated over that full list. It failed
silently: the endpoint returned 200 and the npm client still found what it asked for,
buried among everything else.
The adapter also passed the items through unchanged. The legacy contract emits the
package itself, while the store reads
item.package.name, so a plugin following thedocumented contract made the endpoint fail with a 500 instead.
The adapter now filters the collected results by the query text and wraps anything that
is not already in the store's shape. The filtering is done on the emitted name, never on
the name predicate a plugin is given: that one receives the basename, so rejecting there
would drop scoped packages whose full name does match. Operators running a callback-based
storage plugin get working search without touching the plugin; plugins already on the
promise-based API were never wrapped and are unaffected.
f1f5d34: chore: trigger releasea768d16: chore: replace eslint and prettier with oxlint and oxfmt594f438: Update verdaccio dependencies (@verdaccio/*,verdaccio,verdaccio-*) to thenext-9npm dist-tag.88bd996: Update verdaccio dependencies (@verdaccio/*,verdaccio,verdaccio-*) to thenext-9npm dist-tag.908ccbb: Update verdaccio dependencies (@verdaccio/*,verdaccio,verdaccio-*) to thenext-9npm dist-tag.e862a9a: Update verdaccio dependencies (@verdaccio/*,verdaccio,verdaccio-*) to thenext-9npm dist-tag.1aef95b: Update verdaccio dependencies (@verdaccio/*,verdaccio,verdaccio-*) to thenext-9npm dist-tag.304f155: Update verdaccio dependencies (@verdaccio/*,verdaccio,verdaccio-*) to thenext-9npm dist-tag.c461320: Update verdaccio dependencies (@verdaccio/*,verdaccio,verdaccio-*) to thenext-9npm dist-tag.a4ced54: Update verdaccio dependencies (@verdaccio/*,verdaccio,verdaccio-*) to thenext-9npm dist-tag.v6.11.1Compare Source
Patch Changes
62d8556: Update verdaccio dependencies to thelatestnpm dist-tag (@verdaccio/ui-themetracksnext-9):@verdaccio/ui-theme:9.0.0-next-9.39→9.0.0-next-9.40v6.11.0Compare Source
Minor Changes
93010b3:web.showSearch: falsenow also disables the web search endpoint.Until now the option only hid the search box in the header, while
/-/verdaccio/data/searchkept answering. WithshowSearch: falsethe endpoint is no longer registered and answers 404, the same wayweb.login: falseremoves the web login endpoints. The npm search API used bynpm search(/-/v1/search) is not affected, and nothing changes for registries that leaveshowSearchunset or set it totrue.Patch Changes
a3a664b: Releases are published with npm provenance again.verdaccio 6.10.5, 6.10.6 and 6.10.7 reached the npm registry without a provenance attestation, while every release from 6.9.0 to 6.10.4 had one. The release pipeline switched from
npm publishtoyarn npm publish, and yarn ignored the setting that requested provenance, so those versions were published through trusted publishing but without a signed SLSA statement. The package contents were not affected.Package managers that compare trust evidence between versions, such as pnpm with
trustPolicy: no-downgrade, refuse to install those three versions withERR_PNPM_TRUST_DOWNGRADE. This release carries provenance again, so upgrading to it, or pinning 6.10.4 or earlier, installs cleanly; nothing else needs to change on the operator side.90fde27: Update the bundled@verdaccio/*modules to their latest releases, which forward the new web UI options to the UI and fix a denial-of-service in request body parsing.The web UI options
web.footer,web.poweredBy,web.helpandweb.showPackageListToolbarnow reach the UI (@verdaccio/ui-theme9.0.0-next-9.39); before this update the server dropped them.showPackageListToolbardefaults tofalse, so the home page looks the same after upgrading unless you turn it on, andbunis now listed among the default package managers shown on a package page.body-parsermoves to1.20.9, fixing a denial of service where trailing bytes after a compressed request body could tie up the server (GHSA-27r3-jxmh-p828). All 6.x releases that useexpress4.22.3 are affected; no configuration change is needed.v6.10.7Compare Source
Patch Changes
7bd480a: The Docker image no longer trusts certificates issued through the compromised eMudhra (emSign) intermediate CAs.In October 2026, eMudhra disclosed that the private keys of several of its intermediate certificate authorities had been compromised. Anyone holding those keys can issue a TLS certificate that a client trusting the eMudhra chain accepts as valid, for any host. Verdaccio connects to its uplinks (such as registry.npmjs.org) over HTTPS, so an attacker able to intercept that traffic could impersonate an uplink and serve tampered metadata or tarballs, which Verdaccio would then cache.
The image is now built on
node:24.22.1-alpineinstead ofnode:24.15.0-alpine. Node.js 24.22.1 updates its bundled root certificates to NSS 3.131.1, which removesemSign ECC Root CA - G3, and rejects chains that contain the compromised public keys. Node.js uses that bundled store for outgoing HTTPS by default. The image also upgrades Alpine'sca-certificatespackage at build time. That package matters only if you make Node.js read the system store, for example withNODE_EXTRA_CA_CERTSor--use-system-ca.Every earlier
verdaccio/verdaccio6.x image is affected. To get the fix, pull the new image. If you install Verdaccio from npm instead of Docker, upgrade Node.js to 22.23.4, 24.22.1, 26.12.1 or later.Configuration
📅 Schedule: (UTC)
* 0-3 * * 1)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.