Saltar a contenido

Hallazgos en las lambdas actuales de guías

Revisión de solo lectura del 2026-10-22 sobre ApiLambdaCrearGuia (CR), ApiLambdaCargarGuias (CG), ApiLambdaCrearEtiquetaManual, ServicioPublicoLogigho y AWS prod. La API nueva los evita; corregirlos en las lambdas actuales es trabajo aparte.

Rutas relativas a Lambdas_NET_LogiGho/LambdasLogiGho.Aplicacion/Logigho/.


Consistencia

Hallazgo Evidencia
Reintento x4 de cualquier POST, incluida la creación en la transportadora ApiLambdaCrearGuia/Infraestructura/Servicios/Generico.cs:152-237
Estado Cargado se escribe después de crear la guía CG/.../CargaInterUseCase.cs:121,317
PedidosInter sin índice único por número de guía —
Insert en PedidosInter fallido solo se registra en log CG/.../CargaInterUseCase.cs:363-366
Inventario lanzado en segundo plano justo antes de responder (Lambda puede congelarlo) CG/Function.cs:157-167

Bugs

Hallazgo Evidencia
Transportadora desconocida o vacía se envía por Envia CG/Function.cs:130-135, CR/Function.cs:151
D2E sin await: sube el texto de un Task como etiqueta CG/.../CargaD2EUseCase.cs:228
Recogida D2E enviada a la API de Inter CG/.../CargaD2EUseCase.cs:264
TCC rechazado por /putObject (no está en la lista) ApiLambdaPutObjectAOT/.../Function.cs:100
Buckets -prod fijos en código, usados también en PreProd ApiLambdaCrearEtiquetaManual/.../Carga*UseCase.cs
Falta de una variable TCC tumba el constructor y con él todas las transportadoras CargaTccUseCase.cs (constructor)

Seguridad

Hallazgo Evidencia
El token Cognito del usuario se envía a Inter en cada admisión (headers Token y Authorization) CR/.../CargaInterUseCase.cs:174, CR/Infraestructura/Servicios/Generico.cs:187-194
Headers con credenciales de Inter enviados a /creacionEtiqueta (endpoint propio) CR/.../CargaInterUseCase.cs:254
El cliente envía IdTienda/TiendaProveedor/Estado sin validación de dueño CR/Function.cs:109-155
/pedidos: la lambda lee primero Token mientras el authorizer valida Authorization; el JWT se decodifica sin verificar firma ServicioPublicoLogigho/ApiLambaConsultarPedidos/Function.cs:51-57, JwtClaimsHelper.cs:17-30
PUT /putObject y POST /actualizaInventarioLotes sin authorizer ni API key en 7elgyten88 AWS get-resources
Puerto 22 abierto a 0.0.0.0/0 en sg_documentdb AWS describe-security-groups
Authorizer de PreProd apunta al pool Cognito de prod AWS

Dinero

  • Ninguna lambda reserva ni valida saldo al crear una guía. La wallet (ResumenSaldoActualLogigho) solo cambia al liquidar entregas y devoluciones, 2–5 días después.
  • ResumenSaldoActualLogigho lo recalculan varios procesos con fórmulas distintas; no sirve como fuente de verdad para el cupo. Detalle en cupo.md.

Infraestructura (prod)

  • DocumentDB: una instancia db.t4g.medium, CPU máx. 99%, 495 conexiones pico, sin réplica, backup 1 día. HU: BD: Escalamiento y endurecimiento de DocumentDB producción.
  • Lambdas en VPC en una sola subnet (us-east-1a) y un NAT.
  • ~~En prod, /actualizaInventarioLotes apunta a ApiLambdaInventarioCarga (legacy)~~ Corregido el 2026-10-24 (verificado en solo lectura por el chat de bitácora): en producción POST /actualizaInventarioLotes (REST 7elgyten88, recurso nc8dn1) integra con ApiLambdaInventarioPorCarga (dominio nuevo de inventario, modificada el 2026-10-23). La función legacy ApiLambdaInventarioCarga sigue existiendo. En PreProd existe ApiLambdaInventarioPorCargaPreProd, pero el REST de plataforma 8u5isw5u30 no tiene la ruta /actualizaInventarioLotes.