Ir al contenido

Historial de Entidades

El historial de entidades registra una instantánea de los valores de las entidades en cada creación, actualización y eliminación. Esto proporciona una auditoría completa con diferencias.

Habilita el historial en initializeRebaseBackend:

await initializeRebaseBackend({
// ...
history: true
});

O con configuraciones de retención personalizadas:

history: {
maxEntries: 200, // Per entity, oldest pruned first (default: 200)
ttlDays: 90 // Entries older than this are pruned (default: 90)
}

Marca qué colecciones deben rastrear el historial:

import { defineCollection } from "@rebasepro/admin-types";
const ordersCollection = defineCollection({
slug: "orders",
name: "Orders",
table: "orders",
history: true, // Enable for this collection
properties: { /* ... */ }
});
  1. El backend crea una tabla rebase.entity_history automáticamente
  2. En cada creación, actualización o eliminación, se registra una instantánea con:
    • ID de entidad, slug de colección y nombre de tabla
    • Los valores completos de la entidad (antes y después)
    • Marca de tiempo e ID de usuario
    • Tipo de operación (insert, update, delete)
  3. Las entradas antiguas se eliminan periódicamente (cada 6 horas)
GET /api/data/:slug/:entityId/history

Devuelve una lista de entradas del historial para una entidad específica, ordenadas por las más recientes primero:

{
"data": [
{
"id": 42,
"entity_id": "123",
"collection_slug": "orders",
"operation": "update",
"values": { "status": "shipped", "total": 99.99 },
"previous_values": { "status": "pending", "total": 99.99 },
"user_id": "admin-user-id",
"created_at": "2025-01-15T10:30:00Z"
}
]
}
Configuración Predeterminado Descripción
maxEntries 200 Número máximo de entradas por entidad. Las más antiguas se eliminan.
ttlDays 90 Las entradas más antiguas que esto se eliminan.

El backend realiza una limpieza global cada 6 horas.