Tudo o que foi entregue
O histórico completo das entregas do Ministério das Cidades, do trimestre mais recente ao primeiro. Cada item traz a descrição escrita pelo autor no pull request, quando existe, e o link para a evidência.
15 entregas · dez/2024 — ago/2026
Onde começa esta história. O repositório é um fork de
data-application-gov-hub, criado em 13/abr/2026, e herdou o
histórico da plataforma base. O pipeline do Ministério das Cidades, porém,
nasceu depois do fork: não há um único commit no projeto dbt
mcid anterior a essa data. Por isso todas as entregas abaixo são
pull requests deste repositório, com a descrição escrita pelo autor. O que
veio de antes foram fontes de ingestão já existentes na plataforma — IBGE e
BACEN entre elas — reaproveitadas pelo domínio de Conjuntura.
2026T3
-
Adiciona script de dif entre Minio e sftp
Juan-Ricarte · outro -
melhoras no script de snapshot
gusrberto · refatoraçãoAdiciona ao script
sftp_snapshot.pya capacidade de detectar cópia de arquivos entre diretórios do SFTP. - Um arquivo novo cujo nome+tamanho coincide com um arquivo ainda presente em outro path é classificado como copiado (origem -> destino), não como novo. -
ingestão dos dados do sftp
gusrberto · funcionalidadeForam feitos dois scripts: - [x] Script de inserção de dados do SFTP no banco do projeto; - [x] Script de snapshots para descobrir alterações que ocorreram no SFTP entre períodos diferentes.
Resolve as issues #91 e #92
2026T2
-
pipeline dbt da linha entidades (FDS) do MCMV
gusrberto · funcionalidadeResolve as issues #78, #79 e #80
Criação das 3 camadas do pipeline de transformação dos dados do MCMV Entidades. - [x] Camada bronze com tratamanto e normalização das tabelas; - [x] Camada silver com cruzamentos e integração das tabelas; - [x] Camada gold com tabelas criadas a partir da silvers para consumo no Superset;
-
Fixture/ajustes conjuntura
bottinolucas · outroDescrição
Adiciona rastreabilidade completa de datas em todos os modelos dbt do pipeline de conjuntura, permitindo identificar quando cada dado foi coletado e quando cada camada foi materializada. O que foi feito:
O que foi feito?
- Criado macro add_metadata_timestamps(layer, has_ingest_date) em macros/add_metadata_timestamps.sql, que padroniza a inserção das colunas de auditoria em todos os modelos Silver e Gold
- Adicionado dt_ingest (propagado da Bronze), dt_silver (current_timestamp na materialização) em todos os 19 modelos Silver
- Adicionado dt_ingest, dt_silver e dt_gold (current_timestamp na materialização) em todos os 20 modelos Gold
- Bronzes com inserção manual (sem pipeline) recebem NULL::timestamp em dt_ingest — sinalizando explicitamente a ausência de rastreabilidade de coleta
- Modelos com GROUP BY propagam dt_ingest via MAX(dt_ingest); modelos com múltiplas fontes utilizam GREATEST(a.dt_ingest, b.dt_ingest) para refletir a ingestão mais recente
- Queries do dashboard Superset atualizadas com dt_ingest AS "Data Atualização" em todos os charts implementados
Impacto
Nenhuma coluna existente foi alterada ou removida — apenas adição de colunas novas. Sem breaking changes.
-
evolucao financeira da obra FAR
gusrberto · funcionalidadeResolve a issue #20
Cria as camadas bronze, silver e gold de evolução financeira que:
- [x] Limpar e tipar os dados brutos da tabela financeiro_mensal (bronze)
- [x] Agregar as liberações por APF e mês, calcular o desembolso acumulado e fazer o JOIN com os empreendimentos (silver);
- [x] Expor os dados ao Superset em formato display-ready, seguindo a convenção do projeto onde apenas modelos gold são consumidos pelo BI (gold)
-
Feat/conjuntura dbt
MilenaFRocha · outrorefs #216 refs #217
-
agregacao de empreendimentos far por estado
gusrberto · funcionalidade- [x] Nova tabela gold de
panorama_estadualque agrega as informações dos empreendimentos do Novo MCMV FAR em diferentes tipos de charts; - [x] Criação de nova aba
Estadosna Dashboard do FAR no Superset para visualização da gold criada;
- [x] Nova tabela gold de
-
Ingestão FipeZAP — Índice de Locação Residencial
bottinolucas · outroDescrição
Implementa a ingestão do Índice FipeZAP de locação residencial a partir do XLSX histórico disponibilizado publicamente pela FIPE.
Arquivos adicionados
airflow_lappis/plugins/cliente_fipezap.pyairflow_lappis/dags/data_ingest/fipezap/fipezap_historico_ingest_dag.pyairflow_lappis/dags/data_ingest/fipezap/fipezap_trimestral_ingest_dag.py
Dados ingeridos
imoveis_residenciais_locacao_var_mensal_total— variação mensal (%) da locação residencialimoveis_residenciais_locacao_var_ano_total— variação em 12 meses (%) da locação residencial
Decisões técnicas
- XLSX baixado em memória via
BytesIO— nenhum arquivo salvo em disco - DAG trimestral regrava a série completa a cada execução via upsert — captura revisões retroativas automaticamente (comportamento confirmado durante o mapeamento)
- DAG histórica com
schedule_interval=None— execução manual única - Tratamento de exceções do Airflow:
AirflowFailExceptionpara falha no download,AirflowSkipExceptionpara XLSX vazio
Tabela destino
fipezap.indice_locacao -
Ingestão ABECIP - Caderneta de poupança SBPE Mensal
bottinolucas · outroDescrição
Implementa a ingestão dos dados de Saldo da Caderneta de Poupança SBPE Mensal da ABECIP, a partir do XLSX disponibilizado publicamente no site da associação.
Arquivos adicionados
airflow_lappis/plugins/cliente_abecip.pyairflow_lappis/dags/data_ingest/abecip/abecip_poupanca_historico_ingest_dag.pyairflow_lappis/dags/data_ingest/abecip/abecip_poupanca_trimestral_ingest_dag.py
Dados ingeridos — aba
SBPE_Mensaldeposito— R$ milhõesretirada— R$ milhõescaptacao_liquida_valor— R$ milhõescaptacao_liquida_pct— %rendimento— R$ milhõessaldo— R$ milhões
Decisões técnicas
- Cliente faz scraping da página ABECIP antes do download para obter sempre a URL atual do XLSX — o nome do arquivo muda a cada atualização (ex:
cp-historico-marco20261.xlsx→cp-historico-abril20261.xlsx) - XLSX baixado em memória via
BytesIO— nenhum arquivo salvo em disco - Filtro de linhas futuras — descarta meses preenchidos com zero sem saldo no XLSX
- Filtro de linhas anuais — descarta registros
Total.YYYYmantendo apenas registros mensais - DAG trimestral regrava a série completa via upsert — captura revisões retroativas
- Tratamento de exceções do Airflow:
AirflowFailExceptionpara falha no scraping ou download,AirflowSkipExceptionpara XLSX vazio - Valores em R$ milhões — conversão de unidade é responsabilidade do dbt
- Cliente estruturado para receber novos datasets da ABECIP (ex: SBPE de financiamento) via novos métodos
fetch_and_transform_*sem necessidade de criar um novo cliente
Tabela destino
abecip.poupanca_sbpe_mensal -
Feat/ingestao infomoney
MilenaFRocha · outrorefs #220 https://github.com/GovHub-br/data-application-gov-hub/issues/220
-
Cidades relatorio
mat054 · outroIngestões do IBGE + BACEN relacionado à Conjuntura
Documentação das ingestões do ibge: https://docs.google.com/document/d/1CQq1vLgNtc5YN_aFODu8TttZhleq7Mx-NnIQkh1kD8E/edit?tab=t.0
Variables do airflow: Key: IBGE_CONFIGURACOES Value: [ {"agregado": 5932, "variaveis": "6564|6563|6562|6561", "tabela": "pib_construcao", "periodos": "-20", "classificacao_id": 11255, "categoria": 90694}, {"agregado": 2296, "variaveis": "48|1196|1197|1198", "tabela": "sinapi", "periodos": "-30"}, {"agregado": 2072, "variaveis": "933", "tabela": "pib_consolidado_trimestral_bruto", "periodos": "-20"}, {"agregado": 1846, "variaveis": "585", "tabela": "pib_corrente_milhoes_brl", "periodos": "-20", "classificacao_id": 11255, "categoria": "all"}, {"agregado": 585, "variaveis": "632|1908|1924", "tabela": "paic_resultados", "periodos": "-10"}, {"agregado": 586, "variaveis": "631|1816|673|1780", "tabela": "paic_pessoal_salarial", "periodos": "-10"}, {"agregado": 591, "variaveis": "1930|1931|1932", "tabela": "paic_obras", "periodos": "-10"}, {"agregado": 6323, "variaveis": "4090", "tabela": "pnad_trabalho_construcao", "periodos": "-12", "classificacao_id": 888, "categoria": "47946|47949"}, {"agregado": 6391, "variaveis": "5932", "tabela": "pnad_rendimento_construcao", "periodos": "-12", "classificacao_id": 888, "categoria": "47946|47949"}, {"agregado": 7521, "variaveis": "606", "tabela": "pnadc_populacao_decis_renda", "periodos": "-5", "classificacao_id": 1019, "categoria": "all"}, {"agregado": 7531, "variaveis": "10824", "tabela": "pnadc_rendimento_domiciliar_real", "periodos": "-5", "classificacao_id": 1019, "categoria": "all"}, {"agregado": 6821, "variaveis": "162|10114", "tabela": "pnadc_habitacao_condicao", "periodos": "-5", "classificacao_id": 63, "categoria": "4343|1055|2519|1058"} ]
-
DBTs bronze, silver e gold para empreendimentos far
gusrberto · funcionalidadeResolve a issue #7
-
dags para extracao de indices MRV
gusrberto · funcionalidade- [x] DAG
airflow_lappis/dags/data_ingest/mrv/lancamentos_ingest_dag.pypara extração dos Lançamentos trimestrais (e anuais) da MRV a partir de um arquivo XLSX obtido do site da MRV; - [x] DAG
airflow_lappis/dags/data_ingest/mrv/vendas_ingest_dag.pypara extração das Vendas Líquidas trimestrais (e anuais) da MRV a partir de um arquivo XLSX obtido do site da MRV;
- [x] DAG
-
dags para extração de indices FGV
gusrberto · funcionalidade- [x] DAG
airflow_lappis/dags/data_ingest/fgv/incc_m_ingest_dag.pypara extração do índice INCC-M da FGV a partir de um arquivo XLSX do site da Sinduscon-PR; - [x] DAG
airflow_lappis/dags/data_ingest/fgv/icst_ingest_dag.pypara extração do índice ICST da FGV a partir de um CSV obtido a partir de um scraper no site FGVDados;
OBS: Para a segunda DAG é necessário ter uma conta na plataforma FGVDados, e colocar as credenciais na parte de "Variables" do Airflow com os nomes
dados_fgv_emailedados_fgv_password:<img width="684" height="85" alt="image" src="https://github.com/user-attachments/assets/cb89864d-576e-402a-adaa-fefb25dfdde9" />
- [x] DAG