Skip to content

feat: read trustPolicy, trustPolicyExclude, and trustPolicyIgnoreAfter from pnpm-config.json#5751

Open
fpapado wants to merge 2 commits intomicrosoft:mainfrom
fpapado:feat/pnpm-trust-policy
Open

feat: read trustPolicy, trustPolicyExclude, and trustPolicyIgnoreAfter from pnpm-config.json#5751
fpapado wants to merge 2 commits intomicrosoft:mainfrom
fpapado:feat/pnpm-trust-policy

Conversation

@fpapado
Copy link
Copy Markdown

@fpapado fpapado commented Apr 7, 2026

Summary

This PR closes #5750, by adding support for these options in pnpm-config.json.

From a user's perspective, they can now adopt a stricter trust policy, providing defence-in-depth for supply chain vulnerabilities, particularly hijacking of dependency maintainers' tokens and publishing outside of CI. The trustPolicyExclude and trustPolicyIgnoreAfter options provide a migration path for adopting the setting, by avoiding errors on known-good (or assumed-good) versions of packages.

Details

I largely followed the implementation for minimumRelease and minimumReleaseAgeExclude, adding the setting to PnpmOptionsConfiguration and any of the related interfaces. I also updated the docs, largely matching what pnpm describes.

This should not have backwards compatibility issues, since these properties are optional (though I suppose if a repo was specifying them assuming they worked, they will now be enforced; I forget if pnpm-config.json is permissive about unknown properties)

How it was tested

I added unit tests to ensure that the config gets passed on.

I'm now looking through the docs about the current recommendation for linking locally, so I can test this on our monorepo at DoorDash.

Impacted documentation

The docs at https://rushjs.io/pages/configs/pnpm-config_json/ are affected, though if I understood the process right, they are covered by the docs changes here? Let me know if not, and I can update the site manually or in whichever process 😌

(Note to self to double-check the api-extractor result, now that I've edited some of the comments)

fpapado and others added 2 commits April 7, 2026 12:00
…settings

Add first-class support for pnpm trust policy settings in Rush's
pnpm-config.json. These settings protect against dependency hijack
attacks by blocking installations where a package's trust level has
decreased. Each setting has a separate pnpm version check:
trustPolicy (>=10.21.0), trustPolicyExclude (>=10.22.0), and
trustPolicyIgnoreAfter (>=10.27.0).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@fpapado
Copy link
Copy Markdown
Author

fpapado commented Apr 7, 2026

@microsoft-github-policy-service agree company="DoorDash"

@fpapado fpapado changed the title feat: add pnpm trustPolicy, trustPolicyExclude, and trustPolicyIgnoreAfter feat: read trustPolicy, trustPolicyExclude, and trustPolicyIgnoreAfter from pnpm-config.json Apr 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Needs triage

Development

Successfully merging this pull request may close these issues.

[rush] Support for pnpm's trustPolicy setting(s) in pnpm-config.json

1 participant