Files
adaptador-planilhas/docs/spreadsheet-adapter/10-elo-pro-auth-integration.md
camilafagundes 419325db12
ci / verify (push) Has been cancelled
Inicio do Projeto Piloto
2026-10-02 23:59:36 -03:00

32 lines
1.5 KiB
Markdown

# Integração de identidade Elo Pro
O Adaptador não cria usuário, senha, cadastro ou papel próprio. A sessão de produção é a do Supabase Auth. O workspace ativo chega no cookie `elo_pro_workspace_id` e é conferido no servidor contra a membership.
## Contexto autenticado
`resolveAuth` devolve `AuthenticatedContext`:
- `userId`
- `workspaceId`
- `role`
- `permissions` (`adapter.session`, `adapter.use`, `adapter.manage`, `adapter.upload`)
- `moduleEnabled`
APIs passam por `requireReady`. Serviços chamam `assertUse`, que relê a flag no banco. Um `workspaceId` no corpo não substitui o cookie validado. `rejectWorkspaceForgery` registra a tentativa.
## Contrato ainda não confirmado
`src/server/auth/identity-port.ts` lista as tabelas que o código lê hoje. O status é `unconfirmed_against_real_elo_pro`, exceto a flag do módulo, que é específica do Adaptador. Quando o repositório da Elo Pro estiver acessível, a adaptação acontece nesse ponto. Não há migration definitiva da Elo Pro neste repositório.
## Desenvolvimento
`ADAPTER_DEV_AUTH=1` só funciona com `NODE_ENV` diferente de `production` e com `ADAPTER_DEV_AUTH_SECRET`. Em produção a validação de ambiente recusa a flag, e `devAuthEnabled()` permanece falso.
## Testes
- Workspace de outro usuário não lista nem baixa o arquivo.
- `workspaceId` forjado é recusado.
- Usuário sem membership não opera.
- Módulo desligado bloqueia mesmo que o contexto do cliente diga o contrário.
- Produção ignora a sessão de desenvolvimento.