Skip to content

Matriz Funcional de Capacidades

271 capacidades verificadas contra el codigo fuente v2.6.0 Generado el 2026-03-18

Resumen de Estados

EstadoCantidadDescripcion
Implementado262Funcionalidad completa y verificada
Stub9Codigo existe pero llama a un servicio simulado (log-only)
Total271

BFF Gateway (ws-pprx-bff, puerto 8090)

Proxy de Expediciones

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-01BFFCrear expedicion con clave de idempotenciaEl operador o cliente crea una expedicion; el BFF reenvia a ws-pprx-shipments con deduplicacionOperador PUDO, ClienteImplementadoNingunaNingunoCrear expedicion duplicada con misma clave y verificar que no se duplica
BFF-02BFFListar expediciones con paginacion y filtrosEl operador consulta expediciones filtradas por estado, rango de fechas y codigo de centroOperador PUDO, AdministradorImplementadoNingunaNingunoListar con filtros combinados y verificar paginacion correcta
BFF-03BFFDetalle de expedicion por codigo de barrasEl operador consulta el detalle completo de una expedicion incluyendo historial de estados y PODOperador PUDO, AdministradorImplementadoNingunaNingunoConsultar expedicion existente y verificar campos completos
BFF-04BFFInicio de handshake de transportistaEl transportista inicia el protocolo dual-QR generando un token de sesionTransportistaImplementadoNingunaNingunoIniciar handshake y verificar que se genera token de sesion
BFF-05BFFPolling de estado de sesion QREl transportista consulta periodicamente el estado de la sesion QR mientras espera validacionTransportistaImplementadoNingunaNingunoConsultar sesion activa y verificar que responde PENDING/VALIDATED
BFF-06BFFValidacion de sesion QR por operador PUDOEl operador escanea el QR del transportista y valida la sesion de entregaOperador PUDOImplementadoNingunaNingunoValidar sesion y verificar transicion de estado
BFF-07BFFListar expediciones pendientes para transportistasEl transportista consulta las expediciones pendientes de recogidaTransportistaImplementadoNingunaNingunoConsultar como transportista y verificar lista de pendientes
BFF-08BFFEntrega multiple de paquetes en centro PUDOEl transportista entrega varios paquetes en un unico lote a un centro PUDOTransportistaImplementadoNingunaNingunoEntregar 3+ paquetes en lote y verificar recepcion individual
BFF-09BFFRecogida de paquete caducado por transportistaEl transportista recoge un paquete caducado del centro PUDO para devolucionTransportistaImplementadoNingunaNingunoRecoger paquete CADUCADO y verificar transicion a EN_DEVOLUCION
BFF-10BFFGeneracion de etiqueta HTML para impresionEl operador genera una etiqueta imprimible con codigo de barras, remitente, destinatario e info del centroOperador PUDOImplementadoNingunaNingunoGenerar etiqueta y verificar HTML valido con datos correctos
BFF-11BFFObtener metadatos de PODEl operador consulta las URLs de firma y evidencia fotografica de una entregaOperador PUDO, AdministradorImplementadoMinIOBucket MinIO proximiti-pod configuradoConsultar POD de expedicion entregada y verificar URLs
BFF-12BFFGenerar token de subida de PODEl sistema genera un token presignado para subir imagenes de POD a MinIOSistemaImplementadoMinIOBucket MinIO proximiti-pod configuradoGenerar token y verificar que permite subida a MinIO
BFF-13BFFStreaming de imagen POD via proxyEl portal muestra la imagen de firma o evidencia sin exponer URLs de MinIOOperador PUDO, ClienteImplementadoMinIOBucket MinIO proximiti-pod configuradoSolicitar imagen y verificar streaming de bytes correcto

Proxy de Centros

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-14BFFListar centros para dropdowns de operadorEl operador consulta el catalogo de centros para seleccion en formulariosOperador PUDOImplementadoNingunaCatalogo de centros cargadoListar centros y verificar mapeo de campos

Agregacion de Dashboard

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-15BFFDashboard de operadorEl operador ve el conteo de pendientes y capacidad desde llamadas paralelas internasOperador PUDOImplementadoNingunaNingunoAcceder al dashboard y verificar datos de pendientes y capacidad
BFF-16BFFDashboard de administradorEl admin ve totales de expediciones, desglose por estado, actividad 24h y resumen de centrosAdministradorImplementadoNingunaNingunoAcceder como admin y verificar todos los KPIs

Centros Externos (Widget PUDO Selector)

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-17BFFBusqueda de centros cercanos con geocodificacionEl cliente busca centros PUDO cercanos por codigo postal con calculo de distancia HaversineClienteImplementadoNingunaTabla de geocodificacion de codigos postalesBuscar por CP y verificar resultados ordenados por distancia
BFF-18BFFDetalle de centro con horario, capacidad y fotosEl cliente ve la informacion completa de un centro seleccionadoClienteImplementadoNingunaDatos de centros con horarios y fotosConsultar centro y verificar campos completos

Tracking Publico

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-19BFFTracking sin autenticacion por codigo de barrasCualquier persona consulta el estado de una expedicion con el codigo de barrasTodosImplementadoNingunaNingunoConsultar expedicion sin token y verificar datos publicos

Admin — Usuarios

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-20BFFListar usuarios con paginacionEl admin consulta todos los usuarios del sistemaAdministradorImplementadoNingunaNingunoListar usuarios como admin y verificar paginacion
BFF-21BFFObtener usuario por IDEl admin consulta el detalle de un usuario especificoAdministradorImplementadoNingunaNingunoConsultar usuario y verificar campos
BFF-22BFFActualizar rol y asignacion de centroEl admin modifica el rol o centro asignado a un usuarioAdministradorImplementadoKeycloakRoles de Keycloak configuradosCambiar rol y verificar actualizacion

Admin — Centros

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-23BFFListar todos los centros con detalle completoEl admin consulta el catalogo completo de centros PUDOAdministradorImplementadoNingunaNingunoListar centros y verificar datos completos
BFF-24BFFObtener centro por codigo con ETagEl admin consulta un centro especifico; respuesta incluye ETag para control de concurrenciaAdministradorImplementadoNingunaNingunoConsultar centro y verificar cabecera ETag
BFF-25BFFCrear centroEl admin da de alta un nuevo centro PUDO en el sistemaAdministradorImplementadoNingunaDatos del centro (direccion, horario, capacidad)Crear centro y verificar 201 con Location header
BFF-26BFFActualizar centro con control de concurrencia ETagEl admin modifica un centro existente con bloqueo optimista If-MatchAdministradorImplementadoNingunaNingunoActualizar con ETag correcto; intentar con ETag obsoleto y verificar 412
BFF-27BFFBorrado logico de centroEl admin desactiva un centro sin eliminarlo fisicamenteAdministradorImplementadoNingunaNingunoEliminar centro y verificar 204; consultar y verificar que no aparece

Admin — Datos Semilla

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-28BFFEstado de datos semilla con conteos por dominioEl admin ve cuantos registros existen por cada tabla de dominioAdministradorImplementadoNingunaNingunoConsultar estado y verificar conteos por tabla
BFF-29BFFCargar datos semilla con opcion de sobreescrituraEl admin carga datos de prueba o iniciales con opcion de forzar sobreescrituraAdministradorImplementadoNingunaNingunoCargar datos y verificar conteos incrementados
BFF-30BFFDescargar todos los datos semillaEl admin elimina todos los datos de prueba del sistemaAdministradorImplementadoNingunaNingunoDescargar y verificar conteos a cero

Admin — Introspeccion de Esquema

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-31BFFIntrospeccion de esquema de base de datosEl admin ve tablas, columnas, restricciones y relaciones FK de todas las tablas tp_pprx_*AdministradorImplementadoNingunaNingunoConsultar esquema y verificar tablas y relaciones

Admin — Adaptador/Proveedores

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-32BFFSincronizar catalogo de proveedorEl admin dispara la sincronizacion del catalogo de Kanguro o HublockerAdministradorStubKanguro, HublockerURLs de API de produccion de Kanguro y HublockerDisparar sync y verificar que se registra en log de sincronizacion
BFF-33BFFListar proveedores con conteos y estado de syncEl admin ve los proveedores activos, cuantos centros tiene cada uno y la ultima sincronizacionAdministradorImplementadoNingunaNingunoListar proveedores y verificar datos

Portal de Cliente

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-34BFFObtener perfil de cliente con fallback JWTEl cliente consulta su perfil; si no existe, se devuelven valores por defecto del JWTClienteImplementadoNingunaNingunoConsultar perfil y verificar datos
BFF-35BFFActualizar perfil de clienteEl cliente modifica su nombre, telefono u otros datos personalesClienteImplementadoNingunaNingunoActualizar perfil y verificar persistencia
BFF-36BFFListar direcciones guardadasEl cliente ve sus direcciones de envio guardadasClienteImplementadoNingunaNingunoListar direcciones y verificar datos
BFF-37BFFCrear direccionEl cliente guarda una nueva direccion de envioClienteImplementadoNingunaNingunoCrear direccion y verificar en lista
BFF-38BFFActualizar direccionEl cliente modifica una direccion existenteClienteImplementadoNingunaNingunoActualizar y verificar cambios
BFF-39BFFEliminar direccionEl cliente borra una direccion guardadaClienteImplementadoNingunaNingunoEliminar y verificar que desaparece de la lista
BFF-40BFFListado de expediciones del clienteEl cliente ve sus expediciones filtradas por su sub de KeycloakClienteImplementadoNingunaNingunoListar como cliente y verificar que solo muestra sus expediciones
BFF-41BFFDashboard del clienteEl cliente ve un resumen de actividad: expediciones activas, entregadas, etc.ClienteImplementadoNingunaNingunoAcceder al dashboard y verificar KPIs del cliente

Proxy de Notificaciones

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-42BFFListar notificaciones con filtro por centroEl operador ve sus notificaciones paginadas y filtradas por su centroOperador PUDOImplementadoNingunaNingunoListar notificaciones y verificar filtrado por centro
BFF-43BFFConteo de notificaciones no leidasEl sistema muestra el badge con el conteo de no leidas en la campana de notificacionesOperador PUDOImplementadoNingunaNingunoVerificar conteo y que se actualiza al marcar como leida
BFF-44BFFMarcar notificacion como leidaEl operador marca una notificacion como leidaOperador PUDOImplementadoNingunaNingunoMarcar y verificar que el conteo disminuye

Proxy de Incidencias

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-45BFFListar incidencias con filtrosEl operador o admin consulta incidencias filtradas por estado, tipo, severidad y centroOperador PUDO, AdministradorImplementadoNingunaNingunoListar con filtros y verificar resultados
BFF-46BFFObtener incidencia por IDEl operador consulta el detalle de una incidencia con su trail de auditoriaOperador PUDO, AdministradorImplementadoNingunaNingunoConsultar incidencia y verificar trail
BFF-47BFFCrear incidenciaEl operador reporta una incidencia vinculada a una expedicionOperador PUDOImplementadoNingunaNingunoCrear incidencia y verificar 201
BFF-48BFFActualizar estado de incidenciaEl admin cambia el estado de una incidencia (abierta, en curso, resuelta, cerrada)AdministradorImplementadoNingunaNingunoCambiar estado y verificar trail de auditoria
BFF-49BFFEscalar incidenciaEl operador escala una incidencia elevando su severidad y notificando a soporteOperador PUDOImplementadoNingunaNingunoEscalar y verificar cambio de severidad

Proxy de Tarifas

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-50BFFListar tarifas activasEl cliente o operador ve las tarifas vigentesTodosImplementadoNingunaTabla de tarifas configuradaListar tarifas y verificar datos
BFF-51BFFEstimar coste de envio por pesoEl cliente calcula el coste estimado de un envio segun el pesoClienteImplementadoNingunaTarifas cargadas en el sistemaEstimar coste con peso y verificar calculo
BFF-52BFFListar todas las tarifas (admin)El admin ve todas las tarifas incluyendo las inactivasAdministradorImplementadoNingunaNingunoListar como admin y verificar que incluye inactivas
BFF-53BFFCrear tarifaEl admin crea una nueva tarifa con rangos de peso y preciosAdministradorImplementadoNingunaNingunoCrear tarifa y verificar persistencia
BFF-54BFFActualizar tarifaEl admin modifica los parametros de una tarifa existenteAdministradorImplementadoNingunaNingunoActualizar y verificar cambios
BFF-55BFFEliminar tarifaEl admin elimina una tarifa del sistemaAdministradorImplementadoNingunaNingunoEliminar y verificar que desaparece

Foto de Perfil

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-56BFFSubir foto de perfil a MinIOEl usuario sube una foto de perfil (max 2MB, JPEG/PNG/WebP) que se almacena en MinIOTodosImplementadoMinIOBucket MinIO proximiti-photos configuradoSubir imagen y verificar almacenamiento en MinIO
BFF-57BFFStreaming de foto de perfilEl sistema muestra la foto de perfil del usuario autenticado via proxyTodosImplementadoMinIOBucket MinIO proximiti-photos configuradoSolicitar foto y verificar streaming correcto
BFF-58BFFEliminar foto de perfilEl usuario elimina su foto de perfil de MinIO y limpia la URLTodosImplementadoMinIOBucket MinIO proximiti-photos configuradoEliminar y verificar que no se puede recuperar

Transversales

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
BFF-59BFFFiltro de enriquecimiento usuario-centroEl sistema resuelve sub de Keycloak a centerId/centerCode con cache Caffeine de 5 min TTLSistemaImplementadoKeycloakKeycloak operativo con usuarios configuradosVerificar que la resolucion funciona y que el cache se invalida
BFF-60BFFAuto-provision de usuario en primer loginEl sistema crea automaticamente un registro de usuario al primer login para todos los rolesSistemaImplementadoKeycloakKeycloak operativoHacer login con usuario nuevo y verificar que se crea registro
BFF-61BFFBypass de enriquecimiento para rutas de clienteEl sistema omite la resolucion de centro para rutas /api/v1/customer/* con fallback gracefulSistemaImplementadoNingunaNingunoAcceder como cliente sin centro y verificar respuesta correcta
BFF-62BFFFiltro de X-Correlation-IdEl sistema propaga el ID de correlacion en todas las peticiones para trazabilidad distribuidaSistemaImplementadoNingunaNingunoEnviar peticion y verificar propagacion del header
BFF-63BFFFiltro de limitacion de tasaEl sistema limita peticiones por IP (60/min) y por sujeto (120/min) para centros externosSistemaImplementadoNingunaNingunoEnviar rafaga de peticiones y verificar 429
BFF-64BFFValidacion de JWT via Spring Security OAuth2El sistema valida todos los tokens JWT contra el emisor de KeycloakSistemaImplementadoKeycloakKeycloak operativo con emisor correctoEnviar token invalido y verificar 401
BFF-65BFFConversor de roles de Keycloak anidadosEl sistema extrae roles de la estructura anidada realm_access.roles del JWTSistemaImplementadoKeycloakRoles configurados en realmVerificar que roles anidados se parsean correctamente
BFF-66BFFSwagger/OpenAPI UI con flujo OAuth2El desarrollador o admin accede a la documentacion interactiva de la API con autenticacion OAuth2AdministradorImplementadoKeycloakKeycloak operativoAcceder a /swagger-ui y autenticar con usuario de prueba
BFF-67BFFConfiguracion de WebClient con tracing ZipkinEl sistema configura clientes HTTP para todos los servicios downstream con propagacion de trazasSistemaImplementadoZipkinZipkin operativo (opcional, degrada con gracia)Verificar trazas en Zipkin tras peticion end-to-end
BFF-68BFFServicio de almacenamiento de fotos de perfil en MinIOEl sistema gestiona operaciones CRUD directas contra MinIO para fotos de perfilSistemaImplementadoMinIOMinIO operativo con bucket proximiti-photosSubir, leer y eliminar foto via API

Centros (ws-pprx-centers, puerto 8091)

API Publica

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CNTR-01CentrosListar centros con paginacion y filtro por proveedorEl operador o admin consulta el catalogo de centros con filtros opcionalesOperador PUDO, AdministradorImplementadoNingunaDatos de centros cargadosListar con filtro de proveedor y verificar resultados
CNTR-02CentrosDetalle de centro por codigo con ETagEl sistema obtiene un centro especifico con version ETag para control de concurrenciaOperador PUDO, AdministradorImplementadoNingunaNingunoConsultar centro y verificar cabecera ETag
CNTR-03CentrosCrear centro PUDO (solo admin)El admin registra un nuevo centro PUDO con direccion, horario y capacidadAdministradorImplementadoNingunaDatos completos del centroCrear centro y verificar 201 con Location
CNTR-04CentrosActualizar centro con bloqueo optimista ETagEl admin modifica un centro existente; se requiere If-Match para evitar conflictosAdministradorImplementadoNingunaNingunoActualizar con ETag y verificar; probar con ETag obsoleto
CNTR-05CentrosBorrado logico de centro (solo admin)El admin desactiva un centro sin eliminar datosAdministradorImplementadoNingunaNingunoEliminar y verificar 204
CNTR-06CentrosToken presignado para documento de contratoEl sistema genera una URL presignada para subir un PDF de contrato (max 5MB) a MinIOAdministradorImplementadoMinIOBucket MinIO proximiti-documents configuradoGenerar token y verificar subida de PDF

API Interna (Servicio a Servicio)

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CNTR-07CentrosCapacidad actual por ID de centroOtros servicios consultan la capacidad disponible de un centroSistemaImplementadoNingunaNingunoLlamada interna y verificar datos de capacidad
CNTR-08CentrosDecremento atomico de capacidad con ETagEl servicio de expediciones decrementa la capacidad al recepcionar un paqueteSistemaImplementadoNingunaNingunoDecrementar y verificar capacidad actualizada
CNTR-09CentrosIncremento atomico de capacidad con ETagEl servicio de expediciones incrementa la capacidad al retirar un paquete caducadoSistemaImplementadoNingunaNingunoIncrementar y verificar capacidad actualizada
CNTR-10CentrosResolver codigo de centro por ID numericoServicios internos obtienen el codigo alfanumerico a partir del ID numericoSistemaImplementadoNingunaNingunoResolver ID y verificar codigo correcto
CNTR-11CentrosResolver ID de centro por codigoServicios internos obtienen el ID numerico a partir del codigo alfanumericoSistemaImplementadoNingunaNingunoResolver codigo y verificar ID correcto
CNTR-12CentrosResumen de centros con datos de capacidadEl dashboard admin obtiene conteos de centros con metricas de capacidadSistemaImplementadoNingunaNingunoConsultar resumen y verificar datos

Transversales

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CNTR-13CentrosServicio de autorizacion por centroEl sistema verifica que el operador tiene acceso al centro solicitado, con bypass para adminSistemaImplementadoNingunaNingunoAcceder como operador a otro centro y verificar 403
CNTR-14CentrosIntegracion con MinIO para documentos de contratoEl sistema almacena documentos de contrato con URLs presignadas en MinIOSistemaImplementadoMinIOMinIO operativo con bucket proximiti-documentsSubir documento y verificar almacenamiento
CNTR-15CentrosBloqueo optimista JPA con campo versionEl sistema usa versionado JPA para actualizaciones concurrentes de capacidadSistemaImplementadoNingunaNingunoActualizar concurrentemente y verificar que una falla con 412

Expediciones (ws-pprx-shipments, puerto 8092)

CRUD de Expediciones

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
SHPM-01ExpedicionesCrear expedicion con deduplicacion por clave de idempotenciaEl sistema crea una expedicion; si la clave ya existe, devuelve la existente sin duplicarSistemaImplementadoNingunaNingunoCrear con misma clave dos veces y verificar no duplicacion
SHPM-02ExpedicionesListar expediciones con paginacion, filtros y scoping por centroEl operador lista expediciones de su centro con filtros por estado, fecha y paginacionOperador PUDOImplementadoNingunaNingunoListar con filtros y verificar scoping por centro
SHPM-03ExpedicionesDetalle de expedicion con historial y PODEl sistema devuelve todos los datos de una expedicion incluyendo estados historicos y datos de PODOperador PUDO, AdministradorImplementadoNingunaNingunoConsultar detalle y verificar historial completo
SHPM-04ExpedicionesListado de expediciones por sub del remitenteEl portal de cliente lista solo las expediciones del cliente autenticadoClienteImplementadoNingunaNingunoListar como cliente y verificar que solo ve las suyas

Tracking

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
SHPM-05ExpedicionesTracking publico por codigo de barrasCualquier persona consulta el estado de una expedicion con timestamps y codigos de centroTodosImplementadoNingunaNingunoConsultar sin autenticacion y verificar datos publicos

Maquina de Estados

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
SHPM-06ExpedicionesDispatcher de acciones de transicion de estadoEl sistema procesa acciones (recibir, entregar, caducar, recoger) y ejecuta la transicion correspondienteSistemaImplementadoNingunaNingunoEjecutar cada accion y verificar transicion
SHPM-07ExpedicionesTransicion a RECEPCIONADOEl operador recepciona un paquete; se valida centro, se decrementa capacidadOperador PUDOImplementadows-pprx-centersServicio de centros operativoRecepcionar y verificar estado + capacidad decrementada
SHPM-08ExpedicionesTransicion a ENTREGADOEl operador entrega un paquete; se requiere POD (firma + evidencia), se registra timestampOperador PUDOImplementadoMinIOMinIO para almacenar PODEntregar con POD y verificar estado + timestamp
SHPM-09ExpedicionesTransicion a CADUCADOEl sistema marca un paquete como caducado al superar el periodo de retencionSistemaImplementadoNingunaNingunoMarcar como caducado y verificar timestamp
SHPM-10ExpedicionesTransicion a EN_DEVOLUCIONEl transportista recoge un paquete caducado; se incrementa capacidad del centroTransportistaImplementadows-pprx-centersServicio de centros operativoRecoger y verificar estado + capacidad incrementada
SHPM-11ExpedicionesTransicion a DEVUELTOEl sistema marca un paquete como devuelto al completar la devolucionSistemaImplementadoNingunaNingunoMarcar como devuelto y verificar estado final

Protocolo Dual-QR

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
SHPM-12ExpedicionesInicio de handshake — generacion de token de sesion QREl transportista inicia la entrega generando un token QR unicoTransportistaImplementadoNingunaNingunoIniciar y verificar token generado
SHPM-13ExpedicionesPolling de estado de sesion QREl transportista consulta si el operador ha validado su sesion QRTransportistaImplementadoNingunaNingunoConsultar sesion y verificar estados PENDING/VALIDATED
SHPM-14ExpedicionesValidacion de sesion QR por operadorEl operador PUDO escanea el QR del transportista y confirma la entregaOperador PUDOImplementadoNingunaNingunoValidar sesion y verificar transicion

Operaciones de Transportista

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
SHPM-15ExpedicionesListar expediciones pendientes para recogidaEl transportista ve los paquetes que debe recoger de los centrosTransportistaImplementadoNingunaNingunoListar pendientes y verificar lista
SHPM-16ExpedicionesEntrega en lote de multiples paquetesEl transportista entrega varios paquetes a la vez en un centro PUDOTransportistaImplementadoNingunaNingunoEntregar lote y verificar resultado por paquete
SHPM-17ExpedicionesRecogida de paquete caducado con incremento de capacidadEl transportista recoge un paquete caducado y la capacidad del centro se incrementaTransportistaImplementadows-pprx-centersServicio de centros operativoRecoger y verificar capacidad incrementada

POD (Prueba de Entrega)

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
SHPM-18ExpedicionesGenerar token presignado para subida de imagenes PODEl sistema genera URLs temporales para que la app movil suba imagenes de PODSistemaImplementadoMinIOMinIO con bucket proximiti-podGenerar token y verificar subida exitosa
SHPM-19ExpedicionesObtener metadatos de POD — firma y evidenciaEl sistema devuelve las URLs de las imagenes de firma y evidencia fotograficaOperador PUDO, AdministradorImplementadoMinIOMinIO con bucket proximiti-podConsultar POD y verificar URLs
SHPM-20ExpedicionesStreaming de imagen POD por tipoEl sistema transmite los bytes de la imagen de POD (firma o evidencia)Operador PUDO, AdministradorImplementadoMinIOMinIO con bucket proximiti-podSolicitar imagen y verificar content-type correcto

Generacion de Etiquetas

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
SHPM-21ExpedicionesEtiqueta HTML imprimible con codigo de barrasEl sistema genera HTML con datos de envio, codigo de barras e info del centro para imprimirOperador PUDOImplementadoNingunaNingunoGenerar etiqueta y verificar HTML correcto

API Interna (Servicio a Servicio)

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
SHPM-22ExpedicionesConteo de pendientes por centro para dashboardEl BFF obtiene el conteo de expediciones pendientes de un centroSistemaImplementadoNingunaNingunoConsultar conteo y verificar valor
SHPM-23ExpedicionesEstadisticas de expediciones — totales, por estado, 24hEl BFF obtiene estadisticas globales para el dashboard adminSistemaImplementadoNingunaNingunoConsultar estadisticas y verificar desglose
SHPM-24ExpedicionesEstadisticas de cliente por sub del remitenteEl BFF obtiene estadisticas de expediciones para un cliente especificoSistemaImplementadoNingunaNingunoConsultar como cliente y verificar datos

Transversales

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
SHPM-25ExpedicionesPuerto de almacenamiento MinIO para imagenes PODEl servicio gestiona almacenamiento y recuperacion de imagenes POD con URLs presignadas y streamingSistemaImplementadoMinIOMinIO con bucket proximiti-podSubir, leer y eliminar imagen de POD

Usuarios (ws-pprx-users, puerto 8093)

Gestion de Usuarios

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
USR-01UsuariosResolver centro de usuario por sub de KeycloakEl BFF obtiene el centerId y centerCode de un usuario a partir de su sub de KeycloakSistemaImplementadoKeycloakUsuarios registrados en Keycloak y mapeadosResolver sub y verificar centro correcto
USR-02UsuariosProvision de usuario en primer loginEl sistema crea automaticamente un registro en tp_pprx_usuario al primer loginSistemaImplementadoKeycloakKeycloak operativoLogin con usuario nuevo y verificar registro creado
USR-03UsuariosListar usuarios con paginacionEl admin lista todos los usuarios del sistema con paginacionAdministradorImplementadoNingunaNingunoListar y verificar paginacion
USR-04UsuariosObtener usuario por IDEl admin consulta el detalle de un usuario especificoAdministradorImplementadoNingunaNingunoConsultar y verificar campos
USR-05UsuariosActualizar rol y asignacion de centroEl admin modifica el rol o centro de un usuarioAdministradorImplementadoNingunaNingunoActualizar y verificar persistencia

URL de Foto de Perfil

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
USR-06UsuariosObtener URL de foto de perfilEl sistema obtiene la URL de foto de perfil del usuario autenticadoTodosImplementadoNingunaNingunoConsultar y verificar URL
USR-07UsuariosActualizar URL de foto de perfilEl sistema actualiza la URL tras subir una nueva fotoTodosImplementadoNingunaNingunoActualizar y verificar persistencia
USR-08UsuariosEliminar URL de foto de perfilEl sistema limpia la URL de foto al eliminarlaTodosImplementadoNingunaNingunoEliminar y verificar que URL queda nula

Gestion de Clientes

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
USR-09UsuariosObtener perfil de cliente por subEl cliente consulta su perfil personalClienteImplementadoNingunaNingunoConsultar perfil y verificar datos
USR-10UsuariosActualizar perfil de clienteEl cliente modifica sus datos personales (nombre, telefono, etc.)ClienteImplementadoNingunaNingunoActualizar y verificar persistencia
USR-11UsuariosProvision de cliente en primer loginEl sistema crea un registro de cliente automaticamente al primer loginSistemaImplementadoKeycloakKeycloak operativoLogin como cliente nuevo y verificar registro
USR-12UsuariosListar direcciones del clienteEl cliente ve sus direcciones guardadasClienteImplementadoNingunaNingunoListar y verificar direcciones
USR-13UsuariosCrear direccionEl cliente agrega una nueva direccion de envioClienteImplementadoNingunaNingunoCrear y verificar en lista
USR-14UsuariosActualizar direccionEl cliente modifica una direccion existenteClienteImplementadoNingunaNingunoActualizar y verificar cambios
USR-15UsuariosEliminar direccionEl cliente elimina una direccion guardadaClienteImplementadoNingunaNingunoEliminar y verificar que desaparece

Notificaciones (ws-pprx-notifications, puerto 8094)

Notificaciones de Usuario

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
NOTF-01NotificacionesListar notificaciones por centro con paginacionEl operador ve sus notificaciones ordenadas por fecha descendenteOperador PUDOImplementadoNingunaNingunoListar y verificar paginacion y orden
NOTF-02NotificacionesConteo de notificaciones no leidasEl sistema proporciona el conteo para el badge de la campanaOperador PUDOImplementadoNingunaNingunoVerificar conteo correcto
NOTF-03NotificacionesMarcar notificacion como leidaEl operador marca una notificacion como leida; el conteo de no leidas disminuyeOperador PUDOImplementadoNingunaNingunoMarcar y verificar conteo actualizado

Disparadores de Notificaciones

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
NOTF-04NotificacionesDisparar envio de notificacionEl sistema dispara una notificacion que crea un registro de usuario; en v2.0 el envio externo es stubSistemaStubNOVAContrato con NOVA Mulesoft para envio real de notificaciones (SMS/email/push). En v2.0 solo se registra en logVerificar que se crea registro en BD; en produccion verificar envio real via NOVA

Transversales

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
NOTF-05NotificacionesIntegracion stub con NOVAEl servicio simula la llamada a NOVA Mulesoft con patron fire-and-forget y timeout de 500ms; solo registra en logSistemaStubNOVAEndpoint y credenciales de NOVA Mulesoft API. Implementar cliente HTTP real sustituyendo el logVerificar que el log registra la llamada; en produccion verificar llamada HTTP real a NOVA

Caducidad (ws-pprx-expired, puerto 8095)

Procesamiento de Caducidad

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
EXPR-01CaducidadMarcar expediciones caducadasEl sistema escanea expediciones que han superado el periodo de retencion y las marca como CADUCADOSistemaImplementadows-pprx-shipmentsServicio de expediciones operativoEjecutar marcado y verificar transiciones
EXPR-02CaducidadNotificar a ALINA — procesar cola outboxEl sistema procesa la cola de outbox para reportar paquetes caducados a ALINA ERP; en v2.0 la llamada HTTP es stub (solo log)SistemaStubALINAEndpoint y credenciales de ALINA ERP API. Implementar cliente HTTP real en dispatchToAlina() sustituyendo el logVerificar procesamiento de outbox; en produccion verificar llamada HTTP real a ALINA
EXPR-03CaducidadReintentar notificacion ALINA fallidaEl admin re-dispara una notificacion que fue a dead letter, resetando conteo de intentosAdministradorStubALINAMismos prerequisitos que EXPR-02Reintentar registro DLQ y verificar que vuelve a PENDING

Transversales

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
EXPR-04CaducidadPatron outbox transaccionalEl sistema escribe en la tabla outbox dentro de la misma transaccion que la entidad; entrega asincrona con reintentosSistemaImplementadoNingunaNingunoVerificar que outbox se crea en misma transaccion
EXPR-05CaducidadCola de dead letter (DLQ)El sistema mueve a DLQ los registros que agotan el presupuesto de reintentos (5 intentos con backoff exponencial)SistemaImplementadoNingunaNingunoAgotar reintentos y verificar movimiento a DLQ

Incidencias (ws-pprx-issues, puerto 8096)

Gestion de Incidencias

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
ISSU-01IncidenciasCrear incidencia con tipo, severidad y referencia de expedicionEl operador reporta un problema vinculado a una expedicion especificaOperador PUDOImplementadoNingunaNingunoCrear incidencia y verificar 201
ISSU-02IncidenciasObtener incidencia por ID con trail de auditoriaEl operador o admin consulta una incidencia con su historial completo de cambiosOperador PUDO, AdministradorImplementadoNingunaNingunoConsultar y verificar trail de auditoria
ISSU-03IncidenciasListar incidencias con filtrosEl admin filtra incidencias por estado, tipo, severidad y centroAdministradorImplementadoNingunaNingunoListar con filtros combinados y verificar resultados
ISSU-04IncidenciasActualizar estado de incidencia con log de auditoriaEl admin cambia el estado de una incidencia; se registra automaticamente en el trailAdministradorImplementadoNingunaNingunoCambiar estado y verificar entrada en trail
ISSU-05IncidenciasEscalar incidencia — elevar severidad y notificarEl operador escala una incidencia no resuelta; se incrementa la severidadOperador PUDOImplementadoNingunaNingunoEscalar y verificar severidad incrementada

Soporte

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
ISSU-06IncidenciasGenerar token de chat de soporteEl sistema genera un token para iniciar una sesion de chat con soporte; en v2.0 el proveedor de chat es stubOperador PUDOStubProveedor de chatContrato con proveedor de chat en vivo. Implementar cliente real en SupportChatService sustituyendo token stubVerificar generacion de token; en produccion verificar conexion con proveedor real

Transversales

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
ISSU-07IncidenciasTrail de auditoria automaticoEl sistema registra automaticamente todos los cambios de estado con timestamp y actorSistemaImplementadoNingunaNingunoCambiar estado y verificar registro en tp_pprx_incidencia_audit

Adaptador (ws-pprx-adapter, puerto 8086)

Integracion con Proveedores

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
ADPT-01AdaptadorSincronizacion de catalogo de proveedorEl admin dispara la descarga del catalogo de centros desde Kanguro o Hublocker; en v2.0 se comunica con servicios stubAdministradorStubKanguro, HublockerURLs de API de produccion de Kanguro y Hublocker. Sustituir URLs de stub (stub-kanguro:8098, stub-hublocker:8097) por URLs reales en configuracionDisparar sync y verificar registros en tp_pprx_sync_centro; en produccion verificar contra catalogo real
ADPT-02AdaptadorConsulta de disponibilidad por proveedor y centroEl sistema consulta la disponibilidad de un centro en un proveedor especificoSistemaStubKanguro, HublockerMismos prerequisitos que ADPT-01Consultar disponibilidad y verificar respuesta
ADPT-03AdaptadorNotificacion de recepcion a proveedor (fire-and-forget)El sistema notifica al proveedor cuando un paquete es recepcionado en uno de sus centrosSistemaStubKanguro, HublockerMismos prerequisitos que ADPT-01Verificar que la notificacion se registra en log

Webhooks

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
ADPT-04AdaptadorReceptor de webhook de Kanguro con validacion de firmaEl sistema recibe notificaciones de Kanguro y valida la firma HMAC del payloadSistemaImplementadoKanguroSecret de firma HMAC compartido con KanguroEnviar webhook con firma valida y verificar procesamiento; enviar con firma invalida y verificar rechazo
ADPT-05AdaptadorReceptor de webhook de Hublocker con validacion de firmaEl sistema recibe notificaciones de Hublocker y valida la firma HMAC del payloadSistemaImplementadoHublockerSecret de firma HMAC compartido con HublockerEnviar webhook con firma valida y verificar procesamiento

Transversales

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
ADPT-06AdaptadorRegistro pluggable de adaptadores de proveedorEl framework de adaptadores permite registrar KanguroAdapter y HublockerAdapter (y futuros proveedores) de forma pluggableSistemaImplementadoNingunaNingunoVerificar que ambos adaptadores estan registrados en el registry

Portal de Cliente (client-portal, puerto 3000)

Autenticacion

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-01Portal ClienteLogin OIDC con Keycloak y flujo PKCEEl usuario inicia sesion via Keycloak con flujo PKCE seguroTodosImplementadoKeycloakKeycloak operativo con cliente proximiti-bff configuradoLogin y verificar token obtenido
CP-02Portal ClienteRefresco silencioso de token con reintento automaticoEl sistema renueva el token JWT de forma transparente antes de que expireTodosImplementadoKeycloakKeycloak operativoEsperar expiracion y verificar renovacion transparente
CP-03Portal ClienteSeleccion de shell basada en rolEl sistema detecta el rol del JWT y muestra AppShell (operador/admin/carrier) o CustomerShell (cliente)TodosImplementadoKeycloakRoles correctamente asignados en KeycloakLogin con cada rol y verificar shell correcto
CP-04Portal ClienteComponente RoleGuard para rutas protegidasEl sistema redirige a usuarios no autorizados que intentan acceder a rutas restringidasTodosImplementadoNingunaNingunoAcceder a /admin como operador y verificar redireccion

Dashboard de Operador

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-05Portal ClienteDashboard con conteo de pendientes y barra de capacidadEl operador ve de un vistazo cuantos paquetes tiene pendientes y el porcentaje de capacidad usadoOperador PUDOImplementadoNingunaNingunoAcceder al dashboard y verificar datos en tiempo real
CP-06Portal ClientePorcentaje de capacidad con umbrales de colorLa barra de capacidad cambia de verde a amarillo a rojo segun el porcentaje de usoOperador PUDOImplementadoNingunaNingunoVerificar colores en distintos niveles de capacidad
CP-07Portal ClienteLista de expediciones recientes con badges de estadoEl operador ve las ultimas expediciones con badges coloreados por estadoOperador PUDOImplementadoNingunaNingunoVerificar badges para cada estado

Gestion de Expediciones

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-08Portal ClienteLista de expediciones con paginacion, filtro de estado y rango de fechasEl operador busca y filtra expediciones con multiples criteriosOperador PUDOImplementadoNingunaNingunoFiltrar por estado + fecha y verificar resultados
CP-09Portal ClientePagina de detalle con timeline completo e info de centroEl operador ve el ciclo de vida completo de una expedicion con toda la informacionOperador PUDOImplementadoNingunaNingunoVer detalle de expedicion con historial
CP-10Portal ClienteComponente TrackingStepper vertical con ramificacionEl stepper muestra el flujo feliz (3 pasos) o el flujo de caducidad (6 pasos) segun el estadoTodosImplementadoNingunaNingunoVerificar stepper en ambos flujos
CP-11Portal ClienteCuenta regresiva de retencion con colores de urgenciaEl sistema muestra dias restantes hasta caducidad con verde > amarillo > rojoOperador PUDOImplementadoNingunaNingunoVerificar colores en distintos plazos
CP-12Portal ClienteVisualizacion de POD via proxy BFF — firma y evidenciaEl operador ve las imagenes de firma y evidencia fotografica de una entregaOperador PUDO, AdministradorImplementadoMinIOMinIO con imagenes PODVer detalle de expedicion entregada y verificar imagenes
CP-13Portal ClienteFormulario de nueva expedicion con autocompletado y seleccion de centroEl operador o cliente crea una expedicion con asistencia de direccion y selector de centroOperador PUDO, ClienteImplementadoNingunaCentros cargadosCrear expedicion desde el formulario
CP-14Portal ClienteBoton de imprimir etiqueta con dialogo del navegadorEl operador imprime la etiqueta de una expedicion directamente desde el detalleOperador PUDOImplementadoNingunaNingunoPulsar imprimir y verificar dialogo del navegador

Gestion de Recogidas

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-15Portal ClientePagina de recogidas con expediciones en estado RECEPCIONADOEl operador ve los paquetes esperando recogida, ordenados por antiguedad con tiempo de esperaOperador PUDOImplementadoNingunaNingunoAcceder a recogidas y verificar filtrado automatico a RECEPCIONADO

Certificados

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-16Portal ClienteLista de certificados con descarga y estado de caducidadEl operador consulta certificados emitidos con wizard de creacion; maneja 404 gracefully mostrando "proximamente"Operador PUDOImplementadoNingunaAPI de certificados en BFF (actualmente devuelve 404 graceful)Verificar lista y wizard de creacion

Reclamaciones

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-17Portal ClienteLista de reclamaciones con filtros de estadoEl operador consulta reclamaciones filtradas por estado, tipo y severidadOperador PUDO, AdministradorImplementadoNingunaNingunoListar con filtros y verificar resultados
CP-18Portal ClienteVista de detalle de reclamacion con timelineEl operador ve el detalle completo de una reclamacion con su historial de cambiosOperador PUDO, AdministradorImplementadoNingunaNingunoVer detalle y verificar timeline
CP-19Portal ClienteFormulario de nueva reclamacion con referencia de expedicionEl operador crea una nueva reclamacion vinculada a una expedicionOperador PUDOImplementadoNingunaNingunoCrear reclamacion y verificar 201

Informes

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-20Portal ClienteDashboard de informes con volumenes y opciones de exportacionEl admin ve graficos de volumen de expediciones con datos del dashboard agregado; exportacion no implementadaAdministradorImplementadoNingunaNingunoAcceder a informes y verificar graficos de datos reales

Notificaciones

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-21Portal ClientePagina de notificaciones con estado leido/no leido y accion marcar como leidaEl operador ve sus notificaciones y las marca como leidasOperador PUDOImplementadoNingunaNingunoVer notificaciones y marcar como leida
CP-22Portal ClienteBadge de campana con conteo de no leidas en sidebarLa campana muestra un badge con el numero de notificaciones sin leerOperador PUDOImplementadoNingunaNingunoVerificar badge y que se actualiza

Panel de Administracion

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-23Portal ClienteTabla de gestion de usuarios con edicion de roles y asignacion de centroEl admin gestiona usuarios, cambia roles y asigna centrosAdministradorImplementadoKeycloakKeycloak operativoEditar rol de usuario y verificar persistencia
CP-24Portal ClienteGestion de centros con CRUD y filtro por proveedorEl admin crea, edita y elimina centros con filtrado por proveedorAdministradorImplementadoNingunaNingunoCrear, editar y eliminar centro
CP-25Portal ClienteControles de datos semilla — cargar, descargar y estadoEl admin gestiona los datos de prueba del sistemaAdministradorImplementadoNingunaNingunoCargar y verificar conteos
CP-26Portal ClienteSchema Explorer — canvas ERD con React Flow y dagreEl admin ve un diagrama entidad-relacion interactivo de la base de datosAdministradorImplementadoNingunaNingunoNavegar el canvas ERD y verificar tablas
CP-27Portal ClientePanel de detalle de esquema — columnas, PK, FK, CHECK, UNIQUE, indicesEl admin inspecciona la estructura detallada de cada tablaAdministradorImplementadoNingunaNingunoSeleccionar tabla y verificar detalles
CP-28Portal ClienteFiltro de busqueda de esquema con resaltado instantaneoEl admin busca tablas por nombre y se resaltan en el canvasAdministradorImplementadoNingunaNingunoBuscar tabla y verificar resaltado
CP-29Portal ClienteTooltip de arista FK mostrando tabla y columna referenciadaAl pasar el raton sobre una arista FK se muestra la relacion completaAdministradorImplementadoNingunaNingunoHover sobre arista y verificar tooltip

Integraciones

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-30Portal ClientePagina de integraciones con triggers de sync Kanguro y HublockerEl admin dispara sincronizaciones de proveedores externos desde la interfazAdministradorImplementadoKanguro, HublockerProveedores configuradosDisparar sync y verificar resultado
CP-31Portal ClienteLista de proveedores con conteos de centros y timestamp de syncEl admin ve los proveedores con su estado de sincronizacionAdministradorImplementadoNingunaNingunoVerificar lista con datos
CP-32Portal ClienteGuard de admin a nivel de componente como defensa en profundidadLa pagina de integraciones muestra "Acceso Denegado" a usuarios sin rol adminAdministradorImplementadoNingunaNingunoAcceder sin rol admin y verificar bloqueo

Hub de Documentacion

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-33Portal ClienteVisor Swagger/OpenAPI embebido en /docsEl admin accede a la documentacion interactiva de la API desde el portalAdministradorImplementadoNingunaNingunoAcceder a /docs y verificar Swagger UI
CP-34Portal ClienteNavegacion de documentacion API con agrupacion por tagsEl admin navega los endpoints organizados por controlador/tagAdministradorImplementadoNingunaNingunoVerificar agrupacion por tags

Tarifas

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-35Portal ClienteCalculadora de tarifas con estimacion por pesoEl cliente calcula el coste estimado de un envio; usa logica local con tarifas fijas (sin backend)Cliente, Operador PUDOImplementadoNingunaTarifas reales de Ontime para sustituir las ilustrativasCalcular coste y verificar resultado
CP-36Portal ClienteGestion CRUD de tarifas para adminEl admin crea, edita y elimina tarifas desde la interfazAdministradorImplementadoNingunaNingunoCrear, editar y eliminar tarifa

Perfil de Operador

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-37Portal ClientePagina de perfil de operador con info personal y fotoEl operador ve su perfil con avatar (subida via AvatarUpload), informacion de cuenta y enlace a seguridad de KeycloakOperador PUDO, Administrador, TransportistaImplementadoKeycloakKeycloak operativoVerificar datos de perfil y funcionalidad de avatar

Shell de Cliente

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-38Portal ClienteDashboard de cliente con resumen de expediciones activasEl cliente ve un resumen de sus expediciones con acciones rapidasClienteImplementadoNingunaNingunoAcceder como cliente y verificar KPIs
CP-39Portal ClienteLista de expediciones de cliente con filtrado por estadoEl cliente consulta sus expediciones con filtrosClienteImplementadoNingunaNingunoFiltrar por estado y verificar resultados
CP-40Portal ClienteFormulario de nueva expedicion con direcciones guardadasEl cliente crea una expedicion seleccionando entre sus direcciones guardadasClienteImplementadoNingunaDirecciones guardadasCrear expedicion con direccion guardada
CP-41Portal ClientePagina de tracking con busqueda publica y TrackingStepperEl cliente busca una expedicion por codigo de barras y ve el stepper de seguimientoClienteImplementadoNingunaNingunoBuscar expedicion y verificar stepper
CP-42Portal ClienteLibro de direcciones del cliente — CRUDEl cliente gestiona sus direcciones de envio (crear, editar, eliminar)ClienteImplementadoNingunaNingunoCrear, editar y eliminar direccion
CP-43Portal ClientePerfil de cliente con info personal y preferenciasEl cliente ve y edita su perfil personal con seccion hero y tarjeta de seguridadClienteImplementadoNingunaNingunoVer y editar perfil
CP-44Portal ClienteCalculadora de tarifas para clienteEl cliente calcula costes de envio desde su shell (misma calculadora que CP-35)ClienteImplementadoNingunaTarifas reales de OntimeCalcular coste como cliente

Layout y Navegacion

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-45Portal ClienteSidebar colapsable con items de menu basados en rolLa sidebar muestra opciones segun el rol del usuario y puede colapsarseTodosImplementadoNingunaNingunoVerificar items por rol y colapso
CP-46Portal ClienteLayout responsive — desktop y tabletLa interfaz se adapta a pantallas de escritorio y tabletTodosImplementadoNingunaNingunoVerificar en distintos tamanos de pantalla
CP-47Portal ClienteNavegacion con breadcrumbs y etiquetas dinamicas de rutaLa barra de navegacion muestra breadcrumbs contextuales segun la ruta activaTodosImplementadoNingunaNingunoNavegar entre paginas y verificar breadcrumbs

Transversales

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CP-48Portal ClienteTransporter Design System v1.0 — CSS custom propertiesEl portal usa tokens CSS unificados (colores, tipografia, espaciado) del sistema de diseno TransporterTodosImplementadoNingunaNingunoVerificar coherencia visual con tokens de diseno
CP-49Portal ClienteReact Query para estado de servidor con invalidacion automaticaEl portal gestiona cache de datos del servidor con invalidacion tras mutacionesTodosImplementadoNingunaNingunoCrear entidad y verificar actualizacion automatica de listas

PUDO Manager App (pudo-manager-app, Flutter)

Autenticacion

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
PUDO-01PUDO ManagerLogin OIDC con Keycloak y almacenamiento seguroEl operador inicia sesion via Keycloak con tokens almacenados en flutter_secure_storageOperador PUDOImplementadoKeycloakKeycloak operativo con proximiti-bffLogin y verificar almacenamiento seguro del token
PUDO-02PUDO ManagerRefresco automatico de token con logica de reintentoLa app renueva el token transparentemente antes de que expireOperador PUDOImplementadoKeycloakKeycloak operativoEsperar expiracion y verificar renovacion
PUDO-03PUDO ManagerFix de keychain macOS — FixedMacOsOptionsLa app funciona en macOS sin firma de desarrollo gracias a opciones de keychain corregidasOperador PUDOImplementadoNingunaNingunoEjecutar en macOS sin firma y verificar login

Dashboard

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
PUDO-04PUDO ManagerDashboard con conteo de pendientes y uso de capacidadEl operador ve de un vistazo el estado de su centroOperador PUDOImplementadoNingunaNingunoAcceder y verificar datos actualizados
PUDO-05PUDO ManagerBotones de accion rapida — recibir, entregar, escanearEl operador accede rapidamente a las funciones principales desde el dashboardOperador PUDOImplementadoNingunaNingunoPulsar cada boton y verificar navegacion

Recepcion

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
PUDO-06PUDO ManagerRecepcion de paquete con escaneo de codigo de barrasEl operador escanea el codigo de barras de un paquete para recepcionarlo usando mobile_scannerOperador PUDOImplementadoNingunaDispositivo con camaraEscanear codigo y verificar recepcion
PUDO-07PUDO ManagerHandshake dual-QR — operador valida sesion del transportistaEl operador escanea el QR del transportista para confirmar la entrega al centroOperador PUDOImplementadoNingunaNingunoEscanear QR y verificar validacion
PUDO-08PUDO ManagerVerificacion de capacidad antes de recepcionLa app verifica que hay espacio disponible antes de recepcionar y muestra error amigable si no hayOperador PUDOImplementadoNingunaNingunoIntentar recepcionar con capacidad llena

Entrega

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
PUDO-09PUDO ManagerFlujo de entrega con captura de POD — firma + foto + IDEl operador captura la firma del destinatario, toma foto de evidencia y verifica identificacionOperador PUDOImplementadoMinIOMinIO operativoCompletar flujo de entrega con los 3 elementos
PUDO-10PUDO ManagerSubida de POD via URL presignada a MinIOLa app sube las imagenes de POD directamente a MinIO usando URLs presignadasOperador PUDOImplementadoMinIOMinIO con bucket proximiti-podSubir POD y verificar en MinIO
PUDO-11PUDO ManagerConfirmacion de entrega con transicion a ENTREGADOLa app confirma la entrega tras capturar POD y el paquete pasa a estado ENTREGADOOperador PUDOImplementadoNingunaNingunoEntregar y verificar estado final

Protocolo Dual-QR

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
PUDO-12PUDO ManagerVisualizacion de codigo QR para escaneo por transportistaLa app muestra un QR que el transportista escanea para la entregaOperador PUDOImplementadoNingunaNingunoGenerar QR y verificar escaneo
PUDO-13PUDO ManagerPolling de sesion QR con timeout y reintentoLa app consulta periodicamente el estado de la sesion QR hasta validacion o timeoutOperador PUDOImplementadoNingunaNingunoVerificar polling y timeout

Capacidad

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
PUDO-14PUDO ManagerVisualizacion de capacidad en tiempo real con indicador visualEl operador ve la capacidad actual de su centro con indicador graficoOperador PUDOImplementadoNingunaNingunoVerificar indicador y actualizacion
PUDO-15PUDO ManagerHistorial y tendencia de capacidadEl operador ve la evolucion de la capacidad de su centroOperador PUDOImplementadoNingunaNingunoVerificar historial con datos

Historial

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
PUDO-16PUDO ManagerHistorial de expediciones con busqueda y filtro de estadoEl operador busca expediciones pasadas por codigo de barras o estadoOperador PUDOImplementadoNingunaNingunoBuscar y filtrar expediciones

Modo Offline

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
PUDO-17PUDO ManagerBase de datos local Hive para cola offlineLa app almacena operaciones en Hive cuando no hay conexionOperador PUDOImplementadoNingunaNingunoOperar sin conexion y verificar almacenamiento local
PUDO-18PUDO ManagerSincronizacion automatica al restaurar conectividadLa app sincroniza automaticamente las operaciones pendientes cuando vuelve la conexionOperador PUDOImplementadoNingunaNingunoRestaurar conexion y verificar sincronizacion

Transversales

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
PUDO-19PUDO ManagerAppTheme design system — tokens Transporter v1.0La app usa tokens de diseno unificados via app_theme.dart (colores, tipografia, espaciado)Operador PUDOImplementadoNingunaNingunoVerificar coherencia visual con sistema de diseno

Carrier App (carrier-app, Flutter)

Autenticacion

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CARR-01Carrier AppLogin OIDC con Keycloak y claves de almacenamiento prefijadasEl transportista inicia sesion con tokens almacenados con prefijo carrier_ para evitar conflictosTransportistaImplementadoKeycloakKeycloak operativoLogin y verificar almacenamiento con prefijo
CARR-02Carrier AppRefresco automatico de token con almacenamiento seguroLa app renueva el token transparentemente usando flutter_secure_storageTransportistaImplementadoKeycloakKeycloak operativoEsperar expiracion y verificar renovacion

Inicio

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CARR-03Carrier AppDashboard con conteo de entregas pendientes y resumen de rutaEl transportista ve un resumen de sus entregas pendientes y ruta del diaTransportistaImplementadoNingunaNingunoAcceder y verificar datos

Gestion de Expediciones

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CARR-04Carrier AppLista de expediciones pendientes con pull-to-refreshEl transportista ve sus expediciones pendientes y refresca tirando hacia abajoTransportistaImplementadoNingunaNingunoVerificar lista y pull-to-refresh
CARR-05Carrier AppDetalle de expedicion con timeline de estadoEl transportista ve el detalle completo de una expedicion con su timeline de estadosTransportistaImplementadoNingunaNingunoVer detalle y verificar timeline

Escaneo

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CARR-06Carrier AppEscaner de codigo de barras para identificacion de paquetesEl transportista escanea codigos de barras de paquetes usando mobile_scannerTransportistaImplementadoNingunaDispositivo con camaraEscanear codigo y verificar identificacion
CARR-07Carrier AppHandshake dual-QR — transportista inicia sesion y genera QREl transportista inicia la sesion de entrega y genera un QR para que el operador lo valideTransportistaImplementadoNingunaNingunoIniciar handshake y verificar QR generado

Entrega Multiple

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CARR-08Carrier AppFlujo de batch drop — seleccionar multiples paquetes para entregaEl transportista selecciona varios paquetes para entregarlos todos en un centro PUDOTransportistaImplementadoNingunaNingunoSeleccionar multiples paquetes y confirmar lote
CARR-09Carrier AppConfirmacion de lote con resultado por paqueteLa app muestra el resultado de la entrega en lote indicando exito/fallo por paqueteTransportistaImplementadoNingunaNingunoEntregar lote y verificar resultado individual

Recogida de Caducados

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CARR-10Carrier AppLista de paquetes caducados para recogidaEl transportista ve los paquetes caducados que debe recoger de los centros PUDOTransportistaImplementadoNingunaNingunoListar caducados y verificar datos
CARR-11Carrier AppConfirmacion de recogida con transicion a EN_DEVOLUCIONEl transportista confirma la recogida y el paquete pasa a EN_DEVOLUCIONTransportistaImplementadoNingunaNingunoRecoger y verificar transicion de estado

Detalle de Expedicion

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CARR-12Carrier AppVista detallada con timeline de trackingEl transportista ve el estado completo de una expedicion con su stepper visualTransportistaImplementadoNingunaNingunoVer detalle y verificar stepper

Modo Offline

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CARR-13Carrier AppBase de datos local Hive para cola offlineLa app almacena operaciones en Hive cuando no hay conexionTransportistaImplementadoNingunaNingunoOperar sin conexion y verificar almacenamiento
CARR-14Carrier AppSincronizacion automatica cuando hay red disponibleLa app sincroniza operaciones pendientes automaticamente al restaurar conectividadTransportistaImplementadoNingunaNingunoRestaurar conexion y verificar sync

Transversales

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
CARR-15Carrier AppAppTheme design system — tokens Transporter v1.0La app usa tokens de diseno unificados via app_theme.dartTransportistaImplementadoNingunaNingunoVerificar coherencia visual
CARR-16Carrier AppAlmacenamiento de keychain prefijado para evitar conflicto con PUDO ManagerLa app usa claves con prefijo carrier_ en el keychain para coexistir con PUDO ManagerTransportistaImplementadoNingunaNingunoInstalar ambas apps y verificar que no hay conflicto

Widget PUDO Selector (pudo-selector-widget, Lit)

Busqueda

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
WDGT-01WidgetBusqueda por codigo postal con geocodificacion y resultados cercanosEl cliente busca centros PUDO cercanos introduciendo su codigo postalClienteImplementadoNingunaTabla de geocodificacion de CPBuscar CP y verificar resultados ordenados por distancia
WDGT-02WidgetBarra de busqueda con debounce e indicador de cargaLa barra de busqueda espera a que el usuario termine de escribir antes de buscar, mostrando indicadorClienteImplementadoNingunaNingunoEscribir CP y verificar debounce e indicador

Vista de Mapa

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
WDGT-03WidgetMapa interactivo con pines de centros e indicadores de distanciaEl cliente ve un mapa Leaflet con marcadores de centros y distanciasClienteImplementadoNingunaNingunoBuscar y verificar mapa con pines
WDGT-04WidgetClustering de marcadores para zonas densasEl mapa agrupa marcadores cercanos automaticamente usando leaflet.markerclusterClienteImplementadoNingunaNingunoVerificar clustering en zona con muchos centros

Vista de Lista

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
WDGT-05WidgetLista scrollable de centros ordenada por distancia con badges de disponibilidadEl cliente ve una lista de centros con su distancia y estado de disponibilidadClienteImplementadoNingunaNingunoVerificar orden por distancia y badges

Detalle de Centro

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
WDGT-06WidgetPanel de detalle con horario, capacidad y fotosEl cliente selecciona un centro y ve su informacion completaClienteImplementadoNingunaDatos completos de centrosSeleccionar centro y verificar detalle
WDGT-07WidgetComponente de tarjeta de centro con nombre, direccion, distancia y estadoCada centro se muestra como tarjeta con informacion resumidaClienteImplementadoNingunaNingunoVerificar tarjetas con datos correctos

Integracion

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
WDGT-08WidgetWeb component embeddable via <pudo-selector>Cualquier sitio web puede integrar el selector PUDO como custom element HTMLClienteImplementadoNingunaServidor que sirva el widget JSIntegrar en pagina HTML y verificar funcionamiento
WDGT-09WidgetCSS custom properties para theming por la aplicacion hostLa aplicacion que integra el widget puede personalizar colores y estilos via CSS variablesClienteImplementadoNingunaNingunoCambiar variables CSS y verificar theming

Infraestructura (infra)

Docker Compose

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
INFRA-01InfraestructuraOrquestacion completa del stack localDocker Compose levanta los 8 microservicios, PostgreSQL, Keycloak, MinIO y ZipkinSistemaImplementadoDockerDocker Desktop instaladoEjecutar docker compose up y verificar todos los servicios healthy
INFRA-02InfraestructuraHealth checks con condiciones depends_onCada servicio espera a que sus dependencias esten healthy antes de arrancarSistemaImplementadoDockerNingunoVerificar orden de arranque y health checks
INFRA-03InfraestructuraVolumenes nombrados para persistenciaLos datos de PostgreSQL, Keycloak y MinIO se persisten entre reiniciosSistemaImplementadoDockerNingunoReiniciar stack y verificar datos persistentes
INFRA-04InfraestructuraVariables de entorno por servicio con fallbacks DockerCada servicio tiene su fichero .env con valores por defecto para DockerSistemaImplementadoNingunaFicheros .env proporcionados para produccionVerificar ficheros en infra/env/
INFRA-05InfraestructuraDockerfiles multi-stage para servicios JavaCada servicio Java tiene un Dockerfile con build en dos etapas (build + runtime)SistemaImplementadoDockerNingunoBuild y verificar tamano de imagen optimizado

PostgreSQL

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
INFRA-06InfraestructuraInicializacion de extensiones — uuid-ossp, pg_trgmPostgreSQL se inicializa con extensiones necesarias para UUID y busqueda de textoSistemaImplementadoPostgreSQLPostgreSQL 16 en produccionVerificar extensiones instaladas
INFRA-07InfraestructuraEsquema core — centro, envio, usuario, historial_estadoLas tablas principales del dominio se crean automaticamente al iniciarSistemaImplementadoPostgreSQLPostgreSQL 16Verificar tablas y constraints
INFRA-08InfraestructuraDatos semilla — centros, usuarios, expediciones de pruebaSe cargan datos de prueba para todos los estados del ciclo de vidaSistemaImplementadoPostgreSQLNinguno (solo para desarrollo/testing)Verificar datos cargados
INFRA-09InfraestructuraEsquema de caducidad — outbox ALINA y DLQTablas para la cola de outbox de ALINA y dead letter queueSistemaImplementadoPostgreSQLPostgreSQL 16Verificar tablas de outbox y DLQ
INFRA-10InfraestructuraEsquema de incidencias — incidencia y auditoriaTablas para gestion de incidencias y trail de auditoriaSistemaImplementadoPostgreSQLPostgreSQL 16Verificar tablas y constraints
INFRA-11InfraestructuraEsquema de adaptador — sync_centro y sync_logTablas para sincronizacion de catalogos de proveedoresSistemaImplementadoPostgreSQLPostgreSQL 16Verificar tablas
INFRA-12InfraestructuraEsquema de notificaciones de usuarioTabla tp_pprx_notificacion_usuario para notificaciones persistentesSistemaImplementadoPostgreSQLPostgreSQL 16Verificar tabla y campos
INFRA-13InfraestructuraEsquema de cliente — cliente y direccion_clienteTablas para perfil de cliente y direcciones guardadasSistemaImplementadoPostgreSQLPostgreSQL 16Verificar tablas y relaciones
INFRA-14InfraestructuraMigraciones v2.5 — timestamps de recepcion, entrega, caducidadColumnas adicionales para fechas especificas del ciclo de vida y enriquecimiento del historialSistemaImplementadoPostgreSQLPostgreSQL 16Verificar columnas anadidas
INFRA-15InfraestructuraDatos semilla v2.5 — expediciones con timestamps realistasDatos de prueba enriquecidos con fechas de recepcion, entrega y caducidadSistemaImplementadoPostgreSQLNinguno (solo para desarrollo/testing)Verificar datos con timestamps
INFRA-16InfraestructuraEsquema de foto de perfil — url_foto_perfil en usuarioColumna para almacenar la URL de la foto de perfil del usuarioSistemaImplementadoPostgreSQLPostgreSQL 16Verificar columna
INFRA-17InfraestructuraBIGINT GENERATED ALWAYS AS IDENTITY para todas las PKsTodas las claves primarias usan BIGINT con generacion automatica (no SERIAL)SistemaImplementadoPostgreSQLPostgreSQL 16Verificar tipo de PK en todas las tablas
INFRA-18InfraestructuraCHECK constraints en campos de estadoLos campos de estado tienen restricciones CHECK con enumeraciones validasSistemaImplementadoPostgreSQLPostgreSQL 16Verificar constraints y probar valor invalido

Keycloak

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
INFRA-19InfraestructuraExport de realm con configuracion de proximitiEl realm se importa automaticamente desde realm-export.json al iniciar KeycloakSistemaImplementadoKeycloakKeycloak 24.0.5 en produccionVerificar realm importado correctamente
INFRA-20InfraestructuraUsuarios de prueba — operador, transportista, admin, clienteCuatro usuarios preconfigurados para desarrollo y testingSistemaImplementadoKeycloakUsuarios reales de produccion en KeycloakVerificar login con cada usuario
INFRA-21InfraestructuraConfiguracion de cliente — proximiti-bff con secretCliente OAuth2 configurado con secret para el BFFSistemaImplementadoKeycloakClient ID y secret de produccionVerificar configuracion del cliente
INFRA-22InfraestructuraMapeo de roles — USER_PUDO, USER_CARRIER, USER_ADMIN, USER_CUSTOMERLos roles de realm estan configurados y asignados a usuariosSistemaImplementadoKeycloakRoles asignados a usuarios realesVerificar roles en JWT
INFRA-23InfraestructuraAtributo center_code mapeado a claim JWTEl atributo de usuario center_code se mapea como claim en el JWT via mapper OIDCSistemaImplementadoKeycloakAtributo center_code asignado a cada operadorVerificar claim en token decodificado
INFRA-24InfraestructuraKC_HOSTNAME=keycloak para issuer consistenteKeycloak usa hostname keycloak para que el issuer sea identico entre contenedores y hostSistemaImplementadoKeycloak, DNSEntrada 127.0.0.1 keycloak en /etc/hosts (local) o DNS real en produccionVerificar issuer en token

MinIO

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
INFRA-25InfraestructuraAlmacenamiento S3-compatible para POD y documentosMinIO proporciona almacenamiento de objetos para imagenes de POD y documentos de contratoSistemaImplementadoMinIOMinIO o servicio S3-compatible en produccion (Azure Blob con gateway S3, AWS S3, etc.)Subir y recuperar objeto
INFRA-26InfraestructuraAuto-creacion de buckets al arrancarLos buckets proximiti-pod, proximiti-documents y proximiti-photos se crean automaticamenteSistemaImplementadoMinIOBuckets creados en servicio S3 de produccionVerificar existencia de buckets

Zipkin

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
INFRA-27InfraestructuraColector de trazas distribuidasZipkin recolecta y visualiza trazas de todos los microserviciosSistemaImplementadoZipkinZipkin o sistema de trazas compatible en produccion (Jaeger, Azure Monitor, etc.)Verificar trazas end-to-end en UI
INFRA-28InfraestructuraIntegracion Micrometer Brave para propagacion automatica de spansCada servicio propaga spans automaticamente via Micrometer + BraveSistemaImplementadoZipkinSistema de trazas compatibleVerificar spans conectados entre servicios

Scripts

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
INFRA-29InfraestructuraScript reset-local.sh — teardown y rebuildEl script destruye volumenes y reconstruye el stack local completoSistemaImplementadoDockerDocker operativoEjecutar script y verificar stack limpio
INFRA-30InfraestructuraScript de sincronizacion de subs de KeycloakEl script actualiza tp_pprx_usuario con los subs reales de Keycloak tras fresh startSistemaImplementadoKeycloakKeycloak operativo con usuarios creadosEjecutar script y verificar subs actualizados

Entorno

IDModuloCapacidadCaso de UsoActorEstadoDependenciaPrerequisito ClienteCertificacion
INFRA-31InfraestructuraDirectorio env/ con ficheros de entorno por servicioCada servicio tiene su fichero .env separado para Docker ComposeSistemaImplementadoNingunaFicheros .env de produccion con valores realesVerificar que cada servicio lee su .env
INFRA-32InfraestructuraRequisito de /etc/hosts — 127.0.0.1 keycloakLa entrada en /etc/hosts es necesaria para que el issuer del token sea accesible desde el navegadorSistemaImplementadoNingunaDNS real en produccion apuntando al hostname de KeycloakVerificar resolucion de hostname

Resumen de Dependencias Externas

DependenciaCapacidades AfectadasEstado ActualAccion Requerida para Produccion
ALINA ERPEXPR-02, EXPR-03Stub (log-only)Proporcionar endpoint y credenciales de API ALINA; implementar cliente HTTP real en AlinaOutboxProcessor.dispatchToAlina()
NOVA MulesoftNOTF-04, NOTF-05Stub (log-only)Proporcionar endpoint y credenciales de NOVA API; implementar cliente HTTP real en NotificationService.processTrigger()
Proveedor de ChatISSU-06Stub (token mock)Elegir proveedor de chat en vivo; implementar cliente real en SupportChatService.getChatToken()
KanguroADPT-01, ADPT-02, ADPT-03, ADPT-04Stub service (stub-kanguro)Proporcionar URL de API de produccion y secret HMAC; sustituir URL en application.yml
HublockerADPT-01, ADPT-02, ADPT-03, ADPT-05Stub service (stub-hublocker)Proporcionar URL de API de produccion y secret HMAC; sustituir URL en application.yml
KeycloakBFF-22, BFF-59 a BFF-66, USR-01, USR-02, USR-11, INFRA-19 a INFRA-24Implementado (local)Instancia de produccion de Keycloak con realm, roles, usuarios y client configurados
MinIO / S3BFF-11 a BFF-13, BFF-56 a BFF-58, BFF-68, CNTR-06, CNTR-14, SHPM-18 a SHPM-20, SHPM-25, INFRA-25, INFRA-26Implementado (local)Servicio S3-compatible en produccion (Azure Blob con S3 gateway, AWS S3, MinIO) con buckets creados
ZipkinBFF-67, INFRA-27, INFRA-28Implementado (local)Sistema de trazas en produccion (Zipkin, Jaeger, Azure Monitor APM)
PostgreSQLINFRA-06 a INFRA-18Implementado (local)PostgreSQL 16 gestionado en produccion con backups y HA
DockerINFRA-01 a INFRA-05, INFRA-29Implementado (local)Plataforma de contenedores en produccion (Kubernetes, Azure Container Apps, ECS)
App StoreNinguna directamentePendienteCuenta de Apple Developer de organizacion, certificados de distribucion, revision de App Store
Google PlayNinguna directamentePendienteCuenta de Google Play Console, firma de app, revision de Play Store
FCM/APNsNinguna directamentePendienteConfiguracion de push notifications para apps moviles (futuro)

Generado el 2026-03-18 | Verificado contra codebase v2.6.0

Ecosistema PUDO de PROXIMITI — documentacion interna