Skip to content

security: harden supply-chain and CI configuration#256

Open
IzumiSy wants to merge 1 commit into
mainfrom
security/supply-chain-hardening
Open

security: harden supply-chain and CI configuration#256
IzumiSy wants to merge 1 commit into
mainfrom
security/supply-chain-hardening

Conversation

@IzumiSy
Copy link
Copy Markdown
Contributor

@IzumiSy IzumiSy commented May 15, 2026

Summary

Harden pnpm configuration and CI workflows against supply-chain attacks, and upgrade to pnpm 11.

Changes

Upgrade to pnpm@11.1.2

  • packageManager bumped from pnpm@10.24.0 to pnpm@11.1.2
  • Removed .npmrc (pnpm 11 only reads auth/registry from .npmrc; other settings moved to pnpm-workspace.yaml)

pnpm supply-chain settings (pnpm-workspace.yaml)

The following are enabled by default in pnpm@11 and intentionally omitted:

  • blockExoticSubdeps: true
  • strictDepBuilds: true
  • minimumReleaseAge: 1440 (1 day)
  • verifyDepsBeforeRun: install

Explicitly configured:

  • minimumReleaseAge: 4320 (3 days, stricter than default 1 day)
  • trustPolicy: no-downgrade - detect provenance/publisher trust downgrades
  • saveExact: true - save exact versions when adding dependencies
  • allowBuilds - explicitly deny all lifecycle scripts (esbuild, @swc/core, sharp, protobufjs, msw, @tailor-platform/sdk, @prisma/engines). pnpm resolves optionalDependencies correctly so these fallback scripts are unnecessary.

CI hardening

  • SHA pin actions/checkout@v4 (11bd719) + add persist-credentials: false
  • SHA pin actions/setup-node@v4 (49933ea)
  • SHA pin lycheeverse/lychee-action@v2 (82202e5)
  • Replace npx turbo with pnpm exec turbo
  • Remove pnpm cache from the release job (prevent PR/release cache sharing)

Note: --frozen-lockfile is not explicitly added because pnpm automatically enables it in CI environments (when CI env var is set).

packages/core

  • Move react / react-dom from dependencies to devDependencies (existing peerDependencies declaration is unchanged)

@IzumiSy IzumiSy force-pushed the security/supply-chain-hardening branch from e47a58b to 2c8ac68 Compare May 15, 2026 07:27
@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented May 15, 2026

Open in StackBlitz

npm i https://pkg.pr.new/@tailor-platform/app-shell@256
npm i https://pkg.pr.new/@tailor-platform/app-shell-sdk-plugin@256
npm i https://pkg.pr.new/@tailor-platform/app-shell-vite-plugin@256

commit: 0bb07c1

@IzumiSy IzumiSy force-pushed the security/supply-chain-hardening branch 2 times, most recently from 0bb07c1 to f6d99f7 Compare May 15, 2026 07:57
- Add pnpm supply-chain settings (minimumReleaseAge, blockExoticSubdeps,
  trustPolicy, strictDepBuilds, onlyBuiltDependencies)
- Add .npmrc with save-exact=true
- SHA pin all GitHub Actions (checkout, setup-node, lychee-action)
- Add persist-credentials: false to all checkout steps
- Use --frozen-lockfile for all pnpm install in CI
- Replace npx turbo with pnpm exec turbo
- Remove cache from release job (PR/release cache separation)
- Move react/react-dom from dependencies to devDependencies (peerDeps only)
@IzumiSy IzumiSy force-pushed the security/supply-chain-hardening branch from f6d99f7 to a428f3b Compare May 15, 2026 08:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant