40 lines
935 B
Go
40 lines
935 B
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
)
|
|
|
|
type Config struct {
|
|
Port string
|
|
BackendURL string
|
|
PolicyEngineURL string
|
|
RedisURL string
|
|
CacheTTL int
|
|
JWTSecret string
|
|
LogLevel string
|
|
}
|
|
|
|
func Load() *Config {
|
|
return &Config{
|
|
Port: getEnv("GATEWAY_PORT", "8080"),
|
|
BackendURL: getEnv("BACKEND_URL", "http://localhost:3000"),
|
|
PolicyEngineURL: getEnv("POLICY_ENGINE_URL", "http://localhost:3000"),
|
|
RedisURL: getEnv("REDIS_URL", "redis://localhost:6379"),
|
|
CacheTTL: getEnvInt("CACHE_TTL", 120),
|
|
JWTSecret: getEnv("JWT_SECRET", ""),
|
|
LogLevel: getEnv("LOG_LEVEL", "info"),
|
|
}
|
|
}
|
|
|
|
func getEnv(key, defaultValue string) string {
|
|
if value := os.Getenv(key); value != "" {
|
|
return value
|
|
}
|
|
return defaultValue
|
|
}
|
|
|
|
func getEnvInt(key string, defaultValue int) int {
|
|
// Simplified - in production, use strconv.Atoi
|
|
return defaultValue
|
|
}
|