Plataforma técnica · Sevastopol
Sesiones en Sevastopol
Islands Command Sessions
Propósito
Section titled “Propósito”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í.
Decisiones de UX
Section titled “Decisiones de UX”| Decisión | Motivo |
|---|---|
| Carga paralela de sessions + validate | Promise.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 propia | El 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 terminar | El corte es destructivo — el operador ratifica con un confirm que indica “forzosamente”. |
| Filtros locales sobre la lista cargada | Volumen total bajo (decenas de sesiones); q busca en username, tenant_name y role. |
Métricas en StatCard: total + usuarios únicos | Total expone sesiones; usuarios únicos detecta multi-sesión del mismo user. |
| Sin paginación | El listado típico es manejable; paginar agregaría latencia y rompería el grep visual. |
Datos visibles
Section titled “Datos visibles”| Grupo | Campos esperados |
|---|---|
| Usuario | Username, rol, tenant asignado (o “Global”). |
| Red | IP, user agent. |
| Tiempo | Login time, last activity, duración en minutos. |
| Acción | Kill (excepto la propia). |
Endpoints
Section titled “Endpoints”| Método + ruta | Uso |
|---|---|
GET /api/sessions | Listado de sesiones activas. |
DELETE /api/sessions?id= | Termina la sesión forzosamente. |
POST /api/auth/validate | Detecta la sesión propia para deshabilitar el kill switch sobre ella. |
Backend de referencia
Section titled “Backend de referencia”SessionService — gestión de sesiones activas en Redis/DB con terminación forzada. Restringido a SUPER_ADMIN.