Saltearse al contenido

Logs

Tag: logs
Descripción: Operaciones para consulta y gestión de logs de auditoría


  • Descripción: Crea un nuevo registro de actividad en el sistema (usualmente automático)
  • Operation ID: LogsController_create
  • Autenticación requerida: 🔒 Sí (ROLE_ADMIN o sistema interno)
{
"action": "user_login",
"userId": 123,
"companyId": 456,
"details": "Inicio de sesión exitoso",
"metadata": {
"ip": "192.168.1.1",
"device": "Mobile/Android"
}
}
CódigoDescripción
201Log creado exitosamente
400Datos de entrada inválidos
401No autorizado

  • Descripción: Obtiene los registros de actividad con filtros avanzados
  • Operation ID: LogsController_findAll
  • Autenticación requerida: 🔒 Sí (ROLE_AUDITOR)
ParámetroTipoRequeridoDescripción
pageinteger❌ NoNúmero de página (default: 1)
limitinteger❌ NoLímite por página (default: 50, max: 200)
userIdinteger❌ NoFiltrar por ID de usuario
companyIdinteger❌ NoFiltrar por ID de compañía
actionstring❌ NoFiltrar por tipo de acción
startDatedatetime❌ NoFecha inicio (ISO 8601)
endDatedatetime❌ NoFecha fin (ISO 8601)
sortBystring❌ NoCampo para ordenar (timestamp, action)
sortOrderstring❌ NoOrden (asc/desc)
CódigoDescripción
200Lista de logs obtenida
400Parámetros inválidos
401No autorizado

3. Obtener logs por usuario (GET /logs/user/:userId)

Sección titulada «3. Obtener logs por usuario (GET /logs/user/:userId)»
  • Descripción: Obtiene los registros de actividad de un usuario específico
  • Operation ID: LogsController_findByUser
  • Autenticación requerida: 🔒 Sí (ROLE_AUDITOR o usuario propietario)
ParámetroTipoDescripción
userIdintegerID del usuario
ParámetroTipoRequeridoDescripción
daysinteger❌ NoÚltimos N días (default: 30)
CódigoDescripción
200Logs del usuario obtenidos
401No autorizado
404Usuario no encontrado

4. Obtener logs por compañía (GET /logs/company/:companyId)

Sección titulada «4. Obtener logs por compañía (GET /logs/company/:companyId)»
  • Descripción: Obtiene los registros de actividad de una compañía específica
  • Operation ID: LogsController_findByCompany
  • Autenticación requerida: 🔒 Sí (ROLE_AUDITOR o admin de compañía)
ParámetroTipoDescripción
companyIdintegerID de la compañía
ParámetroTipoRequeridoDescripción
actionstring❌ NoFiltrar por tipo de acción
CódigoDescripción
200Logs de la compañía obtenidos
401No autorizado
404Compañía no encontrada

  • Descripción: Obtiene un registro de actividad específico por su ID
  • Operation ID: LogsController_findOne
  • Autenticación requerida: 🔒 Sí (ROLE_AUDITOR)
ParámetroTipoDescripción
idintegerID del log
CódigoDescripción
200Log obtenido exitosamente
401No autorizado
404Log no encontrado

  • Descripción: Actualiza los detalles o metadata de un log (uso restringido)
  • Operation ID: LogsController_update
  • Autenticación requerida: 🔒 Sí (ROLE_SUPER_ADMIN)
ParámetroTipoDescripción
idintegerID del log
{
"details": "Corrección: Inicio de sesión fallido",
"metadata": {
"reason": "Credenciales inválidas"
}
}
CódigoDescripción
200Log actualizado exitosamente
400Datos de entrada inválidos
401No autorizado
403Prohibido
404Log no encontrado

  • Descripción: Elimina permanentemente un registro de actividad (uso altamente restringido)
  • Operation ID: LogsController_remove
  • Autenticación requerida: 🔒 Sí (ROLE_SUPER_ADMIN)
ParámetroTipoDescripción
idintegerID del log
CódigoDescripción
204Log eliminado exitosamente
401No autorizado
403Prohibido
404Log no encontrado

MétodoEndpointDescripciónPermiso Requerido
POST/logsCrear nuevo logROLE_ADMIN/Sistema
GET/logsListar logs con filtrosROLE_AUDITOR
GET/logs/user/:userIdObtener logs por usuarioROLE_AUDITOR/Usuario
GET/logs/company/:companyIdObtener logs por compañíaROLE_AUDITOR/Admin
GET/logs/:idObtener log específicoROLE_AUDITOR
PATCH/logs/:idActualizar logROLE_SUPER_ADMIN
DELETE/logs/:idEliminar log permanentementeROLE_SUPER_ADMIN
interface Log {
id: number;
action: string;
details: string;
timestamp: string; // ISO 8601
userId: number;
companyId: number;
metadata: Record<string, any>;
createdAt: string; // ISO 8601
updatedAt: string; // ISO 8601
user?: User; // Relación opcional
company?: Company;// Relación opcional
}
{
"id": 789,
"action": "user_login",
"details": "Inicio de sesión exitoso",
"timestamp": "2023-05-20T14:30:45.000Z",
"userId": 123,
"companyId": 456,
"metadata": {
"ip": "192.168.1.1",
"device": "Mobile/Android",
"location": "New York, US"
},
"createdAt": "2023-05-20T14:30:45.000Z",
"updatedAt": "2023-05-20T14:30:45.000Z",
"user": {
"id": 123,
"name": "John Doe",
"email": "john@example.com"
},
"company": {
"id": 456,
"name": "Acme Corp"
}
}