power-automate-monitor
JavaScriptHTML0 Estrelas1 Commits
Power Automate Monitor
Ferramenta interna do IBGC para monitorar em tempo real todos os fluxos do Power Automate rodando no environment de produção do Dynamics 365.
Foi a partir dela que descobrimos que o environment tem 7863 fluxos catalogados (883 ativos, 6967 parados).
O que ela faz
- Autentica no Microsoft Flow API via OAuth interativo (Azure Identity) — abre o navegador, pede o login do usuário, recebe o token.
- Lista todos os fluxos do environment configurado (paginando a
flow.microsoft.comadmin API). - Salva a lista em
flows_cache.json(cache local — ~12 MB) para não ter que baixar de novo a cada varredura.
Arquitetura
┌─────────────────┐
│ Navegador │ ← Bootstrap + Socket.IO
│ (dashboard) │
└────────┬────────┘
│ WebSocket
▼
┌─────────────────┐ OAuth interativo ┌──────────────────────┐
│ server.js │ ─────────────────────► │ Azure Identity │
│ (Express + │ │ (token Flow API) │
│ Socket.IO) │ ◄───── token ──────────┤ │
└────┬─────┬──────┘ └──────────────────────┘
│ │
│ │ GET /flows + GET /flows/{id}/runs
│ ▼
│ ┌──────────────────────────────────┐
│ │ api.flow.microsoft.com │
│ │ /providers/Microsoft.ProcessSimple│
│ │ /scopes/admin/environments/{id} │
│ └──────────────────────────────────┘
│
▼
flows_cache.json ← cache local da lista bruta
Configuração
Os IDs do tenant/environment estão hardcoded em server.js (e em
index.js, que é uma versão CLI standalone):
const tenantId = "0909f780-2c25-452a-9f14-e851a227b1fa";
const clientId = "1efbcfec-a103-4eb0-97b6-72613d0c0634";
const environmentId = "ed51e77d-b4a3-4cc6-a0c9-90b1f72ab2e7";
Tip: extrair pra
.envsimplifica trocar de environment sem mexer no código. Hoje precisa editar o JS.
Como rodar
npm install
npm start # roda server.js, abre http://localhost:3000
Ou a versão CLI (sem dashboard):
node index.js
Como usar o dashboard
- Atualizar Lista (botão cinza) — força download do catálogo de
fluxos. Demora alguns minutos (são milhares). Salva em
flows_cache.json. - Varredura Rápida (botão verde) — usa o cache local e checa apenas os runs recentes. Resposta em segundos.
- Drop-down lookback — define a janela: 2, 5, 15 ou 60 minutos atrás.
- Resultados aparecem em tempo real na tabela enquanto a varredura acontece. Status colorido (warning=Running, danger=Failed, success=Success).
Limites e cuidados
Estrutura de arquivos
power-automate-monitor/
├── server.js backend Express + Socket.IO (versão UI)
├── index.js script CLI standalone (mesmo scan, sem UI)
├── index.html dashboard Bootstrap
├── flows_cache.json cache da lista de fluxos (~12 MB, gitignore)
├── package.json
└── node_modules/
Ideias de evolução
- Mover IDs para
.env.
Referência cruzada
Esta ferramenta aparece no diagrama de arquitetura corporativo
(IBGC architecture) dentro da vista
Dynamics 365 / Power Platform como nó pp-monitor.