Documentation
¶
Index ¶
- Constants
- func AllCapabilityStatuses() []string
- func AllDomains() []string
- func AllFrameworks() []string
- func AllNistCsfFunctions() []string
- func AllPhases() []string
- func AllPriorities() []string
- func AllToolStatuses() []string
- func AllToolTypes() []string
- func ValidateCapabilityStatus(status string) error
- func ValidateDomain(domain string) error
- func ValidateFramework(framework string) error
- func ValidateKebabCase(s string) bool
- func ValidateNistCsfFunction(fn string) error
- func ValidatePhase(phase string) error
- func ValidatePriority(priority string) error
- func ValidateToolStatus(status string) error
- func ValidateToolType(toolType string) error
- type Capability
- type CapabilityStack
- func (cs *CapabilityStack) AllCapabilities() []Capability
- func (cs *CapabilityStack) CapabilitiesByCategory(categoryID string) []Capability
- func (cs *CapabilityStack) CapabilitiesByLayer(layerID string) []Capability
- func (cs *CapabilityStack) CapabilitiesByStatus(status string) []Capability
- func (cs *CapabilityStack) CapabilitiesByTag(tag string) []Capability
- func (cs *CapabilityStack) CapabilityIDs() []string
- func (cs *CapabilityStack) CategoryIDs() []string
- func (cs *CapabilityStack) GetCapabilityByID(id string) *Capability
- func (cs *CapabilityStack) GetCategoryByID(id string) *Category
- func (cs *CapabilityStack) GetLayerByID(id string) *Layer
- func (cs *CapabilityStack) LayerIDs() []string
- func (cs *CapabilityStack) SaveToFile(path string) error
- func (cs *CapabilityStack) Validate() ValidationErrors
- type Category
- type FrameworkMapping
- type Layer
- type LevelCriteria
- type Metadata
- type PRISMIntegration
- type PRISMRef
- type Tool
- type ValidationError
- type ValidationErrors
Constants ¶
const ( StatusPlanned = "planned" StatusInProgress = "in-progress" StatusImplemented = "implemented" StatusOperational = "operational" StatusDeprecated = "deprecated" )
CapabilityStatus constants represent the lifecycle status of a capability.
const ( PriorityCritical = "critical" PriorityHigh = "high" PriorityMedium = "medium" PriorityLow = "low" )
Priority constants represent implementation priority levels.
const ( DomainSecurity = "security" DomainAI = "ai" DomainPlatform = "platform" DomainData = "data" DomainObservability = "observability" DomainInfrastructure = "infrastructure" DomainProduct = "product" DomainOperations = "operations" )
Domain constants represent primary capability stack domains.
const ( PhasePlan = "plan" PhaseDesign = "design" PhaseBuild = "build" PhaseTest = "test" PhaseRelease = "release" PhaseDeploy = "deploy" PhaseOperate = "operate" PhaseMonitor = "monitor" PhaseRespond = "respond" PhaseRecover = "recover" )
Phase constants represent SDLC or lifecycle phases.
const ( NistCsfGovern = "govern" NistCsfIdentify = "identify" NistCsfProtect = "protect" NistCsfDetect = "detect" NistCsfRespond = "respond" NistCsfRecover = "recover" )
NistCsfFunction constants represent NIST CSF 2.0 functions.
const ( ToolTypeCommercial = "commercial" ToolTypeOpenSource = "open-source" ToolTypeInternal = "internal" ToolTypeManagedService = "managed-service" )
ToolType constants represent tool/product types.
const ( ToolStatusEvaluating = "evaluating" ToolStatusPiloting = "piloting" ToolStatusDeployed = "deployed" ToolStatusDeprecated = "deprecated" )
ToolStatus constants represent tool deployment status.
const ( FrameworkNISTCSF2 = "nist-csf-2.0" FrameworkNIST80053 = "nist-800-53" FrameworkISO27001 = "iso-27001" FrameworkSOC2 = "soc2" FrameworkPCIDSS = "pci-dss" FrameworkCIS = "cis" FrameworkMITREATTACK = "mitre-attack" FrameworkOWASP = "owasp" FrameworkSLSA = "slsa" FrameworkSSDF = "ssdf" )
Framework constants represent compliance/security frameworks.
Variables ¶
This section is empty.
Functions ¶
func AllCapabilityStatuses ¶
func AllCapabilityStatuses() []string
AllCapabilityStatuses returns all valid capability status values.
func AllFrameworks ¶
func AllFrameworks() []string
AllFrameworks returns all valid framework values.
func AllNistCsfFunctions ¶
func AllNistCsfFunctions() []string
AllNistCsfFunctions returns all valid NIST CSF function values.
func AllToolStatuses ¶
func AllToolStatuses() []string
AllToolStatuses returns all valid tool status values.
func ValidateCapabilityStatus ¶
ValidateCapabilityStatus validates a capability status value.
func ValidateDomain ¶
ValidateDomain validates a domain value.
func ValidateFramework ¶
ValidateFramework validates a framework value.
func ValidateKebabCase ¶
ValidateKebabCase validates that a string is in kebab-case format.
func ValidateNistCsfFunction ¶
ValidateNistCsfFunction validates a NIST CSF function value.
func ValidatePriority ¶
ValidatePriority validates a priority value.
func ValidateToolStatus ¶
ValidateToolStatus validates a tool status value.
func ValidateToolType ¶
ValidateToolType validates a tool type value.
Types ¶
type Capability ¶
type Capability struct {
// ID is the unique identifier for the capability (kebab-case).
ID string `json:"id"`
// Name is the short display name (for diagram boxes).
Name string `json:"name"`
// FullName is the expanded name (e.g., "Static Application Security Testing" for "SAST").
FullName string `json:"fullName,omitempty"`
// Description explains what this capability provides.
Description string `json:"description,omitempty"`
// LayerID references the layer this capability belongs to.
LayerID string `json:"layerId"`
// CategoryID references the category for visual grouping.
CategoryID string `json:"categoryId,omitempty"`
// Status is the lifecycle status (planned, in-progress, implemented, operational, deprecated).
Status string `json:"status,omitempty"`
// Priority is the implementation priority (critical, high, medium, low).
Priority string `json:"priority,omitempty"`
// TargetDate is when planned capabilities should be implemented (YYYY-MM-DD).
TargetDate string `json:"targetDate,omitempty"`
// ImplementedAt is when the capability was implemented (YYYY-MM-DD).
ImplementedAt string `json:"implementedAt,omitempty"`
// Owner is the team or person responsible for this capability.
Owner string `json:"owner,omitempty"`
// Tooling lists tools/products implementing this capability.
Tooling []Tool `json:"tooling,omitempty"`
// Dependencies lists capability IDs this capability depends on.
Dependencies []string `json:"dependencies,omitempty"`
// Enables lists capability IDs that this capability enables.
Enables []string `json:"enables,omitempty"`
// Tags are for filtering and classification (kebab-case).
Tags []string `json:"tags,omitempty"`
// FrameworkMappings maps to compliance/security framework controls.
FrameworkMappings []FrameworkMapping `json:"frameworkMappings,omitempty"`
// PRISMRef links to PRISM maturity model for this capability.
PRISMRef *PRISMRef `json:"prismRef,omitempty"`
}
Capability represents a single capability in the stack.
func (*Capability) Validate ¶
func (cap *Capability) Validate() ValidationErrors
Validate validates a Capability and returns validation errors.
type CapabilityStack ¶
type CapabilityStack struct {
// Schema is the JSON Schema reference.
Schema string `json:"$schema,omitempty"`
// Metadata contains document-level information.
Metadata Metadata `json:"metadata"`
// Layers are ordered list of layers (rows) in the capability stack.
Layers []Layer `json:"layers"`
// Categories define groupings for capabilities within layers.
Categories []Category `json:"categories,omitempty"`
// Capabilities are all capabilities in the stack.
Capabilities []Capability `json:"capabilities"`
// Foundational are cross-cutting capabilities that span multiple layers.
Foundational []Capability `json:"foundational,omitempty"`
// PRISMIntegration configures global PRISM integration.
PRISMIntegration *PRISMIntegration `json:"prismIntegration,omitempty"`
}
CapabilityStack is the root document for a capability stack specification.
func LoadFromFile ¶
func LoadFromFile(path string) (*CapabilityStack, error)
LoadFromFile reads a CapabilityStack from a JSON file.
func (*CapabilityStack) AllCapabilities ¶
func (cs *CapabilityStack) AllCapabilities() []Capability
AllCapabilities returns all capabilities including foundational ones.
func (*CapabilityStack) CapabilitiesByCategory ¶
func (cs *CapabilityStack) CapabilitiesByCategory(categoryID string) []Capability
CapabilitiesByCategory returns capabilities belonging to a specific category.
func (*CapabilityStack) CapabilitiesByLayer ¶
func (cs *CapabilityStack) CapabilitiesByLayer(layerID string) []Capability
CapabilitiesByLayer returns capabilities belonging to a specific layer.
func (*CapabilityStack) CapabilitiesByStatus ¶
func (cs *CapabilityStack) CapabilitiesByStatus(status string) []Capability
CapabilitiesByStatus returns capabilities with a specific status.
func (*CapabilityStack) CapabilitiesByTag ¶
func (cs *CapabilityStack) CapabilitiesByTag(tag string) []Capability
CapabilitiesByTag returns capabilities with a specific tag.
func (*CapabilityStack) CapabilityIDs ¶
func (cs *CapabilityStack) CapabilityIDs() []string
CapabilityIDs returns all capability IDs including foundational.
func (*CapabilityStack) CategoryIDs ¶
func (cs *CapabilityStack) CategoryIDs() []string
CategoryIDs returns all category IDs.
func (*CapabilityStack) GetCapabilityByID ¶
func (cs *CapabilityStack) GetCapabilityByID(id string) *Capability
GetCapabilityByID returns a capability by its ID, or nil if not found. Searches both capabilities and foundational lists.
func (*CapabilityStack) GetCategoryByID ¶
func (cs *CapabilityStack) GetCategoryByID(id string) *Category
GetCategoryByID returns a category by its ID, or nil if not found.
func (*CapabilityStack) GetLayerByID ¶
func (cs *CapabilityStack) GetLayerByID(id string) *Layer
GetLayerByID returns a layer by its ID, or nil if not found.
func (*CapabilityStack) LayerIDs ¶
func (cs *CapabilityStack) LayerIDs() []string
LayerIDs returns all layer IDs in order.
func (*CapabilityStack) SaveToFile ¶
func (cs *CapabilityStack) SaveToFile(path string) error
SaveToFile writes the CapabilityStack to a JSON file.
func (*CapabilityStack) Validate ¶
func (cs *CapabilityStack) Validate() ValidationErrors
Validate validates the entire CapabilityStack document.
type Category ¶
type Category struct {
// ID is the unique identifier for the category (kebab-case).
ID string `json:"id"`
// Name is the display name for the category.
Name string `json:"name"`
// Description explains what this category represents.
Description string `json:"description,omitempty"`
// Color is used for visual grouping (hex or named color).
Color string `json:"color,omitempty"`
}
Category groups capabilities within layers for visual organization.
func (*Category) Validate ¶
func (c *Category) Validate() ValidationErrors
Validate validates a Category and returns validation errors.
type FrameworkMapping ¶
type FrameworkMapping struct {
// Framework is the framework name (nist-csf-2.0, iso-27001, etc.).
Framework string `json:"framework"`
// Controls lists the control IDs from the framework.
Controls []string `json:"controls"`
}
FrameworkMapping maps a capability to compliance/security framework controls.
func (*FrameworkMapping) Validate ¶
func (fm *FrameworkMapping) Validate() ValidationErrors
Validate validates a FrameworkMapping and returns validation errors.
type Layer ¶
type Layer struct {
// ID is the unique identifier for the layer (kebab-case).
ID string `json:"id"`
// Name is the display name for the layer.
Name string `json:"name"`
// Description explains the purpose/objective of this layer.
Description string `json:"description,omitempty"`
// Order is the sort order (1 = top layer).
Order int `json:"order,omitempty"`
// Phase is the SDLC or lifecycle phase this layer represents.
Phase string `json:"phase,omitempty"`
// NistCsfFunction maps the layer to a NIST CSF 2.0 function.
NistCsfFunction string `json:"nistCsfFunction,omitempty"`
}
Layer represents a row in the capability stack, typically mapping to a lifecycle phase or organizational boundary.
func (*Layer) Validate ¶
func (l *Layer) Validate() ValidationErrors
Validate validates a Layer and returns validation errors.
type LevelCriteria ¶
type LevelCriteria struct {
M1 string `json:"M1,omitempty"`
M2 string `json:"M2,omitempty"`
M3 string `json:"M3,omitempty"`
M4 string `json:"M4,omitempty"`
M5 string `json:"M5,omitempty"`
}
LevelCriteria defines maturity level descriptions (M1-M5).
type Metadata ¶
type Metadata struct {
// Name is the identifier for the capability stack (kebab-case).
Name string `json:"name"`
// Version is the semantic version of this specification.
Version string `json:"version"`
// Title is the display title for rendered output.
Title string `json:"title,omitempty"`
// Description provides context about the capability stack.
Description string `json:"description,omitempty"`
// Domain is the primary domain (security, ai, platform, etc.).
Domain string `json:"domain,omitempty"`
// CreatedAt is the creation date (YYYY-MM-DD format).
CreatedAt string `json:"createdAt,omitempty"`
// UpdatedAt is the last update date (YYYY-MM-DD format).
UpdatedAt string `json:"updatedAt,omitempty"`
// Authors lists the people/teams who created this stack.
Authors []string `json:"authors,omitempty"`
}
Metadata contains document-level information about the capability stack.
func (*Metadata) Validate ¶
func (m *Metadata) Validate() ValidationErrors
Validate validates a Metadata and returns validation errors.
type PRISMIntegration ¶
type PRISMIntegration struct {
// ModelRef is the path or URL to the PRISM maturity model document.
ModelRef string `json:"modelRef,omitempty"`
// StateRef is the path or URL to the PRISM maturity state document.
StateRef string `json:"stateRef,omitempty"`
// PlanRef is the path or URL to the PRISM maturity plan document.
PlanRef string `json:"planRef,omitempty"`
// DefaultDomain is the default PRISM domain for capabilities without explicit domainId.
DefaultDomain string `json:"defaultDomain,omitempty"`
}
PRISMIntegration configures global PRISM integration settings.
type PRISMRef ¶
type PRISMRef struct {
// DomainID is the PRISM domain ID (e.g., "security", "operations").
DomainID string `json:"domainId,omitempty"`
// SLIIDs lists PRISM SLI IDs that measure this capability's maturity.
SLIIDs []string `json:"sliIds,omitempty"`
// LevelCriteria describes what each maturity level means for this capability.
LevelCriteria *LevelCriteria `json:"levelCriteria,omitempty"`
}
PRISMRef references a PRISM maturity model for a capability.
type Tool ¶
type Tool struct {
// Name is the tool or product name.
Name string `json:"name"`
// Vendor is the vendor name (for commercial tools).
Vendor string `json:"vendor,omitempty"`
// Type classifies the tool (commercial, open-source, internal, managed-service).
Type string `json:"type,omitempty"`
// URL is the tool's website or documentation link.
URL string `json:"url,omitempty"`
// Status is the deployment status (evaluating, piloting, deployed, deprecated).
Status string `json:"status,omitempty"`
}
Tool represents a tool or product that implements a capability.
func (*Tool) Validate ¶
func (t *Tool) Validate() ValidationErrors
Validate validates a Tool and returns validation errors.
type ValidationError ¶
ValidationError represents a validation error with context.
func (*ValidationError) Error ¶
func (e *ValidationError) Error() string
type ValidationErrors ¶
type ValidationErrors []ValidationError
ValidationErrors is a collection of validation errors.
func (ValidationErrors) Error ¶
func (ve ValidationErrors) Error() string
func (ValidationErrors) HasErrors ¶
func (ve ValidationErrors) HasErrors() bool
HasErrors returns true if there are any validation errors.