← Back to all products

Security Report Generator

$19

Convert scan results into professional HTML reports with severity ratings and executive summaries.

📁 10 files
JSONMarkdownPython

📄 Product Preview

Try the interactive reader and demo tools below, or get the full product with all content unlocked.

📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample

📁 File Structure 10 files

security-report-generator/ ├── LICENSE ├── README.md ├── examples/ │ └── sample_scan_results.json ├── free-sample.zip ├── guide/ │ ├── 01_features.md │ ├── 02_quick-start.md │ ├── 03_input-format.md │ └── 04_faq.md ├── index.html └── src/ └── security_report_generator.py

📖 Documentation Preview README excerpt

Security Report Generator

Convert security scan results (JSON) into professional HTML reports with severity ratings, executive summaries, finding details, and remediation steps. Self-contained HTML that works offline.

Features

  • Self-contained HTML — single-file output with embedded CSS, works in any browser offline
  • Executive summary — overall risk score with finding count by severity
  • Severity ratings — findings categorized as critical, high, medium, low, or informational
  • Remediation steps — actionable fix for each finding
  • Demo mode — generate a sample report instantly to see the output format
  • Configurable branding — custom title, subtitle, and accent color
  • Summary mode — condensed overview without full finding details
  • Statistics dashboard — visual breakdown of findings by severity and category

Requirements

  • Python 3.10+
  • No external dependencies (stdlib only)

Quick Start


# Generate a report from scan results
python src/security_report_generator.py --input scan_results.json

# Custom title and output path
python src/security_report_generator.py --input scan_results.json --title "Q1 Audit" --output report.html

# Summary-only report
python src/security_report_generator.py --input scan_results.json --format summary

# Generate a demo report
python src/security_report_generator.py --demo

Output

Produces a self-contained HTML file with a dark-themed design. The report includes:

  • Risk score header with severity breakdown
  • Executive summary for non-technical stakeholders
  • Detailed findings table with severity, description, and remediation
  • Statistics section with finding counts by category

Input Format

Feed it JSON scan results (see examples/sample_scan_results.json):


{
    "target": "api.example.com",
    "scan_time": "2026-03-14T10:30:00Z",
    "scanner": "SecurityKit Vulnerability Scanner v1.0",
    "open_ports": [22, 80, 443, 8080],
    "findings": [
        {
            "severity": "high",
            "category": "SSL/TLS",
            "title": "Expired SSL certificate",

*... continues with setup instructions, usage examples, and more.*

📄 Code Sample .py preview

src/security_report_generator.py #!/usr/bin/env python3 """ Security Report Generator — Security Kit (DataNest) Converts security scan results (JSON) into professional HTML reports with severity ratings, executive summaries, finding details, and remediation steps. Produces self-contained HTML files that work offline. Usage: python security_report_generator.py --input scan_results.json python security_report_generator.py --input scan_results.json --title "Q1 Audit" --output report.html python security_report_generator.py --input scan_results.json --format summary python security_report_generator.py --demo Dependencies: Python 3.10+ stdlib only (no pip packages) License: MIT """ from __future__ import annotations import argparse import html import json import logging import sys from dataclasses import dataclass, field from datetime import datetime, timezone from pathlib import Path from typing import Any # --------------------------------------------------------------------------- # Constants # --------------------------------------------------------------------------- logger = logging.getLogger("security_report_generator") SEVERITY_ORDER = {"critical": 0, "high": 1, "medium": 2, "low": 3, "info": 4} SEVERITY_COLORS: dict[str, str] = { "critical": "#FF1744", "high": "#FF9100", "medium": "#FFD600", "low": "#00E5FF", "info": "#B0BEC5", } SEVERITY_ICONS: dict[str, str] = { "critical": "⚠", # Warning sign "high": "⚠", "medium": "●", # Filled circle # ... 459 more lines ...
Buy Now — $19 Back to Products