Saltar a contenido

Rutas y navegación

Ubicación principal: src/app/app.routes.ts
Rutas del módulo: src/app/views/analytics/routes.ts


Analytics — Reportes ETL

Todas las rutas siguientes viven bajo /app/analytics y requieren la sesión autenticada de la aplicación. La ruta base abre Gestión de Reportes para conservar el comportamiento actual del menú.

Ruta Vista Acceso adicional Para qué sirve
/app/analytics Redirección — Envía a Gestión de Reportes.
/app/analytics/gestion-reportes GestionReportesComponent El acceso de publicación se controla desde la UI por rol. Crear, versionar, editar y archivar reportes.
/app/analytics/vista-reportes ListaReportesComponent Reportes activos visibles para el usuario. Catálogo de reportes.
/app/analytics/vista-reportes/:id VistaReporteComponent id es el ReporteId, no el _id de Mongo. Abrir un reporte en el visor seguro.
/app/analytics/telemetria TelemetriaReportesComponent telemetriaGuard: CEO, Jefe Datos o Desarrollador. Consultar consumo, actividad y auditoría.

Consideraciones de autorización

  • El frontend oculta o muestra acciones según el rol de la sesión para que la experiencia sea clara.
  • La autorización definitiva de publicar, editar roles o consultar reportes debe reforzarse en backend/API Gateway antes de abrir estos endpoints a consumidores no confiables. Es un pendiente conocido; no sustituye las validaciones de interfaz.

AuthGuard y la ruta /export-runner

Ubicación: src/app/core/application/services/guards/auth.guard.ts

AuthGuard (CanMatchFn) protege las rutas de la aplicación: si no hay sesión válida, no deja entrar. La única excepción es /export-runner (exportación de datos), que entra sin validar sesión y toma el token que llega en la URL (_token) para guardarlo en sessionStorage.id_token.

Antes Ahora (2026-10-09)
Cuándo se salta la validación Si export-runner aparecía en cualquier parte de la URL: la ruta, el pathname o el hash (#) Solo si la ruta es exactamente /export-runner (un único segmento)
Riesgo Agregando #export-runner a otra ruta protegida (ej. /app/tienda/wallet#export-runner) se podía entrar sin sesión Esa URL ahora manda al login
// Solo la ruta exacta /export-runner, según los segmentos de la URL que recibe el guard
const isExportRunner = segments.length === 1 && segments[0].path === 'export-runner';

Pendiente (decisión del equipo): el token sigue llegando por la URL, donde puede quedar en el historial o en registros. Lo ideal sería un token de un solo uso o de corta duración.


Historial de cambios

Fecha Autor Cambio
2026-09-21 Iker Acevedo Vargas Se documentaron las rutas completas de Analytics, incluyendo telemetría y sus restricciones de acceso.
2026-10-09 Yadilton Torres AuthGuard: solo la ruta exacta /export-runner entra sin sesión. Antes bastaba con que "export-runner" apareciera en cualquier parte de la URL, incluido el hash.