config

package
v5.39.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 15, 2021 License: AGPL-3.0, Apache-2.0 Imports: 23 Imported by: 9

README

config.json

This is the system configuration file for your Mattermost server. Settings are specific to different editions of Mattermost. Please read the documentation before making changes: https://about.mattermost.com/default-config-docs/

Documentation

Index

Constants

View Source
const MaxWriteLength = 4 * 1024 * 1024

MaxWriteLength defines the maximum length accepted for write to the Configurations or ConfigurationFiles table.

It is imposed by MySQL's default max_allowed_packet value of 4Mb.

Variables

View Source
var (
	// ErrReadOnlyConfiguration is returned when an attempt to modify a read-only configuration is made.
	ErrReadOnlyConfiguration = errors.New("configuration is read-only")
)
View Source
var (
	// ErrReadOnlyStore is returned when an attempt to modify a read-only
	// configuration store is made.
	ErrReadOnlyStore = errors.New("configuration store is read-only")
)

Functions

func FixInvalidLocales

func FixInvalidLocales(cfg *model.Config) bool

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, telemetryID string, license *model.License) map[string]string

GenerateClientConfig renders the given configuration for a client.

func GenerateLimitedClientConfig

func GenerateLimitedClientConfig(c *model.Config, telemetryID string, license *model.License) map[string]string

GenerateLimitedClientConfig renders the given configuration for an untrusted client.

func GetEnvironment added in v5.30.0

func GetEnvironment() map[string]string

func GetValueByPath added in v5.28.0

func GetValueByPath(path []string, obj interface{}) (interface{}, bool)

func IsDatabaseDSN added in v5.32.0

func IsDatabaseDSN(dsn string) bool

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 Migrate

func Migrate(from, to string) error

Migrate migrates SAML keys, certificates, and other config files from one store to another given their data source names.

Types

type BackingStore added in v5.30.0

type BackingStore interface {
	// Set replaces the current configuration in its entirety and updates the backing store.
	Set(*model.Config) error

	// Load retrieves the configuration stored. If there is no configuration stored
	// the io.ReadCloser will be nil
	Load() ([]byte, error)

	// 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
}

BackingStore defines the behaviour exposed by the underlying store implementation (e.g. file, database).

type ConfigDiff added in v5.36.0

type ConfigDiff struct {
	Path      string      `json:"path"`
	BaseVal   interface{} `json:"base_val"`
	ActualVal interface{} `json:"actual_val"`
}

type ConfigDiffs added in v5.36.0

type ConfigDiffs []ConfigDiff

func Diff added in v5.36.0

func Diff(base, actual *model.Config) (ConfigDiffs, error)

func (ConfigDiffs) Sanitize added in v5.37.4

func (cd ConfigDiffs) Sanitize() ConfigDiffs

Sanitize replaces sensitive config values in the diff with asterisks filled strings.

func (ConfigDiffs) String added in v5.36.0

func (cd ConfigDiffs) String() string

type DatabaseStore

type DatabaseStore struct {
	// contains filtered or unexported fields
}

DatabaseStore is a config store backed by a database. Not to be used directly. Only to be used as a backing store for config.Store

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) 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() ([]byte, 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

func (ds *DatabaseStore) Set(newCfg *model.Config) error

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. Not to be used directly. Only to be used as a backing store for config.Store

func NewFileStore

func NewFileStore(path string) (fs *FileStore, err error)

NewFileStore creates a new instance of a config store backed by the given file path.

func (*FileStore) Close

func (fs *FileStore) Close() error

Close cleans up resources associated with the store.

func (*FileStore) GetFile

func (fs *FileStore) GetFile(name string) ([]byte, error)

GetFile fetches the contents of a previously persisted configuration file.

func (*FileStore) GetFilePath added in v5.26.0

func (fs *FileStore) GetFilePath(name string) string

GetFilePath returns the resolved path of a configuration file. The file may not necessarily exist.

func (*FileStore) HasFile

func (fs *FileStore) HasFile(name string) (bool, error)

HasFile returns true if the given file was previously persisted.

func (*FileStore) Load

func (fs *FileStore) Load() ([]byte, error)

Load updates the current configuration from the backing store.

func (*FileStore) RemoveFile

func (fs *FileStore) RemoveFile(name string) error

RemoveFile removes a previously persisted configuration file.

func (*FileStore) Set

func (fs *FileStore) Set(newCfg *model.Config) error

Set replaces the current configuration in its entirety and updates the backing store.

func (*FileStore) SetFile

func (fs *FileStore) SetFile(name string, data []byte) error

SetFile sets or replaces the contents of a configuration file.

func (*FileStore) String

func (fs *FileStore) String() string

String returns the path to the file backing the config.

type Listener

type Listener func(oldCfg, newCfg *model.Config)

Listener is a callback function invoked when the configuration changes.

type LogConfigSrc added in v5.26.0

type LogConfigSrc interface {
	// Get fetches the current, cached configuration.
	Get() mlog.LogTargetCfg

	// Set updates the dsn specifying the source and reloads
	Set(dsn string, configStore *Store) (err error)

	// AddListener adds a callback function to invoke when the configuration is modified.
	AddListener(listener LogSrcListener) string

	// RemoveListener removes a callback function using an id returned from AddListener.
	RemoveListener(id string)

	// Close cleans up resources.
	Close() error
}

LogConfigSrc abstracts the Advanced Logging configuration so that implementations can fetch from file, database, etc.

func NewLogConfigSrc added in v5.26.0

func NewLogConfigSrc(dsn string, configStore *Store) (LogConfigSrc, error)

NewLogConfigSrc creates an advanced logging configuration source, backed by a file, JSON string, or database.

type LogSrcListener added in v5.26.0

type LogSrcListener func(old, new mlog.LogTargetCfg)

type MemoryStore added in v5.20.0

type MemoryStore struct {
	// contains filtered or unexported fields
}

MemoryStore implements the Store interface. It is meant primarily for testing. Not to be used directly. Only to be used as a backing store for config.Store

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.

func (*MemoryStore) Close added in v5.20.0

func (ms *MemoryStore) Close() error

Close does nothing for a memory store.

func (*MemoryStore) GetFile added in v5.20.0

func (ms *MemoryStore) GetFile(name string) ([]byte, error)

GetFile fetches the contents of a previously persisted configuration file.

func (*MemoryStore) HasFile added in v5.20.0

func (ms *MemoryStore) HasFile(name string) (bool, error)

HasFile returns true if the given file was previously persisted.

func (*MemoryStore) Load added in v5.20.0

func (ms *MemoryStore) Load() ([]byte, error)

Load applies environment overrides to the default config as if a re-load had occurred.

func (*MemoryStore) RemoveFile added in v5.20.0

func (ms *MemoryStore) RemoveFile(name string) error

RemoveFile removes a previously persisted configuration file.

func (*MemoryStore) Set added in v5.20.0

func (ms *MemoryStore) Set(newCfg *model.Config) error

Set replaces the current configuration in its entirety.

func (*MemoryStore) SetFile added in v5.20.0

func (ms *MemoryStore) SetFile(name string, data []byte) error

SetFile sets or replaces the contents of a configuration file.

func (*MemoryStore) String added in v5.20.0

func (ms *MemoryStore) String() string

String returns a hard-coded description, as there is no 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 struct {
	// contains filtered or unexported fields
}

Store is the higher level object that handles storing and retrieval of config data. To do so it relies on a variety of backing stores (e.g. file, database, memory).

func NewStoreFromBacking added in v5.30.0

func NewStoreFromBacking(backingStore BackingStore, customDefaults *model.Config, readOnly bool) (*Store, error)

NewStoreFromBacking creates and returns a new config store given a backing store.

func NewStoreFromDSN added in v5.36.0

func NewStoreFromDSN(dsn string, readOnly bool, customDefaults *model.Config) (*Store, error)

NewStoreFromDSN creates and returns a new config store backed by either a database or file store depending on the value of the given data source name string.

func NewTestMemoryStore added in v5.30.0

func NewTestMemoryStore() *Store

NewTestMemoryStore returns a new config store backed by a memory store to be used for testing purposes.

func (*Store) AddListener

func (e *Store) AddListener(listener Listener) string

AddListener adds a callback function to invoke when the configuration is modified.

func (*Store) Close

func (s *Store) Close() error

Close cleans up resources associated with the store.

func (*Store) Get

func (s *Store) Get() *model.Config

Get fetches the current, cached configuration.

func (*Store) GetEnvironmentOverrides

func (s *Store) GetEnvironmentOverrides() map[string]interface{}

GetEnvironmentOverrides fetches the configuration fields overridden by environment variables.

func (*Store) GetEnvironmentOverridesWithFilter added in v5.35.0

func (s *Store) GetEnvironmentOverridesWithFilter(filter func(reflect.StructField) bool) map[string]interface{}

GetEnvironmentOverridesWithFilter fetches the configuration fields overridden by environment variables. If filter is not nil and returns false for a struct field, that field will be omitted.

func (*Store) GetFile

func (s *Store) GetFile(name string) ([]byte, error)

GetFile fetches the contents of a previously persisted configuration file. If no such file exists, an empty byte array will be returned without error.

func (*Store) GetNoEnv added in v5.30.0

func (s *Store) GetNoEnv() *model.Config

GetNoEnv fetches the current cached configuration without environment variable overrides.

func (*Store) HasFile

func (s *Store) HasFile(name string) (bool, error)

HasFile returns true if the given file was previously persisted.

func (*Store) IsReadOnly added in v5.31.1

func (s *Store) IsReadOnly() bool

IsReadOnly returns whether or not the store is read-only.

func (*Store) Load

func (s *Store) Load() error

Load updates the current configuration from the backing store, possibly initializing.

func (*Store) RemoveEnvironmentOverrides added in v5.20.0

func (s *Store) RemoveEnvironmentOverrides(cfg *model.Config) *model.Config

RemoveEnvironmentOverrides returns a new config without the environment overrides.

func (*Store) RemoveFile

func (s *Store) RemoveFile(name string) error

RemoveFile removes a previously persisted configuration file.

func (*Store) RemoveListener

func (e *Store) RemoveListener(id string)

RemoveListener removes a callback function using an id returned from AddListener.

func (*Store) Set

func (s *Store) Set(newCfg *model.Config) (*model.Config, *model.Config, error)

Set replaces the current configuration in its entirety and updates the backing store. It returns both old and new versions of the config.

func (*Store) SetFile

func (s *Store) SetFile(name string, data []byte) error

SetFile sets or replaces the contents of a configuration file.

func (*Store) SetReadOnlyFF added in v5.36.0

func (s *Store) SetReadOnlyFF(readOnly bool)

SetReadOnlyFF sets whether feature flags should be written out to config or treated as read-only.

func (*Store) String

func (s *Store) String() string

String describes the backing store for the config.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL