Regras do Pulse
Lista, cria, edita e apaga as regras que definem o que o Pulse vigia e com que sensibilidade.
Listar regras do Pulse
Devolve as regras que o Pulse usa para vigiar a loja. Na primeira consulta de uma loja, a plataforma cria três regras padrão, desligadas: queda de faturamento (revenue), de pedidos (orders_count) e de aprovação de pagamento (payment_approval).
/api/v1/admin/pulse/rulesAdminLista as regras de alerta
Exige o privilégio view_reports.
Exemplo de requisição (Listar regras)
curl "$BASE_URL/api/v1/admin/pulse/rules" \
-H "Authorization: Bearer $TOKEN"Resposta (Listar regras)
[
{
"id": "55c6c3c9-530c-48d2-ba2e-d30050ece7ab",
"metric": "orders_count",
"window_minutes": 60,
"threshold_pct": 50,
"min_events": 5,
"cooldown_minutes": 120,
"channels": [
"inbox",
"whatsapp"
],
"whatsapp_number": "+5511987654321",
"quiet_start": 23,
"quiet_end": 7,
"is_active": true
}
]Campos da resposta
iduuidmetricstringrevenueorders_countpayment_approvalwindow_minutesintegerthreshold_pctintegermin_eventsintegerpayment_approval é o número de pagamentos concluídos na janela.cooldown_minutesintegerchannelsarrayinbox (sino do painel) e/ou whatsapp.whatsapp_numberstringquiet_startintegerquiet_endintegeris_activebooleanErros (Listar regras)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio exigido. | {"error":"insufficient privileges","required":"view_reports"} |
| 500 | Falha de banco. | {"error":"failed to list pulse rules","detail":"..."} |
Criar regra do Pulse
Cria uma regra, por exemplo uma segunda regra de faturamento com janela de 30 minutos. Só existe uma regra por par metric e window_minutes.
/api/v1/admin/pulse/rulesAdminCria uma regra de alerta
Exige o privilégio manage_settings.
Corpo da requisição
metricstringobrigatóriorevenueorders_countpayment_approvalwindow_minutesintegerpadrão: 60threshold_pctintegermin_eventsintegercooldown_minutesintegerchannelsarraypadrão: ['inbox']inboxwhatsappwhatsapp_numberstring+5511987654321).quiet_startintegerquiet_endintegeris_activebooleanExemplo de requisição (Criar regra)
curl -X POST "$BASE_URL/api/v1/admin/pulse/rules" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"metric": "revenue",
"window_minutes": 30,
"threshold_pct": 40,
"min_events": 3,
"cooldown_minutes": 60,
"channels": [
"inbox"
],
"quiet_start": 22,
"quiet_end": 6,
"is_active": false
}'Resposta (Criar regra)
{
"id": "55c6c3c9-530c-48d2-ba2e-d30050ece7ab",
"metric": "revenue",
"window_minutes": 30,
"threshold_pct": 40,
"min_events": 3,
"cooldown_minutes": 60,
"channels": [
"inbox"
],
"whatsapp_number": "",
"quiet_start": 22,
"quiet_end": 6,
"is_active": false
}Campos da resposta
iduuidmetricstringrevenueorders_countpayment_approvalwindow_minutesintegerthreshold_pctintegermin_eventsintegerpayment_approval é o número de pagamentos concluídos na janela.cooldown_minutesintegerchannelsarrayinbox (sino do painel) e/ou whatsapp.whatsapp_numberstringquiet_startintegerquiet_endintegeris_activebooleanErros (Criar regra)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio exigido. | {"error":"insufficient privileges","required":"manage_settings"} |
| 400 | Corpo inválido, métrica desconhecida, ou já existe regra para esse par métrica/janela. | {"error":"failed to create pulse rule","detail":"unknown metric: \"foo\""} |
Editar regras do Pulse
Recebe uma lista de regras e atualiza cada uma pelo id. Itens sem id são ignorados em silêncio: esta rota nunca cria. A métrica de uma regra não muda; o resto (limites, canais, silêncio, ligar/desligar, janela) sim.
/api/v1/admin/pulse/rulesAdminAltera várias regras de uma vez
Exige o privilégio manage_settings.
Corpo da requisição
[]arrayobrigatórioid (obrigatório), threshold_pct, min_events, cooldown_minutes, channels, whatsapp_number, quiet_start, quiet_end, is_active e window_minutes.Exemplo de requisição (Editar regras)
curl -X PUT "$BASE_URL/api/v1/admin/pulse/rules" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '[
{
"id": "55c6c3c9-530c-48d2-ba2e-d30050ece7ab",
"threshold_pct": 45,
"min_events": 5,
"cooldown_minutes": 120,
"channels": [
"inbox"
],
"quiet_start": 23,
"quiet_end": 7,
"is_active": true,
"window_minutes": 60
}
]'Resposta (Editar regras)
{
"ok": true
}Campos da resposta
okbooleantrue em caso de sucesso.Erros (Editar regras)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio exigido. | {"error":"insufficient privileges","required":"manage_settings"} |
| 400 | O corpo não é uma lista JSON válida. | {"error":"invalid body","detail":"..."} |
| 500 | Falha ao gravar (por exemplo, janela repetida em outra regra). | {"error":"failed to save pulse rules","detail":"..."} |
Apagar regra do Pulse
Apaga a regra. Responde 204 mesmo se o id não existir. Para só parar de vigiar, desligue a regra com PUT (is_active false).
/api/v1/admin/pulse/rules/{id}AdminRemove uma regra
Exige o privilégio manage_settings.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição (Apagar regra)
curl -X DELETE "$BASE_URL/api/v1/admin/pulse/rules/55c6c3c9-530c-48d2-ba2e-d30050ece7ab" \
-H "Authorization: Bearer $TOKEN"Resposta (Apagar regra)
Corpo vazio.
Erros (Apagar regra)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio exigido. | {"error":"insufficient privileges","required":"manage_settings"} |
| 500 | id que não é UUID, ou falha de banco. | {"error":"failed to delete pulse rule","detail":"..."} |