feat(server): asset entity audit (#3824)

* feat(server): audit log

* feedback

* Insert to database

* migration

* test

* controller/repository/service

* test

* module

* feat(server): implement audit endpoint

* directly return changed assets

* add daily cleanup of audit table

* fix tests

* review feedback

* ci

* refactor(server): audit implementation

* chore: open api

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Fynn Petersen-Frey <zoodyy@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
This commit is contained in:
Fynn Petersen-Frey
2023-08-24 21:28:50 +02:00
committed by GitHub
parent d6887117ac
commit cf9e04c8ec
57 changed files with 1381 additions and 36 deletions

29
server/test/fixtures/audit.stub.ts vendored Normal file
View File

@@ -0,0 +1,29 @@
import { AuditEntity, DatabaseAction, EntityType } from '@app/infra/entities';
import { authStub } from './auth.stub';
export const auditStub = {
create: Object.freeze<AuditEntity>({
id: 1,
entityId: 'asset-created',
action: DatabaseAction.CREATE,
entityType: EntityType.ASSET,
ownerId: authStub.admin.id,
createdAt: new Date(),
}),
update: Object.freeze<AuditEntity>({
id: 2,
entityId: 'asset-updated',
action: DatabaseAction.UPDATE,
entityType: EntityType.ASSET,
ownerId: authStub.admin.id,
createdAt: new Date(),
}),
delete: Object.freeze<AuditEntity>({
id: 3,
entityId: 'asset-deleted',
action: DatabaseAction.DELETE,
entityType: EntityType.ASSET,
ownerId: authStub.admin.id,
createdAt: new Date(),
}),
};