Documentation
¶
Index ¶
- type API
- func (api *API) Close() error
- func (api *API) GetAuditLogger() *logging.AuditLogger
- func (api *API) GetConfigHash() string
- func (api *API) GetCurrentConfig() *ConfigData
- func (api *API) GetLatestVersion() string
- func (api *API) GetVersionHistory() ([]*ConfigVersion, error)
- func (api *API) LoadConfig(version string) (*ConfigData, error)
- func (api *API) LoadLatestConfig() (*ConfigData, error)
- func (api *API) RollbackToVersion(version string) error
- func (api *API) SaveConfig(config *ConfigData) (*ConfigVersion, error)
- func (api *API) ValidateConfig() error
- type ConfigData
- func (c *ConfigData) Get(key string) (interface{}, bool)
- func (c *ConfigData) GetCreated() string
- func (c *ConfigData) GetData() map[string]interface{}
- func (c *ConfigData) GetMetadata() map[string]string
- func (c *ConfigData) GetVersion() string
- func (c *ConfigData) Set(key string, value interface{})
- func (c *ConfigData) String() string
- func (c *ConfigData) Validate() error
- type ConfigManager
- func (cm *ConfigManager) Close() error
- func (cm *ConfigManager) GetAuditLogger() *logging.AuditLogger
- func (cm *ConfigManager) GetConfigHash() string
- func (cm *ConfigManager) GetCurrentConfig() *ConfigData
- func (cm *ConfigManager) GetLatestVersion() string
- func (cm *ConfigManager) GetVersionHistory() ([]*ConfigVersion, error)
- func (cm *ConfigManager) Initialize() error
- func (cm *ConfigManager) LoadConfig(version string) (*ConfigData, error)
- func (cm *ConfigManager) LoadLatestConfig() (*ConfigData, error)
- func (cm *ConfigManager) RollbackToVersion(version string) error
- func (cm *ConfigManager) SaveConfig(config *ConfigData) (*ConfigVersion, error)
- func (cm *ConfigManager) ValidateConfig() error
- type ConfigOptions
- type ConfigVersion
- type InMemoryProvider
- type Option
- type Provider
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type API ¶
type API struct {
// contains filtered or unexported fields
}
API provides the main interface for configuration operations
func (*API) GetAuditLogger ¶
func (api *API) GetAuditLogger() *logging.AuditLogger
GetAuditLogger returns the audit logger
func (*API) GetConfigHash ¶
GetConfigHash returns the hash of the current configuration
func (*API) GetCurrentConfig ¶
func (api *API) GetCurrentConfig() *ConfigData
GetCurrentConfig returns the current configuration
func (*API) GetLatestVersion ¶
GetLatestVersion returns the latest version string
func (*API) GetVersionHistory ¶
func (api *API) GetVersionHistory() ([]*ConfigVersion, error)
GetVersionHistory gets the version history
func (*API) LoadConfig ¶
func (api *API) LoadConfig(version string) (*ConfigData, error)
LoadConfig loads a specific version of the configuration
func (*API) LoadLatestConfig ¶
func (api *API) LoadLatestConfig() (*ConfigData, error)
LoadLatestConfig loads the most recent configuration
func (*API) RollbackToVersion ¶
RollbackToVersion rolls back to a specific version
func (*API) SaveConfig ¶
func (api *API) SaveConfig(config *ConfigData) (*ConfigVersion, error)
SaveConfig saves a new configuration version
func (*API) ValidateConfig ¶
ValidateConfig validates the current configuration
type ConfigData ¶
type ConfigData struct {
Version string `json:"version" yaml:"version"`
Created string `json:"created" yaml:"created"`
Data map[string]interface{} `json:"data" yaml:"data"`
Metadata map[string]string `json:"metadata" yaml:"metadata"`
Hash string `json:"hash" yaml:"hash"`
Signature string `json:"signature,omitempty" yaml:"signature,omitempty"`
}
ConfigData represents immutable configuration data
func NewConfigData ¶
func NewConfigData(version string, data map[string]interface{}, metadata map[string]string) *ConfigData
NewConfigData creates a new configuration data instance
func (*ConfigData) Get ¶
func (c *ConfigData) Get(key string) (interface{}, bool)
Get retrieves a value from the configuration data
func (*ConfigData) GetCreated ¶
func (c *ConfigData) GetCreated() string
GetCreated returns the creation timestamp
func (*ConfigData) GetData ¶
func (c *ConfigData) GetData() map[string]interface{}
GetData returns the configuration data
func (*ConfigData) GetMetadata ¶
func (c *ConfigData) GetMetadata() map[string]string
GetMetadata returns the configuration metadata
func (*ConfigData) GetVersion ¶
func (c *ConfigData) GetVersion() string
GetVersion returns the configuration version
func (*ConfigData) Set ¶
func (c *ConfigData) Set(key string, value interface{})
Set sets a value in the configuration data
func (*ConfigData) Validate ¶
func (c *ConfigData) Validate() error
Validate validates the configuration data
type ConfigManager ¶
type ConfigManager struct {
// contains filtered or unexported fields
}
ConfigManager manages immutable configuration with versioning
func NewConfigManager ¶
func NewConfigManager(provider Provider) *ConfigManager
NewConfigManager creates a new configuration manager
func NewWithOptions ¶
func NewWithOptions(options *ConfigOptions) *ConfigManager
NewWithOptions creates a new ConfigManager with custom options
func (*ConfigManager) Close ¶
func (cm *ConfigManager) Close() error
Close closes the config manager
func (*ConfigManager) GetAuditLogger ¶
func (cm *ConfigManager) GetAuditLogger() *logging.AuditLogger
GetAuditLogger returns the audit logger
func (*ConfigManager) GetConfigHash ¶
func (cm *ConfigManager) GetConfigHash() string
GetConfigHash returns the hash of the current configuration
func (*ConfigManager) GetCurrentConfig ¶
func (cm *ConfigManager) GetCurrentConfig() *ConfigData
GetCurrentConfig returns the current configuration
func (*ConfigManager) GetLatestVersion ¶
func (cm *ConfigManager) GetLatestVersion() string
GetLatestVersion returns the latest version string
func (*ConfigManager) GetVersionHistory ¶
func (cm *ConfigManager) GetVersionHistory() ([]*ConfigVersion, error)
GetVersionHistory gets the version history
func (*ConfigManager) Initialize ¶
func (cm *ConfigManager) Initialize() error
Initialize initializes the config manager
func (*ConfigManager) LoadConfig ¶
func (cm *ConfigManager) LoadConfig(version string) (*ConfigData, error)
LoadConfig loads a specific version of the configuration
func (*ConfigManager) LoadLatestConfig ¶
func (cm *ConfigManager) LoadLatestConfig() (*ConfigData, error)
LoadLatestConfig loads the most recent configuration This version avoids calling LoadConfig to prevent deadlock
func (*ConfigManager) RollbackToVersion ¶
func (cm *ConfigManager) RollbackToVersion(version string) error
RollbackToVersion rolls back to a specific version
func (*ConfigManager) SaveConfig ¶
func (cm *ConfigManager) SaveConfig(config *ConfigData) (*ConfigVersion, error)
SaveConfig saves a new configuration version
func (*ConfigManager) ValidateConfig ¶
func (cm *ConfigManager) ValidateConfig() error
ValidateConfig validates the current configuration
type ConfigOptions ¶
type ConfigOptions struct {
Provider Provider
MaxVersions int
EnableRollback bool
MaxAuditEntries int
EnableIntegrity bool
EnableSignature bool
}
ConfigOptions for configuring the immutable config system
func DefaultOptions ¶
func DefaultOptions() *ConfigOptions
DefaultOptions returns default configuration options
func NewConfigOptions ¶
func NewConfigOptions() *ConfigOptions
NewConfigOptions creates new options with default values
type ConfigVersion ¶
type ConfigVersion struct {
Version string `json:"version" yaml:"version"`
Timestamp string `json:"timestamp" yaml:"timestamp"`
Hash string `json:"hash" yaml:"hash"`
Signature string `json:"signature,omitempty" yaml:"signature,omitempty"`
}
ConfigVersion represents a versioned configuration state
func NewConfigVersion ¶
func NewConfigVersion(version string, hash string) *ConfigVersion
NewConfigVersion creates a new config version
type InMemoryProvider ¶
type InMemoryProvider struct {
// contains filtered or unexported fields
}
InMemoryProvider for testing
func NewInMemoryProvider ¶
func NewInMemoryProvider() *InMemoryProvider
NewInMemoryProvider creates a new in-memory provider
func (*InMemoryProvider) Close ¶
func (p *InMemoryProvider) Close() error
Close closes the in-memory provider
func (*InMemoryProvider) Initialize ¶
func (p *InMemoryProvider) Initialize() error
Initialize initializes the in-memory provider
func (*InMemoryProvider) ListVersions ¶
func (p *InMemoryProvider) ListVersions() ([]*ConfigVersion, error)
ListVersions lists all versions
func (*InMemoryProvider) Load ¶
func (p *InMemoryProvider) Load(version string) (*ConfigData, error)
Load loads a specific version of the configuration
func (*InMemoryProvider) Save ¶
func (p *InMemoryProvider) Save(config *ConfigData) (*ConfigVersion, error)
Save saves a new configuration version
type Option ¶
type Option func(*ConfigOptions)
Option is a function that configures options
func WithIntegrity ¶
WithIntegrity enables/disables integrity checking
func WithMaxAuditEntries ¶
WithMaxAuditEntries sets the maximum audit log entries
func WithMaxVersions ¶
WithMaxVersions sets the maximum number of versions to keep
func WithRollback ¶
WithRollback enables/disables rollback functionality
func WithSignature ¶
WithSignature enables/disables signature verification
type Provider ¶
type Provider interface {
Initialize() error
Load(version string) (*ConfigData, error)
Save(config *ConfigData) (*ConfigVersion, error)
ListVersions() ([]*ConfigVersion, error)
Close() error
}
Provider interface for configuration storage