Skip to content

npm package provenance - GA #657

Closed
Closed

Description

@github-product-roadmap

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.

Activity

  1. locked and limited conversation to collaborators on Feb 22, 2023
  2. moved this to Q2 2023 – Apr-Jun in GitHub Public Roadmapon Feb 22, 2023
  3. moved this from Q2 2023 – Apr-Jun to Q3 2023 – Jul-Sep in GitHub Public Roadmapon Jul 25, 2023
  4. ankneis commented on Oct 2, 2023

    @ankneis
    Contributor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    GAFeature phase: Generally availableShippedShippedallProduct SKU: All

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions