inventory

package
v0.80.1 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package inventory builds generated capability inventories for Workflow plugins, registries, and applications.

Index

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

func BuildCatalog(inv *Inventory) *Catalog

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

func LoadTaxonomy(path string) (*Taxonomy, error)

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.

func (*Taxonomy) Digest

func (t *Taxonomy) Digest() string

Digest returns the SHA-256 digest of the taxonomy source file.

func (*Taxonomy) MatchType

func (t *Taxonomy) MatchType(kind, value string) (*TaxonomyCapability, bool)

MatchType returns the taxonomy capability for a raw type declaration.

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.

Jump to

Keyboard shortcuts

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