feat: Events / audit log (#1008)
* feat: Record events in DB * feat: events API * First pass, hacky activity feed * WIP * Reset dashboard * feat: audit log UI feat: store ip address * chore: Document events.list api * fix: command specs * await event create * fix: backlinks service * tidy * fix: Hide audit log menu item if not admin
This commit is contained in:
35
server/migrations/20190606035733-events.js
Normal file
35
server/migrations/20190606035733-events.js
Normal file
@@ -0,0 +1,35 @@
|
||||
module.exports = {
|
||||
up: async (queryInterface, Sequelize) => {
|
||||
await queryInterface.changeColumn('events', 'data', {
|
||||
type: Sequelize.JSONB,
|
||||
allowNull: true,
|
||||
});
|
||||
await queryInterface.addColumn('events', 'actorId', {
|
||||
type: Sequelize.UUID,
|
||||
allowNull: true,
|
||||
references: {
|
||||
model: 'users',
|
||||
},
|
||||
});
|
||||
await queryInterface.addColumn('events', 'modelId', {
|
||||
type: Sequelize.UUID,
|
||||
allowNull: true
|
||||
});
|
||||
await queryInterface.addColumn('events', 'ip', {
|
||||
type: Sequelize.STRING,
|
||||
allowNull: true
|
||||
});
|
||||
await queryInterface.addIndex('events', ['name']);
|
||||
await queryInterface.addIndex('events', ['actorId']);
|
||||
await queryInterface.addIndex('events', ['teamId', 'collectionId']);
|
||||
},
|
||||
down: async (queryInterface, Sequelize) => {
|
||||
await queryInterface.removeColumn('events', 'actorId');
|
||||
await queryInterface.removeColumn('events', 'modelId');
|
||||
await queryInterface.removeColumn('events', 'ip');
|
||||
|
||||
await queryInterface.removeIndex('events', ['name']);
|
||||
await queryInterface.removeIndex('events', ['actorId']);
|
||||
await queryInterface.removeIndex('events', ['teamId', 'collectionId']);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user