Uecko_ERP/docs/architecture/identity-roadmap.md

59 lines
1.6 KiB
Markdown
Raw Normal View History

2026-07-05 11:43:13 +00:00
# Identity Roadmap
## Objetivo general
2026-07-06 12:04:47 +00:00
Completar la transición desde el módulo legacy `auth` hacia `identity`, manteniendo separadas autenticación, tenant context, companies y autorización.
2026-07-05 11:43:13 +00:00
2026-07-06 12:04:47 +00:00
## Estado consolidado
2026-07-05 11:43:13 +00:00
2026-07-06 12:04:47 +00:00
Ya está implementado:
2026-07-05 11:43:13 +00:00
```txt
login
refresh rotado
logout
session
2026-07-06 12:04:47 +00:00
GET /companies/available
selección de empresa en frontend
auto-selección con una sola empresa
refresh automático sobre 401 en frontend
validación real de membership active + company active en tenant middleware
2026-07-05 11:43:13 +00:00
```
2026-07-06 12:04:47 +00:00
## Trabajo todavía pendiente
2026-07-05 11:43:13 +00:00
2026-07-06 12:04:47 +00:00
### Roles y permisos
2026-07-05 11:43:13 +00:00
Pendiente:
2026-07-06 12:04:47 +00:00
- resolución de permisos efectivos
- middleware de autorización fina
- endpoints funcionales de roles/permisos si se activan
2026-07-05 11:43:13 +00:00
2026-07-06 12:04:47 +00:00
### Migración legacy restante
2026-07-05 11:43:13 +00:00
Pendiente:
2026-07-06 12:04:47 +00:00
- revisar consumidores legacy que sigan atados a `modules/auth`
- migrar o retirar `supplier` cuando se decida
- retirar `@erp/auth/client` si aún queda compatibilidad heredada
2026-07-05 11:43:13 +00:00
2026-07-06 12:04:47 +00:00
## Decisiones que se mantienen
2026-07-05 11:43:13 +00:00
No hacer:
2026-07-06 12:04:47 +00:00
- meter `companyId` en access token
2026-07-05 11:43:13 +00:00
- meter roles/permisos en access token
2026-07-06 12:04:47 +00:00
- meter `companySlug` en access token
- documentar `GET /identity/companies` como endpoint vigente
- poblar `companySlug` desde auth middleware
- usar `getInternal("identity")` desde módulos consumidores
- usar `IdentityInternalDeps` desde módulos consumidores
2026-07-05 11:43:13 +00:00
Sí hacer:
2026-07-06 12:04:47 +00:00
- usar `requireIdentityTenant(params)` en rutas tenant-scoped
- usar `requireIdentityAuthenticated(params)` en rutas solo autenticadas
- usar `GET /companies/available` para companies accesibles en frontend
- resolver datos documentales desde `companies` u otros servicios específicos