config

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 15, 2018 License: AGPL-3.0 Imports: 26 Imported by: 0

Documentation

Overview

Package configs provides tools for managing configurations

Index

Constants

This section is empty.

Variables

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

	DefaultCaddyfile = filepath.Join(ApplicationDataDir(), "Caddyfile")
)
View Source
var (
	PydioConfigDir  = ApplicationDataDir()
	PydioConfigFile = "pydio.json"
)
View Source
var SampleConfig = `{
    "ports":{
        "nats": 4222
    },
    "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"
		}
    }
}`

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 FrontClearCache

func FrontClearCache(rootFolder string)

FrontWriteBootstrap clears the frontend caches

func FrontTouchAdditionalFiles

func FrontTouchAdditionalFiles(rootFolder string)

FrontWriteBootstrap touches additional files in frontend boot.conf folder to avoid triggering an install process in the frontend

func FrontWriteBootstrap

func FrontWriteBootstrap(rootFolder string, conf *FrontBootstrapConf) error

FrontWriteBootstrap takes a config, executes the template and save to the front

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 GetFile

func GetFile() string

GetFile that contain the local config

func InitCaddyFile

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

InitCaddyFile creates a caddy LoaderFunc with the correct contents

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)

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

	// FPM connection, either an URL or a socket file path
	Fpm string

	// Root of the PHP Frontend
	Root string

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

type FrontBootstrapConf struct {
	ProxyUrl         *url.URL
	WebSocketUrl     *url.URL
	DexID            string
	DexSecret        string
	DisableSslVerify string
}

Data passed to the bootstrapConf template

func FrontBootstrapFromConfig

func FrontBootstrapFromConfig(proxyUrl string) (*FrontBootstrapConf, error)

FrontBootstrapFromConfig reads pydio config to generate the associated bootstrap.conf for frontend.

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