0.1.5 • Published 8 years ago

sails-hook-audittrail v0.1.5

Weekly downloads
7
License
MIT
Repository
github
Last release
8 years ago

Sails Audit Trail

Sails Audit Trail is to provide a simple way for tracking individual value changes. It will only log value changed and not value that is not changed. This is still under development, but most won't be much changes beside reflectoring.

travis test npm version

Limitation

  • Log table is in structured format, so doesn't really benefit from NoSQL if its being used as log DB
  • Current only primary column are being tracked, means joined tabled data changed will not be log automatically
  • Currently this implemtation is being built under the assumation of SQL and not for NoSql yet

Installation

npm install sails-hook-audittrail

Configuration

Global Configuration

// config/audittrail.js
module.exports.audittrail = {
   connection: "localDatabase",
   excludedModels: [],
   tableName:'audittrail'
};
  • connection will be the connection string set in 'config/connection.js'
  • excludedModels must be a list of array of model.globalId, globalId specific in this array will not be patched
  • tableName is the tableName to be used as log table.

Local Configuration

This will be individual configuration available for individual model.

module.exports = {
	tableName: "user",
	attributes: {
		'name': {
			type:'text'
		}
	},
	auditorIgnoreAttr:['createdAt','updatedAt']
}
  • auditorIgnoreAttr must be a list of array of attributes that should be ignored when checking for data change

Database Schema

SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `audittrail`;
CREATE TABLE `audittrail` (
  `columnName` varchar(1024) CHARACTER SET latin1 DEFAULT NULL,
  `oldValue` longtext CHARACTER SET latin1,
  `newValue` longtext CHARACTER SET latin1,
  `modelID` varchar(255) CHARACTER SET latin1 DEFAULT NULL,
  `timestamp` int(11) DEFAULT NULL,
  `foreignKey` varchar(125) CHARACTER SET latin1 DEFAULT NULL,
  `operation` varchar(15) CHARACTER SET latin1 DEFAULT NULL,
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `createdAt` datetime DEFAULT NULL,
  `updatedAt` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `search` (`modelID`,`foreignKey`,`columnName`(767))
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

The sql file is in data folder

Test

npm test
0.1.5

8 years ago

0.1.4

9 years ago

0.1.3

9 years ago

0.1.2

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago

0.0.4

9 years ago

0.0.3

9 years ago

0.0.2

9 years ago

0.0.1

9 years ago