Dependency Management and Vulnerability Scanning
Context
The Trust Vote AI project handles sensitive voting data. Any vulnerability in our third-party dependencies represents a critical risk to system integrity. We need an automated way to:
- Identify known vulnerabilities in
node_modules. - Automate dependency updates to reduce technical debt.
- Ensure no new vulnerable packages are introduced during development.
Decision Drivers
- Security: Immediate patching of critical vulnerabilities.
- Automation: Minimize manual overhead for routine updates.
- Noise Reduction: Prevent the PR list from being flooded with individual updates.
Options Considered
1. GitHub Dependabot
- Pros: Native integration, zero configuration for security alerts, free.
- Cons: Tends to create many individual PRs, which can be overwhelming without grouping.
2. Renovate Bot
- Pros: Advanced grouping capabilities (e.g., grouping all non-major updates into one PR), highly customizable.
- Cons: Requires a separate configuration file (
renovate.json).
3. Snyk
- Pros: Top-tier security database and deep scanning.
- Cons: Free tier has monthly scan limits that might be hit as the team grows.
Decision Outcome
Chosen Option: GitHub Dependabot (Security) + Renovate (Maintenance).
We will enable Dependabot for real-time security alerts and automated security fixes. We will complement this with Renovate to handle routine, non-critical updates by grouping them to maintain a clean Git history.