feat(platform): Sistema > Usuários/Auditoria, Infraestrutura > Saúde

Três endpoints novos, todos platform-only: GET /platform/users (cross-
tenant, users não tem RLS) + PATCH .../status (desabilitar tem efeito
real — login() já checava status ACTIVE desde a PHASE 04); GET
/platform/audit-log (últimos 200 eventos, audit_logs também sem RLS,
linha imutável); GET /platform/health (Postgres/Redis + FreeSWITCH via
conexão ESL avulsa, sem manter estado).

Achado de arquitetura documentado explicitamente na própria tela: o check
de FreeSWITCH sempre falha neste ambiente porque apps/api roda no host e
a porta 8021 é deliberadamente não publicada (decisão da PHASE 01/05) —
não é um bug, é a rede isolada do jeito certo.

Frontend: /platform/sistema/usuarios, /auditoria, /platform/
infraestrutura/saude. Testado ponta a ponta contra dados reais (3
usuários da plataforma, audit log com eventos reais desta sessão,
inclusive uma referência órfã tratada corretamente). Smoke test nas 19
telas anteriores, 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:04:05 -03:00
parent 2c1269a83a
commit a23e68b011
17 changed files with 654 additions and 3 deletions

View File

@@ -51,7 +51,16 @@ export const PLATFORM_NAV: NavSection[] = [
{
label: "Infraestrutura",
icon: ServerCog,
children: [{ label: "FreeSWITCH" }, { label: "SIP Profiles" }, { label: "Nodes" }, { label: "Saúde" }],
children: [
{ label: "FreeSWITCH" },
{ label: "SIP Profiles" },
{ label: "Nodes" },
{
label: "Saúde",
href: "/platform/infraestrutura/saude",
description: "Postgres, Redis e FreeSWITCH — verificação ao vivo",
},
],
},
{
label: "IA",
@@ -61,6 +70,19 @@ export const PLATFORM_NAV: NavSection[] = [
{
label: "Sistema",
icon: Settings2,
children: [{ label: "Usuários" }, { label: "Permissões" }, { label: "Auditoria" }, { label: "Configurações" }],
children: [
{
label: "Usuários",
href: "/platform/sistema/usuarios",
description: "Todos os usuários da plataforma, cross-tenant",
},
{ label: "Permissões" },
{
label: "Auditoria",
href: "/platform/sistema/auditoria",
description: "Log de eventos de todos os tenants",
},
{ label: "Configurações" },
],
},
];