Buscar en la documentación

Módulo de sistema (frontend)

Pantalla de sistema del Super admin: panel de salud con sus acciones, eventos agrupados y aviso de mantenimiento.

Módulo system4 min de lecturaVer en GitHub

La pantalla “Sistema” del menú. Muestra lo que dice la API (Módulo System): el front no decide qué está bien o mal ni qué acción es sensible.

Pantallas

RutaQué muestraPermiso
/sistemaLleva a la primera pestaña que la persona puede ver (en beforeEnter, como la auditoría)—
/sistema/saludPanel de saludsystem.health.view
/sistema/eventosEventos del sistemasystem.logs.view

El menú muestra “Sistema” con cualquiera de los dos permisos; las pestañas se eligen con un control segmentado si hay más de una.

Salud

  • Tarjetas: una por componente (base de datos, Redis y caché, cola, workers, tareas programadas, tiempo real y almacenamiento), más “Estado general” y “Modo mantenimiento”.

    • Cada una muestra su estado como etiqueta (Bien, Atención o Falla) y la medición en palabras: “Responde en 4,7 ms”, “Última señal hace 20 s”, “Libre: 150 GB de 475 GB (32 %)”.
    • Qué es cada componente va en el ícono de información.
  • Grilla: una columna en celular, dos en tablet, tres en portátil y monitor.

  • Se actualiza sola cada 30 segundos, solo con la pestaña visible; al volver a ella se pide de una vez. “Actualizar” en “Estado general”.

  • Acciones, en la tarjeta a la que corresponden y solo con system.actions.execute:

    TarjetaAcción
    Redis y cachéLimpiar caché de datos
    WorkersReiniciar workers
    Tiempo realReiniciar
    Modo mantenimientoActivar o Desactivar
    Cola de trabajosVer jobs fallidos (cualquiera con la salud)

    Cada acción abre el diálogo del código (AppCodeDialog con useReauth, pidiéndolo de una vez). El texto del diálogo explica qué va a pasar, así que también sirve de confirmación. Al terminar, un aviso y el panel se vuelve a pedir.

  • Jobs fallidos: panel lateral en portátil y monitor, inferior en tablet y celular (AppSheet). Muestra el job, la cola, la fecha y la primera línea del error, nunca su contenido. Se reintentan uno a uno o todos, y se descartan uno a uno.

Eventos

  • Filtros en la URL: qué se ve (Pendientes, Resueltos o Todos; por defecto Pendientes, que son los abiertos y los revisados), severidad y tipo. ?view=all&severity=critical&type=job_failed.
  • Lista: de la última vez más reciente a la más antigua, con “Cargar más” (useCursorList, el mismo de la auditoría).
    • Monitor: tabla con el detalle al lado.
    • Portátil: tabla y el detalle en un panel a la derecha.
    • Tablet y celular: tarjetas y el detalle en un panel inferior.
  • Detalle:
    • El mensaje, la severidad, las veces, la primera y la última vez.
    • El estado con quién lo cambió.
    • El contexto con nombres claros (Cuenta, Servicio, Ruta…).
    • El código de soporte para buscarlo en los logs.
  • Cambiar el estado: “Marcar como revisado”, “Marcar como resuelto” o “Reabrir”, según el estado actual (nextStatuses). La fila se reemplaza sin volver a pedir la lista.

Aviso de mantenimiento

Con el modo activo, la API responde 503 a todos menos a quien puede ejecutar acciones de sistema:

  • Quien queda fuera ve “Trazo está en mantenimiento” (el mensaje de SERVICE_UNAVAILABLE). Al recargar llega a la pantalla “No pudimos cargar Trazo” con ese mensaje y “Reintentar”.
  • Quien sigue trabajando recibe la cabecera X-Maintenance en cada respuesta. El cliente HTTP la refleja en maintenanceNotice (shared/http/maintenance.ts), y el shell muestra un aviso fijo con un enlace a Sistema. El aviso desaparece solo con la primera respuesta sin la cabecera.

Capas

CapaPiezaQué hace
domainsystem.tsTipos de salud, eventos y jobs; vistas y estados que piden a la API; estados siguientes
infrastructuresystemApi.tsLlamadas a /system/* y traducción de la respuesta; el código de reautenticación va en mfa_code
applicationuseHealth, useFailedJobsPanel con actualización cada 30 s; lista de jobs fallidos
applicationuseSystemEvents, systemQuery.tsLista por cursor ligada a la URL, catálogo de tipos y cambio de estado; criterios ↔ URL y nombres de las rutas
presentationSystemPageEncabezado y pestañas
presentationhealth/HealthView, HealthCard, FailedJobsSheetPanel, tarjeta de un componente y jobs fallidos
presentationevents/EventsView, EventToolbar, EventTable, EventCards, EventDetailLista, filtros y detalle
presentationsystemTexts.tsNombres, explicaciones, mediciones en palabras, etiquetas y tonos

useReauth pasó de modules/admin a shared/ui/feedback y needsCode a shared/http: ahora los usan la administración y el sistema.

Dónde está en el código