Audit Logging
Record every change to a model, including ones made outside your app.
Leaving out when listens for all events.
import { beforeAfter } from '@visualbravo/zenstack-live'
const stream = live.stream({
model: 'Patient',
slug: 'audit-log',
})
for await (const event of stream) {
const { before, after } = beforeAfter(event)
await client.auditLog.upsert({
where: { eventId: event.id },
update: {},
create: {
before,
after,
eventId: event.id,
model: 'Patient',
operation: event.type,
occurredAt: event.date,
},
})
}This also records changes made outside of your app. With a unique eventId, the upsert makes retries harmless.