# govhub-br/gov-hub architecture

> Architecture diagram of the GitHub repository govhub-br/gov-hub, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/govhub-br/gov-hub
- Repository: https://github.com/govhub-br/gov-hub

## Overview

gov-bricks é um framework compartilhado de dados públicos, com código de projetos consumidores no mesmo monorepo. O fluxo principal agenda ingestões de APIs e outras fontes para a landing zone; transformações dbt organizam os dados em camadas bronze, silver e gold; publicação e relatórios disponibilizam produtos via Superset. O catálogo e os scripts de modelagem e publicação sustentam cruzamentos declarativos e planos de acesso. As conexões de ingestão e armazenamento são apoiadas pelos trechos examinados; transformações e capacidades descritas apenas no README aparecem sem detalhes de implementação.

Main entry points: [`airflow/helpers/landing_zone.py`](https://github.com/govhub-br/gov-hub/blob/main/airflow/helpers/landing_zone.py) (Landing zone), [`airflow/dags/data_ingest/compras_gov`](https://github.com/govhub-br/gov-hub/tree/main/airflow/dags/data_ingest/compras_gov) (Ingestão Compras.gov), [`airflow/dags/data_ingest/contratos_gov/orgao_contratante_ingest_dag.py`](https://github.com/govhub-br/gov-hub/blob/main/airflow/dags/data_ingest/contratos_gov/orgao_contratante_ingest_dag.py) (Ingestão Contratos.gov), [`airflow/dags/data_transform/mgi/mgi_transform_dag.py`](https://github.com/govhub-br/gov-hub/blob/main/airflow/dags/data_transform/mgi/mgi_transform_dag.py) (DAG transformação MGI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ingestion["Ingestão"]
  node_ingest_compras["Ingestão Compras.gov"]
  node_ingest_contratos["Ingestão Contratos.gov"]
  node_compras_client["Cliente Compras.gov"]
  node_contratos_client["Cliente Contratos.gov"]
  node_landing_helpers["Landing zone<br/>[landing_zone.py]"]
  node_storage_client["Cliente storage<br/>[cliente_storage.py]"]
end

subgraph group_data["Dados e transformação"]
  node_object_storage[("Object storage")]
  node_transform_dag["DAG transformação MGI"]
  node_dbt_models["Modelos dbt"]
end

subgraph group_modeling["Modelagem e catálogo"]
  node_model_scripts["Gerador e mapa"]
  node_publication_scripts["Validação e acesso"]
  node_catalog["Catálogo de sistemas"]
end

subgraph group_consumption["Publicação e consumo"]
  node_report_dag["Relatórios MGI"]
  node_publish_dag["Publicação MGI<br/>[mgi_publish_dag.py]"]
  node_superset_client["Cliente Superset"]
  node_superset["Apache Superset"]
end

node_sources(("Fontes públicas"))
node_consumers(("Órgãos consumidores"))

node_sources -->|"fornecem dados"| node_compras_client
node_sources -->|"fornecem dados"| node_contratos_client
node_ingest_compras -->|"consulta API"| node_compras_client
node_ingest_contratos -->|"consulta API"| node_contratos_client
node_ingest_compras -->|"grava dados brutos"| node_landing_helpers
node_ingest_contratos -->|"grava dados brutos"| node_landing_helpers
node_landing_helpers -->|"usa filesystem"| node_storage_client
node_storage_client -->|"lê e grava"| node_object_storage
node_transform_dag -->|"lê bronze"| node_object_storage
node_transform_dag -->|"executa modelos"| node_dbt_models
node_dbt_models -->|"materializa camadas"| node_object_storage
node_catalog -->|"orienta cruzamentos"| node_model_scripts
node_model_scripts -->|"gera modelos"| node_dbt_models
node_catalog -->|"define publicações"| node_publication_scripts
node_publication_scripts -->|"valida acesso"| node_publish_dag
node_publish_dag -->|"configura publicação"| node_superset_client
node_superset_client -->|"importa bundle e permissões"| node_superset
node_report_dag -->|"entrega relatórios"| node_consumers
node_consumers -->|"consomem dashboards"| node_superset

click node_ingest_compras "https://github.com/govhub-br/gov-hub/tree/main/airflow/dags/data_ingest/compras_gov"
click node_ingest_contratos "https://github.com/govhub-br/gov-hub/blob/main/airflow/dags/data_ingest/contratos_gov/orgao_contratante_ingest_dag.py"
click node_compras_client "https://github.com/govhub-br/gov-hub/blob/main/airflow/plugins/cliente_compras_gov.py"
click node_contratos_client "https://github.com/govhub-br/gov-hub/blob/main/airflow/plugins/cliente_contratos_gov.py"
click node_landing_helpers "https://github.com/govhub-br/gov-hub/blob/main/airflow/helpers/landing_zone.py"
click node_storage_client "https://github.com/govhub-br/gov-hub/blob/main/airflow/plugins/cliente_storage.py"
click node_transform_dag "https://github.com/govhub-br/gov-hub/blob/main/airflow/dags/data_transform/mgi/mgi_transform_dag.py"
click node_report_dag "https://github.com/govhub-br/gov-hub/blob/main/airflow/dags/data_report/mgi/contratacoes_mgi_report_dag.py"
click node_publish_dag "https://github.com/govhub-br/gov-hub/blob/main/airflow/dags/data_publish/mgi/mgi_publish_dag.py"
click node_superset_client "https://github.com/govhub-br/gov-hub/blob/main/airflow/plugins/cliente_superset.py"
click node_model_scripts "https://github.com/govhub-br/gov-hub/tree/main/scripts/modelagem"
click node_publication_scripts "https://github.com/govhub-br/gov-hub/tree/main/scripts/publicacao"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ingest_compras,node_ingest_contratos,node_compras_client,node_contratos_client,node_landing_helpers,node_storage_client toneBlue
class node_object_storage,node_transform_dag,node_dbt_models toneAmber
class node_model_scripts,node_publication_scripts,node_catalog toneMint
class node_report_dag,node_publish_dag,node_superset_client,node_superset toneRose
class node_sources,node_consumers toneIndigo
```

## Components

### Ingestão

- [Ingestão Compras.gov](https://github.com/govhub-br/gov-hub/tree/main/airflow/dags/data_ingest/compras_gov): `airflow/dags/data_ingest/compras_gov`
- [Ingestão Contratos.gov](https://github.com/govhub-br/gov-hub/blob/main/airflow/dags/data_ingest/contratos_gov/orgao_contratante_ingest_dag.py): `airflow/dags/data_ingest/contratos_gov/orgao_contratante_ingest_dag.py`
- [Cliente Compras.gov](https://github.com/govhub-br/gov-hub/blob/main/airflow/plugins/cliente_compras_gov.py): `airflow/plugins/cliente_compras_gov.py`
- [Cliente Contratos.gov](https://github.com/govhub-br/gov-hub/blob/main/airflow/plugins/cliente_contratos_gov.py): `airflow/plugins/cliente_contratos_gov.py`
- [Landing zone](https://github.com/govhub-br/gov-hub/blob/main/airflow/helpers/landing_zone.py): `airflow/helpers/landing_zone.py`
- [Cliente storage](https://github.com/govhub-br/gov-hub/blob/main/airflow/plugins/cliente_storage.py): `airflow/plugins/cliente_storage.py`

### Dados e transformação

- **Object storage**
- [DAG transformação MGI](https://github.com/govhub-br/gov-hub/blob/main/airflow/dags/data_transform/mgi/mgi_transform_dag.py): `airflow/dags/data_transform/mgi/mgi_transform_dag.py`
- **Modelos dbt**

### Modelagem e catálogo

- [Gerador e mapa](https://github.com/govhub-br/gov-hub/tree/main/scripts/modelagem): `scripts/modelagem`
- [Validação e acesso](https://github.com/govhub-br/gov-hub/tree/main/scripts/publicacao): `scripts/publicacao`
- **Catálogo de sistemas**

### Publicação e consumo

- [Relatórios MGI](https://github.com/govhub-br/gov-hub/blob/main/airflow/dags/data_report/mgi/contratacoes_mgi_report_dag.py): `airflow/dags/data_report/mgi/contratacoes_mgi_report_dag.py`
- [Publicação MGI](https://github.com/govhub-br/gov-hub/blob/main/airflow/dags/data_publish/mgi/mgi_publish_dag.py): `airflow/dags/data_publish/mgi/mgi_publish_dag.py`
- [Cliente Superset](https://github.com/govhub-br/gov-hub/blob/main/airflow/plugins/cliente_superset.py): `airflow/plugins/cliente_superset.py`
- **Apache Superset**

### Other components

- **Fontes públicas**
- **Órgãos consumidores**

## Connections

- Fontes públicas → Cliente Compras.gov: fornecem dados
- Fontes públicas → Cliente Contratos.gov: fornecem dados
- Ingestão Compras.gov → Cliente Compras.gov: consulta API
- Ingestão Contratos.gov → Cliente Contratos.gov: consulta API
- Ingestão Compras.gov → Landing zone: grava dados brutos
- Ingestão Contratos.gov → Landing zone: grava dados brutos
- Landing zone → Cliente storage: usa filesystem
- Cliente storage → Object storage: lê e grava
- DAG transformação MGI → Object storage: lê bronze
- DAG transformação MGI → Modelos dbt: executa modelos
- Modelos dbt → Object storage: materializa camadas
- Catálogo de sistemas → Gerador e mapa: orienta cruzamentos
- Gerador e mapa → Modelos dbt: gera modelos
- Catálogo de sistemas → Validação e acesso: define publicações
- Validação e acesso → Publicação MGI: valida acesso
- Publicação MGI → Cliente Superset: configura publicação
- Cliente Superset → Apache Superset: importa bundle e permissões
- Relatórios MGI → Órgãos consumidores: entrega relatórios
- Órgãos consumidores → Apache Superset: consomem dashboards
