Publicar
Variáveis de ambiente
Production, Preview e Development, cifradas, e quando cada uma chega à aplicação.
Os três ambientes
| Ambiente | Onde vale |
|---|---|
| Production | A aplicação publicada, a cada deploy. |
| Preview | Os previews de pull request. |
| Development | Nunca é publicada: desce para o seu computador com claudo env pull. |
Cadastre em Variáveis, no projeto: Nome, Ambiente e Valor, e Salvar variável. Salvar com um nome que já existe no mesmo ambiente substitui o valor.
Regras
- Nome com letras, dígitos e sublinhado, começando por letra ou sublinhado; salvo em maiúsculas. Até 128 caracteres.
- Valor de até 16.384 caracteres. Até 300 variáveis por projeto, somando os ambientes.
- O valor é cifrado e o painel nunca mostra de volta. Guarde uma cópia onde você já guarda segredos.
No build ou só rodando
Por padrão, a variável só existe com a aplicação rodando: segredo não entra no build nem fica na imagem. Duas exceções vão também ao build:
- As de prefixo público, sempre:
NEXT_PUBLIC_,VITE_,PUBLIC_,REACT_APP_,NUXT_PUBLIC_,EXPO_PUBLIC_,GATSBY_eVUE_APP_. O framework embute esse valor no código do navegador, então ele precisa existir no build. - As marcadas com
Também no build, para o que o build precisa e não é público, como o token de um pacote privado. O valor pode aparecer no log do build e ficar na imagem. Para trocar só o valor, deixeComo já está: a escolha anterior fica.
Importar de um .env
Para trazer as de um projeto que já existe, abra Colar um .env inteiro em Variáveis, escolha o ambiente e cole o arquivo (CHAVE=valor por linha, com aspas, comentários e export). É tudo ou nada: se uma linha estiver errada, nada é salvo e a linha aparece no aviso. Nomes que já existem têm o valor substituído; os sem valor são pulados. Os valores ficam como o dotenv do Node lê (o mesmo do Next.js): entre aspas duplas, só \n e \r viram quebra de linha; aspas simples e crase guardam o texto como está; # no começo do valor ou depois de espaço é comentário. Uma diferença: # colado no meio de um valor sem aspas (como senha#1) fica no valor, enquanto o dotenv cortaria ali; na dúvida, use aspas. Pelo terminal: claudo env import <projeto> .env.
Quando a mudança chega à aplicação
Variável nova ou alterada chega no próximo deploy. Para publicar sozinho, ligue Deploy ao mudar variável na Configuração: um minuto depois da última mudança em Production, sai um deploy (várias mudanças juntas viram um só).
Variáveis compartilhadas da organização
Para a chave que vários projetos usam (a do serviço de e-mail, a do monitoramento), grave uma vez em Team → Variáveis compartilhadas: nome, ambiente, valor e onde vale — nos projetos escolhidos ou em todos (inclusive os criados depois). Só Dono e Administrador mudam.
- O projeto com uma variável de mesmo nome usa a dele; na página de variáveis do projeto, as da organização aparecem embaixo de cada ambiente, riscadas quando o projeto tem a sua.
- Entram no deploy, no preview, no build (as marcadas e as de prefixo público) e no
claudo env pull(as de Development). - Mudar ou apagar uma de Production marca os projetos em que ela vale; com
Deploy ao mudar variávelligado, eles publicam sozinhos. - "Todos os projetos" não inclui projeto de imagem pronta nem de repositório público de terceiros: código que ninguém da equipe escreveu só recebe as chaves da organização se for escolhido.
- Para trocar só os projetos ou o build, use
Editarna lista e salve com o valor em branco: o valor fica como está. - Apagar a variável do projeto que tinha o mesmo nome faz a da organização passar a valer nele.
PORTnão é compartilhada: cada aplicação escuta na sua porta. - Até 100 por organização. Pelo terminal:
claudo shared,claudo shared set RESEND_API_KEY --alleclaudo shared rm RESEND_API_KEY.
Pelo terminal
claudo env set loja API_KEY # pede o valor sem mostrar
claudo env set loja NPM_TOKEN --build # também no build
claudo env pull loja # as de Development em .env.localclaudo env pull precisa do papel Desenvolvedor ou acima, tem limite de 30 por hora e cada leitura fica no histórico da organização. Instalação da CLI em API e CLI.