config

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Jul 24, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EnvProduction = "prod"
	EnvTest       = "test"
)

Environment constants for MINEXUS_ENV

Variables

This section is empty.

Functions

func DetectEnvironment added in v1.3.0

func DetectEnvironment() string

DetectEnvironment returns the current environment based on MINEXUS_ENV Panics on invalid environment values to prevent configuration errors

func GetEnvironmentFileName added in v1.3.0

func GetEnvironmentFileName() string

GetEnvironmentFileName returns the environment-specific filename for the current environment

Types

type ConfigLoader

type ConfigLoader struct {
	// contains filtered or unexported fields
}

ConfigLoader provides unified configuration loading with priority handling

func NewConfigLoader

func NewConfigLoader() *ConfigLoader

NewConfigLoader creates a new configuration loader

func (*ConfigLoader) GetBool

func (cl *ConfigLoader) GetBool(key string, defaultValue bool) (bool, error)

GetBool gets bool value with validation

func (*ConfigLoader) GetDuration

func (cl *ConfigLoader) GetDuration(key string, defaultValue time.Duration) (time.Duration, error)

GetDuration gets duration value with validation

func (*ConfigLoader) GetInt

func (cl *ConfigLoader) GetInt(key string, defaultValue int) (int, error)

GetInt gets int value with validation

func (*ConfigLoader) GetIntInRange

func (cl *ConfigLoader) GetIntInRange(key string, defaultValue, min, max int) (int, error)

GetIntInRange gets int value with range validation

func (*ConfigLoader) GetString

func (cl *ConfigLoader) GetString(key, defaultValue string) string

GetString gets string value with priority: flags → env → file → default

func (*ConfigLoader) LoadEnvFile

func (cl *ConfigLoader) LoadEnvFile(filename string) error

LoadEnvFile loads environment variables from .env file (LEGACY - use LoadEnvironmentFile)

func (*ConfigLoader) LoadEnvironmentFile added in v1.3.0

func (cl *ConfigLoader) LoadEnvironmentFile() error

LoadEnvironmentFile loads environment variables from environment-specific file Uses strict validation with no fallback - panics if environment file is missing

func (*ConfigLoader) ValidateDirectory

func (cl *ConfigLoader) ValidateDirectory(key, value string) error

ValidateDirectory ensures a directory path is valid

func (*ConfigLoader) ValidateHostname

func (cl *ConfigLoader) ValidateHostname(key, value string) error

ValidateHostname validates a hostname (without port)

func (*ConfigLoader) ValidateNetworkAddress

func (cl *ConfigLoader) ValidateNetworkAddress(key, value string) error

ValidateNetworkAddress validates a network address

func (*ConfigLoader) ValidateRequired

func (cl *ConfigLoader) ValidateRequired(key, value string) error

ValidateRequired ensures a required field is not empty

func (*ConfigLoader) WithLogger

func (cl *ConfigLoader) WithLogger(logger *zap.Logger) *ConfigLoader

WithLogger sets the logger for the config loader

type ConsoleConfig

type ConsoleConfig struct {
	ServerAddr     string
	ConnectTimeout int // seconds
	Debug          bool
}

ConsoleConfig holds configuration for the console client

func DefaultConsoleConfig

func DefaultConsoleConfig() *ConsoleConfig

DefaultConsoleConfig returns default configuration for Console

func LoadConsoleConfig

func LoadConsoleConfig() (*ConsoleConfig, error)

LoadConsoleConfig loads console configuration with validation

func (*ConsoleConfig) LogConfig

func (c *ConsoleConfig) LogConfig(logger *zap.Logger)

LogConfig logs the console configuration

type MinionConfig

type MinionConfig struct {
	ServerAddr            string
	ID                    string
	Debug                 bool
	ConnectTimeout        int // seconds
	InitialReconnectDelay int // seconds - starting delay for exponential backoff
	MaxReconnectDelay     int // seconds - maximum delay cap for exponential backoff
	HeartbeatInterval     int // seconds
	DefaultShellTimeout   int // seconds - default timeout for shell command execution
	StreamTimeout         int // seconds - timeout for stream operations
}

MinionConfig holds configuration for Minion clients

func DefaultMinionConfig

func DefaultMinionConfig() *MinionConfig

DefaultMinionConfig returns default configuration for Minion

func LoadMinionConfig

func LoadMinionConfig() (*MinionConfig, error)

LoadMinionConfig loads Minion configuration with validation

func (*MinionConfig) LogConfig

func (c *MinionConfig) LogConfig(logger *zap.Logger)

LogConfig logs the minion configuration

type NexusConfig

type NexusConfig struct {
	MinionPort  int    // Port for minion connections with standard TLS
	ConsolePort int    // Port for console connections with mTLS
	WebPort     int    // Port for HTTP web server
	WebEnabled  bool   // Enable/disable web server
	WebRoot     string // Path to webroot directory (for file system assets)
	DBHost      string
	DBPort      int
	DBUser      string
	DBPassword  string
	DBName      string
	DBSSLMode   string
	Debug       bool
	MaxMsgSize  int
	FileRoot    string
}

NexusConfig holds configuration for the Nexus server

func DefaultNexusConfig

func DefaultNexusConfig() *NexusConfig

DefaultNexusConfig returns default configuration for Nexus

func LoadNexusConfig

func LoadNexusConfig() (*NexusConfig, error)

LoadNexusConfig loads Nexus configuration with validation

func (*NexusConfig) DBConnectionString

func (c *NexusConfig) DBConnectionString() string

DBConnectionString builds a PostgreSQL connection string from config

func (*NexusConfig) LogConfig

func (c *NexusConfig) LogConfig(logger *zap.Logger)

LogConfig logs the configuration (masks sensitive data)

type ValidationError

type ValidationError struct {
	Field   string
	Value   string
	Message string
}

ValidationError represents a configuration validation error

func (ValidationError) Error

func (e ValidationError) Error() string

Jump to

Keyboard shortcuts

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