From 9893460b6422b21a39f16f572c289ca4d865a7ee Mon Sep 17 00:00:00 2001 From: jramos Date: Wed, 11 Mar 2026 14:23:50 -0600 Subject: [PATCH] feat(reporting): add Finding ID column MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ID was already stored in the cache from f.id; exposed as a sortable column (filterable: false — too many unique values to be useful as a filter). Existing users get it appended to the end of their saved column order via the loadColumnOrder merge logic; new users see it first. Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/components/pages/ReportingPage.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/frontend/src/components/pages/ReportingPage.js b/frontend/src/components/pages/ReportingPage.js index 3dced22..37d4a92 100644 --- a/frontend/src/components/pages/ReportingPage.js +++ b/frontend/src/components/pages/ReportingPage.js @@ -9,6 +9,7 @@ const STORAGE_KEY = 'steam_findings_columns_v1'; // Column definitions — source of truth for labels, sort behaviour, rendering // --------------------------------------------------------------------------- const COLUMN_DEFS = { + findingId: { label: 'Finding ID', sortable: true, filterable: false }, severity: { label: 'Severity', sortable: true, filterable: true }, title: { label: 'Title', sortable: true, filterable: true }, cves: { label: 'CVEs', sortable: true, filterable: true, multiValue: true }, @@ -23,6 +24,7 @@ const COLUMN_DEFS = { }; const DEFAULT_COLUMN_ORDER = [ + { key: 'findingId', visible: true }, { key: 'severity', visible: true }, { key: 'title', visible: true }, { key: 'cves', visible: true }, @@ -63,6 +65,7 @@ function saveColumnOrder(order) { // --------------------------------------------------------------------------- function getVal(finding, key) { switch (key) { + case 'findingId': return finding.id ?? ''; case 'severity': return finding.severity ?? 0; case 'title': return finding.title ?? ''; case 'hostName': return finding.hostName ?? ''; @@ -449,6 +452,12 @@ function FilterDropdown({ anchorEl, colKey, findings, activeFilter, onFilterChan // --------------------------------------------------------------------------- function TableCell({ colKey, finding }) { switch (colKey) { + case 'findingId': + return ( + + {finding.id || '—'} + + ); case 'severity': { const sc = severityColor(finding.vrrGroup); return (