2.0.0 • Published 1 month ago

@forlagshuset/nestjs-audit-logging v2.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

Nestjs Audit Logging Interceptor

Library to facilitate adding custom audit log messages to nestjs controllers.

Usecase

transport

class TestLoggerTransport implements Transport {
  log(): any | Promise<any> {
    return;
  }
}

module

@Module({
  imports: [],
  controllers: [SomeController],
  providers: [
    AuditLogInterceptor,
    {
      provide: AuditLog,
      useValue: new AuditLog({
        actionType: ActionType.Object,
        actorType: ActorType.Eportal,
        service: { type: ServiceType.App, id: 'test.service' },
        objectType: ObjectType.ErudioNamespace,
      }),
    },
    {
      provide: BaseAuditLogger,
      useFactory: (auditLog: AuditLog) => {
        baseAuditLogger = new BaseAuditLogger(
          'test.one.two',
          auditLog,
          new TestLoggerTransport(),
        );
        return baseAuditLogger;
      },
      inject: [AuditLog],
    },
  ]
})

controller

@Controller('/test')
export class TestController {
  @AuditLogger({
    action: ActionVerb.ACCESSED,
    actorIdGetter: (req) => req.headers['x-gateway-user-id'],
    objectIdGetter: (req) => req.params.id,
    eventSubject: 'test',
    errorTypes: [NotFoundException],
  })
  @Get('/error/:id')
  action(@Param('id') id: string) {
    // do some action
    // success calls will be intercepted and audit log message will be emitted
    // as for errors, only NotFoudException will be intercepted and an audit log message will be emitted. All errors needed for audit log should be specified upfront
  }
}
2.0.0

1 month ago

1.0.4

3 months ago

1.0.2

7 months ago

1.0.1

9 months ago

1.0.3

7 months ago

1.0.0

2 years ago