config

package
v0.3.0-rc.2 Latest Latest
Warning

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

Go to latest
Published: Dec 2, 2021 License: MPL-2.0 Imports: 9 Imported by: 2

Documentation

Index

Constants

View Source
const (
	NoAuthProvider          AuthProvider            = "none"
	BasicAuthProvider       AuthProvider            = "basic"
	RedisQueueProvider      QueueProvider           = "redis"
	DefaultStrategyProvider StrategyProvider        = "default"
	DefaultSignatureHeader  SignatureHeaderProvider = "X-Convoy-Signature"
)
View Source
const (
	DevelopmentEnvironment string = "development"
)

Variables

This section is empty.

Functions

func LoadConfig

func LoadConfig(p string) error

Types

type APIKeyAuth

type APIKeyAuth struct {
	APIKey string `json:"api_key"`
	Role   Role   `json:"role"`
}

type AuthConfiguration

type AuthConfiguration struct {
	RequireAuth bool         `json:"require_auth"`
	Type        AuthProvider `json:"type"`
	Basic       Basic
	File        FileRealmOption `json:"file"`
}

type AuthProvider

type AuthProvider string

type Basic added in v0.1.2

type Basic struct {
	Username string `json:"username"`
	Password string `json:"password"`
}

type BasicAuth

type BasicAuth struct {
	Username string `json:"username"`
	Password string `json:"password"`
	Role     Role   `json:"role"`
}

type Configuration

type Configuration struct {
	Auth              AuthConfiguration     `json:"auth,omitempty"`
	UIAuthorizedUsers map[string]string     `json:"-"`
	Database          DatabaseConfiguration `json:"database"`
	Sentry            SentryConfiguration   `json:"sentry"`
	Queue             QueueConfiguration    `json:"queue"`
	Server            ServerConfiguration   `json:"server"`
	GroupConfig       GroupConfig           `json:"group"`
	SMTP              SMTPConfiguration     `json:"smtp"`
	Environment       string                `json:"env"`
	MultipleTenants   bool                  `json:"multiple_tenants"`
}

func Get

func Get() (Configuration, error)

Get fetches the application configuration. LoadConfig must have been called previously for this to work. Use this when you need to get access to the config object at runtime

type DatabaseConfiguration

type DatabaseConfiguration struct {
	Dsn string `json:"dsn"`
}

type FileRealmOption

type FileRealmOption struct {
	Basic  []BasicAuth  `json:"basic"`
	APIKey []APIKeyAuth `json:"api_key"`
}

type GroupConfig

type GroupConfig struct {
	Strategy        StrategyConfiguration
	Signature       SignatureConfiguration
	DisableEndpoint bool
}

type QueueConfiguration

type QueueConfiguration struct {
	Type  QueueProvider `json:"type"`
	Redis struct {
		DSN string `json:"dsn"`
	} `json:"redis"`
}

type QueueProvider

type QueueProvider string

type Role added in v0.3.0

type Role = auth.Role

type SMTPConfiguration

type SMTPConfiguration struct {
	Provider string `json:"provider"`
	URL      string `json:"url"`
	Port     uint32 `json:"port"`
	Username string `json:"username"`
	Password string `json:"password"`
	From     string `json:"from"`
	ReplyTo  string `json:"reply-to"`
}

type SentryConfiguration

type SentryConfiguration struct {
	Dsn string `json:"dsn"`
}

type ServerConfiguration

type ServerConfiguration struct {
	HTTP struct {
		SSL         bool   `json:"ssl"`
		SSLCertFile string `json:"ssl_cert_file"`
		SSLKeyFile  string `json:"ssl_key_file"`
		Port        uint32 `json:"port"`
	} `json:"http"`
}

type SignatureConfiguration

type SignatureConfiguration struct {
	Header SignatureHeaderProvider `json:"header"`
	Hash   string                  `json:"hash"`
}

type SignatureHeaderProvider

type SignatureHeaderProvider string

func (SignatureHeaderProvider) String

func (s SignatureHeaderProvider) String() string

type StrategyConfiguration

type StrategyConfiguration struct {
	Type    StrategyProvider `json:"type"`
	Default struct {
		IntervalSeconds uint64 `json:"intervalSeconds"`
		RetryLimit      uint64 `json:"retryLimit"`
	} `json:"default"`
}

type StrategyProvider

type StrategyProvider string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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