output

package
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 28, 2025 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Artifact

type Artifact struct {
	Location            *ArtifactLocation `json:"location"`
	Length              int64             `json:"length,omitempty"`
	MimeType            string            `json:"mimeType,omitempty"`
	Hashes              map[string]string `json:"hashes,omitempty"`
	LastModifiedTimeUtc string            `json:"lastModifiedTimeUtc,omitempty"`
}

Artifact represents a file or other artifact

type ArtifactLocation

type ArtifactLocation struct {
	URI   string `json:"uri"`
	Index int    `json:"index,omitempty"`
}

ArtifactLocation represents the location of an artifact

type AuditEntry

type AuditEntry struct {
	Timestamp   string `json:"timestamp"`
	Action      string `json:"action"`
	User        string `json:"user"`
	Description string `json:"description"`
}

type AuditTrail

type AuditTrail struct {
	ScanID             string `json:"scanId,omitempty"`
	ApprovalStatus     string `json:"approvalStatus,omitempty"`
	ApprovedBy         string `json:"approvedBy,omitempty"`
	ApprovalTime       string `json:"approvalTime,omitempty"`
	RetentionPolicy    string `json:"retentionPolicy,omitempty"`
	DataClassification string `json:"dataClassification,omitempty"`
}

AuditTrail represents audit information for compliance

type ComplianceReportData

type ComplianceReportData struct {
	ReportData
	ExecutiveSummary      string               `json:"executive_summary"`
	AssessmentPeriod      string               `json:"assessment_period"`
	Assessor              string               `json:"assessor"`
	ComplianceFramework   string               `json:"compliance_framework"`
	AssessmentScope       string               `json:"assessment_scope"`
	OverallScore          float64              `json:"overall_score"`
	TotalRequirements     int                  `json:"total_requirements"`
	CompliantRequirements int                  `json:"compliant_requirements"`
	PartiallyCompliant    int                  `json:"partially_compliant"`
	NonCompliant          int                  `json:"non_compliant"`
	ComplianceStandards   []ComplianceStandard `json:"compliance_standards"`
	DetailedAssessment    []interface{}        `json:"detailed_assessment"` // Removed orchestrator dependency
	SecurityControls      []SecurityControl    `json:"security_controls"`
	HighRiskFindings      int                  `json:"high_risk_findings"`
	MediumRiskFindings    int                  `json:"medium_risk_findings"`
	LowRiskFindings       int                  `json:"low_risk_findings"`
	OverallRiskScore      string               `json:"overall_risk_score"`
	RemediationRoadmap    []RemediationPhase   `json:"remediation_roadmap"`
	AuditTrail            []AuditEntry         `json:"audit_trail"`
	ReportVersion         string               `json:"report_version"`
}

ComplianceReportData contains data specific to compliance reports

type ComplianceStandard

type ComplianceStandard struct {
	Name              string   `json:"name"`
	Score             float64  `json:"score"`
	ScoreClass        string   `json:"score_class"`
	Status            string   `json:"status"`
	StatusClass       string   `json:"status_class"`
	RequirementsMet   int      `json:"requirements_met"`
	TotalRequirements int      `json:"total_requirements"`
	LastAssessment    string   `json:"last_assessment"`
	CriticalGaps      []string `json:"critical_gaps,omitempty"`
}

type Configuration

type Configuration struct {
	Level string `json:"level"`
}

Configuration represents rule configuration

type CycloneDXBOM added in v1.0.3

type CycloneDXBOM struct {
	BomFormat   string                 `json:"bomFormat"`
	SpecVersion string                 `json:"specVersion"`
	Version     int                    `json:"version"`
	Metadata    map[string]interface{} `json:"metadata,omitempty"`
	Components  []CycloneDXComponent   `json:"components"`
}

type CycloneDXComponent

type CycloneDXComponent struct {
	Type    string `json:"type"`
	Name    string `json:"name"`
	Version string `json:"version,omitempty"`
	Purl    string `json:"purl,omitempty"`
}

type CycloneDXFormatter

type CycloneDXFormatter struct{}

func NewCycloneDXFormatter

func NewCycloneDXFormatter() *CycloneDXFormatter

func (*CycloneDXFormatter) Format

func (f *CycloneDXFormatter) Format(res *scanner.ScanResults, opts *FormatterOptions) ([]byte, error)

type DetectionMethod

type DetectionMethod struct {
	Name        string `json:"name"`
	Type        string `json:"type"`
	Findings    int    `json:"findings"`
	Accuracy    string `json:"accuracy"`
	Description string `json:"description"`
}

type Driver

type Driver struct {
	Name            string `json:"name"`
	Version         string `json:"version"`
	InformationUri  string `json:"informationUri,omitempty"`
	Organization    string `json:"organization,omitempty"`
	SemanticVersion string `json:"semanticVersion,omitempty"`
	Rules           []Rule `json:"rules,omitempty"`
}

Driver represents the tool driver information

type EnterpriseMetadata

type EnterpriseMetadata struct {
	OrganizationID       string       `json:"organizationId,omitempty"`
	TenantID             string       `json:"tenantId,omitempty"`
	ScannerVersion       string       `json:"scannerVersion,omitempty"`
	PolicyVersion        string       `json:"policyVersion,omitempty"`
	ComplianceFrameworks []string     `json:"complianceFrameworks,omitempty"`
	RiskScore            float64      `json:"riskScore,omitempty"`
	ScanContext          *ScanContext `json:"scanContext,omitempty"`
	AuditTrail           *AuditTrail  `json:"auditTrail,omitempty"`
}

EnterpriseMetadata represents enterprise-specific metadata

type EvidenceInfo

type EvidenceInfo struct {
	Type        string      `json:"type"`
	Description string      `json:"description"`
	Value       interface{} `json:"value"`
	Score       float64     `json:"score,omitempty"`
	Confidence  float64     `json:"confidence,omitempty"`
}

EvidenceInfo represents evidence supporting a threat detection

type ExecutiveReportData

type ExecutiveReportData struct {
	ReportData
	ExecutiveSummary     string                 `json:"executive_summary"`
	TotalRepositories    int                    `json:"total_repositories"`
	ScannedRepositories  int                    `json:"scanned_repositories"`
	TotalVulnerabilities int                    `json:"total_vulnerabilities"`
	CriticalIssues       int                    `json:"critical_issues"`
	HighRiskIssues       int                    `json:"high_risk_issues"`
	MediumRiskIssues     int                    `json:"medium_risk_issues"`
	LowRiskIssues        int                    `json:"low_risk_issues"`
	ComplianceScore      float64                `json:"compliance_score"`
	SecurityTrend        string                 `json:"security_trend"`
	TopRisks             []RiskItem             `json:"top_risks"`
	Recommendations      []string               `json:"recommendations"`
	Metrics              map[string]interface{} `json:"metrics"`
}

ExecutiveReportData contains data specific to executive reports

type FuturisticFormatter

type FuturisticFormatter struct {
	// contains filtered or unexported fields
}

func NewFuturisticFormatter

func NewFuturisticFormatter(verbose, json bool) *FuturisticFormatter

func (*FuturisticFormatter) PrintAnalysisResults

func (f *FuturisticFormatter) PrintAnalysisResults(result *detector.CheckPackageResult)

func (*FuturisticFormatter) PrintBanner

func (f *FuturisticFormatter) PrintBanner()

func (*FuturisticFormatter) PrintScanResults

func (f *FuturisticFormatter) PrintScanResults(result *analyzer.ScanResult)

func (*FuturisticFormatter) PrintScanStart

func (f *FuturisticFormatter) PrintScanStart(path string)

func (*FuturisticFormatter) PrintVersion

func (f *FuturisticFormatter) PrintVersion(version string)

type Invocation

type Invocation struct {
	ExecutionSuccessful bool              `json:"executionSuccessful"`
	StartTimeUtc        string            `json:"startTimeUtc,omitempty"`
	EndTimeUtc          string            `json:"endTimeUtc,omitempty"`
	ExitCode            int               `json:"exitCode,omitempty"`
	CommandLine         string            `json:"commandLine,omitempty"`
	Arguments           []string          `json:"arguments,omitempty"`
	WorkingDirectory    *ArtifactLocation `json:"workingDirectory,omitempty"`
}

Invocation represents a tool invocation

type Location

type Location struct {
	PhysicalLocation *PhysicalLocation `json:"physicalLocation,omitempty"`
	LogicalLocations []LogicalLocation `json:"logicalLocations,omitempty"`
}

Location represents a location in the source code

type LogicalLocation

type LogicalLocation struct {
	Name               string `json:"name,omitempty"`
	FullyQualifiedName string `json:"fullyQualifiedName,omitempty"`
	Kind               string `json:"kind,omitempty"`
}

LogicalLocation represents a logical location

type Message

type Message struct {
	Text string `json:"text"`
}

Message represents a message with text

type PDFGenerator

type PDFGenerator struct {
	TemplateDir string
	OutputDir   string
	Options     PDFOptions
}

PDFGenerator handles PDF generation from HTML templates

func NewPDFGenerator

func NewPDFGenerator(templateDir, outputDir string, options *PDFOptions) *PDFGenerator

NewPDFGenerator creates a new PDF generator instance

func (*PDFGenerator) BatchGenerateReports

func (pg *PDFGenerator) BatchGenerateReports(reports []ReportRequest) error

BatchGenerateReports generates multiple reports in batch

func (*PDFGenerator) CleanupOldReports

func (pg *PDFGenerator) CleanupOldReports(maxAge time.Duration) error

CleanupOldReports removes PDF files older than the specified duration

func (*PDFGenerator) GenerateComplianceReport

func (pg *PDFGenerator) GenerateComplianceReport(data interface{}, outputFilename string) error

GenerateComplianceReport generates a compliance report PDF

func (*PDFGenerator) GenerateExecutiveReport

func (pg *PDFGenerator) GenerateExecutiveReport(data interface{}, outputFilename string) error

GenerateExecutiveReport generates an executive report PDF

func (*PDFGenerator) GeneratePDFFromHTML

func (pg *PDFGenerator) GeneratePDFFromHTML(htmlContent string, outputFilename string) error

GeneratePDFFromHTML generates PDF directly from HTML string

func (*PDFGenerator) GeneratePDFStream

func (pg *PDFGenerator) GeneratePDFStream(templateName string, data interface{}) ([]byte, error)

GeneratePDFStream generates PDF and returns it as a byte stream

func (*PDFGenerator) GenerateReportPDF

func (pg *PDFGenerator) GenerateReportPDF(templateName string, data interface{}, outputFilename string) error

GenerateReportPDF generates a PDF from an HTML template with data

func (*PDFGenerator) GenerateTechnicalReport

func (pg *PDFGenerator) GenerateTechnicalReport(data interface{}, outputFilename string) error

GenerateTechnicalReport generates a technical report PDF

func (*PDFGenerator) GetAvailableTemplates

func (pg *PDFGenerator) GetAvailableTemplates() ([]string, error)

GetAvailableTemplates returns a list of available HTML templates

func (*PDFGenerator) SetCustomOptions

func (pg *PDFGenerator) SetCustomOptions(options PDFOptions)

SetCustomOptions allows updating PDF generation options

func (*PDFGenerator) StreamPDFToWriter

func (pg *PDFGenerator) StreamPDFToWriter(templateName string, data interface{}, writer io.Writer) error

StreamPDFToWriter generates PDF and writes it directly to an io.Writer

func (*PDFGenerator) ValidateTemplate

func (pg *PDFGenerator) ValidateTemplate(templateName string) error

ValidateTemplate checks if a template file exists and is valid

type PDFInfo

type PDFInfo struct {
	FilePath   string    `json:"file_path"`
	FileName   string    `json:"file_name"`
	FileSize   int64     `json:"file_size"`
	CreatedAt  time.Time `json:"created_at"`
	IsReadable bool      `json:"is_readable"`
}

PDFInfo contains information about a generated PDF

func GetPDFInfo

func GetPDFInfo(filePath string) (*PDFInfo, error)

GetPDFInfo returns information about a generated PDF file

type PDFOptions

type PDFOptions struct {
	PaperWidth          float64 `json:"paper_width"`      // in inches
	PaperHeight         float64 `json:"paper_height"`     // in inches
	MarginTop           float64 `json:"margin_top"`       // in inches
	MarginBottom        float64 `json:"margin_bottom"`    // in inches
	MarginLeft          float64 `json:"margin_left"`      // in inches
	MarginRight         float64 `json:"margin_right"`     // in inches
	PrintBackground     bool    `json:"print_background"` // include background graphics
	Landscape           bool    `json:"landscape"`        // page orientation
	Scale               float64 `json:"scale"`            // page scale (0.1 to 2.0)
	DisplayHeaderFooter bool    `json:"display_header_footer"`
	HeaderTemplate      string  `json:"header_template"`
	FooterTemplate      string  `json:"footer_template"`
	PreferCSSPageSize   bool    `json:"prefer_css_page_size"`
}

PDFOptions configures PDF generation settings

func DefaultPDFOptions

func DefaultPDFOptions() PDFOptions

DefaultPDFOptions returns sensible default PDF generation options

type PartialFingerprints

type PartialFingerprints struct {
	PrimaryLocationLineHash string `json:"primaryLocationLineHash,omitempty"`
}

PartialFingerprints represents partial fingerprints for result matching

type PerformanceMetrics

type PerformanceMetrics struct {
	ScanSpeed   string `json:"scan_speed"`
	MemoryUsage string `json:"memory_usage"`
	CPUUsage    string `json:"cpu_usage"`
	Throughput  string `json:"throughput"`
	ErrorRate   string `json:"error_rate"`
}

type PhysicalLocation

type PhysicalLocation struct {
	ArtifactLocation *ArtifactLocation `json:"artifactLocation,omitempty"`
	Region           *Region           `json:"region,omitempty"`
}

PhysicalLocation represents a physical location in a file

type Properties

type Properties struct {
	RepositoryURL string                 `json:"repositoryUrl,omitempty"`
	Branch        string                 `json:"branch,omitempty"`
	CommitSHA     string                 `json:"commitSha,omitempty"`
	ScanType      string                 `json:"scanType,omitempty"`
	Metrics       map[string]interface{} `json:"metrics,omitempty"`
	// Enterprise metadata
	Enterprise *EnterpriseMetadata `json:"enterprise,omitempty"`
}

Properties represents additional properties

type Region

type Region struct {
	StartLine   int `json:"startLine,omitempty"`
	StartColumn int `json:"startColumn,omitempty"`
	EndLine     int `json:"endLine,omitempty"`
	EndColumn   int `json:"endColumn,omitempty"`
}

Region represents a region in a file

type RemediationPhase

type RemediationPhase struct {
	Phase           string `json:"phase"`
	Title           string `json:"title"`
	Timeline        string `json:"timeline"`
	Priority        string `json:"priority"`
	Owner           string `json:"owner"`
	Description     string `json:"description"`
	SuccessCriteria string `json:"success_criteria"`
}

type RemediationStep

type RemediationStep struct {
	Priority string `json:"priority"`
	Action   string `json:"action"`
	DueDate  string `json:"due_date"`
}

type ReportData

type ReportData struct {
	Organization string    `json:"organization"`
	ReportDate   string    `json:"report_date"`
	ReportID     string    `json:"report_id"`
	ReportType   string    `json:"report_type"`
	GeneratedBy  string    `json:"generated_by"`
	Version      string    `json:"version"`
	ScanPeriod   string    `json:"scan_period"`
	Timestamp    time.Time `json:"timestamp"`
}

ReportData contains common data for all report types

type ReportGenerator

type ReportGenerator struct {
	// contains filtered or unexported fields
}

ReportGenerator manages the generation of various report types

func NewReportGenerator

func NewReportGenerator(templateDir, outputDir string, pdfOptions *PDFOptions, logger *logrus.Logger) *ReportGenerator

NewReportGenerator creates a new report generator

func (*ReportGenerator) CleanupOldReports

func (rg *ReportGenerator) CleanupOldReports(maxAge time.Duration) error

CleanupOldReports removes old report files

func (*ReportGenerator) GenerateAllReports

func (rg *ReportGenerator) GenerateAllReports(baseData ReportData, executiveData ExecutiveReportData, technicalData TechnicalReportData, complianceData ComplianceReportData) error

GenerateAllReports generates all three report types from the same base data

func (*ReportGenerator) GenerateComplianceReport

func (rg *ReportGenerator) GenerateComplianceReport(data ComplianceReportData, filename string) error

GenerateComplianceReport generates a compliance report in PDF format

func (*ReportGenerator) GenerateExecutiveReport

func (rg *ReportGenerator) GenerateExecutiveReport(data ExecutiveReportData, filename string) error

GenerateExecutiveReport generates an executive report in PDF format

func (*ReportGenerator) GenerateReportByType

func (rg *ReportGenerator) GenerateReportByType(reportType ReportType, data interface{}, filename string) error

GenerateReportByType generates a report based on the specified type

func (*ReportGenerator) GenerateTechnicalReport

func (rg *ReportGenerator) GenerateTechnicalReport(data TechnicalReportData, filename string) error

GenerateTechnicalReport generates a technical report in PDF format

func (*ReportGenerator) GetAvailableTemplates

func (rg *ReportGenerator) GetAvailableTemplates() ([]string, error)

GetAvailableTemplates returns available report templates

func (*ReportGenerator) GetReportPath

func (rg *ReportGenerator) GetReportPath(filename string) string

GetReportPath returns the full path to a generated report

func (*ReportGenerator) GetReportStats

func (rg *ReportGenerator) GetReportStats() (map[string]interface{}, error)

GetReportStats returns statistics about generated reports

func (*ReportGenerator) SetPDFOptions

func (rg *ReportGenerator) SetPDFOptions(options PDFOptions)

SetPDFOptions updates PDF generation options

func (*ReportGenerator) ValidateReportData

func (rg *ReportGenerator) ValidateReportData(data ReportData) error

ValidateReportData validates common report data fields

type ReportRequest

type ReportRequest struct {
	TemplateName   string      `json:"template_name"`
	Data           interface{} `json:"data"`
	OutputFilename string      `json:"output_filename"`
}

ReportRequest represents a single report generation request

type ReportType

type ReportType string

ReportType defines the type of report to generate

const (
	ExecutiveReport  ReportType = "executive"
	TechnicalReport  ReportType = "technical"
	ComplianceReport ReportType = "compliance"
)

type RepositoryAnalysis

type RepositoryAnalysis struct {
	Name            string `json:"name"`
	URL             string `json:"url"`
	Language        string `json:"language"`
	Vulnerabilities int    `json:"vulnerabilities"`
	RiskScore       string `json:"risk_score"`
	LastScanned     string `json:"last_scanned"`
	Status          string `json:"status"`
}

type Result

type Result struct {
	RuleID              string               `json:"ruleId"`
	RuleIndex           int                  `json:"ruleIndex,omitempty"`
	Message             Message              `json:"message"`
	Level               string               `json:"level"`
	Locations           []Location           `json:"locations,omitempty"`
	PartialFingerprints *PartialFingerprints `json:"partialFingerprints,omitempty"`
	Properties          *ResultProperties    `json:"properties,omitempty"`
}

Result represents a single analysis result

type ResultProperties

type ResultProperties struct {
	Severity        string                 `json:"severity,omitempty"`
	Confidence      string                 `json:"confidence,omitempty"`
	PackageName     string                 `json:"packageName,omitempty"`
	PackageVersion  string                 `json:"packageVersion,omitempty"`
	VulnerabilityID string                 `json:"vulnerabilityId,omitempty"`
	ThreatType      string                 `json:"threatType,omitempty"`
	Registry        string                 `json:"registry,omitempty"`
	DetectionMethod string                 `json:"detectionMethod,omitempty"`
	SimilarTo       string                 `json:"similarTo,omitempty"`
	Recommendation  string                 `json:"recommendation,omitempty"`
	CVEs            []string               `json:"cves,omitempty"`
	References      []string               `json:"references,omitempty"`
	Evidence        []EvidenceInfo         `json:"evidence,omitempty"`
	ThreatMetadata  map[string]interface{} `json:"threatMetadata,omitempty"`
	RiskScore       float64                `json:"riskScore,omitempty"`
}

ResultProperties represents result-specific properties

type RiskItem

type RiskItem struct {
	Title       string `json:"title"`
	Description string `json:"description"`
	Severity    string `json:"severity"`
	Impact      string `json:"impact"`
	Count       int    `json:"count"`
}

Supporting data structures

type Rule

type Rule struct {
	ID                   string          `json:"id"`
	Name                 string          `json:"name,omitempty"`
	ShortDescription     *Message        `json:"shortDescription,omitempty"`
	FullDescription      *Message        `json:"fullDescription,omitempty"`
	Help                 *Message        `json:"help,omitempty"`
	HelpUri              string          `json:"helpUri,omitempty"`
	Properties           *RuleProperties `json:"properties,omitempty"`
	DefaultConfiguration *Configuration  `json:"defaultConfiguration,omitempty"`
}

Rule represents a rule definition

type RuleProperties

type RuleProperties struct {
	Severity    string   `json:"severity,omitempty"`
	Category    string   `json:"category,omitempty"`
	Tags        []string `json:"tags,omitempty"`
	Precision   string   `json:"precision,omitempty"`
	ProblemKind string   `json:"problem.kind,omitempty"`
}

RuleProperties represents rule-specific properties

type Run

type Run struct {
	Tool        Tool         `json:"tool"`
	Results     []Result     `json:"results"`
	Artifacts   []Artifact   `json:"artifacts,omitempty"`
	Invocations []Invocation `json:"invocations,omitempty"`
	Properties  *Properties  `json:"properties,omitempty"`
}

Run represents a single run of the analysis tool

type SARIF

type SARIF struct {
	Version string `json:"version"`
	Schema  string `json:"$schema"`
	Runs    []Run  `json:"runs"`
}

SARIF represents the Static Analysis Results Interchange Format

type SARIFFormatter

type SARIFFormatter struct {
	RepositoryURL string
	Branch        string
	CommitSHA     string
	ScanType      string
	// Enterprise fields
	EnterpriseMetadata *EnterpriseMetadata
}

SARIFFormatter implements SARIF output format

func NewEnterpriseSARIFFormatter

func NewEnterpriseSARIFFormatter(repoURL, branch, commitSHA, scanType string, enterpriseMetadata *EnterpriseMetadata) *SARIFFormatter

NewEnterpriseSARIFFormatter creates a new SARIF formatter with enterprise metadata

func NewSARIFFormatter

func NewSARIFFormatter(repoURL, branch, commitSHA, scanType string) *SARIFFormatter

NewSARIFFormatter creates a new SARIF formatter

func (*SARIFFormatter) Format

func (f *SARIFFormatter) Format(results *analyzer.ScanResult) ([]byte, error)

Format converts scan results to SARIF format

type SPDXDocument

type SPDXDocument struct {
	SPDXVersion  string        `json:"spdxVersion"`
	DataLicense  string        `json:"dataLicense"`
	SPDXID       string        `json:"SPDXID"`
	DocumentName string        `json:"name"`
	Packages     []SPDXPackage `json:"packages"`
}

type SPDXFormatter

type SPDXFormatter struct{}

func NewSPDXFormatter

func NewSPDXFormatter() *SPDXFormatter

func (*SPDXFormatter) Format

func (f *SPDXFormatter) Format(res *scanner.ScanResults, opts FormatterOptions) ([]byte, error)

type SPDXPackage

type SPDXPackage struct {
	SPDXID           string `json:"SPDXID"`
	Name             string `json:"name"`
	Version          string `json:"versionInfo,omitempty"`
	LicenseConcluded string `json:"licenseConcluded,omitempty"`
}

type ScanContext

type ScanContext struct {
	InitiatedBy   string `json:"initiatedBy,omitempty"`
	ScanReason    string `json:"scanReason,omitempty"`
	ScheduledScan bool   `json:"scheduledScan"`
	CICDPipeline  string `json:"cicdPipeline,omitempty"`
	Environment   string `json:"environment,omitempty"`
	ProjectID     string `json:"projectId,omitempty"`
}

ScanContext represents the context in which the scan was performed

type ScanEvent

type ScanEvent struct {
	Timestamp  string `json:"timestamp"`
	Event      string `json:"event"`
	Repository string `json:"repository"`
	Status     string `json:"status"`
	Duration   string `json:"duration"`
	Findings   int    `json:"findings"`
}

type ScanOverview

type ScanOverview struct {
	TotalScans      int           `json:"total_scans"`
	SuccessfulScans int           `json:"successful_scans"`
	FailedScans     int           `json:"failed_scans"`
	AverageDuration time.Duration `json:"average_duration"`
	LastScanTime    time.Time     `json:"last_scan_time"`
}

type SecurityControl

type SecurityControl struct {
	ControlID     string `json:"control_id"`
	ControlName   string `json:"control_name"`
	Status        string `json:"status"`
	StatusClass   string `json:"status_class"`
	Effectiveness string `json:"effectiveness"`
	LastTested    string `json:"last_tested"`
	RiskLevel     string `json:"risk_level"`
}

type SystemConfig

type SystemConfig struct {
	Version     string            `json:"version"`
	Environment string            `json:"environment"`
	Settings    map[string]string `json:"settings"`
	Plugins     []string          `json:"plugins"`
}

type TechnicalReportData

type TechnicalReportData struct {
	ReportData
	ScanOverview        ScanOverview          `json:"scan_overview"`
	Vulnerabilities     []VulnerabilityDetail `json:"vulnerabilities"`
	RepositoryAnalysis  []RepositoryAnalysis  `json:"repository_analysis"`
	DetectionMethods    []DetectionMethod     `json:"detection_methods"`
	ScanTimeline        []ScanEvent           `json:"scan_timeline"`
	SystemConfiguration SystemConfig          `json:"system_configuration"`
	PerformanceMetrics  PerformanceMetrics    `json:"performance_metrics"`
}

TechnicalReportData contains data specific to technical reports

type Tool

type Tool struct {
	Driver Driver `json:"driver"`
}

Tool represents the analysis tool information

type VulnerabilityDetail

type VulnerabilityDetail struct {
	ID          string `json:"id"`
	Title       string `json:"title"`
	Description string `json:"description"`
	Severity    string `json:"severity"`
	CVSS        string `json:"cvss"`
	Repository  string `json:"repository"`
	FilePath    string `json:"file_path"`
	LineNumber  int    `json:"line_number"`
	Status      string `json:"status"`
	FirstFound  string `json:"first_found"`
	LastSeen    string `json:"last_seen"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL