feat(platform): Sistema > Permissões (catálogo RBAC, só leitura)

GET /platform/roles novo — lista as 4 roles do sistema com as permissions
de cada uma, mais o catálogo completo de permissions. roles/permissions
não têm RLS (catálogo global do seed); só leitura, RBAC é system-defined,
sem UI de criar role customizada ainda.

Frontend: /platform/sistema/permissoes, um card por role + tabela do
catálogo completo. Testado ponta a ponta: as 4 roles reais (platform_super_admin
33 permissions, tenant_admin 30, supervisor 17, agent 2) corretas. Smoke
test nas 19 telas do tenant + 9 telas platform, todas 200.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BFaBaBSQGhyXGEgtTYZGV8
This commit is contained in:
2026-08-29 20:41:19 -03:00
parent c95c6805fb
commit 03ec0d556b
7 changed files with 182 additions and 2 deletions

19
TODO.md
View File

@@ -1334,6 +1334,25 @@ secao 134-139, 168)
são gerados, nunca editados à mão (consistente com "fechamento
imutável", secao 137)
## PHASE 36 — Platform: Sistema > Permissões (agente.md secao 142-145,
168)
- [x] `GET /platform/roles` (novo) — roles do sistema com as permissions
de cada uma + catálogo completo de permissions. `roles`/
`permissions` não têm RLS (catálogo global, vem do seed). Só
leitura — RBAC é system-defined (`packages/auth/src/seed.ts`), sem
endpoint de criar/editar role customizada ainda.
- [x] Frontend: `/platform/sistema/permissoes` — um card por role (nome,
key, escopo Plataforma/Tenant, badges com cada permission) + tabela
do catálogo completo de permissions com descrição.
- [x] Testado ponta a ponta contra a API real: as 4 roles do sistema
(`platform_super_admin` 33 permissions, `tenant_admin` 30,
`supervisor` 17, `agent` 2) renderizadas corretamente com as
permissions certas. Smoke test de regressão nas 19 telas do tenant
+ 9 telas platform, todas 200.
- [ ] "Sistema > Configurações" continua "em breve" — nunca teve escopo
definido na especificação além do nome, mesma pendência já
documentada na PHASE 34
---
## Riscos conhecidos