Depot OS — Bitácora de Auditoría
¿Qué es la Bitácora de Auditoría?
La Bitácora es el sistema de seguridad e historial inmutable de Depot OS. Registra de manera permanente cada acción operativa y administrativa crítica realizada en la plataforma: qué empleado realizó el movimiento, en qué fecha y hora exacta, en qué sucursal y qué datos específicos se modificaron.
Es la herramienta central para los dueños y auditores del negocio, diseñada para prevenir pérdidas, detectar anomalías de caja, auditar cancelaciones de comanda y mantener total transparencia en la operación.
Filtros de búsqueda avanzados
Para agilizar las auditorías en empresas con múltiples sucursales y altos volúmenes de transacciones, la pantalla permite filtrar el historial mediante los siguientes criterios:
- Módulo Operativo: Filtra eventos correspondientes a secciones específicas, como Ventas, Cajas, Empleados, Configuración de Sucursal, Catálogo de Artículos, Promociones o Cupones.
- Sucursal: Aísla el historial de un establecimiento específico para auditorías locales.
- Empleado: Rastrea el historial de actividades de un cajero, mesero o administrador específico.
- Rango de fechas: Delimita la consulta a días u horas específicas de interés (ideal para investigar discrepancias en cierres de caja).
Estructura de un evento auditado
Cada registro guardado en la bitácora contiene detalles forenses del movimiento:
- Sello de Tiempo: Fecha y hora exacta en la que se ejecutó la acción.
- Identificación del Operador: Nombre completo del empleado que realizó el movimiento. El sistema conserva una captura de su nombre para que los reportes históricos sigan siendo legibles e íntegros, incluso si el empleado es dado de baja del equipo en el futuro.
- Detalle del Cambio (Metadatos Operativos): Desglose detallado del movimiento. Por ejemplo, al auditar una venta cancelada, se muestra qué productos estaban agregados, el total del pedido y el motivo registrado para la cancelación. Al auditar un cambio de configuración, muestra el valor anterior y el nuevo valor guardado.
Casos prácticos de auditoría y prevención de mermas
Los administradores utilizan la bitácora para esclarecer situaciones críticas de la sucursal:
1. Investigación de Cancelaciones Sospechosas
Una de las prácticas más comunes de fuga de dinero es registrar un pedido, cobrarlo en efectivo al cliente y posteriormente cancelarlo para retirar el dinero de la caja. Al filtrar la bitácora por la acción "Pedido Cancelado", el administrador puede ver exactamente quién la canceló, qué artículos contenía y a qué hora ocurrió, cruzándolo con los videos de seguridad o el ticket físico.
2. Control de Aperturas y Cierres de Cajas
Permite confirmar que los cajeros abrieron sus turnos a la hora indicada, con el fondo de caja autorizado y documentar cualquier diferencia declarada al realizar el arqueo final.
3. Modificaciones al Catálogo o Precios
Si un precio de producto se alteró sin autorización o si se activó una promoción incorrecta, la bitácora delata de forma precisa qué usuario realizó el cambio en el módulo de configuración y en qué fecha.
Estructura y Parámetros del Sistema (Base de Datos)
El sistema de auditoría es inmutable y escribe directamente en la tabla audit_logs de la base de datos central. No existen interruptores de apagado para la bitácora, garantizando el cumplimiento de políticas de seguridad corporativas.
Esquema de Base de Datos de la Bitácora (audit_logs)
Cada evento registrado contiene las siguientes propiedades de base de datos para análisis forense:
| Columna | Tipo de Datos | Descripción y Utilidad |
|---|---|---|
id | UUID | Identificador único y primario del evento de auditoría. |
companyId | UUID | Identificador de la empresa (multi-tenant scoping). |
branchId | UUID | Sucursal física donde ocurrió el evento (null si fue una acción corporativa global). |
employeeId | UUID | Empleado Clerk que ejecutó la acción (forzado mediante sesión JWT activa). |
module | text | Módulo afectado (ej. "promotions", "orders", "cash_registers", "config", "articles"). |
action | text | Acción específica realizada (ej. "create", "update", "delete", "void_item", "apply_discount", "open_shift"). |
metadata | JSONB | Contenedor dinámico de datos. Almacena: valores anteriores vs. valores nuevos, detalles del carrito cancelado, o justificación de cortesías. |
createdAt | timestamp | Sello de tiempo del servidor (inmutable) con precisión de milisegundos. |
Catálogo de Acciones Críticas Auditadas
La bitácora captura automáticamente los siguientes eventos del POS:
- Gestión de Turnos de Caja (
cash_registers):- Apertura (
open_shift) declarando el fondo de caja inicial. - Cierre (
close_shift) comparando saldo esperado contra saldo físico declarado y su respectivo descuadre. - Retiros parciales y de seguridad de efectivo (
withdrawal,partial_withdrawal).
- Apertura (
- Control Transaccional (
orders):- Eliminación de productos de un carrito activo o comanda en preparación (
void_item). - Aplicación de descuentos manuales o anulación de tickets cobrados (
apply_discount,void_order). - Autorización de cuentas de cortesía al 100%.
- Eliminación de productos de un carrito activo o comanda en preparación (
- Cambios de Configuración (
config):- Modificación de ajustes corporativos globales.
- Activación, edición o revocación de sobreescrituras (overrides) por sucursal.
Enlaces relacionados
- Control de Turnos y Personal: Configuración de roles y permisos de acceso para cajeros y gerentes.
- Gestión de Cajas: Cómo se registran los arqueos, depósitos y retiros de efectivo auditados.