sequelize-logbook

0.0.1 • Public • Published

Sequelize-Logbook

A plugin for adding a log book / revision history / audit / paper trail to a sequelize model.

🎛 Usage

When using the models/index.js associate pattern:

my-model.js

const trackRevisions = require('sequelize-logbook')
 
module.exports = function(sequelize, DataTypes) {
  let MyModel = sequelize.define('MyModel', {
    ...
    classMethods: {
      ...
      associate: function(){
        ...
        trackRevisions(MyModel)
      }
    }
  })
}
 

General use

const trackRevisions = require('sequelize-logbook')
 
let MyModel = sequelize.define('MyModel', {...})
let AnotherModel = sequelize.define('AnotherModel', {...})
trackRevisions(MyModel)
trackRevisions(AnotherModel)
 

🐲 whoDunnit / blame / author tracking.

SequelizeRevisions will look against the global sequelize object for a whoDunnit key. If this key is present, it will save this value as the author of the revision. Otherwise, it'll fall back to process.env.NODE_ENV

const sequelize = new Sequelize(db, user, password, config)
sequelize.whoDunnit = 'yourUserString'

⚠ Caveats

Revisions will not be automatically generated for instances created, deleted, or updated with Bulk actions If you want revisions generated for Bulk actions, pass individualHooks: true as a sequelize option.

🏗 Contributing contributions welcome

📐 Tests

npm run test

✂ Linting

npm run prettier

✨ Inspired by

Related:

This library is similar to these other packages, with the addition of:

  1. whoDunnit / blame history
  2. Unit tests! 📏

License

Sequelize-logbook is MIT licensed.

Package Sidebar

Install

npm i sequelize-logbook

Weekly Downloads

1

Version

0.0.1

License

MIT

Last publish

Collaborators

  • jellyops