report

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: May 10, 2026 License: Apache-2.0 Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MCPTrustTrusted     = "trusted"
	MCPTrustBlocked     = "blocked"
	MCPTrustUnreviewed  = "unreviewed"
	MCPTrustUnavailable = "unavailable"
)
View Source
const (
	SectionHeadline    = "headline_posture"
	SectionMethodology = "methodology"
	SectionTopRisks    = "top_prioritized_risks"
	SectionChanges     = "change_since_previous"
	SectionLifecycle   = "lifecycle_actions"
	SectionProof       = "proof_verification_footer"
	SectionNextAction  = "next_actions"
)
View Source
const AgentActionBOMSchemaVersion = "v1"
View Source
const SummaryVersion = "v1"

Variables

This section is empty.

Functions

func IsComplianceSummaryError added in v1.0.8

func IsComplianceSummaryError(err error) bool

func MCPVisibilityWarnings added in v1.0.8

func MCPVisibilityWarnings(findings []source.Finding) []string

func MarkdownLines

func MarkdownLines(markdown string) []string

func PublicSanitizeFindings

func PublicSanitizeFindings(in []risk.ScoredFinding) []risk.ScoredFinding

func RenderBacklogCSV added in v1.2.0

func RenderBacklogCSV(backlog *controlbacklog.Backlog) ([]byte, error)

func RenderCampaignPublicMarkdown added in v1.0.2

func RenderCampaignPublicMarkdown(artifact CampaignArtifact) string

func RenderEvidenceBundleJSON added in v1.2.0

func RenderEvidenceBundleJSON(summary Summary) ([]byte, error)

func RenderMarkdown

func RenderMarkdown(summary Summary) string

func ResolveGeneratedAtForCLI added in v1.0.8

func ResolveGeneratedAtForCLI(snapshot state.Snapshot, generatedAt time.Time) time.Time

func SelectTopFindings

func SelectTopFindings(report risk.Report, requested int) []risk.ScoredFinding

Types

type ActivationItem added in v1.0.9

type ActivationItem struct {
	Rank                     int     `json:"rank"`
	RiskScore                float64 `json:"risk_score"`
	FindingType              string  `json:"finding_type"`
	ToolType                 string  `json:"tool_type"`
	Severity                 string  `json:"severity"`
	Location                 string  `json:"location"`
	Repo                     string  `json:"repo"`
	NextStep                 string  `json:"next_step"`
	ItemClass                string  `json:"item_class,omitempty"`
	WriteCapable             bool    `json:"write_capable,omitempty"`
	ProductionWrite          bool    `json:"production_write,omitempty"`
	ApprovalClassification   string  `json:"approval_classification,omitempty"`
	SecurityVisibilityStatus string  `json:"security_visibility_status,omitempty"`
}

type ActivationSummary added in v1.0.9

type ActivationSummary struct {
	TargetMode            string           `json:"target_mode"`
	Message               string           `json:"message"`
	EligibleCount         int              `json:"eligible_count"`
	SuppressedPolicyItems bool             `json:"suppressed_policy_items,omitempty"`
	Reason                string           `json:"reason,omitempty"`
	Items                 []ActivationItem `json:"items"`
}

func BuildActivation added in v1.0.9

func BuildActivation(targetMode string, ranked []risk.ScoredFinding, inventory *agginventory.Inventory, actionPaths []risk.ActionPath, limit int) *ActivationSummary

BuildActivation projects a first-value view for local-machine scans without mutating raw risk ranking.

type AgentActionBOM added in v1.3.0

type AgentActionBOM struct {
	BOMID                string                  `json:"bom_id"`
	SchemaVersion        string                  `json:"schema_version"`
	GeneratedAt          string                  `json:"generated_at"`
	ShareProfile         string                  `json:"share_profile,omitempty"`
	ShareProfileMetadata *ShareProfileMetadata   `json:"share_profile_metadata,omitempty"`
	Summary              AgentActionBOMSummary   `json:"summary"`
	ScanQuality          *scanquality.Report     `json:"scan_quality,omitempty"`
	Items                []AgentActionBOMItem    `json:"items,omitempty"`
	GraphRefs            AgentActionBOMGraphRefs `json:"graph_refs,omitempty"`
	EvidenceRefs         []string                `json:"evidence_refs,omitempty"`
	ProofRefs            []string                `json:"proof_refs,omitempty"`
}

func BuildAgentActionBOM added in v1.3.0

func BuildAgentActionBOM(summary Summary) *AgentActionBOM

type AgentActionBOMGraphRefs added in v1.3.0

type AgentActionBOMGraphRefs struct {
	NodeIDs []string `json:"node_ids,omitempty"`
	EdgeIDs []string `json:"edge_ids,omitempty"`
}

type AgentActionBOMItem added in v1.3.0

type AgentActionBOMItem struct {
	PathID                   string                               `json:"path_id"`
	AgentID                  string                               `json:"agent_id,omitempty"`
	ToolFamilyID             string                               `json:"tool_family_id,omitempty"`
	ToolInstanceID           string                               `json:"tool_instance_id,omitempty"`
	Org                      string                               `json:"org"`
	Repo                     string                               `json:"repo"`
	ToolType                 string                               `json:"tool_type"`
	Location                 string                               `json:"location,omitempty"`
	Owner                    string                               `json:"owner,omitempty"`
	OwnerSource              string                               `json:"owner_source,omitempty"`
	OwnershipStatus          string                               `json:"ownership_status,omitempty"`
	OwnershipState           string                               `json:"ownership_state,omitempty"`
	CredentialAccess         bool                                 `json:"credential_access"`
	Credentials              []*agginventory.CredentialProvenance `json:"credentials,omitempty"`
	CredentialProvenance     *agginventory.CredentialProvenance   `json:"credential_provenance,omitempty"`
	PathContext              *agginventory.PathContext            `json:"path_context,omitempty"`
	StandingPrivilege        bool                                 `json:"standing_privilege,omitempty"`
	StandingPrivilegeReasons []string                             `json:"standing_privilege_reasons,omitempty"`
	ControlState             string                               `json:"control_state,omitempty"`
	ControlStateReasons      []string                             `json:"control_state_reasons,omitempty"`
	RiskZone                 string                               `json:"risk_zone,omitempty"`
	RiskZoneReasons          []string                             `json:"risk_zone_reasons,omitempty"`
	ReviewBurden             string                               `json:"review_burden,omitempty"`
	ReviewBurdenReasons      []string                             `json:"review_burden_reasons,omitempty"`
	ActionClasses            []string                             `json:"action_classes,omitempty"`
	ActionReasons            []string                             `json:"action_reasons,omitempty"`
	ProductionWrite          bool                                 `json:"production_write,omitempty"`
	ProductionTargetStatus   string                               `json:"production_target_status,omitempty"`
	MatchedProductionTargets []string                             `json:"matched_production_targets,omitempty"`
	ApprovalGap              bool                                 `json:"approval_gap"`
	ApprovalGapReasons       []string                             `json:"approval_gap_reasons,omitempty"`
	PolicyStatus             string                               `json:"policy_status,omitempty"`
	PolicyRefs               []string                             `json:"policy_refs,omitempty"`
	PolicyMissingReasons     []string                             `json:"policy_missing_reasons,omitempty"`
	PolicyStatusReasons      []string                             `json:"policy_status_reasons,omitempty"`
	PolicyConfidence         string                               `json:"policy_confidence,omitempty"`
	PolicyEvidenceRefs       []string                             `json:"policy_evidence_refs,omitempty"`
	ProofCoverage            string                               `json:"proof_coverage,omitempty"`
	ProofRefs                []string                             `json:"proof_refs,omitempty"`
	RuntimeEvidenceStatus    string                               `json:"runtime_evidence_status,omitempty"`
	RuntimeEvidenceClasses   []string                             `json:"runtime_evidence_classes,omitempty"`
	RuntimeEvidenceRefs      []string                             `json:"runtime_evidence_refs,omitempty"`
	GaitCoverage             *risk.GaitCoverage                   `json:"gait_coverage,omitempty"`
	Confidence               string                               `json:"confidence,omitempty"`
	EvidenceStrength         string                               `json:"evidence_strength,omitempty"`
	InventoryRisk            string                               `json:"inventory_risk,omitempty"`
	ControlPriority          string                               `json:"control_priority,omitempty"`
	RiskTier                 string                               `json:"risk_tier,omitempty"`
	RecommendedNextAction    string                               `json:"recommended_next_action,omitempty"`
	Queue                    string                               `json:"queue,omitempty"`
	FindingVisibility        string                               `json:"finding_visibility,omitempty"`
	Remediation              string                               `json:"remediation,omitempty"`
	AttackPathRefs           []string                             `json:"attack_path_refs,omitempty"`
	SourceFindingKeys        []string                             `json:"source_finding_keys,omitempty"`
	ExclusionReason          string                               `json:"exclusion_reason,omitempty"`
	GraphRefs                AgentActionBOMGraphRefs              `json:"graph_refs,omitempty"`
	EvidenceRefs             []string                             `json:"evidence_refs,omitempty"`
	Reachability             []AgentActionBOMReachability         `json:"reachability,omitempty"`
	ReachableServers         []AgentActionBOMReachability         `json:"reachable_servers,omitempty"`
	ReachableTools           []AgentActionBOMReachability         `json:"reachable_tools,omitempty"`
	ReachableEndpoints       []AgentActionBOMReachability         `json:"reachable_endpoints,omitempty"`
	ReachableTargets         []AgentActionBOMReachability         `json:"reachable_targets,omitempty"`
	ReachableAPIs            []AgentActionBOMReachability         `json:"reachable_apis,omitempty"`
	ReachableAgents          []AgentActionBOMReachability         `json:"reachable_agents,omitempty"`
	IntroducedBy             *attribution.Result                  `json:"introduced_by,omitempty"`
}

type AgentActionBOMReachability added in v1.3.0

type AgentActionBOMReachability struct {
	Surface      string                   `json:"surface"`
	Name         string                   `json:"name,omitempty"`
	Capabilities []string                 `json:"capabilities,omitempty"`
	TrustDepth   *agginventory.TrustDepth `json:"trust_depth,omitempty"`
	EvidenceRefs []string                 `json:"evidence_refs,omitempty"`
}

type AgentActionBOMSummary added in v1.3.0

type AgentActionBOMSummary struct {
	TotalItems             int                     `json:"total_items"`
	ControlFirstItems      int                     `json:"control_first_items"`
	StandingPrivilegeItems int                     `json:"standing_privilege_items"`
	StaticCredentialItems  int                     `json:"static_credential_items"`
	ProductionTargetItems  int                     `json:"production_target_items"`
	MissingApprovalItems   int                     `json:"missing_approval_items"`
	MissingPolicyItems     int                     `json:"missing_policy_items"`
	MissingProofItems      int                     `json:"missing_proof_items"`
	RuntimeProvenItems     int                     `json:"runtime_proven_items"`
	UnresolvedOwnerItems   int                     `json:"unresolved_owner_items"`
	ScanScope              *ScanScopeSummary       `json:"scan_scope,omitempty"`
	SourcePrivacy          *sourceprivacy.Contract `json:"source_privacy,omitempty"`
	OperationalExposure    *scorecore.AxisSummary  `json:"operational_exposure,omitempty"`
	GovernanceReadiness    *scorecore.AxisSummary  `json:"governance_readiness,omitempty"`
	CoverageConfidence     string                  `json:"coverage_confidence,omitempty"`
}

type AssessmentSummary added in v1.1.0

type AssessmentSummary struct {
	GovernablePathCount        int                           `json:"governable_path_count"`
	WriteCapablePathCount      int                           `json:"write_capable_path_count"`
	ProductionBackedPathCount  int                           `json:"production_target_backed_path_count"`
	TopPathToControlFirst      *risk.ActionPath              `json:"top_path_to_control_first,omitempty"`
	TopExecutionIdentityBacked *risk.ActionPath              `json:"top_execution_identity_backed_path,omitempty"`
	OwnerlessExposure          *risk.OwnerlessExposure       `json:"ownerless_exposure,omitempty"`
	IdentityExposureSummary    *risk.IdentityExposureSummary `json:"identity_exposure_summary,omitempty"`
	IdentityToReviewFirst      *risk.IdentityActionTarget    `json:"identity_to_review_first,omitempty"`
	IdentityToRevokeFirst      *risk.IdentityActionTarget    `json:"identity_to_revoke_first,omitempty"`
	ProofChainPath             string                        `json:"proof_chain_path,omitempty"`
}

type AttackPathSummary added in v1.0.5

type AttackPathSummary struct {
	Total      int      `json:"total"`
	TopPathIDs []string `json:"top_path_ids"`
}

type BuildInput

type BuildInput struct {
	GeneratedAt      time.Time
	StatePath        string
	Snapshot         state.Snapshot
	PreviousSnapshot *state.Snapshot
	Baseline         *regress.Baseline
	RegressResult    *regress.Result
	Manifest         *manifest.Manifest
	Top              int
	Template         Template
	ShareProfile     ShareProfile
}

type CampaignArtifact added in v1.0.2

type CampaignArtifact struct {
	SchemaVersion string               `json:"schema_version"`
	GeneratedAt   string               `json:"generated_at"`
	InputGlob     string               `json:"input_glob,omitempty"`
	Methodology   CampaignMethodology  `json:"methodology"`
	Metrics       CampaignMetrics      `json:"metrics"`
	Segments      CampaignSegments     `json:"segments"`
	Scans         []CampaignScanResult `json:"scans"`
}

func AggregateCampaign added in v1.0.2

func AggregateCampaign(inputs []CampaignScanInput, generatedAt time.Time) CampaignArtifact

func AggregateCampaignWithOptions added in v1.0.2

func AggregateCampaignWithOptions(inputs []CampaignScanInput, generatedAt time.Time, opts CampaignOptions) CampaignArtifact

type CampaignDetector added in v1.0.2

type CampaignDetector struct {
	ID           string `json:"id"`
	Version      string `json:"version"`
	FindingCount int    `json:"finding_count"`
}

type CampaignMethodology added in v1.0.2

type CampaignMethodology struct {
	WrkrVersion        string             `json:"wrkr_version"`
	ScanCount          int                `json:"scan_count"`
	RepoCount          int                `json:"repo_count"`
	FileCountProcessed int                `json:"file_count_processed"`
	Detectors          []CampaignDetector `json:"detectors"`
}

type CampaignMetrics added in v1.0.2

type CampaignMetrics struct {
	ReposScanned                        int      `json:"repos_scanned"`
	ToolsDetectedTotal                  int      `json:"tools_detected_total"`
	WriteCapableTools                   int      `json:"write_capable_tools"`
	CredentialAccessTools               int      `json:"credential_access_tools"`
	ExecCapableTools                    int      `json:"exec_capable_tools"`
	ApprovedTools                       int      `json:"approved_tools"`
	UnapprovedTools                     int      `json:"unapproved_tools"`
	UnknownTools                        int      `json:"unknown_tools"`
	UnknownToSecurityTools              int      `json:"unknown_to_security_tools"`
	UnknownToSecurityAgents             int      `json:"unknown_to_security_agents"`
	UnknownToSecurityWriteCapableAgents int      `json:"unknown_to_security_write_capable_agents"`
	SecurityVisibilityReference         string   `json:"security_visibility_reference"`
	ApprovedPercent                     float64  `json:"approved_percent"`
	UnapprovedPercent                   float64  `json:"unapproved_percent"`
	UnknownPercent                      float64  `json:"unknown_percent"`
	UnapprovedPerApproved               *float64 `json:"unapproved_per_approved"`
	ProductionWriteStatus               string   `json:"production_write_status"`
	ProductionWriteTools                *int     `json:"production_write_tools"`
}

type CampaignOptions added in v1.0.2

type CampaignOptions struct {
	SegmentMetadata map[string]SegmentMetadata
}

type CampaignScanInput added in v1.0.2

type CampaignScanInput struct {
	Path            string
	Target          source.Target
	SourceManifest  source.Manifest
	Inventory       *agginventory.Inventory
	PrivilegeBudget agginventory.PrivilegeBudget
	Findings        []source.Finding
}

type CampaignScanResult added in v1.0.2

type CampaignScanResult struct {
	Path                 string `json:"path"`
	TargetMode           string `json:"target_mode"`
	TargetValue          string `json:"target_value"`
	RepoCount            int    `json:"repo_count"`
	ToolsDetected        int    `json:"tools_detected"`
	WriteCapableTools    int    `json:"write_capable_tools"`
	CredentialAccessTool int    `json:"credential_access_tools"`
	ExecCapableTools     int    `json:"exec_capable_tools"`
}

type CampaignSegmentBucket added in v1.0.2

type CampaignSegmentBucket struct {
	Segment   string `json:"segment"`
	OrgCount  int    `json:"org_count"`
	ToolCount int    `json:"tool_count"`
}

type CampaignSegments added in v1.0.2

type CampaignSegments struct {
	OrgSizeBands  []CampaignSegmentBucket `json:"org_size_bands"`
	IndustryBands []CampaignSegmentBucket `json:"industry_bands"`
}

type ChecklistItem

type ChecklistItem struct {
	ID   string `json:"id"`
	Text string `json:"text"`
}

type ControlProofStatus added in v1.3.0

type ControlProofStatus struct {
	LinkedActionPathID string   `json:"linked_action_path_id,omitempty"`
	Repo               string   `json:"repo,omitempty"`
	Path               string   `json:"path,omitempty"`
	ControlID          string   `json:"control_id"`
	BacklogItemID      string   `json:"backlog_item_id"`
	AgentID            string   `json:"agent_id,omitempty"`
	Status             string   `json:"status"`
	ExistingProof      []string `json:"existing_proof,omitempty"`
	MissingProof       []string `json:"missing_proof,omitempty"`
	RecordIDs          []string `json:"record_ids,omitempty"`
}

func BuildControlProofStatus added in v1.3.0

func BuildControlProofStatus(snapshot state.Snapshot, chain *proof.Chain) []ControlProofStatus

type DeltaMetric

type DeltaMetric struct {
	Current     float64 `json:"current"`
	Previous    float64 `json:"previous"`
	Delta       float64 `json:"delta"`
	HasPrevious bool    `json:"has_previous"`
}

type DeltaSummary

type DeltaSummary struct {
	RiskScoreTrend         DeltaMetric `json:"risk_score_trend"`
	ProfileComplianceDelta DeltaMetric `json:"profile_compliance_delta"`
	PostureScoreTrend      DeltaMetric `json:"posture_score_trend_delta"`
}

type EvidenceBundle added in v1.2.0

type EvidenceBundle struct {
	ReportBundleVersion  string                      `json:"report_bundle_version"`
	GeneratedAt          string                      `json:"generated_at"`
	Template             string                      `json:"template"`
	ShareProfile         string                      `json:"share_profile"`
	ShareProfileMetadata *ShareProfileMetadata       `json:"share_profile_metadata,omitempty"`
	ControlBacklog       *controlbacklog.Backlog     `json:"control_backlog,omitempty"`
	ControlPathGraph     *aggattack.ControlPathGraph `json:"control_path_graph,omitempty"`
	RuntimeEvidence      *ingest.Summary             `json:"runtime_evidence,omitempty"`
	AgentActionBOM       *AgentActionBOM             `json:"agent_action_bom,omitempty"`
	ComplianceSummary    any                         `json:"compliance_summary"`
	Proof                ProofReference              `json:"proof"`
	NextActions          []ChecklistItem             `json:"next_actions"`
}

func BuildEvidenceBundle added in v1.2.0

func BuildEvidenceBundle(summary Summary) EvidenceBundle

type Headline

type Headline struct {
	Score            float64 `json:"score"`
	Grade            string  `json:"grade"`
	ComplianceStatus string  `json:"compliance_status"`
	Compliance       float64 `json:"compliance_percent"`
}

type LifecycleSummary

type LifecycleSummary struct {
	IdentityCount      int                   `json:"identity_count"`
	UnderReviewCount   int                   `json:"under_review_count"`
	RevokedCount       int                   `json:"revoked_count"`
	DeprecatedCount    int                   `json:"deprecated_count"`
	PendingActionCount int                   `json:"pending_action_count"`
	Gaps               []lifecycle.Gap       `json:"gaps,omitempty"`
	RecentTransitions  []LifecycleTransition `json:"recent_transitions"`
}

type LifecycleTransition

type LifecycleTransition struct {
	AgentID       string `json:"agent_id"`
	PreviousState string `json:"previous_state"`
	NewState      string `json:"new_state"`
	Trigger       string `json:"trigger"`
	Timestamp     string `json:"timestamp"`
}

type MCPCandidate added in v1.4.0

type MCPCandidate struct {
	CandidateName     string   `json:"candidate_name"`
	Org               string   `json:"org"`
	Repo              string   `json:"repo"`
	Location          string   `json:"location"`
	EvidenceType      string   `json:"evidence_type"`
	Confidence        string   `json:"confidence"`
	DeclarationType   string   `json:"declaration_type"`
	TransportHint     string   `json:"transport_hint"`
	CredentialRefs    []string `json:"credential_refs,omitempty"`
	UnsupportedReason string   `json:"unsupported_reason,omitempty"`
}

type MCPList added in v1.0.8

type MCPList struct {
	Status      string              `json:"status"`
	GeneratedAt string              `json:"generated_at"`
	RepoFilter  string              `json:"repo_filter,omitempty"`
	Rows        []MCPListRow        `json:"rows"`
	Candidates  []MCPCandidate      `json:"candidates,omitempty"`
	Diagnostics []MCPMissDiagnostic `json:"diagnostics,omitempty"`
	Warnings    []string            `json:"warnings,omitempty"`
}

func BuildMCPList added in v1.0.8

func BuildMCPList(snapshot state.Snapshot, generatedAt time.Time, overlayPath string, allowAmbientOverlay bool) MCPList

func BuildMCPListWithOptions added in v1.4.0

func BuildMCPListWithOptions(snapshot state.Snapshot, opts MCPListOptions) MCPList

type MCPListOptions added in v1.4.0

type MCPListOptions struct {
	GeneratedAt         time.Time
	OverlayPath         string
	AllowAmbientOverlay bool
	RepoFilter          string
	ExpectedServers     []string
}

type MCPListRow added in v1.0.8

type MCPListRow struct {
	ServerName           string                   `json:"server_name"`
	Org                  string                   `json:"org"`
	Repo                 string                   `json:"repo"`
	Location             string                   `json:"location"`
	Transport            string                   `json:"transport"`
	RequestedPermissions []string                 `json:"requested_permissions,omitempty"`
	PrivilegeSurface     []string                 `json:"privilege_surface,omitempty"`
	GatewayCoverage      string                   `json:"gateway_coverage"`
	TrustDepth           *agginventory.TrustDepth `json:"trust_depth,omitempty"`
	TrustStatus          string                   `json:"trust_status"`
	RiskNote             string                   `json:"risk_note"`
}

type MCPMissDiagnostic added in v1.4.0

type MCPMissDiagnostic struct {
	Org                     string   `json:"org"`
	Repo                    string   `json:"repo"`
	ExpectedServer          string   `json:"expected_server,omitempty"`
	Status                  string   `json:"status"`
	CandidateFilesScanned   []string `json:"candidate_files_scanned,omitempty"`
	ParsedConfigs           []string `json:"parsed_configs,omitempty"`
	CandidatesFound         []string `json:"candidates_found,omitempty"`
	ParseFailures           []string `json:"parse_failures,omitempty"`
	GeneratedSuppressions   []string `json:"generated_suppressions,omitempty"`
	UnsupportedDeclarations []string `json:"unsupported_declarations,omitempty"`
	Explanation             []string `json:"explanation,omitempty"`
}

type Methodology added in v1.0.2

type Methodology struct {
	WrkrVersion         string   `json:"wrkr_version"`
	ScanStartedAt       string   `json:"scan_started_at"`
	ScanCompletedAt     string   `json:"scan_completed_at"`
	ScanDurationSeconds float64  `json:"scan_duration_seconds"`
	RepoCount           int      `json:"repo_count"`
	FileCountProcessed  int      `json:"file_count_processed"`
	DetectorCount       int      `json:"detector_count"`
	CommandSet          []string `json:"command_set"`
	SampleDefinition    string   `json:"sample_definition"`
	ExclusionCriteria   []string `json:"exclusion_criteria"`
}

type ProofReference

type ProofReference struct {
	ChainPath            string            `json:"chain_path"`
	HeadHash             string            `json:"head_hash"`
	RecordCount          int               `json:"record_count"`
	RecordTypeCounts     []RecordTypeCount `json:"record_type_counts"`
	CanonicalFindingKeys []string          `json:"canonical_finding_keys"`
}

type ReasonGroup

type ReasonGroup struct {
	Code  string `json:"code"`
	Count int    `json:"count"`
}

type RecordTypeCount

type RecordTypeCount struct {
	RecordType string `json:"record_type"`
	Count      int    `json:"count"`
}

type RegressSummary

type RegressSummary struct {
	BaselineProvided bool          `json:"baseline_provided"`
	DriftDetected    bool          `json:"drift_detected"`
	ReasonCount      int           `json:"reason_count"`
	ReasonGroups     []ReasonGroup `json:"reason_groups"`
}

type RiskItem

type RiskItem struct {
	Rank              int      `json:"rank"`
	CanonicalKey      string   `json:"canonical_key"`
	Score             float64  `json:"risk_score"`
	FindingType       string   `json:"finding_type"`
	Severity          string   `json:"severity"`
	ToolType          string   `json:"tool_type"`
	Org               string   `json:"org"`
	Repo              string   `json:"repo"`
	Location          string   `json:"location"`
	PathID            string   `json:"path_id,omitempty"`
	InventoryRisk     string   `json:"inventory_risk,omitempty"`
	AttackPathScore   float64  `json:"attack_path_score,omitempty"`
	ControlPriority   string   `json:"control_priority,omitempty"`
	RiskTier          string   `json:"risk_tier,omitempty"`
	RecommendedAction string   `json:"recommended_action,omitempty"`
	WriteCapable      bool     `json:"write_capable,omitempty"`
	ProductionWrite   bool     `json:"production_write,omitempty"`
	Rationale         []string `json:"rationale"`
	Remediation       string   `json:"remediation"`
}

type ScanScopeSummary added in v1.4.0

type ScanScopeSummary struct {
	Mode           string `json:"mode"`
	ScopeLabel     string `json:"scope_label"`
	SourceBoundary string `json:"source_boundary"`
	RepoCount      int    `json:"repo_count"`
	TargetCount    int    `json:"target_count"`
}

type Section

type Section struct {
	ID     string         `json:"id"`
	Title  string         `json:"title"`
	Facts  []string       `json:"facts"`
	Impact string         `json:"impact"`
	Action string         `json:"action"`
	Proof  ProofReference `json:"proof"`
}

type SegmentMetadata added in v1.0.2

type SegmentMetadata struct {
	Industry string
	SizeBand string
}

type ShareProfile

type ShareProfile string
const (
	ShareProfileInternal         ShareProfile = "internal"
	ShareProfilePublic           ShareProfile = "public"
	ShareProfileCustomerRedacted ShareProfile = "customer-redacted"
)

func ParseShareProfile

func ParseShareProfile(raw string) (ShareProfile, bool)

type ShareProfileMetadata added in v1.4.0

type ShareProfileMetadata struct {
	RedactionApplied bool     `json:"redaction_applied"`
	RedactionVersion string   `json:"redaction_version,omitempty"`
	PolicySummary    []string `json:"policy_summary,omitempty"`
}

type Summary

type Summary struct {
	SummaryVersion           string                                 `json:"summary_version"`
	GeneratedAt              string                                 `json:"generated_at"`
	Template                 string                                 `json:"template"`
	ShareProfile             string                                 `json:"share_profile"`
	ShareProfileMetadata     *ShareProfileMetadata                  `json:"share_profile_metadata,omitempty"`
	SectionOrder             []string                               `json:"section_order"`
	Sections                 []Section                              `json:"sections"`
	Headline                 Headline                               `json:"headline"`
	ScanScope                *ScanScopeSummary                      `json:"scan_scope,omitempty"`
	OperationalExposure      *scorecore.AxisSummary                 `json:"operational_exposure,omitempty"`
	GovernanceReadiness      *scorecore.AxisSummary                 `json:"governance_readiness,omitempty"`
	AssessmentSummary        *AssessmentSummary                     `json:"assessment_summary,omitempty"`
	Methodology              Methodology                            `json:"methodology"`
	TopRisks                 []RiskItem                             `json:"top_risks"`
	PrivilegeBudget          agginventory.PrivilegeBudget           `json:"privilege_budget"`
	SecurityVisibility       agginventory.SecurityVisibilitySummary `json:"security_visibility"`
	Deltas                   DeltaSummary                           `json:"deltas"`
	Lifecycle                LifecycleSummary                       `json:"lifecycle"`
	RegressDrift             *RegressSummary                        `json:"regress_drift,omitempty"`
	AttackPaths              AttackPathSummary                      `json:"attack_paths"`
	ComplianceSummary        compliance.RollupSummary               `json:"compliance_summary"`
	ControlBacklog           *controlbacklog.Backlog                `json:"control_backlog,omitempty"`
	ScanQuality              *scanquality.Report                    `json:"scan_quality,omitempty"`
	RuntimeEvidence          *ingest.Summary                        `json:"runtime_evidence,omitempty"`
	AgentActionBOM           *AgentActionBOM                        `json:"agent_action_bom,omitempty"`
	Proof                    ProofReference                         `json:"proof"`
	NextActions              []ChecklistItem                        `json:"next_actions"`
	Activation               *ActivationSummary                     `json:"activation,omitempty"`
	ActionPaths              []risk.ActionPath                      `json:"action_paths,omitempty"`
	ActionPathToControlFirst *risk.ActionPathToControlFirst         `json:"action_path_to_control_first,omitempty"`
	ControlPathGraph         *aggattack.ControlPathGraph            `json:"control_path_graph,omitempty"`
	ExposureGroups           []risk.ExposureGroup                   `json:"exposure_groups,omitempty"`
	SourcePrivacy            *sourceprivacy.Contract                `json:"source_privacy,omitempty"`
	// contains filtered or unexported fields
}

func BuildSummary

func BuildSummary(in BuildInput) (Summary, error)

BuildSummary composes deterministic report sections from scan, risk, score, lifecycle, regress, and proof data. Non-goal guardrail: this path must remain deterministic and non-generative.

type Template

type Template string
const (
	TemplateExec           Template = "exec"
	TemplateOperator       Template = "operator"
	TemplateAudit          Template = "audit"
	TemplatePublic         Template = "public"
	TemplateCISO           Template = "ciso"
	TemplateAppSec         Template = "appsec"
	TemplatePlatform       Template = "platform"
	TemplateCustomerDraft  Template = "customer-draft"
	TemplateAgentActionBOM Template = "agent-action-bom"
)

func ParseTemplate

func ParseTemplate(raw string) (Template, bool)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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