Fonte: SDRs/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 só 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íliaantes das 90 localidades. - Agrupar municípios por
UF + município normalizado;São Luís / São José de Ribamarconta comoSã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.0SUPES: 1.0GEREX: 0.8UNIDouUT: 0.7CETAS: 0.25AEROPORTO,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/PAeOiapoque/APconstam emqtd-servidores-municipio.mde não constam emlocalidades_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ÍLIAeSUPES CAMPO GRANDE/MS: 305 + 305. - Nuvem:
- 400 VMs + 600 containers = 1.000 workloads lógicos em nuvem;
- atribuir à
SEDE BRASÍLIAcomo ponto central de governança/contabilização. - Sistemas de negócio:
- 68 sistemas de tamanhos variados;
- dividir entre
SEDE BRASÍLIAeSUPES 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.pyatualizamapa-ativos-localidades-cmdb_byCodex.md._calc_mapa_ativos.pyatualizamapa-ativos-por-localidade-dimensionamento.md.gerar_kml_mapa_ibama.pylêlocalidades_ibama.md,qtd-servidores-municipio.md, os dois mapas.mde 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ÍLIA ↔ SEDE 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 Localidades → mapa-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
- sdr-0004-parque-localidades-ativos.md — parque agregado (processo); este SDR detalha a implementação tabular/KML no repositório
- sdr-0017-site-html-rastreabilidade.md — regras gerais do site
- sdr-0011-governanca-c1-medicao.md — CMDB no C1; taxonomia de referência em
itens-configuracao-cmdb-top100.md(ver §2 deste SDR)
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).