Níveis e segurança
O servidor é a única autoridade. O app nunca “executa” uma decisão: ele só envia uma intenção de resposta, e o servidor aceita se ela for válida, estiver no prazo e no nível exigido.
Níveis de decisão
Seção intitulada “Níveis de decisão”| Nível | Exige | Exemplo |
|---|---|---|
| 0 | Um toque | Ver um painel, marcar como lido |
| 1 | Aparelho desbloqueado (sessão aberta) | Reiniciar um container, responder um lead |
| 2 | Biometria ou senha do aparelho, ou o código 2FA | Um agente de IA quer agir, aprovar um deploy |
| 3 | Biometria ou código 2FA a cada ação, online e com prazo curto | Apagar dados, liberar acesso, movimentar dinheiro |
| 4 | Nível 3 e quórum | 2 de 3 diretores aprovam |
O serviço define o nível no ask(). O workspace pode endurecer a regra, e o serviço nunca consegue baixá-la. Vale o maior nível entre as perguntas.
Biometria no aparelho
Seção intitulada “Biometria no aparelho”No app nativo, a chave privada é criada no Secure Enclave (iOS) ou no Keystore (Android) com a regra “só assina após autenticação do usuário”. Sem digital, rosto ou senha do aparelho, o próprio chip se recusa a assinar.
- O aparelho gera uma chave por vínculo/servidor, então uma organização revoga a sua sem afetar as outras.
- A resposta assinada inclui id do grupo de perguntas, versão, respostas, horário, nonce e o hash do conteúdo exibido.
- O pedido de biometria mostra o resumo do que está sendo assinado, para ninguém aprovar às cegas.
- A biometria é sempre um pedido por decisão.
Código 2FA no lugar da biometria
Seção intitulada “Código 2FA no lugar da biometria”Nem todo aparelho tem leitor de digital, e no navegador não há biometria. Para os níveis 2 e 3, a pessoa pode ativar a verificação em duas etapas em Conta com qualquer app autenticador TOTP (Google Authenticator, Microsoft Authenticator, 1Password, Authy ou o app da própria empresa) e assinar com o código de 6 dígitos.
- O código é conferido no servidor (±30 segundos) e vale uma vez só. 5 códigos errados em 15 minutos bloqueiam novas tentativas.
- A resposta registra
auth_method: "totp"e o nível comprovado. - O nível 3 sempre pede um código, a cada ação.
- O nível 4 (quórum) continua exigindo o app com biometria.
- Desativar o 2FA exige um código válido, então quem pegar a sessão não consegue desligar.
A janela do 2FA (nível 2)
Seção intitulada “A janela do 2FA (nível 2)”Com 50 aprovações esperando, digitar um código em cada uma não dá. Em Conta, cada pessoa escolhe uma janela do 2FA: desligada (pedir sempre), 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 até a janela acabar.
- A janela é da sessão: outros navegadores e aparelhos precisam do próprio código.
- Ela só cobre o nível 2. O nível 3 sempre pede um código novo.
- Desligar o 2FA limpa a janela de todas as sessões.
Respostas offline
Seção intitulada “Respostas offline”- Cada grupo de perguntas declara
offline: allowed | deniede um prazo. - O servidor rejeita resposta para versão antiga ou pergunta expirada, e o app explica o motivo (“sua resposta não foi aceita porque a pergunta expirou às 12:30”).
- Idempotência: a mesma resposta enviada duas vezes executa uma vez só.
- Nível 3 ou mais nunca é aceito offline.
Aceite atômico e outbox
Seção intitulada “Aceite atômico e outbox”UPDATE question_sets SET status = 'answered', answered_by = $3, answered_at = now() WHERE id = $1 AND version = $2 AND status = 'open';-- 0 linhas = já decidido, expirado ou versão diferenteA resposta e o aviso ao seu sistema são gravados na mesma transação (outbox transacional). Um processo separado entrega o webhook assinado com novas tentativas automáticas, então a decisão nunca se perde.
A resposta assinada
Seção intitulada “A resposta assinada”A resposta que o seu sistema recebe é assinada com a chave Ed25519 do servidor. As chaves públicas ficam em <api>/.well-known/notificme-keys.json, e o SDK confere para você. Veja Webhooks.
Outros controles
Seção intitulada “Outros controles”- Revogação de aparelho perdido pelo app web (Dispositivos).
- Trilha de auditoria: quem, qual aparelho, qual nível, quando e o hash do conteúdo, imutável e exportável.
- Tokens de serviço têm escopos, e tokens de agentes de IA podem exigir aprovação humana a cada escrita. Veja Agentes de IA e MCP.