MÓDULO 4.4

🔐 Segredos: a chave nunca viaja no bolso do código

Sua automação precisa de senhas e chaves pra falar com outros serviços — mas essas chaves não podem ir dentro do código que você manda pro repositório. Neste módulo você aprende onde elas moram de verdade e por que essa separação é o que evita um vazamento caro.

6
Tópicos
30
Minutos
Intermediário
Nível
Prático
Tipo
0 de 60%
1

📓 O caderno de senhas que não sai de casa

Novo aqui? Um arquivo .env (lê-se "dot env", de "environment", ambiente) é um arquivo de texto simples, que vive só na sua máquina, guardando variáveis de ambiente — pares de nome e valor que a sua automação lê na hora de rodar, sem que esses valores fiquem escritos dentro do código em si. É nesse arquivo que moram as senhas e chaves de acesso que a automação precisa.

Pense num caderno de senhas de papel, daqueles que ficam numa gaveta em casa. Você anota ali a senha do banco, do e-mail, do wi-fi. Faz sentido esse caderno viajar com você pro trabalho? Não — ele fica em casa, só você (e quem mora com você) tem acesso. O .env é exatamente esse caderno: ele mora no seu computador e nunca vai junto quando você manda o código pro repositório (o "cofre compartilhado" onde o código fica guardado e versionado — vimos isso no módulo 4.2, é o GitHub).

💡 Conceito Principal

Código é para compartilhar. Segredo é para guardar. Misturar os dois é o erro nº1 de quem começa a publicar automações.

  • O código (a lógica da automação) pode — e deve — ir pro repositório.
  • A chave que autentica esse código com outro serviço nunca vai junto.
.env
Onde mora a chave
Local
Só no seu computador
Nunca
Vai pro repositório
Painel
Onde ela reaparece na nuvem
2

🚪 O .gitignore é o porteiro da porta

Novo aqui? O .gitignore é um arquivo de texto, dentro do seu projeto, com uma lista de nomes de arquivos e pastas que o git (o programa que controla o que sobe pro repositório — módulo 4.2) deve ignorar completamente. Se um arquivo está nessa lista, o git finge que ele não existe: nunca aparece pra ser enviado, mesmo que você digite o comando errado tentando mandar tudo de uma vez.

É o porteiro que fica plantado na porta de casa com a lista de quem não pode sair. Mesmo que você, distraído, tente levar o caderno de senhas junto com a mochila do trabalho, o porteiro barra na porta. O .env deve estar sempre nessa lista — na prática, quase todo projeto novo já vem com essa linha pronta, mas vale a pena conferir.

🔒 .env API_KEY=SUA_CHAVE fica só no laptop (seu caderno de senhas) 🚪 porteiro .gitignore barra o .env na porta só o código passa Repositório só código, sem chave você digita à mão Painel Trigger.dev chave cadastrada na nuvem Automação rodando código + chave se encontram na nuvem

Legenda: código e chave viajam por caminhos separados. O código passa pelo porteiro e chega ao repositório; a chave nunca passa por ali — você a digita direto no painel da plataforma, e só lá dentro, na nuvem, os dois se encontram de novo.

🔍 Por dentro

  • Chave de API: um código secreto que identifica você (ou sua automação) perante outro serviço — tipo um crachá de acesso.
  • Painel / dashboard: a página de administração de uma plataforma na web, onde você configura sua conta e suas automações sem escrever código.
3

🧪 Verificando na prática que o .env está protegido

Não precisa confiar de olhos fechados — dá pra conferir com poucos passos que o seu .env está de fato fora da lista de envio. O objetivo aqui é simples: criar um .env de exemplo, confirmar que ele está listado no .gitignore, e usar um comando do git pra ver, com os próprios olhos, que ele não aparece como algo a ser enviado.

Objetivo: ter um .env com placeholders (nunca uma chave real), protegido pelo .gitignore, e confirmar isso rodando git status.

# conteúdo de exemplo do arquivo .env (na raiz do projeto)
API_KEY=SUA_CHAVE_AQUI
OUTRO_SERVICO_TOKEN=SEU_TOKEN_AQUI

# conteúdo do .gitignore que garante que o .env nunca suba
.env
node_modules/
dist/

# comando para checar o que o git está prestes a enviar
git status

Como verificar: depois de rodar git status, o arquivo .env não deve aparecer em nenhuma lista — nem em "arquivos modificados", nem em "arquivos não rastreados". Se ele aparecer, é sinal de que a linha .env não está no .gitignore (ou está escrita errado) — corrija antes de continuar.

✓ .env no .gitignore

  • git status não lista o .env
  • Chave fica só na sua máquina
  • Você pode compartilhar o código sem medo

✗ .env commitado por engano

  • git status mostra o .env pronto pra enviar
  • A chave real fica visível pra qualquer um com acesso ao repositório
  • Precisa trocar a chave inteira depois — não dá pra "apagar" o que já foi enviado
4

🗂️ Cadastrando uma chave nova no painel

Novo aqui? O Trigger.dev é a plataforma de execução que citamos no módulo 4.2 — o serviço que roda de fato a sua automação na nuvem, 24 horas por dia. Quando sua automação precisa falar com outro serviço (enviar e-mail, ler uma planilha, consultar uma IA), a chave desse serviço não fica no código: ela é cadastrada manualmente, uma vez, dentro do painel do Trigger.dev. Veja o fluxo completo de ponta a ponta:

1

Gere a chave no provedor do serviço

Entre no site do serviço que você vai usar (por exemplo, um provedor de e-mail ou de IA) e gere uma chave de API nova, na área de conta dele.

2

Cole no painel do Trigger.dev, no ambiente de dev

Dentro do projeto, na área de "variáveis de ambiente" (environment variables), cole a chave no ambiente de dev (teste — assunto do módulo 4.3) primeiro.

3

Teste a automação em dev

Rode a automação nesse ambiente de teste e confira, no log (a lista de eventos registrados — voltamos a isso no módulo 4.7), se a chave está funcionando.

4

Repita em produção — com uma chave própria

Quando estiver confiante, cadastre a mesma variável no ambiente de produção — de preferência gerando uma segunda chave, dedicada só pra produção, no provedor.

5

🔀 Dev e produção têm chaves separadas

Assim como o módulo 4.3 mostrou dois "mundos" separados (dev e produção) rodando a mesma automação, as chaves seguem essa mesma separação: o painel do Trigger.dev guarda uma variável de ambiente por ambiente. Isso significa que a chave usada nos seus testes não é obrigatoriamente a mesma usada quando a automação está de fato atendendo usuários reais.

✓ Chave cadastrada no painel

  • Fica guardada de forma criptografada pela própria plataforma
  • Trocar a chave é só editar no painel — sem tocar no código
  • Dev e produção podem usar chaves diferentes, sem misturar

✗ Chave escrita direto no código

  • Fica exposta pra qualquer um que abrir o arquivo
  • Trocar a chave exige editar código e publicar de novo
  • Dev e produção acabam usando a mesma chave sem querer

⚠️ Atenção

Nunca cole uma chave de API real numa mensagem, num print de tela compartilhado, num chat com o agente de código pedindo ajuda pra "debugar", ou em qualquer exemplo público. Se você suspeitar que uma chave real apareceu em algum lugar por engano, o próximo tópico mostra o que fazer — e é rápido.

6

🚨 Se uma chave vazar: o plano de ação

Vazamento acontece — o importante é reagir rápido. Se uma chave real acabou aparecendo onde não devia (um commit por engano, uma mensagem, um print), o passo não é "apagar" o rastro — em muitos casos isso não é suficiente, porque a chave já pode ter sido copiada por alguém ou por algum sistema automático que varre a internet atrás delas. O passo certo é ir até o painel do provedor do serviço e revogar (cancelar) aquela chave, gerando uma nova em seguida.

💡 Dica Prática

  • Revogue a chave antiga no provedor — isso a torna inútil imediatamente, mesmo que alguém já tenha uma cópia.
  • Gere uma chave nova e cadastre no painel do Trigger.dev, repetindo o fluxo do tópico 4.
  • Confira se o .gitignore está correto antes de continuar trabalhando, pra não repetir o erro.

Com o segredo protegido, o próximo módulo (4.5) trata de outro tipo de risco: o que fazer quando uma etapa da automação falha no meio do caminho — como reagir sem duplicar nada.

Checagem rápida (opcional): onde deve ficar uma chave de API real usada pela sua automação?

Resumo do Módulo

.env local: caderno de senhas que nunca sai da sua máquina.
.gitignore: o porteiro que garante que o .env nunca suba pro repositório.
Painel do Trigger.dev: onde a chave real é cadastrada manualmente, separada por ambiente.
Se vazar: revogar no provedor e gerar uma chave nova — não basta "apagar".

Próximo módulo:

4.5 — Retentativas e filas