Documentation ¶
Overview ¶
Package config provides tools for managing configurations
Index ¶
- Constants
- Variables
- func ApplicationWorkingDir(dirType ...ApplicationDirType) string
- func DefaultBindOverrideToFlags() (flags []string)
- func Del(path ...string)
- func DelSecret(uuid string)
- func EnvOverrideDefaultBind() bool
- func ExposedConfigsForService(serviceName string) common.XMLSerializableForm
- func FactorizeMinioServers(existingConfigs map[string]*object.MinioConfig, newSource *object.DataSource, ...) (config *object.MinioConfig, e error)
- func Get(path ...string) configx.Values
- func GetDatabase(key string) (string, string)
- func GetDefaultSiteURL(sites ...*install.ProxyConfig) string
- func GetPublicBaseUri() string
- func GetSecret(uuid string) configx.Values
- func GetSitesAllowedURLs() map[string]*url.URL
- func GetSourceInfoByName(dsName string) (*object.DataSource, error)
- func GetTLSClientConfig(t string) *tls.Config
- func GetTLSServerConfig(t string) *tls.Config
- func GetUpdatesConfigs() configx.Values
- func IndexServiceTableNames(dsName string) map[string]string
- func IsRestEditable(path string) bool
- func ListMinioConfigsFromConfig() map[string]*object.MinioConfig
- func ListSourcesFromConfig() map[string]*object.DataSource
- func LoadSites(configOnly ...bool) ([]*install.ProxyConfig, error)
- func MinioConfigNamesToConfig(sources map[string]*object.MinioConfig)
- func NewConfigStore(values Store) (filex.VersionsStore, error)
- func NewKeyForSecret() string
- func Register(store Store)
- func RegisterExposedConfigs(serviceName string, form common.XMLSerializableForm)
- func RegisterLocal(store Store)
- func RegisterRestEditablePath(segments ...string)
- func RegisterVault(store Store)
- func RegisterVaultKey(s ...string)
- func RegisterVersionStore(store filex.VersionsStore)
- func ResetTlsConfigs()
- func RuntimeIsLocal() bool
- func RuntimeIsRemote() bool
- func Save(ctxUser string, ctxMessage string) error
- func SaveSites(sites []*install.ProxyConfig, user, msg string) error
- func ServiceDataDir(serviceName string) (string, error)
- func Set(val interface{}, path ...string) error
- func SetDatabase(key string, driver string, dsn string) error
- func SetSecret(uuid string, val string)
- func SourceNamesFiltered(names []string) []string
- func SourceNamesForDataServices(dataSrvType string) []string
- func SourceNamesFromDataConfigs(values configx.Values) []string
- func SourceNamesToConfig(sources map[string]*object.DataSource)
- func TouchSourceNamesForDataServices(dataSrvType string)
- func UnusedMinioServers(minios map[string]*object.MinioConfig, sources map[string]*object.DataSource) []string
- func Vault() configx.Entrypoint
- func Watch(path ...string) (configx.Receiver, error)
- type ApplicationDirType
- type Store
Constants ¶
const DefaultOAuthClientID = "cells-frontend"
DefaultOAuthClientID set the default client id to use
Variables ¶
var ( DefaultCaUrl = "https://acme-v02.api.letsencrypt.org/directory" DefaultCaStagingUrl = "https://acme-staging-v02.api.letsencrypt.org/directory" )
var ( // PydioConfigDir is the default location for the configuration PydioConfigDir = ApplicationWorkingDir() // PydioConfigFile is the default file name for the configuration PydioConfigFile = "pydio.json" // VersionsStore is the default Version Store for the configuration VersionsStore filex.VersionsStore // KeyFrontPluginEnabled is the frontend config to enable/disable plugins KeyFrontPluginEnabled = "PYDIO_PLUGIN_ENABLED" )
var ( DefaultBindingSite = &install.ProxyConfig{ Binds: []string{"0.0.0.0:8080"}, TLSConfig: &install.ProxyConfig_SelfSigned{SelfSigned: &install.TLSSelfSigned{}}, SSLRedirect: false, } )
var SampleConfig = `{ "version": "` + common.Version().String() + `", "defaults": { "update": { "publicKey": "` + common.UpdateDefaultPublicKey + `", "updateUrl": "` + common.UpdateDefaultServerUrl + `" } }, "ports":{ "nats": 4222 }, "frontend":{ "secureHeaders":{ "X-XSS-Protection": "1; mode=block" }, "plugin": { "editor.libreoffice": { "LIBREOFFICE_HOST": "localhost", "LIBREOFFICE_PORT": "9980", "LIBREOFFICE_SSL": true } } }, "services":{ "pydio.grpc.config":{ "dsn": "default" }, "pydio.grpc.user":{ "dsn": "default", "tables":{ "tree": "idm_user_tree", "nodes":"idm_user_nodes", "roles":"idm_user_roles", "attributes":"idm_user_attributes" } }, "pydio.grpc.mailer": { "queue": { "@value": "boltdb" }, "sender": { "@value": "disabled" } }, "pydio.grpc.role":{ "dsn": "default" }, "pydio.grpc.workspace":{ "dsn": "default" }, "pydio.grpc.acl":{ "dsn": "default" }, "pydio.grpc.tree":{ "dsn":"default" }, "pydio.grpc.meta":{ "dsn":"default" }, "pydio.thumbs_store":{ "datasource" : "default", "bucket" : "thumbs" }, "pydio.docstore-binaries":{ "datasource" : "default", "bucket" : "binaries" }, "pydio.versions-store":{ "datasource" : "default", "bucket" : "versions" }, "pydio.grpc.search": { "indexContent": false, "basenameAnalyzer": "standard", "contentAnalyzer": "en" }, "pydio.grpc.policy": { "dsn": "databaseParseTime" }, "pydio.grpc.data-key": { "dsn": "default" }, "pydio.grpc.user-key": { "dsn": "default" }, "pydio.grpc.update" : { "channel": "` + common.UpdateDefaultChannel + `" }, "pydio.grpc.user-meta": { "dsn": "default" }, "pydio.grpc.tasks": { "fork": true }, "pydio.web.oauth":{ "connectors": [ { "type": "pydio", "id" : "pydio", "name": "Pydio Cells" } ], "cors": { "public": { "allowedOrigins": "*" } }, "staticClients": [ { "client_id": "` + DefaultOAuthClientID + `", "client_name": "CellsFrontend Application", "revokeRefreshTokenAfterInactivity": "2h", "grant_types": [ "authorization_code", "refresh_token" ], "redirect_uris": [ "#default_bind#/auth/callback" ], "post_logout_redirect_uris": [ "#default_bind#/auth/logout" ], "response_types": ["code", "token", "id_token"], "scope": "openid email profile pydio offline" }, { "client_id": "cells-sync", "client_name": "CellsSync Application", "grant_types": [ "authorization_code", "refresh_token" ], "redirect_uris": [ "http://localhost:3000/servers/callback", "http://localhost:[3636-3666]/servers/callback" ], "response_types": ["code", "token", "id_token"], "scope": "openid email profile pydio offline" }, { "client_id": "cells-client", "client_name": "Cells Client CLI Tool", "grant_types": [ "authorization_code", "refresh_token" ], "redirect_uris": [ "http://localhost:3000/servers/callback", "#binds...#/oauth2/oob" ], "response_types": [ "code", "token", "id_token" ], "scope": "openid email profile pydio offline" }, { "client_id": "cells-mobile", "client_name": "Mobile Applications", "grant_types": [ "authorization_code", "refresh_token" ], "redirect_uris": [ "cellsauth://callback" ], "response_types": [ "code", "token", "id_token" ], "scope": "openid email profile pydio offline" } ] } } }`
SampleConfig is the default config used during the first install
Functions ¶
func ApplicationWorkingDir ¶
func ApplicationWorkingDir(dirType ...ApplicationDirType) string
ApplicationWorkingDir creates a local file to store pydio system data
func DefaultBindOverrideToFlags ¶
func DefaultBindOverrideToFlags() (flags []string)
func DelSecret ¶ added in v1.2.2
func DelSecret(uuid string)
DelSecret deletes the value of a uuid in the vault
func EnvOverrideDefaultBind ¶
func EnvOverrideDefaultBind() bool
func ExposedConfigsForService ¶ added in v1.2.2
func ExposedConfigsForService(serviceName string) common.XMLSerializableForm
ExposedConfigsForService returns exposed configs for service
func FactorizeMinioServers ¶ added in v1.2.2
func FactorizeMinioServers(existingConfigs map[string]*object.MinioConfig, newSource *object.DataSource, update bool) (config *object.MinioConfig, e error)
FactorizeMinioServers tries to find exisiting MinioConfig that can be directly reused by the new source, or creates a new one
func GetDatabase ¶
GetDatabase retrieves the database data from the config
func GetDefaultSiteURL ¶
func GetDefaultSiteURL(sites ...*install.ProxyConfig) string
GetDefaultSiteURL returns the first available bindURL of all available sites
func GetPublicBaseUri ¶
func GetPublicBaseUri() string
GetPublicBaseUri returns the default public uri
func GetSitesAllowedURLs ¶
GetSitesAllowedHostnames returns a map of hostname => url for all sites. TODO : this function could switch to a list of specific authorized hostnames
func GetSourceInfoByName ¶
func GetSourceInfoByName(dsName string) (*object.DataSource, error)
func GetTLSClientConfig ¶ added in v1.2.2
GetTLSClientConfig returns the configuration ssl for a server handler.
func GetTLSServerConfig ¶ added in v1.2.2
GetTLSServerConfig returns the configuration ssl for a server handler
func GetUpdatesConfigs ¶
GetUpdatesConfigs gather update configs from correct location
func IndexServiceTableNames ¶ added in v1.2.2
IndexServiceTableNames
func IsRestEditable ¶
IsRestEditable checks if the given path is allowed to be read/written via the REST API.
func ListMinioConfigsFromConfig ¶ added in v1.2.2
func ListMinioConfigsFromConfig() map[string]*object.MinioConfig
ListMinioConfigsFromConfig scans configs for objects services configs
func ListSourcesFromConfig ¶ added in v1.2.2
func ListSourcesFromConfig() map[string]*object.DataSource
ListSourcesFromConfig scans configs for sync services configs
func LoadSites ¶
func LoadSites(configOnly ...bool) ([]*install.ProxyConfig, error)
LoadSites returns all sites defined by order of preference : - ENV VARS - YAML CONFIG - INTERNAL CONFIG - If none is found, returns a default value If configOnly is set to true, will only return the ones saved in configs
func MinioConfigNamesToConfig ¶ added in v1.2.2
func MinioConfigNamesToConfig(sources map[string]*object.MinioConfig)
MinioConfigNamesToConfig saves objects sources to config
func NewConfigStore ¶
func NewConfigStore(values Store) (filex.VersionsStore, error)
func NewKeyForSecret ¶ added in v1.2.2
func NewKeyForSecret() string
NewKeyForSecret creates a new random key
func RegisterExposedConfigs ¶ added in v1.2.2
func RegisterExposedConfigs(serviceName string, form common.XMLSerializableForm)
RegisterExposedConfigs let services register specific forms for configs editions Used by discovery service
func RegisterRestEditablePath ¶
func RegisterRestEditablePath(segments ...string)
RegisterRestEditablePath registers a config path that can be exposed and modified via the REST API
func RegisterVaultKey ¶ added in v1.2.2
func RegisterVaultKey(s ...string)
RegisterVaultKey adds a key to the configuration so that the value associated with the key is swapped to an encrypted value
func RegisterVersionStore ¶
func RegisterVersionStore(store filex.VersionsStore)
RegisterVersionStore sets the default version store
func ResetTlsConfigs ¶
func ResetTlsConfigs()
func RuntimeIsLocal ¶
func RuntimeIsLocal() bool
RuntimeIsLocal check if the environment runtime config is generated locally
func RuntimeIsRemote ¶
func RuntimeIsRemote() bool
RuntimeIsRemote check if the environment runtime config is a remote server
func SaveSites ¶
func SaveSites(sites []*install.ProxyConfig, user, msg string) error
SaveSites saves a list of sites inside configuration
func ServiceDataDir ¶
ServiceDataDir returns the applicationdir/services/serviceName and creates it if it does not exists
func SourceNamesFiltered ¶ added in v1.2.4
SourceNamesForDataServices excludes the timestamp key from a slice of source names
func SourceNamesForDataServices ¶ added in v1.2.4
SourceNamesForDataServices list sourceNames from the config, excluding the timestamp key
func SourceNamesFromDataConfigs ¶ added in v1.2.4
SourceNamesFromDataConfigs list sourceNames from the config, excluding the timestamp key
func SourceNamesToConfig ¶ added in v1.2.2
func SourceNamesToConfig(sources map[string]*object.DataSource)
SourceNamesToConfig saves index and sync sources to configs
func TouchSourceNamesForDataServices ¶ added in v1.2.4
func TouchSourceNamesForDataServices(dataSrvType string)
TouchSourceNamesForDataServices update the timestamp set with the source list
func UnusedMinioServers ¶ added in v1.2.2
func UnusedMinioServers(minios map[string]*object.MinioConfig, sources map[string]*object.DataSource) []string
UnusedMinioServers searches for existing minio configs that are not used anywhere in datasources
Types ¶
type ApplicationDirType ¶
type ApplicationDirType int
const ( ApplicationDirData ApplicationDirType = iota ApplicationDirLogs ApplicationDirServices )
type Store ¶
type Store interface { configx.Entrypoint configx.Watcher // Save with context Save(string, string) error // Should we not do it in a function ? }
Store defines the functionality a config must provide
func New ¶
func New(store configx.Entrypoint) Store
New creates a configuration provider with in-memory access
func NewVersionStore ¶
func NewVersionStore(vs filex.VersionsStore, store Store) Store
NewVersionStore based on a file Version Store and a store
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
envvar
Package envvar implements Pydio specific interface for dynamic configurations that are backed by OS environment variables.
|
Package envvar implements Pydio specific interface for dynamic configurations that are backed by OS environment variables. |
remote
Package source implements a configuration client backed by a config server
|
Package source implements a configuration client backed by a config server |