IngeniaLegalAppAPI
API multi-tenant con arquitectura en capas
01_STACK
02_DESCRIPCIÓN
API principal del sistema legal Ingenia: despachos, expedientes, acuerdos, finanzas, planificación, catálogos jurídicos y licenciamiento multi-tenant.
Stack tecnológico
Backend: ASP.NET Core 9 Web API
BD/Infraestructura: Entity Framework Core 9 + SQL Server, JWT Bearer, hosted services (background jobs), email service, almacenamiento local de archivos
Conceptos y patrones
- Arquitectura en capas (Controller → Interface → Service → DbContext)
- DTOs por operación
- Multi-tenancy real con EF Core global query filters
- Middleware unificado (
UnifiedContextMiddleware) que resuelve el contexto de tenant/despacho por request - Atributo custom
[RequireDespacho] - Auditoría cross-tenant para SuperAdmin
- Políticas de acceso a expedientes
- Rate limiting
- Health checks
- Roles jerárquicos
Notas arquitectónicas
Usé EF Core global query filters junto con un middleware que resuelve el tenant por request para aislar los datos de cada despacho sin necesitar instancias separadas de la API. El SuperAdmin puede auditar accesos entre tenants.
03_CONCEPTOS_Y_PATRONES
- ✓Arquitectura en capas (Controller → Interface → Service → DbContext)
- ✓DTOs por operación
- ✓Multi-tenancy real con EF Core global query filters
- ✓Middleware unificado UnifiedContextMiddleware
- ✓Auditoría cross-tenant para SuperAdmin
- ✓Políticas de acceso a expedientes
- ✓Rate limiting
- ✓Health checks
- ✓Roles jerárquicos
04_COMPLEJIDAD_Y_NOTAS
Usé EF Core global query filters junto con un middleware que resuelve el tenant por request para aislar los datos de cada despacho sin necesitar instancias separadas de la API. El SuperAdmin puede auditar accesos entre tenants.