core/backend/src/docs/SECURITY.md
2025-12-27 13:35:03 -03:00

1.7 KiB

Segurança e Permissões do Appwrite

As coleções do projeto seguem uma política de Row-Level Security (RLS) para proteger os dados dos usuários e os registros de auditoria.

Princípios gerais

  • Cada documento pertence a um usuário autenticado, identificado pelo userId armazenado no documento.
  • Operações de leitura e gravação são restritas ao proprietário do documento (role member).
  • Logs de auditoria globais só podem ser consultados por usuários com a role admin.

Regras por coleção

cloud_accounts

  • Leitura: apenas o usuário que criou o documento (role member).
  • Criação: apenas usuários autenticados.
  • Atualização/Exclusão: somente o proprietário do documento.

projects

  • Leitura: restrita ao proprietário do documento.
  • Criação: usuários autenticados podem criar seus próprios registros.
  • Atualização/Exclusão: apenas o proprietário do documento.

audit_logs

  • Leitura: exclusiva para usuários com role admin (para auditoria global).
  • Criação: serviços e funções podem registrar ações em nome dos usuários; cada entrada mantém o userId responsável.
  • Atualização/Exclusão: não permitidas para usuários finais; apenas processos administrativos podem gerenciar retenção.

Considerações adicionais

  • Tokens e chaves sensíveis (GitHub, Cloudflare) devem ser armazenados em cloud_accounts e nunca enviados ao frontend.
  • Funções Cloud (como as de proxy) devem validar o userId associado ao documento antes de usar qualquer chave.
  • Revogue ou rotacione chaves comprometidas removendo ou atualizando o documento correspondente na coleção.