veza/veza-backend-api/internal/config/rabbitmq.go
senke bbd8ed54de refactor(config): découper config.go par domaine (audit 2.7)
- env_helpers.go: getEnv*, parseLogAggregationLabels
- db_init.go: initDatabaseWithRetry
- redis_init.go: initRedis, filteredRedisLogger
- rabbitmq.go: getRabbitMQURL
- cors.go: CORS, cookies
- rate_limit.go: rate limit defaults
- services_init.go: initServices
- middlewares_init.go: initMiddlewares, SetupMiddleware
- config.go réduit de ~1487 à ~550 LOC
2026-02-15 14:44:33 +01:00

27 lines
910 B
Go

package config
import (
"fmt"
"os"
)
// getRabbitMQURL récupère l'URL RabbitMQ avec validation selon l'environnement
// BE-SEC-014: En production, RABBITMQ_URL doit être explicitement défini (pas de valeur par défaut avec credentials)
func getRabbitMQURL(env string, appDomain string) string {
rabbitMQURL := os.Getenv("RABBITMQ_URL")
if rabbitMQURL != "" {
return rabbitMQURL
}
// En production, ne pas utiliser de valeur par défaut avec credentials
if env == EnvProduction {
return "" // Will be validated in ValidateForEnvironment
}
// En développement: par défaut veza:password sur port 15672 (aligné docker-compose)
// Port 15672 = host mapping, 5672 = port interne container
port := getEnv("RABBITMQ_PORT", "15672")
user := getEnv("RABBITMQ_USER", "veza")
pass := getEnv("RABBITMQ_PASS", "password")
return fmt.Sprintf("amqp://%s:%s@%s:%s/", user, pass, appDomain, port)
}