# Identity Migration Status ## Referencias canónicas - Reglas de contexto tenant y middlewares públicos: [tenant-context.md](./tenant-context.md) - Flujo frontend de autenticación y selección de empresa: [../frontend/frontend-architecture.md](../frontend/frontend-architecture.md) - Runtime y responsabilidades del módulo `identity`: [../../modules/identity/README.md](../../modules/identity/README.md) ## 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 el middleware tenant canónico documentado en `tenant-context.md` ### Companies y autorización por operación Las operaciones globales no requieren tenant: `POST /companies` exige autorización SYSTEM y `GET /companies/available` exige autenticación; el Super-administrador ve todas las empresas activas. Las consultas/configuración de empresa y endpoints por ID son tenant-scoped. La matriz vigente de permisos, sus excepciones y el registro extensible están en [tenant-context.md](./tenant-context.md). La política V1 de edición solo por membership ha sido sustituida en las operaciones Companies allí enumeradas. Los demás módulos conservan sus políticas hasta una adopción explícita del guard; no se afirma cobertura granular universal. ## Frontend actual El runtime nuevo ya usa `@erp/identity/client`. Los detalles del flujo implementado, headers y refresh automático se mantienen en `frontend/frontend-architecture.md`. ## 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/suppliers` Ya usa el contexto tenant canónico; no tiene aún permisos granulares por operación. ## 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 ```