config

package
v0.2.0-beta1 Latest Latest
Warning

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

Go to latest
Published: Jun 4, 2023 License: GPL-3.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultNodeDataDir          string = "./data"
	DefaultNodeListenPeerAddr   string = "127.0.0.1:5290"
	DefaultNodeListenClientAddr string = "127.0.0.1:5230"
	DefaultNodeMaxSnapshots     uint32 = 5
)
View Source
const (
	DefaultStoreBackend string = string(StoreBackendNuts)

	DefaultStoreNutsNodeNum    int64  = 1
	DefaultStoreNutsSync       bool   = false
	DefaultStoreNutsStrictMode bool   = false
	DefaultStoreNutsDataDir    string = "./data/nuts"
)
View Source
const (
	DefaultLogLogger    string = string(LogLoggerZap)
	DefaultLogOutputDir string = "./data/logs"
)
View Source
const (
	DefaultClusterState string = string(ClusterStateNew)
)

Variables

This section is empty.

Functions

func EncodeClusterBootstraps

func EncodeClusterBootstraps(s []ClusterBootstrap) string

func Validate

func Validate()

Types

type Auth

type Auth struct {
	Token string `toml:"token"`
}

type Cluster

type Cluster struct {
	// State enum: new, existing
	State     EnumClusterState   `toml:"state"`
	Token     string             `toml:"token"`
	Bootstrap []ClusterBootstrap `toml:"bootstrap"`
}

type ClusterBootstrap

type ClusterBootstrap struct {
	Name     string `toml:"name"`
	PeerAddr string `toml:"peer-addr"`
}

func DecodeClusterBootstraps

func DecodeClusterBootstraps(s string) ([]ClusterBootstrap, error)

type Config

type Config struct {
	Node     `toml:"node"`
	Store    `toml:"store"`
	Cluster  `toml:"cluster"`
	Security `toml:"security"`
	Log      `toml:"log"`
	Misc     `toml:"misc"`
	Auth     `toml:"auth"`
	// contains filtered or unexported fields
}

func ReadFromArgs

func ReadFromArgs(args ...string) (*Config, error)

func ReadFromPath

func ReadFromPath(path string) (*Config, error)

func (Config) ConfigFile

func (r Config) ConfigFile() string

func (*Config) Env

func (c *Config) Env() ServerEnv

func (Config) FirstRun

func (r Config) FirstRun() bool

type EnumClusterState

type EnumClusterState string
const (
	ClusterStateNew      EnumClusterState = "new"
	ClusterStateExisting EnumClusterState = "existing"
)

func (EnumClusterState) Valid

func (s EnumClusterState) Valid() error

type EnumLogLogger

type EnumLogLogger string
const (
	LogLoggerZap      EnumLogLogger = "zap"
	LogLoggerInternal EnumLogLogger = "internal"
)

func (EnumLogLogger) Valid

func (l EnumLogLogger) Valid() error

type EnumStoreBackend

type EnumStoreBackend string
const (
	StoreBackendNuts EnumStoreBackend = "nuts"
)

func (EnumStoreBackend) Valid

func (b EnumStoreBackend) Valid() error

type FilePath

type FilePath string

func (FilePath) Valid

func (p FilePath) Valid() error

type Log

type Log struct {
	Debug bool `toml:"debug"`
	// Logger enum: zap, internal
	Logger    EnumLogLogger `toml:"logger"`
	OutputDir string        `toml:"output-dir"`
}

type Misc

type Misc struct {
	PPROF bool `toml:"pprof"`
}

type Node

type Node struct {
	ID               string `toml:"id"`
	DataDir          string `toml:"data-dir"`
	ListenPeerAddr   string `toml:"listen-peer-addr"`
	ListenClientAddr string `toml:"listen-client-addr"`
	MaxSnapshots     uint32 `toml:"max-snapshots"`
}

type Security

type Security struct {
	EnableTLS     bool `toml:"enable-tls"`
	EnablePeerTLS bool `toml:"enable-peer-tls"`
	AutoTLS       bool `toml:"auto-tls"`
	PeerAutoTLS   bool `toml:"peer-auto-tls"`

	TLSCert     string `toml:"tls-cert"`
	TLSKey      string `toml:"tls-key"`
	PeerTLSCert string `toml:"peer-tls-cert"`
	PeerTLSKey  string `toml:"peer-tls-key"`
}

type ServerEnv

type ServerEnv interface {
	FirstRun() bool
	ConfigFile() string
}

type Store

type Store struct {
	Backend EnumStoreBackend
	Nuts    StoreNuts
}

type StoreNuts

type StoreNuts struct {
	NodeNum    int64 `toml:"node-num"`
	Sync       bool  `toml:"sync"`
	StrictMode bool  `toml:"strict-mode"`
}

type Validator

type Validator interface {
	Valid() error
}

Jump to

Keyboard shortcuts

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