Buscar en la documentación

Modo mantenimiento

Cerrar Trazo a todos menos a quien opera el sistema, mientras se hace una tarea delicada, y volver a abrirlo.

Módulo system1 min de lecturaVer en GitHub

El modo mantenimiento cierra la API para todos con un 503, menos para quien puede ejecutar acciones de sistema, que sigue trabajando y ve un aviso fijo. Se guarda como una marca en Redis (con quién lo activó y cuándo), no en archivos: funciona igual con varias copias de la app.

Diagrama4 carriles · 8 pasos · 2 salidas de error
SíNoSíNoSíNoActiva elmantenimiento consu código1¿Ya estabaactivo?2Responde 409Guarda la marcasystem:maintenance3Hacen una petición4¿Es ingreso,MFA o cerrarsesión?5Responde normal6¿Tienesystem.actions.execute?7Reciben 503 conel aviso demantenimientoSigue trabajandocon el aviso fijo8
Los números coinciden con el paso a paso. En pantallas pequeñas el diagrama se desliza de lado.

Paso a paso

  1. Super adminActiva el mantenimiento con su código

    PUT /system/maintenance, con las mismas protecciones de las acciones de sistema: límite, permiso, código y registro.

  2. API¿Ya estaba activo?

    Pedir el estado que ya tiene es un conflicto y no se registra dos veces.

  3. RedisGuarda la marca system:maintenance

    Con nombre y fecha. Registro system_maintenance_enabled en admin_actions.

  4. Otras personasHacen una petición
  5. API¿Es ingreso, MFA o cerrar sesión?

    Esas rutas siguen abiertas para que quien opera pueda entrar. /up (el chequeo de Docker) responde normal.

  6. APIResponde normal
  7. API¿Tiene system.actions.execute?
  8. Super adminSigue trabajando con el aviso fijo

    Cada respuesta trae X-Maintenance: on, y el shell muestra el aviso arriba hasta que lo apague.

Al apagarlo (el mismo endpoint con enabled: false) se borra la marca, queda system_maintenance_disabled en el registro y “Reintentar” vuelve a funcionar para todos.

Qué ve la persona en cada error

CódigoHTTPCuándoMensaje en pantalla
SERVICE_UNAVAILABLE503Trazo está en mantenimientoTrazo está en mantenimiento. Vuelve a intentarlo en unos minutos.
MAINTENANCE_ALREADY_ENABLED409Ya estaba activoEl modo mantenimiento ya estaba activo. Actualiza el panel para ver su estado.
MAINTENANCE_ALREADY_DISABLED409Ya estaba apagadoEl modo mantenimiento ya estaba apagado. Actualiza el panel para ver su estado.

Dónde está en el código