Documentation
¶
Index ¶
- type Artifact
- type ArtifactLocation
- type AuditEntry
- type AuditTrail
- type ComplianceReportData
- type ComplianceStandard
- type Configuration
- type CycloneDXBOM
- type CycloneDXComponent
- type CycloneDXFormatter
- type DetectionMethod
- type Driver
- type EnterpriseMetadata
- type EvidenceInfo
- type ExecutiveReportData
- type FuturisticFormatter
- func (f *FuturisticFormatter) PrintAnalysisResults(result *detector.CheckPackageResult)
- func (f *FuturisticFormatter) PrintBanner()
- func (f *FuturisticFormatter) PrintScanResults(result *analyzer.ScanResult)
- func (f *FuturisticFormatter) PrintScanStart(path string)
- func (f *FuturisticFormatter) PrintVersion(version string)
- type Invocation
- type Location
- type LogicalLocation
- type Message
- type PDFGenerator
- func (pg *PDFGenerator) BatchGenerateReports(reports []ReportRequest) error
- func (pg *PDFGenerator) CleanupOldReports(maxAge time.Duration) error
- func (pg *PDFGenerator) GenerateComplianceReport(data interface{}, outputFilename string) error
- func (pg *PDFGenerator) GenerateExecutiveReport(data interface{}, outputFilename string) error
- func (pg *PDFGenerator) GeneratePDFFromHTML(htmlContent string, outputFilename string) error
- func (pg *PDFGenerator) GeneratePDFStream(templateName string, data interface{}) ([]byte, error)
- func (pg *PDFGenerator) GenerateReportPDF(templateName string, data interface{}, outputFilename string) error
- func (pg *PDFGenerator) GenerateTechnicalReport(data interface{}, outputFilename string) error
- func (pg *PDFGenerator) GetAvailableTemplates() ([]string, error)
- func (pg *PDFGenerator) SetCustomOptions(options PDFOptions)
- func (pg *PDFGenerator) StreamPDFToWriter(templateName string, data interface{}, writer io.Writer) error
- func (pg *PDFGenerator) ValidateTemplate(templateName string) error
- type PDFInfo
- type PDFOptions
- type PartialFingerprints
- type PerformanceMetrics
- type PhysicalLocation
- type Properties
- type Region
- type RemediationPhase
- type RemediationStep
- type ReportData
- type ReportGenerator
- func (rg *ReportGenerator) CleanupOldReports(maxAge time.Duration) error
- func (rg *ReportGenerator) GenerateAllReports(baseData ReportData, executiveData ExecutiveReportData, ...) error
- func (rg *ReportGenerator) GenerateComplianceReport(data ComplianceReportData, filename string) error
- func (rg *ReportGenerator) GenerateExecutiveReport(data ExecutiveReportData, filename string) error
- func (rg *ReportGenerator) GenerateReportByType(reportType ReportType, data interface{}, filename string) error
- func (rg *ReportGenerator) GenerateTechnicalReport(data TechnicalReportData, filename string) error
- func (rg *ReportGenerator) GetAvailableTemplates() ([]string, error)
- func (rg *ReportGenerator) GetReportPath(filename string) string
- func (rg *ReportGenerator) GetReportStats() (map[string]interface{}, error)
- func (rg *ReportGenerator) SetPDFOptions(options PDFOptions)
- func (rg *ReportGenerator) ValidateReportData(data ReportData) error
- type ReportRequest
- type ReportType
- type RepositoryAnalysis
- type Result
- type ResultProperties
- type RiskItem
- type Rule
- type RuleProperties
- type Run
- type SARIF
- type SARIFFormatter
- type SPDXDocument
- type SPDXFormatter
- type SPDXPackage
- type ScanContext
- type ScanEvent
- type ScanOverview
- type SecurityControl
- type SystemConfig
- type TechnicalReportData
- type Tool
- type VulnerabilityDetail
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 ¶
ArtifactLocation represents the location of an artifact
type AuditEntry ¶
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 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 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 ¶
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)
HeaderTemplate string `json:"header_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 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 RemediationStep ¶
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 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 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 ScanOverview ¶
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 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"`
}