veza/veza-backend-api/internal/config/rabbitmq.go
senke e282bdf703 feat: backend — config, handlers, services, logging, migration
Update RabbitMQ config and eventbus. Improve secret filter logging.
Refine presence, cloud, and social services. Update announcement and
feature flag handlers. Add track_likes updated_at migration. Rebuild
seed binary.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 15:46:57 +01:00

28 lines
1,023 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
// Port 15672 = host mapping du port AMQP 5672 du container (docker-compose.yml/dev.yml)
// Note: le port management UI est mappé sur 25672
port := getEnv("RABBITMQ_PORT", "15672")
user := getEnv("RABBITMQ_USER", "veza")
pass := getEnv("RABBITMQ_PASS", "password") // doit correspondre à RABBITMQ_DEFAULT_PASS dans .env
return fmt.Sprintf("amqp://%s:%s@%s:%s/", user, pass, appDomain, port)
}