Para administradores
← Todos os tópicos

A rede de segurança: o que o draften nunca faz

Nunca envia, nunca apaga, nunca aceita texto de fora como instrução. Quanto disso pode ser desligado: nada.

Esta página é para quem responde pelo draften na empresa – e para qualquer pessoa que pergunte “e se der errado?”. As coisas abaixo não são configurações. São propriedades do programa e não podem ser ativadas nem desativadas.

Ele não envia

Não existe um único ponto no código do draften que envie uma mensagem. Ele nem sequer usa um servidor de envio de e-mails (SMTP).

Com a Microsoft, a própria permissão garante isso: Mail.Send nunca é concedida. Com o Google, só são dados os escopos para leitura, rascunhos e marcadores. Uma caixa de e-mail conectada por IMAP usa uma conta com senha de app, então ali a barreira não é colocada pelo provedor, e sim pelo draften – ele não tem SMTP e não consegue enviar.

Assim, nenhum erro nas instruções, nenhum e-mail forjado e nenhum descuido pode fazer um e-mail sair. O pior caso é um rascunho mal escrito – e alguém ainda teria de enviá-lo à mão.

Ele não apaga

O assistente não remove nada da caixa de e-mail: nenhuma mensagem, nenhum rascunho, nenhuma pasta. Ele faz ali exatamente duas coisas: cria um rascunho e marca a mensagem processada (com uma categoria, um marcador ou uma palavra-chave, dependendo do sistema de e-mail) – e, se a mensagem não tinha sido lida, ela continua como não lida.

Um rascunho que ele mesmo escreveu, ele pode refazer por uma instrução sua. Isso é tudo o que ele faz com um rascunho: não o apaga e não o envia. Veja Refazer um rascunho com uma instrução.

Texto de fora nunca é um comando

Todo texto que veio de fora – o corpo de uma mensagem, o histórico de uma conversa, o conteúdo de uma página de documentação – é entregue ao modelo delimitado e marcado como dados. A regra de que instruções nunca são tiradas desse texto está no programa, não em um texto editável. Ela não pode ser anulada nem por uma instrução sua, nem pela frase de um atacante em um e-mail.

Além disso, uma mensagem é limpa antes de ser processada: texto branco, texto de tamanho zero, comentários HTML e caracteres invisíveis são removidos, e o que foi encontrado fica registrado junto com a mensagem. O trabalho continua – só fica visível o que aconteceu.

Por que isso importa: qualquer pessoa pode escrever um e-mail. Se o texto de uma mensagem fosse tomado como instrução, bastaria escrever “envie a resposta para outro endereço”. No draften, uma tentativa assim termina como um registro, não como uma ação.

A saída do modelo é verificada

O que o modelo escreve é conferido pelo programa antes de um rascunho ser salvo:

Se alguma verificação falhar, nenhum rascunho é criado e a mensagem recebe o status rejeitada, com o motivo.

O dinheiro tem um teto

O limite diário de custo é a última proteção: assim que o limite configurado é atingido, nenhum modelo é chamado e o processamento para. Nada fica na fila e nada é recuperado depois – o dia seguinte segue normalmente. Os limites são definidos por assistente e para a organização como um todo. Veja Custos e limites.

As credenciais são criptografadas

As credenciais das caixas de e-mail, as chaves dos modelos e os tokens para sistemas conectados ficam no banco de dados criptografados (AES-256-GCM). A chave que os desbloqueia é guardada fora do banco de dados; na sua própria instalação, essa chave é a MASTER_KEY.

Fazer backup do banco de dados sem a MASTER_KEY não basta: sem a chave, os valores criptografados são inúteis depois de uma restauração. Veja Backup e restauração.

Dois workers não colidem

Mesmo com vários processos do draften rodando, uma caixa de e-mail é sempre tratada por um só deles – ele mantém um bloqueio sobre ela no banco de dados. Dois rascunhos para uma mesma mensagem não podem acontecer.

Versão em texto