30 lines
1.7 KiB
Markdown
30 lines
1.7 KiB
Markdown
# 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.
|