Como funciona
O núcleo do notific.me tem cinco peças. Todo o resto é construído em cima delas.
| Peça | O que é | Exemplo |
|---|---|---|
| Event | Algo aconteceu | deploy.ok, lead.new, container.die |
| Policy | Quem deve saber, quando, com que urgência e com qual nível | “Tudo que vem de agente de IA exige nível 2” |
| Card | Como a notificação aparece | Resumo, card declarativo |
| Action | O que dá para fazer a partir dela | Aprovar, escolher uma opção, abrir um painel |
| Reply | A resposta assinada que volta | { question_set_id, version, answers, signature } |
O ciclo completo
Seção intitulada “O ciclo completo”- Seu sistema envia um evento (
POST /v0/events) ou um grupo de perguntas (POST /v0/asks) com um token de serviço. Também pode mandar qualquer webhook para um hook de entrada, ou um agente de IA pode usar o servidor MCP. - A API de ingestão valida o conteúdo pelo protocolo aberto, junta duplicados pelo
dedup_keye torna as novas tentativas seguras com chaves de idempotência. - As regras de policy do workspace decidem o que acontece:
notify,digest,suppressouescalate. - Uma notificação é criada para cada destinatário, com resumo, card e, no caso de perguntas, o grupo de perguntas.
- A pessoa recebe no app, no app web ou por push.
- A pessoa decide. O nível define o que isso exige: um toque, o aparelho desbloqueado, biometria ou código 2FA, e talvez um quórum.
- O servidor aceita a resposta de forma atômica: uma resposta vence, e a resposta mais o webhook para o seu sistema são gravados na mesma transação (outbox transacional), então a decisão nunca se perde.
- A resposta assinada volta para o seu sistema: como webhook para o
callback_url, assinado com Ed25519, ou como resultado da chamadaask()que está fazendo long-poll.
Regras de policy
Seção intitulada “Regras de policy”As regras são avaliadas em ordem, e a primeira que casar decide. Se nenhuma casar, vale o padrão do workspace. O silêncio programado pode transformar notify em resumo (ou suprimir) abaixo de uma severidade mínima. Mais em Regras e policies.
O ciclo de vida de uma pergunta
Seção intitulada “O ciclo de vida de uma pergunta”O ask() do SDK faz os dois passos para você: cria o grupo de perguntas e faz long-poll até a resposta ou o prazo. Veja Perguntas e respostas.
Níveis de decisão
Seção intitulada “Níveis de decisão”O serviço define o nível mínimo no ask(). O workspace pode subir, nunca baixar. Vale o maior nível entre as perguntas, e uma assinatura cobre todas as respostas.
Assinando com o código 2FA
Seção intitulada “Assinando com o código 2FA”Nem todo aparelho tem leitor de digital, e no navegador não há biometria. Quem ativa a verificação em duas etapas (um app autenticador com códigos TOTP) assina decisões de nível 2 e 3 com o código de 6 dígitos.
- Nível 3 sempre pede um código novo, a cada ação.
- Nível 2 pode usar uma janela do 2FA que a pessoa escolhe na conta (desligada, 5, 15, 30, 60, 120 ou 240 minutos). Depois de um código válido, aquela sessão assina decisões de nível 2 sem digitar o código de novo. Com 50 aprovações pendentes, ninguém quer digitar 50 códigos.
- A biometria é sempre um pedido por decisão.
- Nível 4 (quórum) continua exigindo o app com biometria.
Entrega
Seção intitulada “Entrega”- App aberto: o gateway WebSocket entrega em dezenas de milissegundos.
- App fechado: o relay de push envia por APNs (iOS), FCM (Android) ou Web Push para o PWA instalado. O Web Push é cifrado de ponta a ponta, então pode mostrar título e resumo.
- Quando o app abre de novo, ele sincroniza de forma incremental a partir de um cursor, sem perder nada.
Veja App, PWA e push.