mongoose-audit
Mongoose plugin to store audit information like userAgent, ip, country, etc...
This plugin simply adds the following fields:
- createdBy
- updatedBy
- deletedBy
- createdFrom
- updatedFrom
- deletedFrom
Where:
- createdBy, updatedBy and deletedBy are a user id,
- createdFrom, updatedFrom and deletedFrom have the following structure:
- userAgent
- ip
- country
- continent
- region
- city
- zip
- lat
- lng
- tz
Note: deletedBy and deletedFrom are only useful if combined with mongoose-delete plugin.
Installation
$ npm install mongoose-audit --save
Overview
Adding plugin to the schema
BlogPost.plugin(mongooseAudit, { userModel: 'Author' });
Plugin options
- userModel - optional (default is "User"). The mongoose Model managing users. Used to populate the field).
Usage
On create:
const post = new BlogPost({});
post.createdBy = currentUserId;
post.createdFrom = {{ ip, userAgent, country };
await post.save();
On update:
post.set();
post.updatedBy = currentUserId;
post.updatedFrom = {{ ip, userAgent, country };
await post.save();
On delete (only useful if combined with mongoose-delete plugin)
post.deletedBy = currentUserId;
post.deletedFrom = {{ ip, userAgent, country };
await post.save();
await post.delete();