Variáveis e secrets

Variáveis e secrets

Defina variáveis, referencie outros serviços e compartilhe configurações entre apps.

  • Defina uma variável em Variables no app ou no canvas. Os valores são criptografados e aplicados no próximo deploy.
  • Serviços provisionados injetam as próprias: DATABASE_URL e DATABASE_HOST/PORT/USER/PASSWORD/NAME, REDIS_URL, CLICKHOUSE_DATABASE_URL, chaves de storage, e RAILYARD_HOSTNAME, RAILYARD_URL, RAILYARD_PRIVATE_URL.
  • Referencie outro serviço com ${{api.RAILYARD_PRIVATE_URL}} — resolvido por ambiente. RAILYARD_PRIVATE_URL é http://<name>.railyard.internal:<port>; funciona entre apps no mesmo servidor sempre, e entre apps em servidores diferentes da equipe depois que a rede privada estiver ativada.
  • Configuração compartilhada (Team → Shared config) fica disponível como ${config.KEY} em qualquer app.
  • Variáveis documentadas que o app lista (por exemplo, MAIN_DB_HOST, DB_USERNAME, PGHOST, BIND_ADDRESS, APP_URL) são preenchidas automaticamente a partir dos serviços acima; secrets que o app gera (SECRET_KEY_BASE, APP_KEY, JWT_SECRET…) são criados uma única vez. Chaves de terceiros nunca são inventadas.

Secrets em arquivo

Alguns secrets precisam ser um arquivo, não uma variável: um JSON de service account, um certificado de cliente. Adicione-os em Variables → File secrets com um nome e o conteúdo (até 64 KB). Cada um é armazenado criptografado e montado somente leitura no container em /etc/railyard/secrets/<name>, com o caminho também exposto como RAILYARD_SECRET_FILE_<NAME>, de forma que GOOGLE_APPLICATION_CREDENTIALS=${RAILYARD_SECRET_FILE_GCP_KEY_JSON} já funciona sem passos extras. Remover um deles tem efeito no próximo deploy.