Pular para conteúdo

Limpar as envs sem leitor no Coolify depois do release

Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-09-15

O que é

O scripts/coolify/limpeza.py apaga, nos recursos do Coolify, as envs que o código de cada app deixou de ler. É a metade "depois do deploy" do ciclo de vida de env (coolify, Ciclo de vida e auditoria de env): env nova se cadastra antes do deploy que a lê; env que sumiu se apaga depois que todo deploy está na versão nova. O script mora neste repo porque o central-backend é o dono do CoolifyClient e do control-plane de deploy.

Quando usar

A cada leva de releases, até o relatório terminar em limpeza COMPLETA. Cada app só é tocado quando o próprio release está servindo; os demais ficam para a rodada seguinte.

Pré-requisitos

  • O checkout da raiz multi-repo, com os clones dos repos listados no PLANO do script: ele roda git fetch e git grep neles. A raiz vem da env XADM_RAIZ; sem ela, é a pasta quatro níveis acima do script (<raiz>/integracao/central-backend/scripts/coolify/).
  • <raiz>/.env com COOLIFY_URL e COOLIFY_TOKEN. A API do Coolify tem allowlist de IPv4: rode de uma máquina dentro dela. O script força IPv4.
  • Python 3, sem dependência externa.

Passos

python scripts/coolify/limpeza.py            # dry-run: por app, se o gate passou e o que apagaria
python scripts/coolify/limpeza.py --aplicar  # apaga só nos apps liberados

Leia o dry-run antes do --aplicar: cada linha diz o app, o gate e as chaves que sairiam.

As travas

  1. Gate por app — nada se apaga antes de o código novo estar servindo:

    • versao: o /info público do app serve versão maior que a baseline do PLANO;
    • commit: stack compose (ps.*): o último deploy finished descende do commit da migração, conferido no clone local;
    • sem gate: env que nenhuma versão lê (NIXPACKS_* com build pack Dockerfile).

    A perna -jar-pull segue o gate da -native-pull do mesmo app. 2. git grep -w <CHAVE> no ref liberado, fora de *.md e docs/: chave que ainda aparece em código ou config fica, e o script avisa (AINDA LIDAS).

Backup

Com --aplicar, as chaves apagadas e os valores vão para scripts/coolify/backup-<data>.json. O arquivo tem segredo: o .gitignore o exclui; apague depois de conferir. Env travada (is_shown_once) sai com valor vazio no backup, porque a API não devolve o valor — é "travada, valor desconhecido", nunca "vazia".

Manter o PLANO

O PLANO (recurso Coolify → repo, gate e chaves) é a lista da leva em curso. Uma leva nova de envs sem leitor acrescenta a entrada com a baseline — a versão no ar antes do release que deixou de ler a chave — e as chaves. Recurso que sumiu do Coolify é ignorado, com aviso.

O que fica fora

  • Apagar recurso (as pernas -jar-pull desligadas): remover recurso no Coolify não tem volta, e nenhum script faz isso.
  • Cadastrar env nova antes do deploy: é a subseção Coolify — antes do deploy da ### Migração do CHANGELOG, que a /xadm-release preenche.