Segurança
A segurança é tratada em camadas: autenticação, autorização, auditoria, isolamento de dados e integridade. Toda ação relevante passa por elas.
Autenticação
- Devise cuida do login dos usuários (com
devise-encryptableem alguns projetos). - APIs usam JWT para autenticar requisições (
reports,cpe-console). - O
reportstambém tem cadastro por convite (devise_invitable) e recuperação de senha.
Autorização
- O Syens usa CanCan (abilities por papel); a Chamada Escolar (
cpe-console) usa Pundit (policies por recurso). - Antes de expor qualquer action ou elemento de UI, verifique a permissão. Ao criar um recurso novo, defina a ability/policy correspondente.
- No Syens, novos recursos são adicionados em
config/locales/roles.ymle registrados com:
bundle exec rake roles:update
Auditoria
A trilha de auditoria registra quem mudou o quê:
- audited no
educacaoe nocpe-console. - paper_trail no
saude.
Mantenha as ações sensíveis auditadas — isso é parte do atendimento à LGPD.
Isolamento de dados (multitenancy)
No Syens, todo dado é isolado por escola/cliente. Consultas e regras sempre escopadas ao tenant; nunca escreva algo que possa vazar dados entre escolas. Veja Arquitetura e padrões.
Integridade e entrada de dados
- Validações de modelo e constraints de banco (veja Banco de dados).
- Atenção à versão do Rails: projetos legados (Rails 3, como o Syens) usam
attr_accessibleem vez deparams.permit. Confirme o padrão antes de mexer.
Segredos e configuração
- Segredos e configs vão em variáveis de ambiente (e em objetos de
configuração, como o
Settingsnocpe-console). Nunca versione segredos. - Toda comunicação é por HTTPS.
LGPD
Os sistemas seguem a LGPD (Lei 13.709/2018): consentimento de uso de dados, exportação dos dados pessoais, correção/exclusão sob solicitação e trilha de auditoria. O acesso assistido (ver o sistema como outro usuário, para suporte) é feito sem expor credenciais. No Syens, esses fluxos estão descritos no manual de Acesso e segurança.