Variables y secretos

Variables y secretos

Define variables, referencia otros servicios y comparte configuración entre apps.

  • Define una variable en Variables, en la app o en el canvas. Los valores se cifran y se aplican en el siguiente despliegue.
  • Los servicios provisionados inyectan las suyas: DATABASE_URL y DATABASE_HOST/PORT/USER/PASSWORD/NAME, REDIS_URL, CLICKHOUSE_DATABASE_URL, claves de almacenamiento, y RAILYARD_HOSTNAME, RAILYARD_URL, RAILYARD_PRIVATE_URL.
  • Referencia otro servicio con ${{api.RAILYARD_PRIVATE_URL}} — resuelto por entorno. RAILYARD_PRIVATE_URL es http://<name>.railyard.internal:<port>; siempre funciona entre apps en el mismo servidor, y entre apps en distintos servidores del equipo una vez que la red privada está activa.
  • La configuración compartida (Team → Shared config) está disponible como ${config.KEY} en cualquier app.
  • Las variables documentadas que lista la app (por ejemplo, MAIN_DB_HOST, DB_USERNAME, PGHOST, BIND_ADDRESS, APP_URL) se completan automáticamente desde los servicios anteriores; los secretos propios de la app (SECRET_KEY_BASE, APP_KEY, JWT_SECRET…) se generan una sola vez. Las claves de terceros nunca se inventan.

Secretos como archivo

Algunos secretos tienen que ser un archivo, no una variable: un JSON de service account, un certificado de cliente. Agrégalos en Variables → File secrets con un nombre y el contenido (hasta 64 KB). Cada uno se guarda cifrado y se monta de solo lectura en el contenedor en /etc/railyard/secrets/<name>, con su ruta también expuesta como RAILYARD_SECRET_FILE_<NAME>, así que GOOGLE_APPLICATION_CREDENTIALS=${RAILYARD_SECRET_FILE_GCP_KEY_JSON} se resuelve sin pasos adicionales. Eliminar uno surte efecto en el siguiente despliegue.