This plugin adds comprehensive audit logging functionality to your PayloadCMS application. It logs create, update, and delete operations for specified collections, including detailed changes for update operations.
- Log create, update, and delete operations for specified collections
- Detailed change tracking for update operations
- Option to include the auth collection (users) in the audit
- Stores full document data for create and delete operations
npm install @rumess/payload-audit-log
In your Payload configuration file:
import { buildConfig } from "payload/config";
import auditLogPlugin from "@rumess/payload-audit-log";
export default buildConfig({
plugins: [
auditLogPlugin({
collections: ["posts", "products"],
includeAuth: true,
}),
],
// ... rest of your config
});
collections
: An array of collection slugs to be audited. Default:[]
includeAuth
: Whether to include the auth collection (users) in the audit. Default:false
The plugin creates an audit-logs
collection with the following fields:
collection
: The name of the collection being auditedaction
: The type of operation (create, update, delete)documentId
: The ID of the document being operated ontimestamp
: The time of the operationuser
: The user who performed the operation (if available)changes
:- For create: The entire new document
- For update: An object showing old and new values of changed fields
- For delete: The entire deleted document
After an update operation on a posts
collection, an audit log entry might look like this:
{
"collection": "posts",
"action": "update",
"documentId": "123456789",
"timestamp": "2023-05-20T14:30:00Z",
"user": "user123",
"changes": {
"title": {
"old": "Old Title",
"new": "New Title"
},
"content": {
"old": "Old content here",
"new": "Updated content here"
}
}
}
MIT