config

package
v1.2.1 Latest Latest
Warning

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

Go to latest
Published: Oct 29, 2018 License: AGPL-3.0 Imports: 26 Imported by: 518

Documentation

Overview

Package configs provides tools for managing configurations

Index

Constants

This section is empty.

Variables

View Source
var (
	CaddyTemplate = `` /* 2102-byte string literal not displayed */

	DefaultCaddyfile = filepath.Join(ApplicationDataDir(), "Caddyfile")
	DefaultCaUrl     = "https://acme-v01.api.letsencrypt.org/directory"
)
View Source
var (
	PydioConfigDir  = ApplicationDataDir()
	PydioConfigFile = "pydio.json"

	VersionsStore file2.VersionsStore
)
View Source
var SampleConfig = `{
    "ports":{
        "nats": 4222
    },
    "frontend":{
        "secureHeaders":{
			"X-XSS-Protection": "1; mode=block"
		},
        "plugin": {
            "editor.libreoffice": {
                "LIBREOFFICE_HOST": "localhost",
                "LIBREOFFICE_PORT": "9980",
                "LIBREOFFICE_SSL": true
            }
        }
    },
    "services":{
        "consul": {
            "data_dir": "/tmp/consul",
            "server": true,
            "bootstrap": true
        },
        "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": "smtp",
				"host": "my.smtp.server",
				"password": "user",
				"port": 465,
				"user": "name"
			}
		},
        "pydio.grpc.role":{
            "dsn": "default"
        },
        "pydio.grpc.workspace":{
            "dsn": "default"
        },
        "pydio.grpc.acl":{
            "dsn": "default"
        },
        "pydio.grpc.auth":{
            "dsn": "default",
            "dex" : {
                "issuer": "http://127.0.0.1:5556/dex",
                "web"   : {
                    "http": "0.0.0.0:5556"
                },
                "frontend" : {
                    "Dir" : "idm/auth/web"
                },
                "logger" : {
                    "level" : "debug",
                    "format": "text"
                },
				"expiry": {
					"idTokens": "10m"
				},
                "oauth2" : {
                    "responseTypes": ["code", "token", "id_token"]
                },
                "staticClients" : [
                    {
                        "id": "example-app",
                        "redirectURIs" : ["http://127.0.0.1:5555/callback"],
                        "name" : "Example App",
                        "secret" : "ZXhhbXBsZS1hcHAtc2VjcmV0"
                    }
                ],
                "connectors": [
                    {
                        "type": "pydio",
                        "id"  : "pydio",
                        "name": "Pydio Aggregation Connector",
                        "config": {
                            "pydioconnectors": [
                                {
                                    "type": "pydio-api",
                                    "name": "pydioapi",
                                    "id"  : 1
                                }
                            ]
                        }
                    }
                ]
            }
        },
        "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
        },
		"pydio.grpc.policy": {
			"dsn": "databaseParseTime"
		},
        "pydio.grpc.data-key": {
            "dsn": "default"
        },
        "pydio.grpc.user-key": {
            "dsn": "default"
        },
        "pydio.grpc.changes": {
            "dsn": "default"
        },
		"pydio.grpc.update" : {
			"channel": "` + common.UpdateDefaultChannel + `",
			"publicKey": "` + common.UpdateDefaultPublicKey + `",
			"updateUrl": "` + common.UpdateDefaultServerUrl + `"
		},
		"pydio.grpc.user-meta": {
			"dsn": "default"
		},
        "pydio.grpc.tasks": {
            "fork": true
        }
    }
}`

Functions

func ApplicationDataDir

func ApplicationDataDir() string

ApplicationDataDir creates a local file to store pydio system data

func ConfigureCaddyfile

func ConfigureCaddyfile(t string, v interface{}) error

func Del

func Del(path ...string)

func Get

func Get(path ...string) reader.Value

func GetDatabase

func GetDatabase(name string) (string, string)

GetDatabase retrieves the database data from the config

func GetDefaultDatabase

func GetDefaultDatabase() (string, string)

GetDefaultDatabase returns the information for the default database

func GetJsonPath added in v1.0.1

func GetJsonPath() string

GetJsonPath build path for json that contain the local config

func InitCaddyFile

func InitCaddyFile(tpl string, tplData interface{}) error

InitCaddyFile creates a caddy LoaderFunc with the correct contents

func Save added in v1.0.1

func Save(ctxUser string, ctxMessage string) error

SaveConfigs sends configuration to a local file.

func ServiceDataDir

func ServiceDataDir(serviceName string) (string, error)

ServiceDataDir returns the applicationdir/services/serviceName and creates it if it does not exists

func Set

func Set(val interface{}, path ...string)

func UpgradeConfigsIfRequired added in v1.2.1

func UpgradeConfigsIfRequired(config *Config) (bool, error)

UpgradeConfigsIfRequired applies all registered configMigration functions Returns true if there was a change and save is required, error if something nasty happened

Types

type CaddyTemplateConf

type CaddyTemplateConf struct {
	// Main site URL
	Bind *url.URL

	// Micro REST API dispatcher
	Micro *url.URL
	// Open ID Connect Service
	Dex *url.URL
	// S3 Gateway
	Gateway *url.URL
	// WebSocket server
	WebSocket *url.URL
	// Plugins loader for frontend
	FrontPlugins *url.URL
	// WebDAV server
	DAV *url.URL
	// WOPI server
	WOPI *url.URL
	// Collabora definition from plugins
	Collabora *url.URL

	// Dedicated log file for caddy errors to ease debugging
	Logs string
	// Caddy compliant TLS string, either "self_signed" or paths to "cert key"
	TLS string
	// If TLS is enabled, also enable auto-redirect from http to https
	HttpRedirectSource *url.URL
	HttpRedirectTarget *url.URL
}

CaddyTemplateConf feeds Caddy template file with data

func LoadCaddyConf

func LoadCaddyConf() (*CaddyTemplateConf, error)

LoadCaddyConf reads the pydio config and fill a CaddyTemplateConf object ready to be executed by template

type Config

type Config struct {
	config.Config
}

Config wrapper around micro Config

func Default

func Default() *Config

Default Config with initialisation

func (*Config) Unmarshal

func (c *Config) Unmarshal(val interface{}) error

func (*Config) UnmarshalKey

func (c *Config) UnmarshalKey(key string, val interface{}) error

type Map

type Map map[string]interface{}

Map structure to store configuration

func NewMap

func NewMap() *Map

NewMap variable

func (Map) Bool

func (c Map) Bool(key string, def ...bool) bool

func (Map) Database

func (c Map) Database(k string) (string, string)

Database returns the driver and dsn in that order for the given key

func (Map) Del

func (c Map) Del(key string) error

Del deletes the values associated with key.

func (Map) Get

func (c Map) Get(key string) interface{}

Get retrieves the first value associated with the given key. If there are no values associated with the key, Get returns the empty string. To access multiple values, use the map directly.

func (Map) Int

func (c Map) Int(key string, def ...int) int

Int retrieves the value at the given key if it exists and performs best effort to cast it as an int. If no such key exists or if it cannot be cast as an int, it returns the default value if defined and 0 otherwise.

func (Map) Int64

func (c Map) Int64(key string, defaultValue ...int64) int64

Int64 retrieves the value at the given key if it exists and performs best effort to cast it as an int64. If no such key exists or if it cannot be cast as an int64, it returns the default value if defined and 0 otherwise.

func (Map) Map

func (c Map) Map(key string) map[string]interface{}

func (Map) Set

func (c Map) Set(key string, value interface{}) error

Set sets the key to value. It replaces any existing values.

func (Map) String

func (c Map) String(key string) string

func (Map) StringArray

func (c Map) StringArray(key string) []string

func (Map) StringMap

func (c Map) StringMap(key string) map[string]string

type Value

type Value interface {
	Bool(def bool) bool
	Int(def int) int
	Int64(def int64) int64
	String(def string) string
	Float64(def float64) float64
	Duration(def time.Duration) time.Duration
	StringSlice(def []string) []string
	StringMap(def map[string]string) map[string]string
	Scan(val interface{}) error
	Bytes() []byte
}

Value Represent a value retrieved from the values loaded

type Watcher

type Watcher interface {
	Next() (*micro.ChangeSet, error)
	Stop()
}

Directories

Path Synopsis
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.
Package source implements a configuration client backed by a config server
Package source implements a configuration client backed by a config server

Jump to

Keyboard shortcuts

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