/app/.vertra/certs/<database_id>/ do app. Postgres e MongoDB carregam os caminhos dos certificados dentro da URL, então a maioria dos drivers não precisa de código extra. Redis e MySQL precisam de algumas linhas que leem os caminhos dos certificados a partir de variáveis.
Esta página cobre a conexão própria da stack. Para os detalhes de conexão de um banco de dados que você acessa de fora (seu computador, outro serviço), veja Como me conecto a cada engine? e o guia de conexão.
Variáveis que a plataforma injeta
Cada conexão entre um app e um banco de dados cria variáveis gerenciadas no app. Os nomes padrão:- Postgres: a URL já carrega
sslmode,sslrootcert,sslcertesslkey. Sempre passe a URL ao driver: as variáveisPG*sozinhas não bastam para alguns drivers, como opgdo Node.js. - MongoDB: a URI carrega
tls=true, o arquivo da CA (ca.pem) e o arquivo do certificado de cliente (client.pem, certificado e chave juntos). - Redis e MySQL: a URL não carrega arquivos, então os caminhos vêm em variáveis próprias. Leia-as no código.
/app/.vertra/certs/<database_id>/ como ca.pem, client.crt e client.key, mais client.pem (certificado e chave num arquivo só, usado pelo MongoDB) e client.p12 (para o Prisma 6) quando a conexão precisa deles. São somente leitura e pertencentes à plataforma, e as variáveis contêm caminhos absolutos. O processo do seu app os lê normalmente. A pasta é reservada: seus deploys, restaurações e rollbacks não excluem nem trazem de volta certificados antigos, ela fica fora de downloads e snapshots, e a plataforma reescreve os arquivos a cada início.
Você pode editar os nomes das variáveis antes de criar uma conexão.
Variáveis gerenciadas
Uma variável criada por uma conexão mostra managed by the stack no app e se atualiza sozinha quando o banco de dados muda de senha ou de certificado. Reinicie o app após uma mudança assim; a plataforma informa quais apps precisam disso. Se você editar uma variável gerenciada manualmente, ela deixa de ser gerenciada e vira uma variável comum, com um aviso. Quando você redefine os certificados de um banco de dados, a plataforma reescreve os arquivos nos apps conectados e pede uma reinicialização.Mais de um banco de dados do mesmo tipo
Uma stack pode conter vários bancos de dados da mesma engine, por exemplo um Redis para cache e outro para uma fila. Cada um é um banco de dados normal com sua própria memória. O primeiro de cada engine recebe o nome padrão (REDIS_URL); os outros recebem o nome do serviço como prefixo (QUEUE_REDIS_URL, ANALYTICS_DATABASE_URL), e você pode editar os nomes antes de criar. Um banco de dados pode ser conectado a vários apps da stack (por exemplo, uma API e um worker no mesmo Postgres), mas um banco de dados pertence a uma única stack.
Código por linguagem
Os nomes abaixo são os padrão; se você renomeou uma variável, use o seu nome. O painel How to connect no dashboard (eget_connection_info com app_id no servidor MCP, ou a rota de conexão da stack) mostra o mesmo código com os nomes reais das suas variáveis, na linguagem do app.
- Node.js
- Python
- Go
Postgres (pg)
MongoDB (mongodb)
Redis (ioredis)
mysql2), leia MYSQL_URL e passe ssl: { ca, cert, key } a partir dos arquivos MYSQL_SSL_*; o mysql2 não verifica se o nome do host corresponde ao certificado. O Prisma 7 usa o adapter pg, então a mesma DATABASE_URL funciona. Para os outros drivers, veja Como me conecto a cada engine?.Se a conexão falhar
- Falha de handshake ou de autenticação: falta o certificado de cliente. Confirme que o app passa a URL (Postgres, MongoDB) ou lê as variáveis de certificado (Redis, MySQL).
- A variável está vazia ou desatualizada: reinicie o app após uma mudança de senha ou de certificado no banco de dados.
- Arquivos de certificado ausentes em
/app/.vertra/certs/: a plataforma os reescreve a cada início. Reinicie o app; não crie a pasta você mesmo.
Relacionados
Stacks
Adicione ou remova um banco de dados em uma stack.
Bancos de dados
Engines, certificados, redefinições e limites.