Configuración del Sistema LOTO Digital

Documentación técnica y configuraciones del sistema

Parámetros

Configuración de tiempos, alertas y comportamientos del sistema

Seguridad

Configuraciones de seguridad, autenticación y permisos

API

Documentación de endpoints y integración del sistema

Parámetros del Sistema

Configuración de Tiempos

Parámetro Valor por Defecto Descripción
default_lockout_duration 8 horas Duración predeterminada de un bloqueo LOTO
warning_time_before_expiry 30 minutos Tiempo de aviso antes del vencimiento
max_extension_hours 4 horas Máximo de horas para extender un bloqueo
session_timeout 60 minutos Tiempo de expiración de sesión de usuario

Configuración de Notificaciones

Tipo de Notificación Estado Destinatarios
Bloqueo Creado Activo Supervisor, HSE Manager
Bloqueo Liberado Activo Operador, Supervisor
FS-82 Autorizado Activo Solicitante, Supervisor
Bloqueo Próximo a Vencer Activo Operador, Supervisor
Bloqueo Vencido Activo Todos los roles

Tipos de Energía

Eléctrica
Térmica
Hidráulica
Neumática
Mecánica
Química

Estados del Sistema

Estados de Equipos:

Operativo Mantenimiento Fuera de Servicio Bloqueado

Estados de Bloqueos:

Pendiente Activo Vencido Liberado Emergencia

Configuración de Seguridad

Autenticación

Configuraciones de Contraseña:

  • Longitud mínima: 8 caracteres
  • Debe incluir mayúsculas y minúsculas
  • Debe incluir números
  • Debe incluir caracteres especiales
  • Expiración: 90 días
  • Historial: No repetir últimas 5 contraseñas

Bloqueo de Cuenta:

  • Intentos fallidos: 3 máximo
  • Tiempo de bloqueo: 15 minutos
  • Desbloqueo automático o manual

Roles y Permisos

Operador

  • ✓ Crear bloqueos
  • ✓ Ver estado de bloqueos
  • ✓ Generar reportes básicos
  • ✗ Liberar bloqueos
  • ✗ Autorizar FS-82

Supervisor

  • ✓ Crear y liberar bloqueos
  • ✓ Supervisar operaciones
  • ✓ Generar reportes avanzados
  • ✓ Gestionar emergencias
  • ✗ Autorizar FS-82

HSE Manager

  • ✓ Acceso completo al sistema
  • ✓ Autorizar FS-82
  • ✓ Gestionar usuarios
  • ✓ Configurar sistema
  • ✓ Auditar procesos

Auditoría y Logs

Eventos Auditados:

  • Inicios de sesión exitosos y fallidos
  • Creación y liberación de bloqueos
  • Autorizaciones FS-82
  • Cambios en usuarios y permisos
  • Modificaciones de configuración
  • Exportación de datos

Retención de Logs:

  • Logs de seguridad: 2 años
  • Logs de operación: 1 año
  • Logs de sistema: 6 meses

Protección de Datos

Cifrado:

  • Datos en tránsito: TLS 1.3
  • Datos en reposo: AES-256
  • Contraseñas: bcrypt con salt

Backup y Recuperación:

  • Backup automático diario
  • Almacenamiento en la nube
  • Punto de recuperación: 24 horas
  • Tiempo de recuperación: 4 horas

Documentación API

Endpoints Principales

GET
/api/health
Verificar estado del sistema
POST
/api/auth/login
Autenticación de usuario
POST
/api/auth/logout
Cerrar sesión
GET
/api/lockouts
Listar bloqueos
POST
/api/lockouts
Crear nuevo bloqueo
PUT
/api/lockouts/{id}/release
Liberar bloqueo
GET
/api/fs82
Listar formularios FS-82
POST
/api/fs82/{id}/authorize
Autorizar FS-82
GET
/api/users
Gestión de usuarios
GET
/api/equipment
Gestión de equipos

Autenticación

Ejemplo de Login:

POST /api/auth/login
Content-Type: application/json

{
  "email": "usuario@empresa.com",
  "password": "contraseña_segura"
}

Respuesta:
{
  "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
  "user": {
    "id": 1,
    "name": "Juan Pérez",
    "email": "usuario@empresa.com",
    "role": "supervisor"
  }
}

Uso del Token:

Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...

Estructura de Datos

Bloqueo (Lockout):

{
  "id": 1,
  "equipment_id": 5,
  "user_id": 2,
  "status": "active",
  "start_time": "2024-01-15T08:00:00Z",
  "end_time": "2024-01-15T16:00:00Z",
  "energy_types": ["electrical", "mechanical"],
  "safety_notes": "Verificar desconexión completa",
  "witness_required": true,
  "created_at": "2024-01-15T08:00:00Z",
  "updated_at": "2024-01-15T08:00:00Z"
}

Formulario FS-82:

{
  "id": 1,
  "lockout_id": 1,
  "requested_by": 2,
  "authorized_by": null,
  "status": "pending",
  "work_description": "Mantenimiento preventivo",
  "risk_assessment": "Riesgo medio - requiere EPP",
  "safety_measures": ["EPP completo", "Testigo presente"],
  "authorization_date": null,
  "created_at": "2024-01-15T08:00:00Z"
}

Códigos de Error

Código Descripción Solución
401 No autorizado Verificar token de autenticación
403 Permisos insuficientes Contactar administrador para permisos
404 Recurso no encontrado Verificar ID del recurso
422 Datos de entrada inválidos Revisar formato y campos requeridos
500 Error interno del servidor Contactar soporte técnico

Instalación y Configuración

1

Requisitos del Sistema

  • PHP 8.1 o superior
  • MySQL 8.0 o PostgreSQL 13+
  • 4GB RAM mínimo
  • 10GB espacio en disco
  • Servidor web (Apache/Nginx)
2

Instalación Backend

# Clonar repositorio
git clone https://github.com/empresa/loto-digital.git
cd loto-digital/backend

# Instalar dependencias
composer install

# Configurar entorno
cp .env.example .env
php artisan key:generate

# Configurar base de datos
php artisan migrate
php artisan db:seed
3

Instalación Frontend

# Ir al directorio frontend
cd ../frontend

# Instalar dependencias
npm install

# Configurar variables de entorno
cp .env.example .env.local

# Compilar para producción
npm run build
4

Configuración Inicial

  • Crear usuario administrador inicial
  • Configurar parámetros del sistema
  • Configurar servidor de correo
  • Configurar certificados SSL
  • Configurar backups automáticos