Documentation
¶
Overview ¶
Package registry provides TerraCi's plugin catalog and per-run plugin sets. Plugin packages register factories via init(); commands instantiate a fresh Registry from those factories for each app run. AppContext exposes only the registry's capability resolver surface to plugins.
Index ¶
- func RegisterFactory(factory Factory)
- func Reset()
- type Catalog
- type Factory
- type InitContributionError
- type InitContributorBinding
- type InitGroupBinding
- type InitGroupError
- type InitProviderOption
- type InitWizardSnapshot
- type PluginSummary
- type Registry
- func (r *Registry) All() []plugin.Plugin
- func (r *Registry) CollectContributions(ctx *plugin.AppContext) ([]*pipeline.Contribution, error)
- func (r *Registry) Commands() []*cobra.Command
- func (r *Registry) DecodeConfig(cfg *config.Config) error
- func (r *Registry) ExtensionSchemas() map[string]any
- func (r *Registry) GetPlugin(name string) (plugin.Plugin, bool)
- func (r *Registry) InitWizardSnapshot() (*InitWizardSnapshot, error)
- func (r *Registry) ResolveBlobStoreProvider(name string, configPathHint ...string) (plugin.BlobStoreProvider, error)
- func (r *Registry) ResolveCIProvider() (*plugin.ResolvedCIProvider, error)
- func (r *Registry) ResolveChangeDetector() (plugin.ChangeDetectionProvider, error)
- func (r *Registry) ResolveKVCacheProvider(name string, configPathHint ...string) (plugin.KVCacheProvider, error)
- func (r *Registry) RunPreflight(ctx context.Context, appCtx *plugin.AppContext) error
- func (r *Registry) VersionSnapshot() VersionSnapshot
- type VersionSnapshot
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterFactory ¶ added in v0.10.0
func RegisterFactory(factory Factory)
RegisterFactory adds a plugin factory to the global catalog. Called from init() in plugin packages. Panics on duplicate names (fail-fast at startup).
Types ¶
type Catalog ¶ added in v0.10.0
type Catalog struct {
// contains filtered or unexported fields
}
Catalog stores plugin factories and creates isolated per-command plugin sets.
func NewCatalog ¶ added in v0.10.0
func NewCatalog() *Catalog
NewCatalog creates an empty plugin factory catalog.
func (*Catalog) NewRegistry ¶ added in v0.10.0
NewRegistry instantiates a fresh plugin set from this catalog.
func (*Catalog) RegisterFactory ¶ added in v0.10.0
RegisterFactory adds a plugin factory to this catalog.
type InitContributionError ¶ added in v0.10.7
InitContributionError wraps a plugin init contribution failure.
func (*InitContributionError) Error ¶ added in v0.10.7
func (e *InitContributionError) Error() string
func (*InitContributionError) Unwrap ¶ added in v0.10.7
func (e *InitContributionError) Unwrap() error
type InitContributorBinding ¶ added in v0.10.7
type InitContributorBinding struct {
// contains filtered or unexported fields
}
InitContributorBinding ties a config contribution builder to a plugin name.
func (InitContributorBinding) BuildInitConfig ¶ added in v0.10.7
func (b InitContributorBinding) BuildInitConfig(state *initwiz.StateMap) (*initwiz.InitContribution, error)
BuildInitConfig builds and validates one plugin init contribution.
func (InitContributorBinding) Plugin ¶ added in v0.10.7
func (b InitContributorBinding) Plugin() string
Plugin returns the contributing plugin name.
type InitGroupBinding ¶ added in v0.10.7
type InitGroupBinding struct {
// contains filtered or unexported fields
}
InitGroupBinding ties an init group to the plugin that contributed it.
func (InitGroupBinding) Group ¶ added in v0.10.7
func (b InitGroupBinding) Group() initwiz.InitGroup
Group returns a defensive group copy.
func (InitGroupBinding) Plugin ¶ added in v0.10.7
func (b InitGroupBinding) Plugin() string
Plugin returns the contributing plugin name.
type InitGroupError ¶ added in v0.10.7
InitGroupError wraps a plugin init group construction failure.
func (*InitGroupError) Error ¶ added in v0.10.7
func (e *InitGroupError) Error() string
func (*InitGroupError) Unwrap ¶ added in v0.10.7
func (e *InitGroupError) Unwrap() error
type InitProviderOption ¶ added in v0.10.7
type InitProviderOption struct {
// contains filtered or unexported fields
}
InitProviderOption describes one CI provider option for init presentation.
func (InitProviderOption) Description ¶ added in v0.10.7
func (o InitProviderOption) Description() string
Description returns the provider description.
func (InitProviderOption) Name ¶ added in v0.10.7
func (o InitProviderOption) Name() string
Name returns the provider name.
type InitWizardSnapshot ¶ added in v0.10.7
type InitWizardSnapshot struct {
// contains filtered or unexported fields
}
InitWizardSnapshot is the registry-owned init wizard read model.
func (*InitWizardSnapshot) Contributors ¶ added in v0.10.7
func (s *InitWizardSnapshot) Contributors() []InitContributorBinding
Contributors returns defensive contributor bindings.
func (*InitWizardSnapshot) Groups ¶ added in v0.10.7
func (s *InitWizardSnapshot) Groups() []InitGroupBinding
Groups returns defensive contributed init group bindings.
func (*InitWizardSnapshot) ProviderOptions ¶ added in v0.10.7
func (s *InitWizardSnapshot) ProviderOptions() []InitProviderOption
ProviderOptions returns deterministic CI provider choices.
type PluginSummary ¶ added in v0.10.7
type PluginSummary struct {
// contains filtered or unexported fields
}
PluginSummary describes one registered plugin for presentation.
func (PluginSummary) Description ¶ added in v0.10.7
func (s PluginSummary) Description() string
Description returns the plugin description.
func (PluginSummary) Name ¶ added in v0.10.7
func (s PluginSummary) Name() string
Name returns the plugin name.
type Registry ¶ added in v0.10.0
type Registry struct {
// contains filtered or unexported fields
}
Registry is an isolated plugin instance set for one app run. It is the framework-owned catalog for lifecycle facades, command lookup, and plugin-visible capability resolution.
func New ¶ added in v0.10.0
func New() *Registry
New instantiates a fresh plugin set from the registered global factories.
func NewFromFactories ¶ added in v0.10.0
NewFromFactories creates an isolated registry from explicit factories without touching the process-wide plugin catalog.
func (*Registry) CollectContributions ¶ added in v0.10.0
func (r *Registry) CollectContributions(ctx *plugin.AppContext) ([]*pipeline.Contribution, error)
CollectContributions gathers pipeline contributions from all enabled PipelineContributor plugins in this registry.
func (*Registry) Commands ¶ added in v0.10.7
Commands returns plugin-provided cobra commands in registration order.
func (*Registry) DecodeConfig ¶ added in v0.10.7
DecodeConfig applies extension config documents to config-capable plugins.
func (*Registry) ExtensionSchemas ¶ added in v0.10.7
ExtensionSchemas returns extension JSON schema samples by config key.
func (*Registry) InitWizardSnapshot ¶ added in v0.10.7
func (r *Registry) InitWizardSnapshot() (*InitWizardSnapshot, error)
InitWizardSnapshot returns init wizard contributors, provider options, and groups.
func (*Registry) ResolveBlobStoreProvider ¶ added in v0.10.0
func (r *Registry) ResolveBlobStoreProvider(name string, configPathHint ...string) (plugin.BlobStoreProvider, error)
ResolveBlobStoreProvider returns a named blob store backend provider. When name is empty, falls back to the single enabled blob store provider.
func (*Registry) ResolveCIProvider ¶ added in v0.10.0
func (r *Registry) ResolveCIProvider() (*plugin.ResolvedCIProvider, error)
ResolveCIProvider detects the active CI provider in this registry. Priority: TERRACI_PROVIDER env → CI environment detection → single active provider → error.
func (*Registry) ResolveChangeDetector ¶ added in v0.10.0
func (r *Registry) ResolveChangeDetector() (plugin.ChangeDetectionProvider, error)
ResolveChangeDetector returns the single active ChangeDetectionProvider.
func (*Registry) ResolveKVCacheProvider ¶ added in v0.10.0
func (r *Registry) ResolveKVCacheProvider(name string, configPathHint ...string) (plugin.KVCacheProvider, error)
ResolveKVCacheProvider returns a named KV cache backend provider. When name is empty, falls back to the single enabled KV cache provider — otherwise returns an error pointing at the available backends.
func (*Registry) RunPreflight ¶ added in v0.10.7
RunPreflight runs enabled plugin preflights in registration order.
func (*Registry) VersionSnapshot ¶ added in v0.10.7
func (r *Registry) VersionSnapshot() VersionSnapshot
VersionSnapshot returns version info and plugin summaries.
type VersionSnapshot ¶ added in v0.10.7
type VersionSnapshot struct {
// contains filtered or unexported fields
}
VersionSnapshot is the registry-owned version command read model.
func (VersionSnapshot) Info ¶ added in v0.10.7
func (s VersionSnapshot) Info() map[string]string
Info returns defensive version info key/value copies.
func (VersionSnapshot) Plugins ¶ added in v0.10.7
func (s VersionSnapshot) Plugins() []PluginSummary
Plugins returns registered plugin summaries in registration order.