You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Oct 9, 2023. It is now read-only.
Automation publish tokens are explicitly one-factor, which imo is less secure than publishing directly from a dev's laptop.
If npm supported staged builds, then publishing a staged build from CI, and then a human using 2FA locally to "promote" it, would be the most secure way to publish - but lacking that, the best I think we can get is using CI to generate a tagged release commit, and then having a publisher locally download it, run npm install or npm ci, and npm publish.
The text was updated successfully, but these errors were encountered:
I think what you say is true for some scenarios. I do think that this is a little more nuanced, depending on the use cases and environment/setup.
Having strong authentication (including 2fa) and tightly scoped tokens implemented for the request of the release pipeline would provide a similar (and if some cases, stronger - by allowing de-privileging builders) trust model.
However, I do agree that there is definitely a nice QOL in being able to take a look of the release that comes out before finalization it. I think there is a place for it.
Depending on how the api around CI releasing is done, I think generalizing it as "less secure" is a bit too strong of a statement.
Automation publish tokens are explicitly one-factor, which imo is less secure than publishing directly from a dev's laptop.
If npm supported staged builds, then publishing a staged build from CI, and then a human using 2FA locally to "promote" it, would be the most secure way to publish - but lacking that, the best I think we can get is using CI to generate a tagged release commit, and then having a publisher locally download it, run
npm install
ornpm ci
, andnpm publish
.The text was updated successfully, but these errors were encountered: