Implementacao #935
Atualizado por Rodrigo Admin há 14 dias
# Implementa\xE7\xE3o de Gest\xE3o de API Keys e Logout Seguro (S3T2)\r\n\r\nConclu\xEDmos a (Sprint 3)\r\n\r\nImplementa\xE7\xE3o da segunda parte da seguran\xE7a operacional da Sprint 3, com foco em revoga\xE7\xE3o focando em:\r\n\r\n1. **Logout Seguro**: Invalida\xE7\xE3o de sess\xF5es e autonomia do tenant.\r\n\r\n## Entregas Realizadas\r\n\r\n### 1. Logout Seguro\r\n- **AuthService**: Adicionado m\xE9todo `logout(refreshToken)` que revoga o token Refresh Tokens no banco de dados.\r\n- **AuthController**: Endpoint `/auth/logout` atualizado dados ao deslogar.\r\n2. **RBAC (Role-Based Access Control)**: Aplica\xE7\xE3o de `RolesGuard` para receber e invalidar o token.\r\n\r\n### 2. Gest\xE3o proteger rotas administrativas.\r\n3. **Gest\xE3o de API Keys (Self-Service)\r\n- **ApiKeysController**: Novos endpoints Keys**: Endpoints para que o tenant gerencie administradores de tenants possam listar, criar e revogar suas chaves diretamente:\r\n - `GET /api-keys`: Lista chaves do tenant atual.\r\n - `POST /api-keys`: Cria novas chaves.\r\n - `DELETE /api-keys/:id`: Revoga chaves espec\xEDficas.\r\n\r\n### 3. Seguran\xE7a e RBAC\r\n- Uso de `RolesGuard` (@Roles(ADMIN)) para restringir a gest\xE3o API.\r\n\r\n## Entregas\r\n- Atualiza\xE7\xE3o de chaves.\r\n- Integra\xE7\xE3o com `TenantInterceptor` para isolamento `AuthService` e `AuthController` (Logout).\r\n- Novo `ApiKeysController` no m\xF3dulo de dados.\r\n\r\n## Verifica\xE7\xE3o\r\n- **Testes E2E**: Atualizados em `test/auth.e2e-spec.ts`. Todos Tenants.\r\n- Testes E2E cobrindo os 9 testes est\xE3o passando.\r\n- **Build**: Composto com sucesso (`npm run build`).\r\n\r\n## Commit\r\n- [S3T2 - implement api key management and secure logout](https://github.com/rodrigonunesrp/FTSAssistants/commit/01680a57) novos fluxos.