graph LR
Configuration_Manager["Configuration Manager"]
Test_Result_Orchestrator["Test Result Orchestrator"]
SARIF_Output_Generator["SARIF Output Generator"]
Remediation_Legacy_Issue_Formatter["Remediation & Legacy Issue Formatter"]
IaC_Text_Output_Formatter["IaC Text Output Formatter"]
Docker_Output_Formatter["Docker Output Formatter"]
Scan_Tip_Summary_Generator["Scan Tip & Summary Generator"]
Vulnerability_Metadata_Provider["Vulnerability Metadata Provider"]
Test_Result_Orchestrator -- "delegates formatting to" --> Remediation_Legacy_Issue_Formatter
Test_Result_Orchestrator -- "delegates formatting to" --> SARIF_Output_Generator
Test_Result_Orchestrator -- "delegates formatting to" --> Docker_Output_Formatter
Test_Result_Orchestrator -- "delegates formatting to" --> IaC_Text_Output_Formatter
SARIF_Output_Generator -- "queries" --> Vulnerability_Metadata_Provider
Remediation_Legacy_Issue_Formatter -- "queries" --> Vulnerability_Metadata_Provider
Scan_Tip_Summary_Generator -- "retrieves settings from" --> Configuration_Manager
The CLI application's core functionality revolves around processing scan results and presenting them to the user in various formats. The Configuration Manager acts as the central repository for application settings, which are utilized by components like the Scan Tip & Summary Generator. The Test Result Orchestrator serves as the primary dispatcher, taking raw test results and delegating their formatting to specialized components such as the SARIF Output Generator, Remediation & Legacy Issue Formatter, Docker Output Formatter, and IaC Text Output Formatter. These formatters, in turn, rely on the Vulnerability Metadata Provider to enrich the output with consistent vulnerability details.
Centrally manages and provides access to all CLI configuration settings, including API endpoints, user preferences, and organization-specific details. This component ensures consistent access to application-wide settings.
Related Classes/Methods:
Acts as the primary entry point for processing raw test results and delegating to specific formatters based on the desired output type (e.g., human-readable console output, SARIF, JSON). It orchestrates the transformation of raw data into various output formats.
Related Classes/Methods:
Specializes in converting scan results (IaC, Open Source, Containers) into the SARIF (Static Analysis Results Interchange Format) standard, enabling machine-readable and interoperable output for security tools and platforms.
Related Classes/Methods:
Formats security vulnerabilities and issues for human-readable display, including detailed remediation advice. It supports both modern remediation-focused output and older, legacy formats.
Related Classes/Methods:
Formats Infrastructure as Code (IaC) scan results, including issues, failures, and warnings, into a human-readable text format specifically for console output.
Related Classes/Methods:
src/lib/formatters/iac-output/text/formatters.tssrc/lib/formatters/iac-output/text/issues-list/index.ts
Handles the specific formatting requirements for Docker-related scan results, including binary issues and remediation advice, for console display.
Related Classes/Methods:
src/lib/formatters/docker/format-docker-binary-issues.tssrc/lib/formatters/docker/format-docker-advice.ts
Generates informative messages, tips (e.g., multi-scan tips), and summaries for various scan outcomes, including monitor responses and errors, to provide contextual feedback to the user.
Related Classes/Methods:
Provides common vulnerability-related metadata such as URLs, severity values, and flags (e.g., new vulnerability, fixable) to various formatters.
Related Classes/Methods: