Versions in this module Expand all Collapse all v0 v0.6.0 Oct 30, 2026 Changes in this version + const RankBlocked + const RankNoStage + const RankPassing + const RankSecretLeak + const RankUndetermined + const RankWarning + const StackScanNotScanned + const StackScanPending + const StackScanScanned + var SecurityStages = []SecurityStage + func IsProblemRank(rank int) bool + func RankOf(cells map[SecurityStage]SecurityCell) int + func SortAppPostures(ps []AppSecurityPosture) + func SortStackPostures(ps []StackSecurityPosture) + func SummarizeApps(ps []AppSecurityPosture) (AppSecuritySummary, StageCoverage) + type AlertFilter struct + func DefaultAlertFilter() AlertFilter + func (f AlertFilter) Accept(a SourceAlert) bool + type AppRun struct + DeploymentID string + StartedAt time.Time + Status string + Version string + type AppSecurityGroup struct + Apps int + Blocked int + ClusterID string + ClusterName string + Critical int + Problems int + Secrets int + StackID string + StackName string + Undetermined int + func GroupAppsByStack(ps []AppSecurityPosture, stacks map[string]SecurityStackRef, ...) []AppSecurityGroup + type AppSecurityPosture struct + App AppSecurityRecord + Cells map[SecurityStage]SecurityCell + Critical int + Rank int + func EvaluateApp(app AppSecurityRecord, now time.Time) AppSecurityPosture + type AppSecurityRecord struct + ClusterID string + HasStage map[SecurityStage]bool + LatestRun *AppRun + Name string + PipelineID string + Records map[SecurityStage]*ScanRecord + SecretPolicyOff bool + StackID string + StagesKnown bool + type AppSecuritySummary struct + Apps int + Blocked int + Critical int + Secrets int + Undetermined int + WithSecurityStage int + type CellState string + const CellBlock + const CellError + const CellNotApplied + const CellPass + const CellUnrecorded + const CellWarn + type ImageGrade string + const GradeA + const GradeB + const GradeC + const GradeNone + func GradeImage(img StackImage) ImageGrade + type MonitoredStack struct + ClusterID string + ID string + Name string + Namespace string + OrgID string + type ScanRecord struct + At time.Time + Counts *shareddomain.SeverityCounts + DBUpdatedAt *time.Time + DeploymentID string + FailedConditions []string + Findings *int + Gate string + Image string + Link string + Rules []SecretRule + SecurityHotspots *int + Targets *int + Version string + Vulnerabilities *int + type SecretRule struct + Count int + RuleID string + type SecurityCell struct + DBStale *bool + Record *ScanRecord + StaleRun bool + State CellState + func CellFor(app AppSecurityRecord, stage SecurityStage, now time.Time) SecurityCell + type SecurityStackRef struct + ClusterID string + ID string + Name string + type SecurityStage string + const StageDependencyScan + const StageImageScan + const StageSAST + const StageSecretScan + type SourceAlert struct + Annotations map[string]string + Fingerprint string + Labels map[string]string + StartsAt time.Time + Suppressed bool + type StackAlert struct + AlertName string + Description string + Fingerprint string + ID string + Labels map[string]string + LastNotifiedAt *time.Time + LastSeenAt time.Time + OrgID string + ResolvedAt *time.Time + RunbookURL string + Severity string + StackID string + StackName string + StartedAt time.Time + Summary string + func NewStackAlert(stack MonitoredStack, a SourceAlert, now time.Time) *StackAlert + func (a *StackAlert) FiredEvent(repeat bool) sharednotify.Event + func (a *StackAlert) Resolve(at time.Time) bool + func (a *StackAlert) ResolvedEvent() sharednotify.Event + func (a *StackAlert) Target() string + type StackImage struct + Counts *shareddomain.SeverityCounts + DBUpdatedAt *time.Time + Exposed bool + Fixable *shareddomain.SeverityCounts + Image string + Scanned bool + Shared bool + type StackImageInput struct + Airgap bool + ClusterID string + Images []StackImage + Reason string + ScannedAt *time.Time + StackID string + StackName string + State string + type StackSecurityPosture struct + Airgap bool + ClusterID string + ClusterName string + DBStale *bool + DBUpdatedAt *time.Time + FailedImages *int + Fixable *shareddomain.SeverityCounts + GradeA *int + GradeB *int + GradeC *int + Images *int + Reason string + ScannedAt *time.Time + SharedImages *int + StackID string + StackName string + State string + WorstImage *WorstImage + func EvaluateStack(in StackImageInput, now time.Time) StackSecurityPosture + type StackSecuritySummary struct + ActionImages int + GradeAImages int + GradeBImages int + NotScannedStacks int + ScannedStacks int + Stacks int + func SummarizeStacks(ps []StackSecurityPosture) StackSecuritySummary + type StageCoverage struct + DependencyScan int + ImageScan int + SAST int + SecretScan int + type WorstImage struct + Critical int + Exposed bool + High int + Image string v0.5.0 Aug 31, 2026 Changes in this version + var ErrAlertNotFound = fmt.Errorf("alert not found") + var ErrAlertRuleNotFound = fmt.Errorf("alert rule not found") + type Alert struct + FiredAt time.Time + ID string + Message string + ResolvedAt *time.Time + RuleID string + Severity AlertSeverity + type AlertChannel string + const AlertChannelEmail + const AlertChannelSlack + type AlertRule struct + Channel AlertChannel + Condition string + CriticalThreshold float64 + Enabled bool + ID string + MetricName string + Name string + Threshold float64 + WarningThreshold float64 + type AlertSeverity string + const AlertSeverityCritical + const AlertSeverityInfo + const AlertSeverityWarning + type ClusterMetrics struct + CPUUsage float64 + MemoryUsage float64 + PodCount int + StorageUsage float64 + type Dashboard struct + ClusterMetrics ClusterMetrics + PipelineMetrics PipelineMetrics + ToolHealthList []ToolHealth + type PipelineMetrics struct + AvgBuildTime float64 + SuccessRate float64 + TotalRuns int + type ToolHealth struct + Name string + Status string + Version string v0.4.1 Aug 9, 2026 v0.4.0-alpha Aug 9, 2026 v0.3.0-alpha Jul 27, 2026