Documentation
¶
Index ¶
- func NewConfigManager(config *models.Config) models.ConfigManager
- func NewDatabaseConfigManager(initialConfig *models.Config) models.ConfigManager
- func ValidateAndMergeConfig(current *models.Config, key string, value any) (*models.Config, error)
- type DatabaseConfigManager
- func (cm *DatabaseConfigManager) GetConfig() *models.Config
- func (cm *DatabaseConfigManager) Init() error
- func (cm *DatabaseConfigManager) Load() error
- func (cm *DatabaseConfigManager) Update(key string, value any) error
- func (cm *DatabaseConfigManager) Watch(ctx context.Context) (<-chan *models.Config, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewConfigManager ¶
func NewConfigManager(config *models.Config) models.ConfigManager
NewConfigManager creates a config manager based on the runtime mode and settings. - Library mode: no config manager needed (embedded in API) - Standalone mode: uses database-backed configuration
func NewDatabaseConfigManager ¶
func NewDatabaseConfigManager(initialConfig *models.Config) models.ConfigManager
Types ¶
type DatabaseConfigManager ¶
type DatabaseConfigManager struct {
// contains filtered or unexported fields
}
DatabaseConfigManager implements ConfigManager using a database backend.
func (*DatabaseConfigManager) GetConfig ¶
func (cm *DatabaseConfigManager) GetConfig() *models.Config
GetConfig returns the current active configuration.
func (*DatabaseConfigManager) Init ¶
func (cm *DatabaseConfigManager) Init() error
Init creates the initial config in the database from the current active config, but only if the "runtime_config" key does not already exist.
func (*DatabaseConfigManager) Load ¶
func (cm *DatabaseConfigManager) Load() error
Load loads the configuration from the database and updates the active config. If the configuration doesn't exist in the database yet, it initializes it from the current config.
func (*DatabaseConfigManager) Update ¶
func (cm *DatabaseConfigManager) Update(key string, value any) error
Update updates a specific configuration value by key (dot notation) and persists it.