Multi-User SSO

Contatos & Destinatários

Cadastre nomes, chaves Alertzy e números de telefone com DDI para envio de SMS.

Notificações Personalizadas (API / Webhooks)

Crie API Tokens para que sistemas externos enviem alertas e falhas via GET ou POST de forma centralizada.

Keep Alive Diário

Notificação diária de status e integridade do servidor nos horários programados.

Monitoramento de APIs (/api/health)

Verificação contínua a cada 30 segundos. Alerta crítico após 5 falhas seguidas.

Monitoramento de Contas IMAP

Acompanhe novos e-mails, filtre campos e gere links temporários para anexos.

📖 Manual de Instruções & Guia de Recursos

Referência completa de arquitetura, canais, integrações externas via API e operação do sistema.

Baixar Postman Collection

Postman Collection Oficial (v2.1.0)

Pronta para Importação

Contém todos os endpoints documentados, parâmetros, exemplos de requisição via GET/POST para webhooks externos, autenticação, KeepAlive, APIs, IMAP e proxy SMS.

Baixar JSON da Collection

⚡ 1. Notificações Personalizadas via API Token (GET & POST)

Integração Externa

Permite centralizar o recebimento de alarmes de ferramentas externas (ex: Zabbix, Grafana, scripts de cron, Prometheus Alertmanager, serviços em Python/Node/Go). Cada notificação cadastrada recebe um ID e um API Token seguro exclusivo.

💡
Como criar no Painel: Vá na aba Notificações Personalizadas → clique em + Nova Notificação → defina um nome (ex: Falha Backup PostgreSQL), selecione os canais desejados ([x] Alertzy e/ou [x] SMS) e vincule os contatos que devem ser notificados.

Tabela de Parâmetros Aceitos

Parâmetro Onde Enviar Tipo Descrição
id URL ou Body Inteiro ID da Notificação (ex: /api/notify/1 ou { "id": 1 }).
token Header, URL ou Body String API Token gerado (ex: ntf_9f2a8c...). Pode ir em X-API-Token, Authorization: Bearer <token>, query ?token=... ou campo token no JSON.
message / msg / text Query ou Body String Corpo da mensagem do alerta. Se omitido, o sistema utiliza a mensagem padrão de fallback.
title / subject Query ou Body String Título do alerta. Se omitido, utiliza o título padrão cadastrado no painel.
priority Query ou Body 0 | 1 | 2 Prioridade do alerta no Alertzy: 0 (Normal), 1 (Baixa), 2 (Crítica com toque estridente).

Exemplos Práticos de Disparo

Opção A: POST com Header X-API-Token (Recomendado para Webhooks e Aplicações):

curl -X POST "http://SEU_DOMINIO:3000/api/notify/1" \ -H "Content-Type: application/json" \ -H "X-API-Token: ntf_SEU_TOKEN_AQUI" \ -d '{ "title": "ALERTA ZABBIX: Servidor BD Offline", "message": "O processo postgres parou na porta 5432. Tentando reiniciar...", "priority": 2 }'

Opção B: GET Simples (Recomendado para Scripts Shell, Cron e Linha de Comando):

curl "http://SEU_DOMINIO:3000/api/notify/1?token=ntf_SEU_TOKEN_AQUI&title=Falha+Backup&message=Erro+ao+montar+disco+NFS&priority=2"

👥 2. Contatos & Destinatários (Alertzy & SMS)

Multi-Canal

O módulo de Contatos unifica o cadastro de pessoas ou equipes de plantão para envio em ambos os canais disponíveis.

  • Alertzy Account Key: Baixe o app gratuito Alertzy (https://alertzy.app/ no iOS, Android ou Web), crie sua conta e copie sua Account Key na aba Account.
  • Telefone SMS: Informe o telefone com código do país (DDI) e DDD (ex: +5531999035816 ou (31) 99903-5816). O sistema formata automaticamente para entrega internacional via GatewayAPI.
  • Validação Imediata: Cada cartão de contato possui os botões 🔔 Testar Alertzy e 💬 Testar SMS para você garantir que o contato está recebendo as notificações antes de colocá-lo em produção.

💓 3. Keep Alive Diário

Saúde do Servidor

O Keep Alive envia uma notificação programada diariamente no horário configurado (ex: 09:00) no fuso horário do usuário (ex: America/Sao_Paulo).

⚙️
Informações incluídas no relatório diário: Tempo de atividade contínua do sistema (Uptime formatado em dias, horas e minutos), memória RAM livre e total, status operacional do Gateway e data/hora local.

Você pode disparar o envio a qualquer momento para validação clicando no botão ▶ Disparar Agora no painel.

🩺 4. Monitoramento Contínuo de APIs (/api/health)

Tolerância a Falhas

Sonda continuamente endpoints HTTP/HTTPS (como https://meuservico.com/api/health) a cada 30 segundos.

⚠️
Regra de 5 Falhas Consecutivas: Para eliminar falsos positivos causados por quedas transitórias de conexão, o sistema só dispara alerta crítico (com prioridade alta e SMS) se a API responder com erro ou timeout por 5 verificações consecutivas (2 minutos e meio de instabilidade confirmada).

Recuperação Automática: Assim que a API volta a responder status 200 OK, o sistema envia automaticamente uma mensagem verde de restabelecimento do serviço aos mesmos canais e contatos vinculados.

📬 5. Monitoramento de Caixas IMAP & Anexos

E-mail para Push/SMS

Monitora caixas postais corporativas (como contas de suporte ou alertas do NOC) via protocolo seguro IMAP com TLS/SSL (porta padrão 993).

  • Seleção Granular de Campos: Marque exatamente o que deseja encaminhar: Remetente (De), Assunto (Subject) e Corpo da Mensagem.
  • Limite de Caracteres: Configure a quantidade máxima de caracteres do texto do e-mail (padrão 300) para respeitar os limites de envio de SMS e visualização no Alertzy.
  • Download Temporário de Anexos: Se ativo, os arquivos anexados aos e-mails recebidos são baixados em diretório protegido (data/attachments) e é gerado um link temporário seguro (/download/:token) com expiração de 48 horas e botão direto no Alertzy.

📲 6. Proxy SMS Legado (/rest/mtsms)

Compatibilidade

Preserva a funcionalidade original de gateway SMS legado que converte chamadas GET simples em requisições POST para a API do GatewayAPI:

GET http://SEU_DOMINIO:3000/rest/mtsms?recipient=5531999035816&message=Mensagem+Importante

🔐 7. Segurança, SSO Microsoft Entra ID & Criptografia

Enterprise Ready

A plataforma adota padrões corporativos rigorosos para proteção de dados:

  • Microsoft Entra ID (Azure AD): Autenticação federada obrigatória via OAuth2 / OpenID Connect com as variáveis ENTRA_CLIENT_ID, ENTRA_CLIENT_SECRET e ENTRA_TENANT_ID.
  • Criptografia em Repouso (AES-256-GCM): As senhas de caixas IMAP são criptografadas antes de serem gravadas no banco SQLite utilizando chave simétrica derivada de ENCRYPTION_SECRET.
  • Tokens Criptograficamente Seguros: Todos os tokens de API de Notificação (ntf_...) e tokens de download temporário de anexos são gerados via crypto.randomBytes() com alta entropia.