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.