Documentation
¶
Overview ¶
Package inventory builds generated capability inventories for Workflow plugins, registries, and applications.
Index ¶
- type AppOptions
- type AppProfile
- type Capability
- type CapabilityCrossrefs
- type CapabilityReference
- type Catalog
- type CatalogCapability
- type EcosystemOptions
- type Evidence
- type Finding
- type Inventory
- type Metadata
- type PluginReference
- type Provider
- type Taxonomy
- type TaxonomyAliases
- type TaxonomyCapability
- type Usage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AppOptions ¶
type AppOptions struct {
ManifestPath string
WorkflowPaths []string
PluginDir string
LockfilePath string
TaxonomyPath string
GeneratedAt time.Time
}
AppOptions controls application capability profile generation.
type AppProfile ¶
type AppProfile struct {
Metadata Metadata `json:"metadata"`
Usage []Usage `json:"usage"`
Findings []Finding `json:"findings,omitempty"`
}
AppProfile is the top-level application capability report.
func CollectApp ¶
func CollectApp(ctx context.Context, opts AppOptions) (*AppProfile, error)
CollectApp builds a capability profile for one application from Workflow-owned files.
type Capability ¶
type Capability struct {
ID string `json:"id"`
Category string `json:"category"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Lifecycle string `json:"lifecycle,omitempty"`
Tags []string `json:"tags,omitempty"`
Providers []Provider `json:"providers,omitempty"`
Evidence []Evidence `json:"evidence,omitempty"`
Findings []Finding `json:"findings,omitempty"`
}
Capability is a product-level capability row.
type CapabilityCrossrefs ¶
type CapabilityCrossrefs struct {
Metadata Metadata `json:"metadata"`
Plugins map[string]PluginReference `json:"plugins"`
Capabilities map[string]CapabilityReference `json:"capabilities"`
}
CapabilityCrossrefs indexes capability-to-plugin and plugin-to-capability links.
func BuildCapabilityCrossrefs ¶
func BuildCapabilityCrossrefs(inv *Inventory) *CapabilityCrossrefs
BuildCapabilityCrossrefs builds a graph index for docs and agents.
type CapabilityReference ¶
type CapabilityReference struct {
ID string `json:"id"`
Category string `json:"category,omitempty"`
Name string `json:"name,omitempty"`
Providers []string `json:"providers,omitempty"`
}
CapabilityReference describes one capability's provider names.
type Catalog ¶
type Catalog struct {
Metadata Metadata `json:"metadata"`
Capabilities []CatalogCapability `json:"capabilities"`
Findings []Finding `json:"findings,omitempty"`
}
Catalog is the docs-facing capability report derived from Inventory.
func BuildCatalog ¶
BuildCatalog converts the evidence-rich ecosystem inventory into the public docs catalog. Raw uncategorized rows stay in the ecosystem inventory and maintainer counts instead of dominating user-facing docs.
type CatalogCapability ¶
type CatalogCapability struct {
ID string `json:"id"`
Category string `json:"category"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Lifecycle string `json:"lifecycle,omitempty"`
Tags []string `json:"tags,omitempty"`
Providers []Provider `json:"providers,omitempty"`
}
CatalogCapability is a public capability row intended for docs navigation.
type EcosystemOptions ¶
type EcosystemOptions struct {
RegistryDir string
RepoRoot string
TaxonomyPath string
GeneratedAt time.Time
WorkflowVersion string
}
EcosystemOptions controls ecosystem capability inventory generation.
type Evidence ¶
type Evidence struct {
SourceKind string `json:"sourceKind"`
SourcePath string `json:"sourcePath,omitempty"`
JSONPath string `json:"jsonPath,omitempty"`
Detail string `json:"detail,omitempty"`
}
Evidence points to the source that supports a capability or usage row.
type Finding ¶
type Finding struct {
Level string `json:"level"`
Code string `json:"code"`
Message string `json:"message"`
CapabilityID string `json:"capabilityId,omitempty"`
Evidence []Evidence `json:"evidence,omitempty"`
}
Finding is a warning or error produced during inventory generation.
func CheckApp ¶
func CheckApp(profile *AppProfile) []Finding
CheckApp returns deterministic policy findings for an application profile.
type Inventory ¶
type Inventory struct {
Metadata Metadata `json:"metadata"`
Capabilities []Capability `json:"capabilities"`
Findings []Finding `json:"findings,omitempty"`
}
Inventory is the top-level ecosystem capability report.
func CollectEcosystem ¶
func CollectEcosystem(opts EcosystemOptions) (*Inventory, error)
CollectEcosystem reads registry and local plugin manifests into a capability inventory.
type Metadata ¶
type Metadata struct {
Generator string `json:"generator"`
GeneratedAt string `json:"generatedAt,omitempty"`
WorkflowVersion string `json:"workflowVersion,omitempty"`
TaxonomyVersion string `json:"taxonomyVersion,omitempty"`
TaxonomyDigest string `json:"taxonomyDigest,omitempty"`
RegistrySource string `json:"registrySource,omitempty"`
LocalRepoRoot string `json:"localRepoRoot,omitempty"`
Counts map[string]int `json:"counts,omitempty"`
}
Metadata describes how an inventory artifact was generated.
type PluginReference ¶
type PluginReference struct {
Name string `json:"name"`
Kind string `json:"kind,omitempty"`
Version string `json:"version,omitempty"`
ReleaseStatus string `json:"releaseStatus,omitempty"`
Source string `json:"source,omitempty"`
Capabilities []string `json:"capabilities,omitempty"`
RawCapabilities []string `json:"rawCapabilities,omitempty"`
Dependencies []string `json:"dependencies,omitempty"`
}
PluginReference describes one plugin/provider in the cross-reference graph.
type Provider ¶
type Provider struct {
Name string `json:"name"`
Kind string `json:"kind"`
Version string `json:"version,omitempty"`
ReleaseStatus string `json:"releaseStatus,omitempty"`
Source string `json:"source,omitempty"`
Capabilities []string `json:"capabilities,omitempty"`
Dependencies []string `json:"dependencies,omitempty"`
}
Provider describes a plugin, package, or provider that supplies a capability.
type Taxonomy ¶
type Taxonomy struct {
Version string `json:"version" yaml:"version"`
Capabilities []TaxonomyCapability `json:"capabilities" yaml:"capabilities"`
// contains filtered or unexported fields
}
Taxonomy maps raw Workflow/plugin type declarations to product capabilities.
func LoadTaxonomy ¶
LoadTaxonomy reads and validates a taxonomy YAML file.
func (*Taxonomy) ByID ¶
func (t *Taxonomy) ByID(id string) (*TaxonomyCapability, bool)
ByID returns a capability by stable taxonomy ID.
type TaxonomyAliases ¶
type TaxonomyAliases struct {
ModuleTypes []string `json:"moduleTypes,omitempty" yaml:"moduleTypes,omitempty"`
BuiltinModuleTypes []string `json:"builtinModuleTypes,omitempty" yaml:"builtinModuleTypes,omitempty"`
StepTypes []string `json:"stepTypes,omitempty" yaml:"stepTypes,omitempty"`
BuiltinStepTypes []string `json:"builtinStepTypes,omitempty" yaml:"builtinStepTypes,omitempty"`
TriggerTypes []string `json:"triggerTypes,omitempty" yaml:"triggerTypes,omitempty"`
BuiltinTriggerTypes []string `json:"builtinTriggerTypes,omitempty" yaml:"builtinTriggerTypes,omitempty"`
WorkflowTypes []string `json:"workflowTypes,omitempty" yaml:"workflowTypes,omitempty"`
BuiltinWorkflowTypes []string `json:"builtinWorkflowTypes,omitempty" yaml:"builtinWorkflowTypes,omitempty"`
WiringHooks []string `json:"wiringHooks,omitempty" yaml:"wiringHooks,omitempty"`
BuiltinWiringHooks []string `json:"builtinWiringHooks,omitempty" yaml:"builtinWiringHooks,omitempty"`
IaCServices []string `json:"iacServices,omitempty" yaml:"iacServices,omitempty"`
IaCStateBackends []string `json:"iacStateBackends,omitempty" yaml:"iacStateBackends,omitempty"`
BuiltinIaCStateBackends []string `json:"builtinIaCStateBackends,omitempty" yaml:"builtinIaCStateBackends,omitempty"`
Providers []string `json:"providers,omitempty" yaml:"providers,omitempty"`
Plugins []string `json:"plugins,omitempty" yaml:"plugins,omitempty"`
Keywords []string `json:"keywords,omitempty" yaml:"keywords,omitempty"`
}
TaxonomyAliases lists raw declaration names that map to a capability.
type TaxonomyCapability ¶
type TaxonomyCapability struct {
ID string `json:"id" yaml:"id"`
Category string `json:"category" yaml:"category"`
Name string `json:"name" yaml:"name"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
Lifecycle string `json:"lifecycle,omitempty" yaml:"lifecycle,omitempty"`
Aliases TaxonomyAliases `json:"aliases,omitempty" yaml:"aliases,omitempty"`
Tags []string `json:"tags,omitempty" yaml:"tags,omitempty"`
}
TaxonomyCapability is one product capability declared in the taxonomy file.
type Usage ¶
type Usage struct {
CapabilityID string `json:"capabilityId"`
Category string `json:"category,omitempty"`
Name string `json:"name,omitempty"`
Mode string `json:"mode"`
Confidence string `json:"confidence,omitempty"`
Evidence []Evidence `json:"evidence,omitempty"`
Findings []Finding `json:"findings,omitempty"`
}
Usage describes a capability used by an application.