ADR 0002: Report Format Availability Policy
Status
Accepted
Context
The Vulnerability Scanner handles multiple report formats (XML, PDF, HTML). The “Sent Reports” overview is responsible for managing visual reports distributed to contact persons.
A strict validation logic might enforce that for every XML report (used for analytics), a corresponding visual report (PDF or HTML) must exist, or that if one visual format exists, the other must as well.
However, in many operational workflows: * XML reports may be generated solely for backend analytics or machine ingestion, without any intent to distribute them to end-users. * A user might choose to generate/upload only a PDF, or only an HTML file, depending on their preference or specific requirements. * Enforcing the presence of alternate formats would flag valid, intentional configurations as errors, creating noise and confusion for administrators.
Decision
Single Visual Format Logic: We will NOT treat the absence of a specific visual format (PDF or HTML) as an error, provided at least one visual format exists if the report is intended for distribution.
Managed Scope: The Sent Reports overview manages uploaded visual reports. It does not enforce a 1:1 mapping with XML analytics files.
Flexibility: The system must support scenarios where only a PDF, or only an HTML file, is present.
XML Dependency: While visual reports are flexible, an underlying XML (or equivalent structured data) is typically required for metadata extraction (finding IPs, etc.), so a “Missing XML” alert is still valid for orphan PDF/HTML files if analytics are expected. However, the reverse (XML without PDF/HTML) is a valid “analytics-only” state and should not clutter the Sent Reports view unless explicitly configured otherwise.
Consequences
Reduced Noise: Administrators will not see “Missing HTML” alerts for PDF-only workflows, and vice versa.
Clearer Scope: The Sent Reports view focuses on what is available for sending, rather than policing what could be available.
Analytics Separation: Allows for a cleaner separation between reports meant for automated ingestion (XML only) and those meant for human consumption.