Variables et secrets

Variables et secrets

Définissez des variables, référencez d'autres services et partagez la configuration entre applications.

  • Définissez une variable sous Variables sur l’application ou sur le canvas. Les valeurs sont chiffrées et appliquées au prochain déploiement.
  • Les services provisionnés injectent les leurs : DATABASE_URL et DATABASE_HOST/PORT/USER/PASSWORD/NAME, REDIS_URL, CLICKHOUSE_DATABASE_URL, les clés de stockage, et RAILYARD_HOSTNAME, RAILYARD_URL, RAILYARD_PRIVATE_URL.
  • Référencez un autre service avec ${{api.RAILYARD_PRIVATE_URL}}, résolu par environnement. RAILYARD_PRIVATE_URL est http://<name>.railyard.internal:<port>; ça fonctionne toujours entre applications sur le même serveur, et entre applications sur différents serveurs de l’équipe une fois que le réseau privé est activé.
  • La configuration partagée (Team → Shared config) est accessible sous la forme ${config.KEY} dans n’importe quelle application.
  • Les variables documentées que l’application liste (par exemple MAIN_DB_HOST, DB_USERNAME, PGHOST, BIND_ADDRESS, APP_URL) sont remplies automatiquement à partir des services ci-dessus; les secrets propres à l’application (SECRET_KEY_BASE, APP_KEY, JWT_SECRET…) sont générés une seule fois. Les clés tierces ne sont jamais inventées.

Secrets en fichier

Certains secrets doivent être un fichier, pas une variable : un JSON de compte de service, un certificat client. Ajoutez-les sous Variables → File secrets avec un nom et le contenu (jusqu’à 64 Ko). Chacun est stocké chiffré et monté en lecture seule dans le conteneur à /etc/railyard/secrets/<name>, avec son chemin aussi exposé comme RAILYARD_SECRET_FILE_<NAME>, donc GOOGLE_APPLICATION_CREDENTIALS=${RAILYARD_SECRET_FILE_GCP_KEY_JSON} se résout sans étape supplémentaire. En retirer un prend effet au prochain déploiement.