Skip to content

Plataforma técnica · Sevastopol

Sesiones en Sevastopol

Islands Command Sessions

SessionsViewIsland lista las sesiones activas de toda la plataforma en una sola tabla y permite cortarlas individualmente (kill switch). Es la herramienta del SUPER_ADMIN para responder a incidentes — usuario reportando sesión zombie, sospecha de acceso indebido, suspensión inmediata.

La lista no se auto-refresca — el operador refresca al abrir; el monitoreo continuo de sesiones vive en logs/observability, no aquí.

DecisiónMotivo
Carga paralela de sessions + validatePromise.all([sessions, auth/validate]) saca la lista y el session_id propio en una sola tanda — la UI sabe inmediatamente cuál fila es del operador.
Kill switch protegido para sesión propiaEl botón “Kill” se reemplaza por “You” (disabled) cuando s.session_id === currentSessionId(). Forzar logout en lugar de auto-corte evita estado UI inválido.
confirm nativo antes de terminarEl corte es destructivo — el operador ratifica con un confirm que indica “forzosamente”.
Filtros locales sobre la lista cargadaVolumen total bajo (decenas de sesiones); q busca en username, tenant_name y role.
Métricas en StatCard: total + usuarios únicosTotal expone sesiones; usuarios únicos detecta multi-sesión del mismo user.
Sin paginaciónEl listado típico es manejable; paginar agregaría latencia y rompería el grep visual.
GrupoCampos esperados
UsuarioUsername, rol, tenant asignado (o “Global”).
RedIP, user agent.
TiempoLogin time, last activity, duración en minutos.
AcciónKill (excepto la propia).
Método + rutaUso
GET /api/sessionsListado de sesiones activas.
DELETE /api/sessions?id=Termina la sesión forzosamente.
POST /api/auth/validateDetecta la sesión propia para deshabilitar el kill switch sobre ella.

SessionService — gestión de sesiones activas en Redis/DB con terminación forzada. Restringido a SUPER_ADMIN.