SDR — Dados Ibama: mapa de ativos, referência CMDB e exportação KML/Leaflet

Página estática gerada a partir do Markdown do repositório — o texto abaixo já vem no HTML (adequado a importação por URL em ferramentas que não executam o ver-md.html). Arquivo: sdr-0020-dados-ibama-mapa-ativos-cmdb-kml.md

SDR — Dados Ibama: mapa de ativos, referência CMDB e exportação KML/Leaflet

Eixo: Modelo de Servicos (Modelo de Servicos | Arquitetura Contratual | Ambos)

Campo Valor
SSoT Sim — dono da especificação de implementação no repositório para a pasta Dados-ibama/, mapas tabulares em Markdown, scripts Python, arquivos KML e integração com a página Mapa de Localidades no site
Estado âncora operacional (regerar artefatos pelos comandos da seção 5)

1. Âmbito no repositório

Caminho-base: Dados-ibama/ na raiz do workspace CentralDeServicos (irmão de processo-contratacao/; alimenta o site em ../../arquitetura-contratual/site/).

Nos quadros abaixo, caminhos Dados-ibama/... são relativos à raiz do repositório (o mesmo que ../../Dados-ibama/ a partir desta pasta SDRs/).


2. Artefatos (fonte vs gerado)

Caminho Tipo Papel
Dados-ibama/localidades_ibama.md Fonte 91 unidades; latitude/longitude; precisão (exata/aproximada); coluna opcional Servidores (unidade); base de coordenadas para todos os KML de mapa
Dados-ibama/qtd-servidores-municipio.md Fonte Quantidade de servidores públicos (pessoas) por município — usado no mapa de dimensionamento e no JS mapa-ibama-data.js
Dados-ibama/localidades_ibama_byCodex.md Fonte auxiliar Cópia derivada de localidades (coordenadas); não é obrigatório para o pipeline KML principal, que usa localidades_ibama.md
Dados-ibama/itens-configuracao-cmdb-top100.md Referência Taxonomia de tipos de CI (hardware, rede, lógicos, serviços) — não duplicar a tabela neste SDR; usar o arquivo como anexo lógico
Dados-ibama/mapa-ativos-por-localidade-dimensionamento.md Gerado Rodar _calc_mapa_ativos.py. Mapa contratual: teto 5300 usuários de rede, tiers Sede/SUPES CG/demais, 2 servidores de borda só em SUPES (exceto MS CG), pacote de trabalho do usuário, totais nuvem + datacenter (seção 4 abaixo)
Dados-ibama/mapa-ativos-localidades-cmdb_byCodex.md Gerado Rodar gerar_mapa_ativos_bycodex.py. Tabela byCodex com colunas de CIs de sustentação, segurança e governança; linha sintética SEDE BRASÍLIA; usa localidades_ibama_byCodex.md e premissas da seção 4.1
Dados-ibama/_calc_mapa_ativos.py Script Gera mapa-ativos-por-localidade-dimensionamento.md; contém constantes de inventário lógico (seção 4)
Dados-ibama/gerar_mapa_ativos_bycodex.py Script Gera mapa-ativos-localidades-cmdb_byCodex.md; contém as premissas específicas da variante byCodex (seção 4.1)
Dados-ibama/gerar_kml_mapa_ibama.py Script Gera KML e mapa-ibama-data.js (seção 6)

3. Duas variantes de mapa em Markdown (não unificar sem decisão)

Variante Arquivo Uso
Dimensionamento mapa-ativos-por-localidade-dimensionamento.md Contratos sustentação/segurança/governança; efetivos escalados + terceiros; coluna Servidores físicos locais (modelo SUPES); pacote usuário
byCodex mapa-ativos-localidades-cmdb_byCodex.md Estimativa com colunas CIs sustentação/segurança/governança; linha sintética SEDE BRASÍLIA (ID 0 no markdown byCodex; casar com coordenada da SEDE em localidades_ibama.md por nome para KML)

4. Inventário lógico nuvem e datacenter (totais corporativos)

Os números canônicos para reproduzir o markdown de dimensionamento estão nas constantes no topo de _calc_mapa_ativos.py (editar ali e regerar o .md):

Constante Valor atual
SISTEMAS_APLICACAO_DC 68
VMS_DATACENTER_LOCAL 360
CONTAINERS_DATACENTER_LOCAL 250
VMS_NUVEM 400
CONTAINERS_NUVEM 600

Totais derivados: 760 VMs, 850 containers (soma DC local + nuvem). O resumo executivo em mapa-ativos-localidades-cmdb_byCodex.md deve alinhar a esses totais quando as constantes mudarem.


4.1 Variante byCodex — premissas canônicas de reprodução

Para um agente reconstruir exatamente o mapa-ativos-localidades-cmdb_byCodex.md atual, usar Dados-ibama/gerar_mapa_ativos_bycodex.py e as regras abaixo.

Entradas

Entrada Uso
localidades_ibama_byCodex.md Base das 90 localidades originais e municípios/base; não possui a linha sintética de sede
qtd-servidores-municipio.md Quantidade de servidores públicos por município
itens-configuracao-cmdb-top100.md Taxonomia de referência citada no texto final; não entra em cálculo numérico

Regras de distribuição

  • Adicionar uma linha sintética ID 0 | DF | SEDE BRASÍLIA | Brasília antes das 90 localidades.
  • Agrupar municípios por UF + município normalizado; São Luís / São José de Ribamar conta como São Luís, para evitar duplicidade.
  • Quando houver mais de uma unidade no mesmo município, distribuir servidores públicos por peso de tipo de unidade:
  • SEDE: 20.0
  • SUPES: 1.0
  • GEREX: 0.8
  • UNID ou UT: 0.7
  • CETAS: 0.25
  • AEROPORTO, POSTO, BASE, BRIGADA, ARF: 0.25
  • demais: 0.5
  • A fonte municipal soma 3.335 servidores, mas a variante byCodex distribui 3.313, porque Campinas/SP, Benevides/PA e Oiapoque/AP constam em qtd-servidores-municipio.md e não constam em localidades_ibama_byCodex.md.

Terceirizados e usuários

  • Teto de usuários de rede: 5.300.
  • SEDE BRASÍLIA: 800 terceirizados fixos.
  • Terceirizados brutos fora da sede:
  • servidores >= 80: 50% dos servidores;
  • servidores entre 40 e 79: 100% dos servidores, prevalecendo a regra mais recente do pedido do usuário;
  • servidores entre 15 e 39: 80% dos servidores;
  • servidores < 15: 0, por ausência de regra específica.
  • Ajustar terceirizados fora de Brasília proporcionalmente para fechar o teto de 5.300 usuários. O fator atual calculado é 72.78%.

Ativos por localidade

  • Estações/notebooks = 1 por usuário de rede.
  • APs Wi-Fi = ceil(usuários / 15), mínimo 1 por localidade.
  • Firewall = 1 por localidade.
  • SD-WAN = 1 por localidade.
  • SUPES = 2 servidores locais (DNS + file server).
  • Datacenter local:
  • 360 VMs + 250 containers = 610 workloads lógicos locais;
  • dividir igualmente entre SEDE BRASÍLIA e SUPES CAMPO GRANDE/MS: 305 + 305.
  • Nuvem:
  • 400 VMs + 600 containers = 1.000 workloads lógicos em nuvem;
  • atribuir à SEDE BRASÍLIA como ponto central de governança/contabilização.
  • Sistemas de negócio:
  • 68 sistemas de tamanhos variados;
  • dividir entre SEDE BRASÍLIA e SUPES CAMPO GRANDE/MS: 34 + 34.

Fórmulas de CIs de referência

Para cada linha:

rede = firewall + sdwan + aps
cis_sustentacao = usuarios + servidores_dns_file + workloads_dc_local + workloads_nuvem + sistemas + rede + 6
cis_seguranca   = usuarios + servidores_dns_file + workloads_dc_local + workloads_nuvem + sistemas + rede + 4
cis_governanca  = cis_sustentacao + 5

Totais atuais do byCodex:

Métrica Valor
Localidades, incluindo sede sintética 91
Servidores públicos distribuídos 3313
Terceirizados estimados 1987
Usuários de rede 5300
Estações/notebooks 5300
APs Wi-Fi 399
Servidores locais DNS/file server 52
Sistemas de negócio 68
Workloads em datacenter local 610
Workloads em nuvem 1000
CIs sustentação 8157
CIs segurança 7975
CIs governança 8612

5. Comandos de regeneração (ordem recomendada)

No diretório Dados-ibama/ (ou com caminho absoluto):

python gerar_mapa_ativos_bycodex.py
python _calc_mapa_ativos.py
python gerar_kml_mapa_ibama.py
  • gerar_mapa_ativos_bycodex.py atualiza mapa-ativos-localidades-cmdb_byCodex.md.
  • _calc_mapa_ativos.py atualiza mapa-ativos-por-localidade-dimensionamento.md.
  • gerar_kml_mapa_ibama.pylocalidades_ibama.md, qtd-servidores-municipio.md, os dois mapas .md e grava os KML + o JS do site.

6. Saídas do gerar_kml_mapa_ibama.py

Arquivo Conteúdo
Dados-ibama/localidades_ibama.kml 91 pontos; círculos proporcionais a servidores (município ou coluna unidade)
Dados-ibama/mapa-ativos-localidades-cmdb_byCodex.kml 91 placemarks; balão = linha da tabela byCodex
Dados-ibama/mapa-ativos-por-localidade-dimensionamento.kml 91 placemarks; balão = linha Mapa por unidade do dimensionamento
../../arquitetura-contratual/site/assets/js/mapa-ibama-data.js window.IBAMA_MAPA — mesmos 91 pontos do KML de localidades (Leaflet)

Casamento tabela de mapa ↔ coordenada: (UF, nome da unidade) com normalização (remove sufixo final entre parênteses, ex. SEDE BRASÍLIASEDE BRASÍLIA (Ibama)).

Parser: ao ler a tabela Markdown do byCodex, preservar células vazias (ex.: coluna Observação vazia no fim da linha); filtrar células vazias de mais quebra o número de linhas.


7. Página no site (Leaflet)

Caminho (relativo a SDRs/) Papel
../../arquitetura-contratual/site/mapa-ibama.html Página do mapa; carrega mapa-ibama-data.js e mapa-ibama-init.js
../../arquitetura-contratual/site/assets/js/mapa-ibama-init.js Inicialização Leaflet a partir de window.IBAMA_MAPA
../../arquitetura-contratual/site/outros.html Link de navegação Mapa de Localidadesmapa-ibama.html

O Leaflet usa dados de localidades + servidores, não os quantitativos completos dos mapas de ativos por unidade (isso fica nos KML dedicados).


8. Ligações


9. Consumidores

Dimensionamento de contratos, materiais de apoio à governança de CMDB, exportação cartográfica (KML/My Maps), página pública do mapa no site.


Agentes de conformidade (Cursor)

Os três agentes abaixo aplicam-se à edição e à revisão dos arquivos SDRs/sdr-*.md (exceto SDRs/templates/ e normas em SDRs/governance/). Este bloco é informativo; use o script na raiz do repositório para diagnóstico estrutural.

Agente Regra Cursor Norma em SDRs/governance/rules/
Verificador de conformidade SDR sdr-conformity-checker.mdc sdr-conformity-checker.md
Detector de implementação sem vínculo SDR implementation-without-sdr-detector.mdc implementation-without-sdr-detector.md
Anti-vibecoding sem SDR no-vibecoding-without-sdr.mdc no-vibecoding-without-sdr.md

Processo: governance/README.md · Rastreabilidade código: traceability.md · Checagem: python scripts/check_sdr_conformity.py (na raiz do repositório).