[APS-19734] fix: harden .npmrc with supply-chain security directives - #1128
Rohannagariya1 wants to merge 2 commits into
Conversation
- Add ignore-scripts, strict-ssl, save-exact, engine-strict, legacy-peer-deps=false, audit-level=high - Preserve existing package-lock=true and lockfile-version=1 - Public repo: access=restricted intentionally omitted - Validated: npm install + npm test identical before/after (678 passing, 13 pre-existing failures unchanged); no install scripts in the dep tree, so ignore-scripts=true causes no regression Resolves: APS-19734 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Closing as not needed — synced with Shabbir (Security EM). The supply-chain |
|
Reopening — closed in error. This repo is internal per Rohan; keeping the hardened |
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Central YAML (base), Organization UI (inherited), Workspace UI (inherited) Review profile: ASSERTIVE Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Security Fix: APS-19734
Issue
The repo's
.npmrcfailed the weekly supply-chain.npmrcaudit (SC-12282) — it contained onlypackage-lock=true/lockfile-version=1and was missing the required hardening directives.Root Cause
Missing npm hardening directives that protect against malicious lifecycle scripts, TLS downgrade, version drift, and incompatible engines.
Fix Applied
Added the 6 required directives, preserving the existing two lines:
This is a public repo, so
access=restrictedis intentionally omitted.ignore-scripts compatibility (the cypress-CLI concern)
This is the Cypress CLI tool, so we explicitly verified
ignore-scripts=truedoes not break install or tests:package.jsonhas nopreinstall/install/postinstallscripts.browserstack-locallazy-downloads theBrowserStackLocalbinary at runtime (first use), not via an npm install script — so blocking install scripts does not prevent the binary fetch.enginesfield, soengine-strict=trueis a no-op here.Testing (before vs after, clean
node_modules)npm installnpm test(mocha)The 13 failures are pre-existing (error-report / deleteZip / table-config / video-config suites) and the failing-test set is byte-identical before and after — confirmed via diff. No regression introduced by the directives.
Jira Ticket
https://browserstack.atlassian.net/browse/APS-19734
Checklist
npm install+npm testvalidated identical before/after.npmrcchange)