First Commit
This commit is contained in:
30
Apis/ADS.Apis.Gps/readmegpt
Normal file
30
Apis/ADS.Apis.Gps/readmegpt
Normal file
@@ -0,0 +1,30 @@
|
||||
Quiero rehacer desde cero la API ADS.Apis.Gps con orden limpio (Domain / Application / Infrastructure / Controllers) y multi-tenant por headers internos desde el Host.
|
||||
|
||||
Contexto:
|
||||
- El Host (gateway) resuelve tenant y manda headers internos firmados (InternalRouting).
|
||||
- En el micro GPS ya uso UseInternalTenantDb() para validar firma y poblar TenantContext.
|
||||
- TenantContext tiene: EmpresaId, ClienteId, TenantId (string), Culture, Theme, Database { Provider, ConnectionString }, CustomSettings.
|
||||
- GPS NO debe leer appsettings para tenants ni duplicar config del Host. NO usar ITenantStore en GPS.
|
||||
- La conexión a BD siempre sale de TenantContext.Database.ConnectionString y se abre vía ITenantDbConnectionFactory (ADS.Helpers.Data).
|
||||
|
||||
Objetivo inmediato:
|
||||
1) Definir la estructura de carpetas y proyectos dentro de ADS.Apis.Gps:
|
||||
- Domain: modelos/puertos (interfaces) sin SQL ni Dapper.
|
||||
- Application: casos de uso/servicios y orquestación.
|
||||
- Infrastructure: Dapper/SQL repos/stores.
|
||||
- Controllers: endpoints.
|
||||
2) Implementar autenticación Sicrep en GPS:
|
||||
- Endpoint POST /gps/sicrep/auth/token
|
||||
- Antes de generar JWT, ejecutar el SP [dbo].[PA_Sis_UsuarioValidacionGet] con @Usuario, @Contraseña (varchar(32)), @CveEmpresa (del tenant), y validar que CveUsuario > 0 y Acceso = 1.
|
||||
- Luego emitir JWT usando ADS.Helpers.Auth (IAdsTokenService) con TenantId string y claims (CveUsuario, CveEmpresa, CveCliente, CveRol, etc.)
|
||||
3) Entregarme:
|
||||
- Árbol final de carpetas.
|
||||
- Código completo de: puertos (interfaces), modelos domain, repos Infrastructure (Dapper + SP), servicio Application (caso de uso), controller, y registros DI en Program.cs.
|
||||
- NOTA: No uses GetConnectionString("...") ni appsettings para la DB del micro.
|
||||
|
||||
Datos extra:
|
||||
- Confirmar si la contraseña en BD ya viene en MD5 hex 32 o si debo hashear antes de llamar al SP. (Si no sabes, deja helper para MD5 y comenta dónde se decide).
|
||||
IMPORTANTE: No inventes métodos que no existan; si necesitas agregar algo a ADS.Helpers.Auth o ADS.Helpers.MultiTenant/Helpers.Data, dilo explícitamente y dame el código exacto del archivo a modificar.
|
||||
pasame un script para la generacion de archivos y carpetas
|
||||
tampoco te inventes rutas nuevas las apis las estoy guardando en la carpeta de apis
|
||||
la ruta del proyecto debe ser exatamente la misma para que funciione con ADS.Apis.slnx
|
||||
Reference in New Issue
Block a user