Roadmap Item 6: Normalize Finding Schema Across Analyzers
Priority: P1
Area: Core analysis, frontend, reports
References: src/threatxtension/core/extension_analyzer.py,
frontend/src/services/realScanService.js
Findings from Semgrep, pattern fallback, permissions, VirusTotal, entropy, and Chrome
Stats have different shapes. The frontend currently flattens and maps fields ad hoc,
which makes sorting, filtering, report generation, and API compatibility harder.
Scope:
- Define a canonical
Finding schema with id, source, title, severity, confidence,
file path, line, evidence, category, CWE, MITRE ATT&CK, and recommendation fields.
- Add adapter functions for each analyzer.
- Keep raw analyzer output available under a separate
raw or details field.
- Update frontend and PDF report code to consume the normalized findings list.
Acceptance criteria:
/api/scan/results/{id} includes a stable top-level findings array.
- Existing analyzer-specific sections remain available for backward compatibility.
- UI uses the normalized array for counts, severity filters, and details.
Created from docs/roadmap.md.
Roadmap Item 6: Normalize Finding Schema Across Analyzers
Priority: P1
Area: Core analysis, frontend, reports
References:
src/threatxtension/core/extension_analyzer.py,frontend/src/services/realScanService.jsFindings from Semgrep, pattern fallback, permissions, VirusTotal, entropy, and Chrome
Stats have different shapes. The frontend currently flattens and maps fields ad hoc,
which makes sorting, filtering, report generation, and API compatibility harder.
Scope:
Findingschema with id, source, title, severity, confidence,file path, line, evidence, category, CWE, MITRE ATT&CK, and recommendation fields.
rawordetailsfield.Acceptance criteria:
/api/scan/results/{id}includes a stable top-levelfindingsarray.Created from
docs/roadmap.md.