# 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.