Configuration
Aperçu
GoCamel supporte plusieurs stratégies de configuration pour les credentials, les endpoints et les paramètres des composants.
Sources de credentials
gocamel.GetConfigValue(url, key) est le point d’entrée unique utilisé par
tous les composants pour résoudre une valeur de configuration. Il consulte
quatre sources dans l’ordre suivant — la première valeur non vide gagne :
- Variable d’environnement exacte. La clé est utilisée telle quelle.
Exemple :
GetConfigValue(_, "OPENAI_API_KEY")litos.Getenv("OPENAI_API_KEY"). - Variable d’environnement préfixée par le scheme. Construite en
majuscules :
scheme + "_" + key. Pour une URIftp://et la clépassword, la résolution interrogeos.Getenv("FTP_PASSWORD"). - Paramètre de query string. Exemple :
ftp://host?password=secret. - Userinfo de l’URI, uniquement pour les clés bien connues
username/useretpassword/pass. Exemple :ftp://user:pass@host.
Variables d’environnement (Recommandé)
Configuration sensible via l’environnement système :
Les routes référencent ensuite l’option directement — la variable d’environnement est récupérée automatiquement :
Paramètres de query string
Passez les options en tant que paramètres de query string :
Credentials dans les query strings : signalés au runtime
Les URI fuitent régulièrement dans les logs d’erreur de connexion, les
pistes d’audit, les rapports de crash et les access logs de proxy.
Quand GetConfigValue résout une clé reconnue comme credential
(password, pass, secret, token, apikey, api_key, accesskey,
access_key, clientsecret, privatekey) depuis un paramètre de
query, un log WARN est émis avec une recommandation d’utiliser les
variables d’environnement. Le warning n’inclut que le scheme et le nom
de la clé — jamais la valeur — et il est dédupé par couple
(scheme, key) pour qu’un consumer en polling ne sature pas les logs.
Utilisez les variables d’environnement en production. La forme userinfo
(user:pass@host) est considérée comme la manière conventionnelle de
porter des credentials dans une URI et n’est pas signalée — vous y
avez explicitement consenti.
Directement dans l’URI (forme userinfo)
Configuration du contexte
Sécurité
Ne jamais hardcoder les credentials :
Proxy
Enregistrement des composants
Composants standards
Composants planifiés
Composants de messagerie
Composants IA
Composants de base de données
Configuration des sources de données
Composant SQL
Composant SQL-Stored
Configuration des routes
Définir l’ID de route
Options courantes
Correspondance des variables d’environnement
| Composant | Variable | Description |
|---|---|---|
| FTP | FTP_USERNAME, FTP_PASSWORD | Credentials FTP |
| SFTP | SFTP_USERNAME, SFTP_PASSWORD, SFTP_PRIVATE_KEY_FILE | Credentials SSH |
| Telegram | TELEGRAM_AUTHORIZATIONTOKEN | Token du bot |
| OpenAI | OPENAI_AUTHORIZATIONTOKEN, OPENAI_API_KEY | Clés API |
MAIL_USERNAME, MAIL_PASSWORD | Credentials email |
Bonnes pratiques
- Ne jamais committer de secrets — Utilisez les variables d’environnement ou un gestionnaire de secrets
- Utiliser des configurations différentes par environnement — Dev/staging/prod
- Documenter les variables d’environnement requises — Dans le README ou la documentation de déploiement
- Valider la configuration au démarrage — Échouer rapidement si config manquante