Carregador dos Dados Abertos do CNPJ (Receita Federal) para Postgres, com:
- descoberta de arquivos via WebDAV PROPFIND (XML)
- automação de mês (carrega sempre o próximo mês disponível)
- download/extract paralelos
- carga streaming via
COPY - notificação via SMTP (Gmail) ao final
- Copie
.env.example->.enve ajuste as variáveis (DB e e-mail se quiser). - Execute:
docker compose up --buildOs logs agora saem em JSON estruturado (com level, msg, timestamps e campos como month, count, duration).
Para acompanhar em tempo real:
docker compose logs -f loaderOpcional: controlar verbosidade no .env:
LOG_LEVEL=infoValores aceitos: debug, info, warn, error.
- Verifique se o serviço iniciou sem erro de config:
docker compose logs -f loader - Confirme conexão com banco (log
database connected). - Confirme listagem DAV (log
remote files listed). - Acompanhe estágios:
download stage ...,extract stage ...,scan stage ...,load stage ... - Final esperado:
log
pipeline finished.
O loader salva no Postgres (tabela rfcnpj_meta) duas chaves:
loaded_month(ex.:2026-01)loaded_url(URL usada no PROPFIND)
Em cada execução:
- lê
loaded_month - calcula o próximo mês
- faz PROPFIND no template
DAV_LIST_URL_TEMPLATEcom%s= mês alvo - se existir (XML retornado), baixa/extrai/carreca
- se não existir, finaliza informando que já está atualizado
Você pode forçar um mês com FORCE_MONTH=YYYY-MM.
ENABLE_DOWNLOAD: sefalse, não baixa (usa o que já estiver emOUTPUT_FILES_PATH)ENABLE_EXTRACT: sefalse, não extrai (usa o que já estiver emEXTRACTED_FILES_PATH)CREATE_INDEXES: setrue, cria índices (cnpj_basico) nas principais tabelas