Documentation
¶
Index ¶
- type Plugin
- type PluginInfo
- type PluginManager
- func (pm *PluginManager) AddSafeDirectory(dir string)
- func (pm *PluginManager) AddTrustedChecksum(path, checksum string)
- func (pm *PluginManager) ExecutePlugin(ctx context.Context, name string, args []string) (interface{}, error)
- func (pm *PluginManager) GetPlugin(name string) (Plugin, bool)
- func (pm *PluginManager) GetPluginInfo() []PluginInfo
- func (pm *PluginManager) GetSafeDirectories() []string
- func (pm *PluginManager) InitializePlugin(ctx context.Context, name string, config map[string]interface{}) error
- func (pm *PluginManager) ListPlugins() map[string]Plugin
- func (pm *PluginManager) LoadPlugin(path string) error
- func (pm *PluginManager) Shutdown() error
- func (pm *PluginManager) UnloadPlugin(name string) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Plugin ¶
type Plugin interface {
Name() string
Version() string
Description() string
Init(ctx context.Context, config map[string]interface{}) error
Execute(ctx context.Context, args []string) (interface{}, error)
Cleanup() error
}
Plugin represents a loadable plugin interface
type PluginInfo ¶
type PluginInfo struct {
Name string `json:"name"`
Version string `json:"version"`
Description string `json:"description"`
Loaded bool `json:"loaded"`
}
PluginInfo holds information about a plugin
type PluginManager ¶
type PluginManager struct {
// contains filtered or unexported fields
}
PluginManager manages loaded plugins
func NewPluginManager ¶
func NewPluginManager() *PluginManager
NewPluginManager creates a new plugin manager
func (*PluginManager) AddSafeDirectory ¶
func (pm *PluginManager) AddSafeDirectory(dir string)
AddSafeDirectory adds a directory to the list of safe plugin directories
func (*PluginManager) AddTrustedChecksum ¶
func (pm *PluginManager) AddTrustedChecksum(path, checksum string)
AddTrustedChecksum adds a trusted checksum for a plugin
func (*PluginManager) ExecutePlugin ¶
func (pm *PluginManager) ExecutePlugin(ctx context.Context, name string, args []string) (interface{}, error)
ExecutePlugin executes a plugin with given arguments
func (*PluginManager) GetPlugin ¶
func (pm *PluginManager) GetPlugin(name string) (Plugin, bool)
GetPlugin returns a plugin by name
func (*PluginManager) GetPluginInfo ¶
func (pm *PluginManager) GetPluginInfo() []PluginInfo
GetPluginInfo returns information about all plugins
func (*PluginManager) GetSafeDirectories ¶
func (pm *PluginManager) GetSafeDirectories() []string
GetSafeDirectories returns the list of safe plugin directories
func (*PluginManager) InitializePlugin ¶
func (pm *PluginManager) InitializePlugin(ctx context.Context, name string, config map[string]interface{}) error
InitializePlugin initializes a plugin with configuration
func (*PluginManager) ListPlugins ¶
func (pm *PluginManager) ListPlugins() map[string]Plugin
ListPlugins returns all loaded plugins
func (*PluginManager) LoadPlugin ¶
func (pm *PluginManager) LoadPlugin(path string) error
LoadPlugin loads a plugin from a shared library file with security validation
func (*PluginManager) Shutdown ¶
func (pm *PluginManager) Shutdown() error
Shutdown gracefully shuts down all plugins
func (*PluginManager) UnloadPlugin ¶
func (pm *PluginManager) UnloadPlugin(name string) error
UnloadPlugin unloads a plugin