# 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 ```