Skip to content

npm package provenance - GA #657

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
github-product-roadmap opened this issue Feb 22, 2023 · 1 comment
Closed

npm package provenance - GA #657

github-product-roadmap opened this issue Feb 22, 2023 · 1 comment
Labels
all Product SKU: All ga Feature phase: Generally available shipped Shipped

Comments

@github-product-roadmap
Copy link
Collaborator

Summary

Today it's hard to know where a npm package came from - what's the source code and how was the package built? Maintainers can optionally specify this information, but it's easy for malicious folks to spoof.

Provenance creates verifiable links back to the source code and build instructions for public npm packages. This gives users of these packages a way to verify the package does what it says. This is a new security capability for package managers, in collaboration with the Sigstore open source project, and it is debuting on npm.

Intended Outcome

To increase confidence of supply chain security in the npm ecosystem.

How will it work?

Provenance starts when you build your npm package in a cloud CI/CD provider, like GitHub Actions.

While the build is running, we request an OIDC token from GitHub Actions, which is a signed JWT that includes information about the organization, repository, commit, branch, workflow... all the metadata associated with the build. That signed JWT is sent to Sigstore's public servers, where they verify it came from GitHub, issue a signing certificate to the build with the build metadata stored in X.509 extension OIDs, and record the information on a public ledger.

When the build publishes to npm, it uses a special flag (npm publish --provenance) that includes the Sigstore signing certificate along with the built package. The npm registry records this information and displays it to users via the website and API.

@github github locked and limited conversation to collaborators Feb 22, 2023
@github-product-roadmap github-product-roadmap added all Product SKU: All ga Feature phase: Generally available npm labels Feb 22, 2023
@ankneis ankneis moved this to Q2 2023 – Apr-Jun in GitHub Public Roadmap Feb 22, 2023
@ankneis ankneis moved this from Q2 2023 – Apr-Jun to Q3 2023 – Jul-Sep in GitHub Public Roadmap Jul 25, 2023
@ankneis ankneis added the shipped Shipped label Oct 2, 2023
@ankneis
Copy link
Collaborator

ankneis commented Oct 2, 2023

@ankneis ankneis closed this as completed Oct 2, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
all Product SKU: All ga Feature phase: Generally available shipped Shipped
Projects
Status: No status
Development

No branches or pull requests

2 participants