Skip to content

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:

  1. Identify known vulnerabilities in node_modules.
  2. Automate dependency updates to reduce technical debt.
  3. 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.