v0.2.0 — Cloud sync (AWS) + FinOps idle public IPs
v0.2.0 — Cloud sync (AWS) + FinOps idle public IPs
Primeira entrega significativa pós-lançamento: o Bagre agora conecta na sua AWS, sincroniza VPCs, subnets, ENIs e Elastic IPs, e mostra quanto você está desperdiçando por mês em IPs públicos ociosos.
✨ Novidades
Cloud Accounts (AWS)
- Nova página admin em /admin/cloud-accounts
- Wizard de conexão com policy IAM read-only copy-paste pronta
- Dois modos de autenticação:
- Access Key — IAM User dedicado (mais simples)
- Assume Role — STS:AssumeRole com external ID (mais seguro)
- Test de credenciais antes de salvar
- Sync manual com feedback de progresso
- Histórico de execuções por account (read, created, updated, errors)
- Credenciais criptografadas com AES-256-GCM no banco
FinOps — IPs públicos ociosos
- Hero card no topo da página: número grande em USD/mês desperdiçados
- Drill-down table com address, account, tag Name, allocation ID, idade
- Endpoint REST:
GET /api/cloud/finops/idle-public-ips - Atualiza a cada 30s
Estrutura de dados
- Subnets e IPs ganham campos opcionais de tracking cloud (
source,cloudAccountId,cloudResourceId,cloudMetadata,ipKind) - Modelos:
CloudAccount,CloudSyncRun, enumsIpKind,CloudProvider,CloudSyncMode,CloudSyncStatus - Per-account site sintético (
cloud-aws-<accountId>) pra isolar múltiplas contas - Public IP pool sintético pra capturar Elastic IPs unassociated (chave do FinOps)
🧹 Removido
- Feature de Firewall Rules — fora do escopo de IPAM. Manage suas regras no NetBox, no provider, ou na ferramenta dedicada. A classificação de equipamento como "Firewall" (FortiGate etc) continua disponível.
⚙️ Configuração nova
Pra usar cloud sync, gere uma chave de criptografia e coloque em .env:
echo "CLOUD_CREDS_KEY=$(node -e "console.log(require('crypto').randomBytes(32).toString('hex'))")" >> .envPra usar Assume Role (opcional), exporte também as credenciais base do Bagre:
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_REGION=us-east-1
docker compose up -d continua funcionando sem nenhuma config nova — cloud sync é opt-in.
🚀 Como atualizar
git pull
docker compose build api web
docker compose up -d🛣️ Próximas entregas
- Scheduler periódico (hoje sync é só manual)
- Azure provider
- GCP provider
- Surface da origem cloud nas páginas de subnet e IP
🙏 Feedback
O Bagre é jovem e essa é a primeira release com a integração cloud. Se sua dor é planilha de IPs ou sangria de Elastic IP idle, abre uma issue ou discussion — feedback de quem sente a dor pauta o que vem antes.
📦 Código no GitHub — MIT — docker compose up -d em 5 min