VulnParse-Pin

Architecture

VulnParse-Pin is organized as a staged pipeline with strong separation of concerns:

Input -> Validation -> Detection -> Parsing -> Enrichment -> PassRunner -> Output

High-level module map

Core data structures

Primary models are in src/vulnparse_pin/core/classes/dataclass.py:

Pass contracts are in src/vulnparse_pin/core/classes/pass_classes.py:

Control-plane flow (main.py)

At runtime, the orchestrator does the following:

  1. Parse CLI args and establish app paths
  2. Initialize PFH path policy and logger
  3. Validate input and detect schema/parser
  4. Parse input into normalized ScanResult
  5. Enrich findings using configured feed/cache strategy
  6. Execute derived passes (ScoringPass, TopNPass, SummaryPass)
  7. Emit output artifacts (JSON and optional CSV)

Architectural invariants

Why this architecture works

  1. Detection and Parsing
  2. Pipeline System
  3. Pass Phases
  4. Performance Optimizations