@cme-pro/mongoose-audit

Mongoose plugin to store audit information like userAgent, ip, country, etc...

Usage no npm install needed!

<script type="module">
  import cmeProMongooseAudit from 'https://cdn.skypack.dev/@cme-pro/mongoose-audit';
</script>

README

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:

  1. createdBy, updatedBy and deletedBy are a user id,
  2. 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();