Add OSV-scanner to CI and a Dependabot remediation SLA so the dependency graph stays clean and new vulnerabilities are caught at PR time.
Requirements and Context
The default branch currently carries dozens of dependency alerts (npm + crates.io), several caused by stale/divergent lockfiles. npm audit only surfaces a subset; OSV-scanner covers npm, pnpm, and Cargo against the same OSV/GHSA database Dependabot uses. There is no PR-time gate and no documented remediation SLA.
Objectives
- Add an OSV-scanner CI job that scans
package-lock.json, backend/pnpm-lock.yaml, and Cargo.lock and fails on high/critical findings.
- Add/refresh a
dependabot.yml with grouped PRs and an explicit remediation SLA (e.g., high ≤ 14 days).
- Resolve the stale-lockfile drift that generates false-positive alerts (align
frontend/package-lock.json with package.json).
- Document the vulnerability triage/remediation process in
docs/.
Suggested Execution
git checkout -b feat/dependency-security.
- Add the OSV-scanner job to
.github/workflows/ and .github/dependabot.yml.
- Regenerate/align stale lockfiles (especially
frontend/package-lock.json).
- Add
docs/vulnerability-management.md and verify CI runs the scanner.
Acceptance Criteria
Guidelines
- Pin the OSV-scanner action to a known-good release.
- Run
npm ci/cargo consistently so lockfile regressions are caught by the same CI.
Timeframe: 96 hours
Requirements and Context
The default branch currently carries dozens of dependency alerts (npm + crates.io), several caused by stale/divergent lockfiles.
npm auditonly surfaces a subset; OSV-scanner covers npm, pnpm, and Cargo against the same OSV/GHSA database Dependabot uses. There is no PR-time gate and no documented remediation SLA.Objectives
package-lock.json,backend/pnpm-lock.yaml, andCargo.lockand fails on high/critical findings.dependabot.ymlwith grouped PRs and an explicit remediation SLA (e.g., high ≤ 14 days).frontend/package-lock.jsonwithpackage.json).docs/.Suggested Execution
git checkout -b feat/dependency-security..github/workflows/and.github/dependabot.yml.frontend/package-lock.json).docs/vulnerability-management.mdand verify CI runs the scanner.Acceptance Criteria
dependabot.ymldefines grouped PRs and a documented SLA.package.json).Guidelines
npm ci/cargoconsistently so lockfile regressions are caught by the same CI.Timeframe: 96 hours