Documentation
¶
Index ¶
- Constants
- type Audit
- type AuditFile
- type AuditSet
- type Evidence
- type Finding
- func (f *Finding) AddEvidence(ev Evidence)
- func (f *Finding) EvidenceForProfile(profile string) []Evidence
- func (f *Finding) HasEvidence() bool
- func (f *Finding) IsActive() bool
- func (f *Finding) IsResolved() bool
- func (f *Finding) IsResolvedForProfile(profile string) bool
- func (f *Finding) IsTerminal() bool
- func (f *Finding) IsTerminalForProfile(profile string) bool
- func (f *Finding) MatchesReq(fwID, reqID string) bool
- func (f *Finding) SeverityForProfile(profile string) string
- func (f *Finding) StatusForProfile(profile string) string
- type FindingRef
- type IssueRef
- type LoadedFile
- type ProfileOverride
Constants ¶
const ( StatusOpen = "open" StatusInProgress = "in_progress" StatusResolved = "resolved" StatusAccepted = "accepted" // risk accepted, will not fix )
Finding status constants.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuditSet ¶
type AuditSet struct {
Files []LoadedFile
FindingsByID map[string]*FindingRef
FindingsByControl map[string][]*FindingRef
}
type Finding ¶
type Finding struct {
ID string `yaml:"id"`
Title string `yaml:"title"`
Severity string `yaml:"severity"`
Status string `yaml:"status"`
Owner string `yaml:"owner"`
Controls []string `yaml:"controls"`
Description string `yaml:"description"`
EUDIReqs []string `yaml:"eudi_reqs,omitempty"`
AnnexA []string `yaml:"annex_a,omitempty"`
GDPRItems []string `yaml:"gdpr_items,omitempty"`
ASVSSections []string `yaml:"asvs_sections,omitempty"`
FrameworkRefs map[string][]string `yaml:"framework_refs,omitempty"` // framework ID -> requirement IDs (generic)
TrackingIssue *IssueRef `yaml:"tracking_issue,omitempty"`
Issues []IssueRef `yaml:"issues,omitempty"`
PullRequests []IssueRef `yaml:"pull_requests,omitempty"`
Evidence []Evidence `yaml:"evidence,omitempty"`
ResolvedDate string `yaml:"resolved_date,omitempty"`
Profiles map[string]ProfileOverride `yaml:"profiles,omitempty"`
}
func (*Finding) AddEvidence ¶
func (*Finding) EvidenceForProfile ¶ added in v0.11.0
EvidenceForProfile returns the combined evidence for the given profile: the base evidence plus any profile-specific evidence.
func (*Finding) HasEvidence ¶
func (*Finding) IsActive ¶ added in v0.3.1
IsActive reports whether the finding is actively being worked on.
func (*Finding) IsResolved ¶
func (*Finding) IsResolvedForProfile ¶ added in v0.11.0
IsResolvedForProfile reports whether the finding is resolved in the given profile.
func (*Finding) IsTerminal ¶ added in v0.3.1
IsTerminal reports whether the finding status represents a final state.
func (*Finding) IsTerminalForProfile ¶ added in v0.11.0
IsTerminalForProfile reports whether the finding is in a terminal state for the profile.
func (*Finding) MatchesReq ¶ added in v0.4.0
MatchesReq reports whether the finding references the given requirement in the specified framework. Checks both the generic FrameworkRefs map and the legacy per-framework fields for backward compatibility.
func (*Finding) SeverityForProfile ¶ added in v0.11.0
SeverityForProfile returns the effective severity for the given profile.
func (*Finding) StatusForProfile ¶ added in v0.11.0
StatusForProfile returns the effective status for the given profile. An empty profile name returns the default (top-level) status.
type FindingRef ¶
type FindingRef struct {
File *LoadedFile
Index int
Finding *Finding
}
type LoadedFile ¶
func (*LoadedFile) Save ¶
func (lf *LoadedFile) Save() error
type ProfileOverride ¶ added in v0.11.0
type ProfileOverride struct {
Status string `yaml:"status,omitempty"`
Severity string `yaml:"severity,omitempty"`
Evidence []Evidence `yaml:"evidence,omitempty"`
ResolvedDate string `yaml:"resolved_date,omitempty"`
}
ProfileOverride holds per-profile status and evidence overrides for a finding.