Remover o db.ip.allow e melhorar o make help

TLDR: Remover a regra de make db.ip.allow (com script e config), e reformular o make help para que a raiz do repo liste todos os comandos — agrupados em projeto e commons — mostrando o arquivo de origem de cada regra.

Contexto

O db.ip.allow foi criado pela spec 20260626091613_db_ip_allowlist_make_rule, para liberar IPs de dev no security group do banco de leads. Desde a spec 20260710000000_leads_db_public_access, o security group do cluster de leads libera 0.0.0.0/0 na 5432, então a liberação por IP virou peso morto. Um grep em todo o workspace confirma que nenhum projeto além do marketing chegou a consumi-la.

O make help hoje imprime uma única lista plana e ordenada, misturando targets de projeto e do commons, sem indicar onde cada regra está definida — o que dificulta achar uma regra para dar manutenção. Rodar make help na raiz do repo mostra apenas um stub de uso, escondendo toda a superfície de comandos do módulo automation.

Objetivos

  • Remover o target db.ip.allow, seu script e seu arquivo de config por projeto
  • make help na raiz lista todos os comandos: os targets do módulo (como automation.<target>), agrupados nas seções Project e Commons
  • Toda regra listada mostra o arquivo onde está definida (ex.: modules/automation/Makefile, .commons/make/shared/infra.mk)
  • make help dentro de modules/automation recebe o mesmo agrupamento e a mesma coluna de arquivo de origem

Fora de escopo

  • Nenhuma mudança de comportamento em qualquer outro target de make
  • Nenhuma mudança em security group de banco nem em terraform
  • Nenhuma mudança de help para outros projetos WeHive além do que eles herdam automaticamente do commons

Mudanças

Repo commons (.commons, commitado na sua main)

  • make/shared/infra.mk — deletar o target db.ip.allow, sua descrição ### e sua entrada em .PHONY
  • shell/tasks/infra/db/ip/allow.sh — deletar (o único chamador era o target removido); remover os diretórios db/ip/ que ficam vazios
  • make/core/help.mk — o help passa a delegar para um script auxiliar (o awk inline atual estoura a regra de uma linha quando o agrupamento entra)
  • shell/helpers/make/help.sh — script novo. Percorre os makefiles de MAKEFILE_LIST acompanhando o FILENAME do awk, classifica cada target como Commons (arquivo dentro de COMMONS_DIR) ou Project (o resto, incluindo os targets run.<name> gerados), e imprime duas seções ordenadas com uma terceira coluna esmaecida mostrando o arquivo de origem. Variáveis de controle: TARGET_PREFIX (prefixa os nomes de target com, por exemplo, automation.) e PATH_PREFIX (prefixa os caminhos relativos ao projeto com, por exemplo, modules/automation/), para o Makefile da raiz conseguir agregar.

Repo marketing

  • Makefile (raiz) — o help delega para o help do módulo: $(MAKE) -C modules/automation --no-print-directory help TARGET_PREFIX=automation. PATH_PREFIX=modules/automation/. A regra de delegação automation.% continua funcionando como está.
  • modules/automation/.infra/provider-args — deletar (seu único consumidor era o allow.sh)
  • learnings/database_aurora_password_authentication.md — acrescentar uma nota de que a regra db.ip.allow foi removida depois que o SG do leads virou público (0.0.0.0/0), para o aprendizado não apontar para uma regra que não existe mais
  • specs/20260626091613_db_ip_allowlist_make_rule.md — marcar status: superseded, referenciando esta spec

Como verificar

  • Na raiz do repo: make help lista as entradas automation.<target> numa seção Project e os targets do commons numa seção Commons, cada linha mostrando seu arquivo de origem
  • Dentro de modules/automation: make help mostra o mesmo formato agrupado, sem os prefixos, incluindo os targets run.<name> gerados
  • make automation.db.ip.allow falha com “No rule to make target”
  • grep -r "db.ip.allow" .commons não retorna nada
  • Outro projeto do commons (qualquer repo que inclua main.makefile) continua renderizando o make help corretamente

Documentação