Uecko_ERP/docs/architecture/identity-migration-status.md
2026-07-06 14:04:47 +02:00

102 lines
2.1 KiB
Markdown

# Identity Migration Status
## Patrón final de middleware
Rutas tenant-scoped:
```ts
import { requireIdentityTenant } from "@erp/identity/api";
router.use(...requireIdentityTenant(params));
```
Rutas autenticadas sin tenant:
```ts
import { requireIdentityAuthenticated } from "@erp/identity/api";
router.use(...requireIdentityAuthenticated(params));
```
## Migrado a `identity`
### Backend tenant-scoped
Módulos migrados:
- `modules/catalogs`
- `modules/customers`
- `modules/customer-invoices`
- `modules/factuges`
Estado:
- sin `@erp/auth/api`
- sin `mockUser`
- sin helpers locales de auth
- usan `requireIdentityTenant(params)`
### Backend autenticado sin tenant
`modules/companies` usa:
```ts
import { requireIdentityAuthenticated } from "@erp/identity/api";
router.use(...requireIdentityAuthenticated(params));
```
Esto aplica a:
```http
POST /companies
GET /companies/available
GET /companies/:company_id
PATCH /companies/:company_id
POST /companies/:company_id/enable
POST /companies/:company_id/disable
```
## Frontend actual
El runtime nuevo ya usa:
- `@erp/identity/client`
- `IdentityAuthSessionProvider`
- `DataSourceProvider`
- Axios compartido con refresh automático
Flujo implementado:
```txt
login
-> GET /identity/auth/session
-> GET /companies/available
-> resolver empresa activa
-> auto-selección si hay una sola empresa
-> selector si hay varias
-> /no-companies si no hay empresas
-> X-Company-Id en rutas tenant-scoped
```
## Legacy pendiente
`modules/auth` queda legacy/deprecated y no debe usarse en backend nuevo.
Sigue pendiente revisar o retirar consumidores legacy residuales antes de eliminarlo por completo.
### `modules/supplier`
Queda fuera de esta migración por ahora.
## Búsquedas útiles de control
```powershell
rg -n -F "@erp/auth/api" modules apps packages
rg -n -F "mockUser" modules apps packages
rg -n -F "IdentityInternalDeps" modules apps packages
rg -n -F 'getInternal(\"identity\")' modules apps packages
rg -n -F "requireIdentityTenant(params)" modules apps packages
rg -n -F "requireIdentityAuthenticated(params)" modules apps packages
```