Pular para o conteúdo

Histórico da Entidade

O histórico da entidade regista um instantâneo dos valores da entidade em cada criação, atualização e eliminação. Isso fornece um rasto de auditoria completo com as diferenças.

Ative o histórico em initializeRebaseBackend:

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

Ou com configurações de retenção personalizadas:

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

Marque quais coleções devem rastrear o histórico:

const ordersCollection: EntityCollection = {
slug: "orders",
history: true, // Ativar para esta coleção
properties: { /* ... */ }
};
  1. O backend cria uma tabela rebase.entity_history automaticamente
  2. Em cada criação, atualização ou eliminação, um instantâneo é registado com:
    • ID da entidade, slug da coleção e nome da tabela
    • Os valores completos da entidade (antes e depois)
    • Carimbo de data/hora e ID do utilizador
    • Tipo de operação (insert, update, delete)
  3. Entradas antigas são removidas periodicamente (a cada 6 horas)
GET /api/data/:slug/:entityId/history

Retorna uma lista de entradas de histórico para uma entidade específica, ordenadas pelas mais recentes primeiro:

{
"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"
}
]
}
DefiniçãoPadrãoDescrição
maxEntries200Número máximo de entradas por entidade. As mais antigas são removidas.
ttlDays90Entradas mais antigas do que este período são eliminadas.

O backend executa uma varredura global de remoção a cada 6 horas.