Como gerenciar múltiplas contas Cloudflare pelo CLI (Wrangler) sem dor de cabeça

Usando tokens de API dedicados (CLOUDFLARE_API_TOKEN) para isolar projetos de clientes no terminal, sem precisar deslogar do OAuth.

Você desenvolve localmente e faz o deploy do seu portfólio usando a CLI do Cloudflare, o Wrangler. Tudo funciona perfeitamente, logado via OAuth (wrangler login) na sua conta pessoal (ex: minha-conta).

Então, um cliente pede para você subir um sistema na conta dele.

O instinto inicial de todo dev júnior é dar wrangler logout, rodar wrangler login de novo, pedir a senha do cliente, abrir o navegador, logar no cliente, fazer o deploy… E amanhã, refazer todo esse inferno para voltar para a conta pessoal. Pior ainda, o login via OAuth pode misturar sessões em navegadores, gerando implantações no lugar errado.

A solução profissional é o isolamento por tokens de ambiente.

A Mágica do CLOUDFLARE_API_TOKEN

O Wrangler é desenhado para priorizar variáveis de ambiente em relação ao login OAuth global (que fica guardado em ~/.config/.wrangler).

Se uma variável chamada CLOUDFLARE_API_TOKEN estiver presente no terminal no momento em que você executa um comando, o Wrangler ignora o seu usuário logado e opera exclusivamente na conta a qual o token pertence.

O Processo Limpo

  1. Gere o Token na conta do Cliente

    • Acesse o painel do Cloudflare do seu cliente (ou peça para ele fazer isso).
    • Vá no Perfil de Usuário > API Tokens.
    • Clique em Create Token e escolha um template (ex: Edit Cloudflare Workers para Workers, ou Custom para Pages).
    • Isso gerará uma string alfanumérica longa. Guarde-a de forma segura.
  2. Configure o wrangler.toml do Cliente Certifique-se de que o account_id da conta do cliente está especificado no arquivo de configuração do projeto:

    name = "projeto-do-cliente"
    account_id = "abc123identificador_da_conta_cliente"
  3. Faça o Deploy Isolado No terminal, em vez de exportar a variável globalmente (o que poderia poluir a sessão), passe o token temporariamente (inline) apenas para a execução do comando de deploy:

    CLOUDFLARE_API_TOKEN="cole_o_token_do_cliente_aqui" npx wrangler deploy

O comando será executado nos servidores do seu cliente, usando a autenticação e permissões do cliente. Quando o processo terminar, o seu terminal continua intacto.

Se você rodar npx wrangler pages list no minuto seguinte, ele vai mostrar os projetos da sua conta pessoal, pois a variável inline já deixou de existir. Isolamento perfeito, sem suor e sem logins paralelos.