Skip to content

/health endpoint does not check if scanners are actually available on PATH #9

@ionfwsrijan

Description

@ionfwsrijan

Description

The GET /health endpoint currently returns {"status": "ok"} regardless of whether semgrep, osv-scanner, or gitleaks are actually installed and reachable on PATH. This means a freshly deployed instance with missing CLI tools appears healthy, and the first scan fails with a confusing error.

What to implement

Extend /health to run shutil.which("semgrep"), shutil.which("osv-scanner"), and shutil.which("gitleaks") and report each as available or missing

Response shape:

json{
  "status": "ok",
  "scanners": {
    "semgrep": true,
    "osv-scanner": true,
    "gitleaks": false
  }
}

Return status: "degraded" if any scanner is missing, status: "ok" only when all three are present
Frontend should show a warning banner if status is "degraded"

Acceptance criteria

  • /health reports each scanner's availability correctly
  • status: "degraded" when any scanner is missing
  • Frontend shows a clear warning when status is "degraded"
  • Response still returns 200 even when degraded (so load balancers don't drop it)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions