Salta ai contenuti

Cronologia Entità

La cronologia delle entità registra uno snapshot dei valori delle entità ad ogni creazione, aggiornamento ed eliminazione. Questo ti fornisce una traccia di audit completa con differenze.

Abilita la cronologia in initializeRebaseBackend:

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

Oppure con impostazioni di conservazione personalizzate:

history: {
maxEntries: 200, // Per entità, i più vecchi vengono eliminati per primi (predefinito: 200)
ttlDays: 90 // Le voci più vecchie di questo periodo vengono eliminate (predefinito: 90)
}

Indica quali collezioni devono tracciare la cronologia:

const ordersCollection: EntityCollection = {
slug: "orders",
history: true, // Abilita per questa collezione
properties: { /* ... */ }
};
  1. Il backend crea automaticamente una tabella rebase.entity_history
  2. Ad ogni creazione, aggiornamento o eliminazione, viene registrato uno snapshot con:
    • ID entità, slug della collezione e nome della tabella
    • I valori completi dell’entità (prima e dopo)
    • Timestamp e ID utente
    • Tipo di operazione (insert, update, delete)
  3. Le voci obsolete vengono eliminate periodicamente (ogni 6 ore)
GET /api/data/:slug/:entityId/history

Restituisce un elenco di voci della cronologia per una specifica entità, ordinate dalla più recente alla meno recente:

{
"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"
}
]
}
ImpostazionePredefinitoDescrizione
maxEntries200Numero massimo di voci per entità. Le più vecchie vengono eliminate.
ttlDays90Le voci più vecchie di questo periodo vengono eliminate.

Il backend esegue una pulizia globale ogni 6 ore.