Boas práticas
Regras obrigatórias de segurança, o checklist para Agents e o "faça / não faça" do OonCore.
A segurança da Central é aplicada no backend. O frontend pode ocultar ou exibir ações, mas não é a fonte de decisão.
Regras obrigatórias
- Toda operação sensível valida usuário autenticado.
- Toda alteração de dados valida permissão.
- Toda ação de integração valida permissão e contexto.
- Nunca confie em
tenantId,appId, perfil ou roles enviados livremente pelo frontend. - Segredos vêm de variáveis de ambiente, de core.secrets ou de cofre equivalente.
- Logs não expõem tokens, senhas, app keys ou dados sensíveis desnecessários.
Checklist antes de concluir uma alteração
- Existe validação de entrada?
- Existe validação de permissão no backend?
- Existe tratamento de erro com
code? - A operação gera rastreabilidade?
- Algum segredo foi colocado no código?
- Algum dado sensível foi exposto no frontend?
- O comportamento funciona para múltiplos usuários e múltiplos apps?
Faça
- Use o Core antes de criar código novo.
- Modele o domínio com clareza.
- Prefira configuração e metadata.
- Escreva validações explícitas.
- Mantenha regras críticas no backend.
- Use esteiras para processos com status.
- Registre erros de forma operacional.
- Mantenha compatibilidade com a atualização dos pacotes.
- Atualize
.ooncore/comnpm run ooncore:docs.
Não faça
Dados sensíveis
| Recurso | O que faz | O que não faz |
|---|---|---|
sensitiveBody |
Omite corpo de entrada e resposta no requestLog | Não cifra banco, não mascara console/URL/headers/auditoria |
| Auditoria do CRUD | Registra mutações em ControleAlteracao |
Não é trilha imutável de todas as tentativas |
audit em rota |
Captura dados da resposta | Não deve receber credenciais |
core.secrets |
Cifra valores em repouso (AES-256-GCM) | Não é sandbox: o callback pode vazar o valor |
Frontend
- PDF/HTML de usuário: prévia em
<iframe sandbox="" srcDoc={html} />. - Nada de bearer em
localStorage; o Core usa cookie/sessão. - Nenhuma variável
VITE_*com segredo — tudo que está no bundle é público.