Na opção “Teams” no menu da
plataforma, podemos configurar canais de comunicação onde queremos
receber nossas notificações. Cada equipe pode ter diferentes canais de
notificação. Oferecemos suporte de notificações por meio de webhook.
Para configurar as notificações, clique em “Teams”. Caso queira criar
um novo time, clique no botão “New” no canto superior direito da tela e
siga esse passo a passo.
Para times já registrados, acesse o
time desejado e clique na aba “Notifications” na barra superior. Marque
a caixa de seleção na opção que possui o ícone de webhook, e então
adicione a url.
Ao lado da opção via Webhook tem o
campo para inserir a url e logo após, o botão “TEST” que envia um teste
para a url configurada.
Quando o teste de notificação via webhook é realizado, o POST enviado
para o webhook é feito a partir do próprio navegador. Os navegadores
utilizam CORS para evitar problemas de segurança quando um site faz
requisições para outros domínios.
Por conta da política de CORS, antes do navegador enviar o POST para o
webhook ele faz uma requisição com o método OPTIONS, para checar se o
servidor responde com os headers que satisfaçam a política de CORS. Por
isso, para que o teste funcione o seu webhook deve ter o CORS habilitado
(não é necessário para que as notificações funcionem, apenas para o
teste).
A notificação via webhook envia uma requisição POST ao endereço informado, com um payload no seguinte formato:
{
"type": "hit/fail",
"title": "Site",
"description": "Could not get IP address for domain https://site.com, lookup site.com on 10.40.0.2:53: no such host",
"status": "alarmed",
"uid": "",
"failure_happened_at": "2024-02-29T13:11:16.398102Z",
"incident_resolved_at": "2024-02-29T13:11:17.311918Z",
"status_page_id": 0,
"status_page_url": "",
"org_uid": "a6bf25a0-0c35-49a9-817f-1bc1d1b6cb89",
"addon_id": 0,
"addon_name": "",
"application_id": 158,
"application_name": "Site",
"product_id": 1,
"product_name": "",
"affectedByIssue": null,
"addon_pool": null,
"incident_id": 1,
"incident_type": "hit/fail",
"incident_data": null,
"severity": "not-classified"
}