Segurança

Suas tarefas continuam suas

O Done foi feito para um mundo em que agentes de IA dividem a sua lista de tarefas. Por isso, isolamento, acesso com escopo e aprovação humana não são recursos: são a base.

Isolamento de contas

  • Toda tarefa, todo projeto e toda etiqueta ficam restritos aos espaços de trabalho de que você participa. Uma consulta só pode devolver linhas que a sua conta tem permissão para ver. Não existe caminho que leia de uma conta para outra.
  • A coluna interna de criador/atribuição é removida antes de qualquer linha sair da camada de dados, então nunca faz parte da superfície da API.
  • Os espaços de trabalho compartilhados e o compartilhamento por projeto são opcionais: um colega só vê aquilo para o qual você o convidou, e nada mais.

Autenticação

  • As senhas passam por hash com argon2id e nunca são guardadas em texto puro. A autenticação é por conta, não um segredo compartilhado do ambiente.
  • Ative a autenticação em duas etapas (TOTP) e uma senha roubada não basta para entrar. Ela também é exigida na redefinição de senha, então só o acesso à caixa de entrada não permite tomar uma conta, e você recebe dez códigos de recuperação de uso único para o caso de perder o aparelho.
  • As sessões são por conta e baseadas em cookie. Cada sessão corresponde a exatamente um usuário, e toda requisição fica restrita a esse usuário.
  • O site inteiro é de mesma origem e servido por HTTPS com uma Content-Security-Policy rígida. Scripts embutidos só rodam com um nonce novo a cada requisição, então um script injetado não é executado.

Acesso de agentes e tokens

  • Cada conta tem seu próprio endpoint MCP e seus próprios tokens. Não existe token compartilhado nem global: um token só enxerga os dados da própria conta.
  • No Pro e no Teams, restrinja um token a somente leitura ou a um único projeto, para o agente ter exatamente o acesso de que precisa e nada além disso.
  • Conecte por OAuth 2.1 (o Done é um servidor de autorização completo para o seu endpoint MCP) ou por um token bearer. Gerar de novo ou revogar um token o invalida na hora.
  • Trocar ou redefinir sua senha também revoga todas as credenciais de API (tokens MCP e apps conectados), para que a recuperação de uma suspeita de invasão não deixe o acesso de agentes vivo em silêncio.

Você aprova cada resultado

  • Uma tarefa com aprovação exigida não se encerra sozinha. O agente propõe um plano antes de um trabalho grande e um resumo antes da conclusão. Nada chega a concluído sem a sua aprovação em Precisa de você.
  • Só uma pessoa pode tornar uma tarefa aprovável automaticamente. Um agente não consegue tirar a própria barreira.
  • Toda sessão de agente é registrada como uma execução, com seus limites de chamadas de ferramentas e de tempo, para você ver exatamente o que rodou e limitar até onde ela vai.

Seus dados

  • Os dados ficam no Cloudflare D1 (SQLite na borda) e os arquivos anexados às tarefas no Cloudflare R2, os dois atendidos por um único Worker. Não há um backend separado passando seus dados de um lado para outro.
  • Excluir uma tarefa a move para a Lixeira, com 30 dias para restaurar. Não é uma exclusão definitiva imediata.
  • Exporte suas tarefas em CSV ou Markdown quando quiser e exclua sua conta (com todos os dados) você mesmo, pelo app.

Slack e conexões de terceiros

  • O app do Slack é vinculado por usuário, e só depois que você, conectado ao Done, confirma. Uma identidade do Slack não pode ser ligada a uma conta sem o consentimento do dono.
  • Toda requisição recebida do Slack é verificada com a assinatura do signing secret do Slack, e requisições repetidas (antigas) são rejeitadas.
  • O Google Calendar e os feeds de calendário ICS assinados são apenas uma sincronização, somente leitura, dos horários ocupados (nunca títulos ou detalhes de eventos) e totalmente opcionais. Nada é conectado se você não conectar.

Encontrou algo?

Relate um problema de segurança em particular para security [arroba] trydone.app e nós retornamos. Por favor, não abra uma issue pública para nada que possa ser explorado.