Architecture

This document describes the architecture and components of VulnerabilityHub.

System Overview

VulnerabilityHub follows a modern three-tier architecture, designed for scalability and maintainability. It separates the presentation layer (Frontend) from the business logic (Backend API) and data persistence (Database).

        graph TD
    User[User / Admin] -->|HTTPS| Frontend["Frontend SPA<br/>(Vue 3 + Vuetify)"]
    Frontend -->|REST API| Backend["Backend API<br/>(FastAPI)"]

    subgraph Data Layer
        DB[("MariaDB<br/>Database")]
    end

    subgraph External Services
        SMTP[SMTP Server]
        ExtDB["External CMDB<br/>(Optional)"]
        LDAP["LDAP / AD<br/>(Future/Optional)"]
        ClamAV[ClamAV Scanner]
    end

    subgraph Observability
        Grafana[Grafana]
        Prometheus[Prometheus]
    end

    Backend -->|SQLAlchemy| DB
    Backend -->|SMTP| SMTP
    Backend -->|Import| ExtDB
    Backend -->|Auth| LDAP
    Backend -->|Scan| ClamAV

    Prometheus -->|Scrape Metrics| Backend
    Grafana -->|Query| DB
    Grafana -->|Query| Prometheus
    

Core Components

1. Frontend (Vue 3)

The frontend is a Single Page Application (SPA) built with Vue 3 and TypeScript.

  • Framework: Vue 3 (Composition API)

  • UI Library: Vuetify 3 (Material Design)

  • State Management: Pinia

  • Routing: Vue Router

  • Networking: Axios

It handles user authentication, scan management, interactive dashboards, and administration interfaces.

2. Backend (FastAPI)

The backend is a high-performance, async REST API built with Python 3.9+ and FastAPI.

  • API Framework: FastAPI

  • ORM: SQLAlchemy (Sync/Async patterns)

  • Validation: Pydantic v2

  • ML Engine: Facebook Prophet (for vulnerability forecasting)

  • Security: OAuth2/JWT flavor for auth, Role-Based Access Control (RBAC).

Key Responsibilities: - XML Parsing (Greenbone/OpenVAS reports) - Business Logic (Disputes, Notifications, Imports) - Background Tasks (Email sending, File processing) - Audit Logging (Comprehensive tracking of actions) - Virus Scanning: Integrated with ClamAV to scan all uploaded files.

3. Database (MariaDB)

The relational database serves as the single source of truth.

  • Core Data: Scans, Hosts, Vulnerabilities, Results.

  • Identity: Users, Contact Persons, Permissions.

  • Audit: audit_logs, access_logs.

  • Time Series: Materialized views for efficient analytics.

4. Monitoring (Grafana + Prometheus)

  • Grafana: Visualizes vulnerability trends and system metrics directly from the DB and via Prometheus.

  • Prometheus: Scrapes application metrics (endpoint latency, error rates) exposed by prometheus-fastapi-instrumentator.

Data Flows

For detailed diagrams of system interactions (Scan Upload, Dispute Resolution, etc.), please refer to Data Flows.

Security Architecture

  • Audit Logging: Every critical action (create/update/delete, file access) is logged to the audit_logs table. See Audit Logging.

  • Input Validation: Strict typing with Pydantic prevents injection and data corruption.

  • Authentication: Stateless JWT tokens with distinction between “User” (interactive) and “Contact Person” (magic link) contexts.
    • Future Plan: LDAP/AD integration for simplified user management.

  • Network Isolation: Database and internal services are not exposed publicly in production environments.