34 lines
780 B
Go

package config
import (
"errors"
"os"
)
type Config struct {
GRPCPort string // GRPC_PORT, default "50051"
HABaseURL string // HA_BASE_URL, e.g. "http://ha.home.arpa:8123"
HAToken string // HA_TOKEN — long-lived access token (required)
OTELEndpoint string // OTEL_ENDPOINT, e.g. "otel-collector.monitoring.svc:4317"
// empty = telemetry disabled (local dev default)
}
func Load() (*Config, error) {
token := os.Getenv("HA_TOKEN")
if token == "" {
return nil, errors.New("HA_TOKEN is required but not set")
}
port := os.Getenv("GRPC_PORT")
if port == "" {
port = "50051"
}
return &Config{
GRPCPort: port,
HABaseURL: os.Getenv("HA_BASE_URL"),
HAToken: token,
OTELEndpoint: os.Getenv("OTEL_ENDPOINT"),
}, nil
}