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 omake helppara 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 helpna raiz lista todos os comandos: os targets do módulo (comoautomation.<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 helpdentro demodules/automationrecebe 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 targetdb.ip.allow, sua descrição###e sua entrada em.PHONYshell/tasks/infra/db/ip/allow.sh— deletar (o único chamador era o target removido); remover os diretóriosdb/ip/que ficam vaziosmake/core/help.mk— ohelppassa 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 deMAKEFILE_LISTacompanhando oFILENAMEdo awk, classifica cada target como Commons (arquivo dentro deCOMMONS_DIR) ou Project (o resto, incluindo os targetsrun.<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.) ePATH_PREFIX(prefixa os caminhos relativos ao projeto com, por exemplo,modules/automation/), para o Makefile da raiz conseguir agregar.
Repo marketing
Makefile(raiz) — ohelpdelega 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çãoautomation.%continua funcionando como está.modules/automation/.infra/provider-args— deletar (seu único consumidor era oallow.sh)learnings/database_aurora_password_authentication.md— acrescentar uma nota de que a regradb.ip.allowfoi 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 maisspecs/20260626091613_db_ip_allowlist_make_rule.md— marcarstatus: superseded, referenciando esta spec
Como verificar
- Na raiz do repo:
make helplista as entradasautomation.<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 helpmostra o mesmo formato agrupado, sem os prefixos, incluindo os targetsrun.<name>gerados make automation.db.ip.allowfalha com “No rule to make target”grep -r "db.ip.allow" .commonsnão retorna nada- Outro projeto do commons (qualquer repo que inclua
main.makefile) continua renderizando omake helpcorretamente
Documentação
- Atualizar
learnings/database_aurora_password_authentication.md(ver Mudanças) - Nenhum doc de regra novo é necessário — o comportamento do help é autoexplicativo