-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Description
Is there an existing issue for this?
- I have searched the existing issues
This issue exists in the latest npm version
- I am using the latest npm
Current Behavior
We're in work on FedRAMP certification, and there's a stormy debate about dependency scans and dependency vulnerabilities. Here's how it relates to you:
Currently, npm i and npm update will install the latest version of a depenency (or the latest according to the policy in package.json) - even if it was published just now.
Published just now - could also be - published with a new vulnerability that is yet to be reported.
e.g.
- a package ownership was compromised and loaded with malicious code.
- a package was just published with an exploit
Expected Behavior
Ideally, I would like to run npm i in a new project, or npm update in an existing project, and get all the dependencies that have had at least X days or more since their publication date.
My security team currently names 7, but teams should be able to can bring their own policy over some built-in default.
Basically,
This 7 or X can come from a global setting, from a project's .npmrc, from CLI args, from env-var - whatever you decide to support.
Ideally, there should be a form to configure such an X to a pattern in package name (e.g. starts with a prefix, belongs to a scope, or a concrete name) - but that's already high-end customization, way past the MVP of this feature.
When the policy of version-range that offers only too-new versions - I suppose I'd like a message about it, and it should be possible to control the npm exit code for this case.
Steps To Reproduce
Well, it's a feature request... I'll describe the usage
npm config set stabilityDays 7
npm config set '@my-corp/*.onOnlyTooNew' warn
npm config set '@my-corp/*.stabilityDays' 1
npm config set '@my-corp/*.onOnlyTooNew' info
npm config set package-that-gave-problems-before.stabilityDays 90
npm config set 'package-that-gave-problems-before.onOnlyTooNew' error
and then:
npm update
Can conisder to distinct npm config -g or something to distinct project settings and global settings.
Sure, this is a big one, and this might call for a discussion.
I hope this helps.
Environment
- npm: any
- Node.js: any active or LTS version
- OS Name: all
- System Model Name: all
- npm config:
; copy and paste output from `npm config ls` here