Skip to content

v0.3.0 — Prometheus discovery + security hardening

Choose a tag to compare

@fabgcruz fabgcruz released this 27 May 22:58
· 84 commits to main since this release

v0.3.0 — Prometheus discovery + security hardening

Release que responde aos primeiros feedbacks da comunidade após o lançamento, endurece os defaults de segurança e polish geral da experiência.

✨ Destaques

🔥 Prometheus discovery (#25)

Sugerido pelo Leonardo Berbert no LinkedIn — implementado em <24h.

Nova integração admin que conecta no seu Prometheus, lê /api/v1/targets, e cria pending discoveries no Bagre a partir dos labels (__address__, instance, job).

  • Auth: none (default), bearer, ou basic
  • Tipo derivado do job name (node → Servidor Linux, windows → Servidor Windows, etc)
  • Scheduler periódico configurável
  • Mesmo fluxo de aprovação do Zabbix

Bonus: o pipeline de discovery virou módulo compartilhado, então adicionar SNMP / Nmap / outras descobertas no futuro reusa direto.

🔒 Hardening de segurança

  • JWT_SECRET é fail-closed — API recusa boot se < 32 chars ou se for um dos placeholders conhecidos. Tokens forjáveis em deploys mal configurados eram risco real.
  • Sem mais "admin123" — se BOOTSTRAP_ADMIN_PASSWORD não vier do env, uma senha aleatória forte é gerada e impressa UMA vez no log do container.
  • docker-compose.yml sem defaults inseguros — todos os tokens vêm do .env, sem fallbacks placeholder.
  • .env.example reescrito com instruções claras de geração de cada segredo.

📊 Catálogos com cloud-aware tabs

A aba "Azure Subnets" estática saiu. Em seu lugar: uma aba por cloud account conectado, listando subnets sincronizadas em tempo real (CIDR, region, contagem de IPs, link pra detalhes).

🎯 Hero FinOps reframed

Antes: card verde "Sem desperdício de IPs públicos" mesmo sem conta conectada — falso positivo. Agora 3 estados explícitos:

  • Cinza neutro: sem dados pra avaliar
  • Verde: auditoria rodou, nenhum ocioso (com nota pra re-sincronizar)
  • Âmbar: N ociosos · $X/mês se mantidos · avalie caso a caso

🏷️ EquinixVlan → DatacenterVlan (#23)

Catálogo de VLANs agora é neutro: campo provider aceita Equinix, Ascenty, ODATA, próprio datacenter, etc. Endpoints renomeados de /api/equinix-vlans para /api/datacenter-vlans.

📚 Documentação/processo

  • CONTRIBUTING.md novo (#4)
  • SECURITY.md novo (#5) — política de disclosure privada via GitHub Security Advisories
  • Issue templates (#6) — formulários bug + feature
  • docs.html regenerada (#3)

🧹 Removido

  • Feature de Firewall Rules — fora do escopo IPAM. NetBox e ferramentas dedicadas fazem isso melhor.

⚠️ Breaking changes

.env requer atualização

  • JWT_SECRET obrigatório (≥32 chars). Gere com:
    node -e "console.log(require('crypto').randomBytes(48).toString('base64'))"
    
  • Veja .env.example atualizado.

Endpoints renomeados

  • /api/equinix-vlans/*/api/datacenter-vlans/*. Quem automatiza via API precisa atualizar.

📦 Como atualizar

git pull
docker compose build api web
docker compose up -d

Antes do up -d, garanta que .env está com JWT_SECRET válido — sem isso a API não sobe.

🛣️ O que vem na sequência

Próximas issues na fila:

  • #26 SNMP discovery + topology graph (sugestão do Raul Libório)
  • #27 Validation plugin system (sugestão do Jesse Fernandes)
  • #20 Cloud sync Azure
  • #11, #12, #14 — histórico subnet, CIDR avançado, bulk ops

🙏 Obrigado

Comunidade que reagiu ao lançamento e gerou as features desta release:

  • Leonardo Berbert — Prometheus discovery
  • Raul Libório — SNMP/topology (próximas)
  • Jesse Fernandes — gRPC + validation (próximas)

12 issues fechadas nesta release.

📦 Código: https://github.com/fabgcruz/bagre — MIT — docker compose up -d em 5 min