Documentation ¶
Index ¶
- Variables
- func FixInvalidLocales(cfg *model.Config) bool
- func GenerateClientConfig(c *model.Config, diagnosticId string, license *model.License) map[string]string
- func GenerateLimitedClientConfig(c *model.Config, diagnosticId string, license *model.License) map[string]string
- func Merge(cfg *model.Config, patch *model.Config, mergeConfig *utils.MergeConfig) (*model.Config, error)
- func NewMemoryStore() (*memoryStore, error)
- func NewMemoryStoreWithOptions(options *MemoryStoreOptions) (*memoryStore, error)
- type DatabaseStore
- func (ds *DatabaseStore) Close() error
- func (cs *DatabaseStore) Get() *model.Config
- func (cs *DatabaseStore) GetEnvironmentOverrides() map[string]interface{}
- func (ds *DatabaseStore) GetFile(name string) ([]byte, error)
- func (ds *DatabaseStore) HasFile(name string) (bool, error)
- func (ds *DatabaseStore) Load() (err error)
- func (ds *DatabaseStore) RemoveFile(name string) error
- func (ds *DatabaseStore) Set(newCfg *model.Config) (*model.Config, error)
- func (ds *DatabaseStore) SetFile(name string, data []byte) error
- func (ds *DatabaseStore) String() string
- type FileStore
- func (fs *FileStore) Close() error
- func (cs *FileStore) Get() *model.Config
- func (cs *FileStore) GetEnvironmentOverrides() map[string]interface{}
- func (fs *FileStore) GetFile(name string) ([]byte, error)
- func (fs *FileStore) HasFile(name string) (bool, error)
- func (fs *FileStore) Load() (err error)
- func (fs *FileStore) RemoveFile(name string) error
- func (fs *FileStore) Set(newCfg *model.Config) (*model.Config, error)
- func (fs *FileStore) SetFile(name string, data []byte) error
- func (fs *FileStore) String() string
- type Listener
- type MemoryStoreOptions
- type Store
Constants ¶
This section is empty.
Variables ¶
var (
ErrReadOnlyConfiguration = errors.New("configuration is read-only")
)
Functions ¶
func FixInvalidLocales ¶
FixInvalidLocales checks and corrects the given config for invalid locale-related settings.
Ideally, this function would be completely internal, but it's currently exposed to allow the cli to test the config change before allowing the save.
func GenerateClientConfig ¶
func GenerateClientConfig(c *model.Config, diagnosticId string, license *model.License) map[string]string
GenerateClientConfig renders the given configuration for a client.
func GenerateLimitedClientConfig ¶
func GenerateLimitedClientConfig(c *model.Config, diagnosticId string, license *model.License) map[string]string
GenerateLimitedClientConfig renders the given configuration for an untrusted client.
func Merge ¶
func Merge(cfg *model.Config, patch *model.Config, mergeConfig *utils.MergeConfig) (*model.Config, error)
Merge merges two configs together. The receiver's values are overwritten with the patch's values except when the patch's values are nil.
func NewMemoryStore ¶
func NewMemoryStore() (*memoryStore, error)
NewMemoryStore creates a new memoryStore instance with default options.
func NewMemoryStoreWithOptions ¶
func NewMemoryStoreWithOptions(options *MemoryStoreOptions) (*memoryStore, error)
NewMemoryStoreWithOptions creates a new memoryStore instance.
Types ¶
type DatabaseStore ¶
type DatabaseStore struct {
// contains filtered or unexported fields
}
DatabaseStore is a config store backed by a database.
func NewDatabaseStore ¶
func NewDatabaseStore(dsn string) (ds *DatabaseStore, err error)
NewDatabaseStore creates a new instance of a config store backed by the given database.
func (*DatabaseStore) Close ¶
func (ds *DatabaseStore) Close() error
Close cleans up resources associated with the store.
func (*DatabaseStore) GetEnvironmentOverrides ¶
func (cs *DatabaseStore) GetEnvironmentOverrides() map[string]interface{}
GetEnvironmentOverrides fetches the configuration fields overridden by environment variables.
func (*DatabaseStore) GetFile ¶
func (ds *DatabaseStore) GetFile(name string) ([]byte, error)
GetFile fetches the contents of a previously persisted configuration file.
func (*DatabaseStore) HasFile ¶
func (ds *DatabaseStore) HasFile(name string) (bool, error)
HasFile returns true if the given file was previously persisted.
func (*DatabaseStore) Load ¶
func (ds *DatabaseStore) Load() (err error)
Load updates the current configuration from the backing store.
func (*DatabaseStore) RemoveFile ¶
func (ds *DatabaseStore) RemoveFile(name string) error
RemoveFile remoevs a previously persisted configuration file.
func (*DatabaseStore) Set ¶
Set replaces the current configuration in its entirety and updates the backing store.
func (*DatabaseStore) SetFile ¶
func (ds *DatabaseStore) SetFile(name string, data []byte) error
SetFile sets or replaces the contents of a configuration file.
func (*DatabaseStore) String ¶
func (ds *DatabaseStore) String() string
String returns the path to the database backing the config, masking the password.
type FileStore ¶
type FileStore struct {
// contains filtered or unexported fields
}
FileStore is a config store backed by a file such as config/config.json.
It also uses the folder containing the configuration file for storing other configuration files.
func NewFileStore ¶
NewFileStore creates a new instance of a config store backed by the given file path.
If watch is true, any external changes to the file will force a reload.
func (*FileStore) GetEnvironmentOverrides ¶
func (cs *FileStore) GetEnvironmentOverrides() map[string]interface{}
GetEnvironmentOverrides fetches the configuration fields overridden by environment variables.
func (*FileStore) GetFile ¶
GetFile fetches the contents of a previously persisted configuration file.
func (*FileStore) RemoveFile ¶
RemoveFile removes a previously persisted configuration file.
func (*FileStore) Set ¶
Set replaces the current configuration in its entirety and updates the backing store.
type MemoryStoreOptions ¶
type MemoryStoreOptions struct { IgnoreEnvironmentOverrides bool SkipValidation bool InitialConfig *model.Config InitialFiles map[string][]byte }
MemoryStoreOptions makes configuration of the memory store explicit.
type Store ¶
type Store interface { // Get fetches the current, cached configuration. Get() *model.Config // GetEnvironmentOverrides fetches the configuration fields overridden by environment variables. GetEnvironmentOverrides() map[string]interface{} // Set replaces the current configuration in its entirety and updates the backing store. Set(*model.Config) (*model.Config, error) // Load updates the current configuration from the backing store, possibly initializing. Load() (err error) // AddListener adds a callback function to invoke when the configuration is modified. AddListener(listener Listener) string // RemoveListener removes a callback function using an id returned from AddListener. RemoveListener(id string) // GetFile fetches the contents of a previously persisted configuration file. // If no such file exists, an empty byte array will be returned without error. GetFile(name string) ([]byte, error) // SetFile sets or replaces the contents of a configuration file. SetFile(name string, data []byte) error // HasFile returns true if the given file was previously persisted. HasFile(name string) (bool, error) // RemoveFile removes a previously persisted configuration file. RemoveFile(name string) error // String describes the backing store for the config. String() string // Close cleans up resources associated with the store. Close() error }
Store abstracts the act of getting and setting the configuration.