Files
vulncheck/app
vulncheck e71341bcdd feat(dashboard): split recent vulns into Critical + Newly Published widgets
Colleague asked for more than 5 entries and proposed splitting the
Recent Vulnerabilities table into two focused widgets so 'what
changed risk recently' and 'what just got published' don't fight
for the same 5 rows.

Backend:
- sort_map gains 'updated_at' (Vulnerability.updated_at) so the
  Critical widget can sort by 'risk-relevant DB write timestamp'
  — picks up Vulnrichment corrections, KEV listings, manual status
  changes etc.

Frontend (page.tsx):
- new renderVulnWidget() helper renders a compact 6-column table
  (CVE / Sev / CVSS / PRIO / CPR / Flags) instead of the previous
  wide 7-column one. Used twice on the dashboard:
    'Recent Critical CVEs'  — CVSS ≥ 8 OR KEV OR EUVD, top 10,
                              sort_by=updated_at desc
    'Newly Published CVEs'  — top 10, sort_by=published_date desc
- Flags column surfaces KEV / EUVD / SSVC status (WIDESP/ACTIVE/POC)
  pills inline so the operator can see actionable indicators at a
  glance without opening the detail page.
- Side-by-side on desktop (lg:grid-cols-2), stacked on mobile.

Both widgets dedup by cve_id client-side and pull a wider window
(80 entries) so 10 distinct CVEs land even when a hot CVE hits many
assets. Click on a row jumps to the filtered Vulns list.

Increased from 5 → 10 entries per widget (configurable via the loop
guard if 15 is preferred — set both to 15 and the limit=80 fetch
still covers worst case).
2026-05-21 21:36:26 +02:00
..
2026-02-08 10:15:20 +01:00