Context
Two related gaps in report metadata:
1. No closure reason/code
When a report is closed, H1 provides a reason (duplicate, informative, not-applicable, spam, etc.) but we only store state and substate. The substate partially covers this but the explicit closure code is more reliable.
2. No impact field
H1 reports have a separate impact field distinct from vulnerability_information. This is the researcher's stated impact assessment, often structured differently from the technical details.
Missing Fields
closed_reason or resolution — why the report was closed
impact — impact description text (separate from vuln info)
Changes Needed
- Add
closed_reason: str | None and impact: str | None columns to Report model
- Extract
attrs.get("closed_reason") and attrs.get("impact") in adapter
- Add to
ReportData, schemas, and API response
- Show impact in report detail view alongside vulnerability_information
Context
Two related gaps in report metadata:
1. No closure reason/code
When a report is closed, H1 provides a reason (duplicate, informative, not-applicable, spam, etc.) but we only store
stateandsubstate. Thesubstatepartially covers this but the explicit closure code is more reliable.2. No impact field
H1 reports have a separate
impactfield distinct fromvulnerability_information. This is the researcher's stated impact assessment, often structured differently from the technical details.Missing Fields
closed_reasonorresolution— why the report was closedimpact— impact description text (separate from vuln info)Changes Needed
closed_reason: str | Noneandimpact: str | Nonecolumns toReportmodelattrs.get("closed_reason")andattrs.get("impact")in adapterReportData, schemas, and API response