Aparência
Uma alteração no Admin, passo a passo
Objetivo: entender a separação entre interface, regras e transação.
Ler e alterar são operações diferentes
O navegador abre uma SPA React. Ela chama a API Express. A API valida autenticação, payload e autorização; serviços aplicam regras; repositórios executam consultas Prisma.
O Admin não coleta, não publica MQTT e não envia comandos ao inversor.
O percurso de um PATCH
- O navegador envia o cookie de sessão e o token CSRF.
- A API verifica usuário/sessão, papel ADMIN e CSRF.
- Um schema fechado aceita somente campos permitidos.
- O serviço/repositório atualiza o recurso e cria auditoria na mesma transação.
- A resposta devolve uma projeção segura.
O formulário não é a proteção final: validar somente no frontend permitiria contornar regras com outra chamada HTTP.
Sessão e CSRF
O cookie HttpOnly não é acessível ao JavaScript. O banco guarda hash do token de sessão, não o token bruto. O token CSRF protege operações autenticadas que alteram estado e fica em memória na SPA.
São funções distintas: sessão identifica o acesso; CSRF verifica a requisição de alteração. Nenhum deles deve ser colocado em URL, screenshot ou exemplo público.
Preservar decisões humanas
A ingestão descobre dispositivos e métricas. O Admin permite editar campos de catálogo sem trocar identidades MQTT. A próxima telemetria preserva nome, metadata e active existentes.
Device.active não é InverterSource.enabled. Editar o catálogo não habilita coleta física.
Auditoria não é cópia dos valores
O log registra ator, ação, recurso e nomes dos campos alterados, não antes/depois completos. Também não registra credenciais.
Desativar ou redefinir senha de outro administrador revoga suas sessões. A aplicação impede remover o último ADMIN ativo e restringe mudanças na própria conta por esse fluxo.
Continue na referência da API.
Revisão: 06/10/2026. Base: apps/admin/src/app.ts, serviços/repositórios, types.ts, schema.prisma e docs/admin.md. Resumo de implementação, não auditoria de segurança independente.