Skip to content

Add supply-chain cooldown for npm dependencies#80

Open
everdimension wants to merge 1 commit into
zeriontech:mainfrom
everdimension:npm-min-release-age
Open

Add supply-chain cooldown for npm dependencies#80
everdimension wants to merge 1 commit into
zeriontech:mainfrom
everdimension:npm-min-release-age

Conversation

@everdimension
Copy link
Copy Markdown

Enforce a rolling release-age cooldown so npm only resolves dependency versions that have been published for at least 15 days, reducing exposure to compromised "fresh" releases. Malicious packages are typically detected and unpublished within that window.

  • .npmrc: set min-release-age=15 (requires npm >= 11.10.0);
  • package.json: add devEngines pinning node >=20.10 and npm >=11.10; hard-fail for earlier npm versions
  • workflows: bump CI to Node 24 (Node 22 ships npm 10, which lacks min-release-age) and switch the publish job's npm install -> npm ci for deterministic, lockfile-pinned installs
  • README: document the policy and the --min-release-age=0 override for urgent security fixes

No breaking changes for consumers of the published zerion-cli package: the runtime requirement stays node >=20 (engines is unchanged), and devEngines / .npmrc are dev-and-CI only. The cooldown affects only version resolution (updating package-lock.json); installs from the existing lockfile, including npm ci, are unaffected.

Enforce a rolling release-age cooldown so npm only resolves dependency
versions that have been published for at least 15 days, reducing exposure
to compromised "fresh" releases. Malicious packages are typically detected
and unpublished within that window.

- .npmrc: set min-release-age=15 (requires npm >= 11.10.0);
- package.json: add devEngines pinning node >=20.10 and npm >=11.10;
hard-fail for earlier npm versions
- workflows: bump CI to Node 24 (Node 22 ships npm 10, which lacks
min-release-age) and switch the publish job's npm install -> npm ci
for deterministic, lockfile-pinned installs
- README: document the policy and the --min-release-age=0 override for
urgent security fixes

No breaking changes for consumers of the published zerion-cli package:
the runtime requirement stays node >=20 (engines is unchanged), and
devEngines / .npmrc are dev-and-CI only. The cooldown affects only version resolution
(updating package-lock.json); installs from the existing lockfile,
including npm ci, are unaffected.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant