-
-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
priority:highAddress within 30 daysAddress within 30 daystype:configConfiguration managementConfiguration management
Description
Problem
No unified configuration management:
- Hardcoded values
- No environment variable support
- No config file parsing
Proposed Solution
Viper Integration
import "github.com/spf13/viper"
func initConfig() {
viper.SetConfigName("neona")
viper.SetConfigType("yaml")
viper.AddConfigPath("$HOME/.neona")
viper.AddConfigPath(".")
viper.SetEnvPrefix("NEONA")
viper.AutomaticEnv()
// Defaults
viper.SetDefault("server.port", 7466)
viper.SetDefault("server.host", "127.0.0.1")
viper.SetDefault("database.path", "~/.neona/neona.db")
viper.ReadInConfig()
}
// Usage
port := viper.GetInt("server.port")Configuration Sources (Priority Order)
- Command-line flags
- Environment variables (NEONA_*)
- Config file (~/.neona/neona.yaml)
- Default values
Example Config File
server:
host: 127.0.0.1
port: 7466
database:
path: ~/.neona/neona.db
logging:
level: info
format: json
scheduler:
max_workers: 10
poll_interval: 1s
connectors:
claude-cli:
enabled: true
timeout: 5mAcceptance Criteria
- Viper integrated
- Config file support (YAML, JSON, TOML)
- Environment variable support
- Flag overrides
- Configuration validation
- Hot reload option
References
- Parent Epic: 📊 Epic: Observability & Configuration #78
Metadata
Metadata
Assignees
Labels
priority:highAddress within 30 daysAddress within 30 daystype:configConfiguration managementConfiguration management