config

package
v0.1.0-alpha.11 Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Basename = "labstore"

	DefaultStorageDataDir     = "./data"
	DefaultStorageObjectsDir  = "objects"
	DefaultStorageMetadataDir = "metadata"
	DefaultStorageKeysDir     = "./keys"
	DefaultMasterKeyFilename  = "master.key"

	DefaultAdminAddressHost   = "0.0.0.0"
	DefaultAdminAddressPort   = 6787
	DefaultAdminAuthAccessKey = "admin"

	DefaultIAMAddressHost    = "0.0.0.0"
	DefaultIAMAddressPort    = 6788
	DefaultIAMDBMaxOpenConns = 3
	DefaultIAMDBMaxIdleConns = 3
	DefaultIAMWriteChanCap   = 32

	DefaultIAMDBTimeoutMs         = 5000
	DefaultIAMDBReadCacheSizeKiB  = 65536
	DefaultIAMDBWriteCacheSizeKiB = 16384

	DefaultS3AddressHost   = "0.0.0.0"
	DefaultS3AddressPort   = 6789
	DefaultS3PagingMaxKeys = 1000
	DefaultS3IOBufferSize  = 256 * helper.KiB

	DefaultWebAddressHost = "0.0.0.0"
	DefaultWebAddressPort = 6790

	DefaultLogDir = "./logs"
)

Variables

View Source
var (
	DefaultAdminSecretKey        string = DefaultAdminAuthAccessKey
	DisplayDefaultAdminSecretKey bool   = false
)

Functions

func Load

func Load(rootCmd *cobra.Command)

Types

type AddressConfig

type AddressConfig struct {
	Host string `mapstructure:"host"`
	Port uint16 `mapstructure:"port"`
}

type AdminConfig

type AdminConfig struct {
	Address *AddressConfig `mapstructure:"address"`
	Auth    *AuthConfig    `mapstructure:"auth"`
}

func (*AdminConfig) Debug

func (config *AdminConfig) Debug()

type AppConfig

type AppConfig struct {
	Server *ServerConfig `mapstructure:"server"`
	Web    *WebConfig    `mapstructure:"web"`
	Log    *LogConfig    `mapstructure:"log"`
}
var App *AppConfig

func (*AppConfig) Debug

func (config *AppConfig) Debug()

type AuthConfig

type AuthConfig struct {
	AccessKey string `mapstructure:"access_key"`
	SecretKey string `mapstructure:"secret_key"`
}

type IAMConfig

type IAMConfig struct {
	Address *AddressConfig `mapstructure:"address"`
	DB      *IAMDBConfig   `mapstructure:"db"`
}

func (*IAMConfig) Debug

func (config *IAMConfig) Debug()

type IAMDBConfig

type IAMDBConfig struct {
	MaxOpenConns      int `mapstructure:"max_open_conns"`
	MaxIdleConns      int `mapstructure:"max_idle_conns"`
	WriteChanCap      int `mapstructure:"write_chan_cap"`
	TimeoutMs         int `mapstructure:"timeout_ms"`
	ReadCacheSizeKiB  int `mapstructure:"read_cache_size_kib"`
	WriteCacheSizeKiB int `mapstructure:"write_cache_size_kib"`
}

type IOConfig

type IOConfig struct {
	BufferSize int `mapstructure:"buffer_size"`
}

type LogConfig

type LogConfig struct {
	Dir string `mapstructure:"dir"`
}

func (*LogConfig) Debug

func (config *LogConfig) Debug()

type PagingConfig

type PagingConfig struct {
	MaxKeys int `mapstructure:"max_keys"`
}

type S3Config

type S3Config struct {
	Address *AddressConfig `mapstructure:"address"`
	Paging  *PagingConfig  `mapstructure:"paging"`
	IO      *IOConfig      `mapstructure:"io"`
}

func (*S3Config) Debug

func (config *S3Config) Debug()

type ServerConfig

type ServerConfig struct {
	Storage *StorageConfig `mapstructure:"storage"`
	Admin   *AdminConfig   `mapstructure:"admin"`
	IAM     *IAMConfig     `mapstructure:"iam"`
	S3      *S3Config      `mapstructure:"s3"`
}

func (*ServerConfig) Debug

func (config *ServerConfig) Debug()

type StorageConfig

type StorageConfig struct {
	DataDir      string `mapstructure:"data_dir"`
	ObjectsPath  string `mapstructure:"-"`
	MetadataPath string `mapstructure:"-"`

	KeysDir       string `mapstructure:"keys_dir"`
	MasterKeyPath string `mapstructure:"-"`
}

func (*StorageConfig) Debug

func (config *StorageConfig) Debug()

func (*StorageConfig) PreparePaths

func (config *StorageConfig) PreparePaths()

type WebConfig

type WebConfig struct {
	Address *AddressConfig `mapstructure:"address"`
}

func (*WebConfig) Debug

func (config *WebConfig) Debug()

Jump to

Keyboard shortcuts

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