0.0.1 • Published 7 years ago

sequelize-logbook v0.0.1

Weekly downloads
3
License
MIT
Repository
-
Last release
7 years ago

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.