Skip to content

@nestarc/audit-log

Classes

AuditContext

Defined in: src/services/audit-context.ts:10

Constructors

Constructor
ts
new AuditContext(): AuditContext;
Returns

AuditContext

Methods

getActionOverride()
ts
static getActionOverride(): string | undefined;

Defined in: src/services/audit-context.ts:29

Returns

string | undefined

getActor()
ts
static getActor(): AuditActor | null;

Defined in: src/services/audit-context.ts:21

Returns

AuditActor | null

getStore()
ts
static getStore(): AuditContextStore | undefined;

Defined in: src/services/audit-context.ts:17

Returns

AuditContextStore | undefined

isNoAudit()
ts
static isNoAudit(): boolean;

Defined in: src/services/audit-context.ts:25

Returns

boolean

run()
ts
static run<T>(store, fn): T;

Defined in: src/services/audit-context.ts:13

Type Parameters
Type Parameter
T
Parameters
ParameterType
storeAuditContextStore
fn() => T
Returns

T


AuditLogModule

Defined in: src/audit-log.module.ts:18

Implements

  • NestModule

Constructors

Constructor
ts
new AuditLogModule(): AuditLogModule;
Returns

AuditLogModule

Methods

configure()
ts
configure(consumer): void;

Defined in: src/audit-log.module.ts:19

Parameters
ParameterType
consumerMiddlewareConsumer
Returns

void

Implementation of
ts
NestModule.configure
forRoot()
ts
static forRoot(options): DynamicModule;

Defined in: src/audit-log.module.ts:23

Parameters
ParameterType
optionsAuditLogModuleOptions
Returns

DynamicModule

forRootAsync()
ts
static forRootAsync(options): DynamicModule;

Defined in: src/audit-log.module.ts:37

Parameters
ParameterType
optionsAuditLogModuleAsyncOptions
Returns

DynamicModule


AuditService

Defined in: src/services/audit.service.ts:15

Constructors

Constructor
ts
new AuditService(options): AuditService;

Defined in: src/services/audit.service.ts:16

Parameters
ParameterType
optionsAuditLogModuleOptions
Returns

AuditService

Methods

log()
ts
log(input, tx?): Promise<void>;

Defined in: src/services/audit.service.ts:21

Parameters
ParameterType
inputManualAuditLogInput
tx?any
Returns

Promise<void>

query()
ts
query(options): Promise<AuditQueryResult>;

Defined in: src/services/audit.service.ts:53

Parameters
ParameterType
optionsAuditQueryOptions
Returns

Promise<AuditQueryResult>

Interfaces

AuditActor

Defined in: src/interfaces/actor.interface.ts:1

Properties

id
ts
id: string | null;

Defined in: src/interfaces/actor.interface.ts:2

ip?
ts
optional ip?: string;

Defined in: src/interfaces/actor.interface.ts:4

type
ts
type: "user" | "system" | "api_key";

Defined in: src/interfaces/actor.interface.ts:3


AuditContextStore

Defined in: src/services/audit-context.ts:4

Properties

actionOverride?
ts
optional actionOverride?: string;

Defined in: src/services/audit-context.ts:7

actor
ts
actor: AuditActor | null;

Defined in: src/services/audit-context.ts:5

noAudit
ts
noAudit: boolean;

Defined in: src/services/audit-context.ts:6


AuditEntry

Defined in: src/interfaces/audit-entry.interface.ts:1

Properties

action
ts
action: string;

Defined in: src/interfaces/audit-entry.interface.ts:7

actorId
ts
actorId: string | null;

Defined in: src/interfaces/audit-entry.interface.ts:4

actorIp
ts
actorIp: string | null;

Defined in: src/interfaces/audit-entry.interface.ts:6

actorType
ts
actorType: string;

Defined in: src/interfaces/audit-entry.interface.ts:5

changes
ts
changes: 
  | Record<string, {
  after?: unknown;
  before?: unknown;
}>
  | null;

Defined in: src/interfaces/audit-entry.interface.ts:11

createdAt
ts
createdAt: Date;

Defined in: src/interfaces/audit-entry.interface.ts:14

id
ts
id: string;

Defined in: src/interfaces/audit-entry.interface.ts:2

metadata
ts
metadata: Record<string, unknown> | null;

Defined in: src/interfaces/audit-entry.interface.ts:12

result
ts
result: "success" | "failure";

Defined in: src/interfaces/audit-entry.interface.ts:13

source
ts
source: "auto" | "manual";

Defined in: src/interfaces/audit-entry.interface.ts:10

targetId
ts
targetId: string | null;

Defined in: src/interfaces/audit-entry.interface.ts:9

targetType
ts
targetType: string | null;

Defined in: src/interfaces/audit-entry.interface.ts:8

tenantId
ts
tenantId: string | null;

Defined in: src/interfaces/audit-entry.interface.ts:3


AuditExtensionOptions

Defined in: src/prisma/audit-extension.ts:11

Properties

ignoredModels?
ts
optional ignoredModels?: string[];

Defined in: src/prisma/audit-extension.ts:13

primaryKey?
ts
optional primaryKey?: Record<string, string>;

Defined in: src/prisma/audit-extension.ts:16

Map of model name to primary key field name. Defaults to 'id'.

sensitiveFields?
ts
optional sensitiveFields?: string[];

Defined in: src/prisma/audit-extension.ts:14

trackedModels?
ts
optional trackedModels?: string[];

Defined in: src/prisma/audit-extension.ts:12


AuditLogModuleAsyncOptions

Defined in: src/interfaces/audit-log-options.interface.ts:11

Extends

  • Pick<ModuleMetadata, "imports">

Properties

imports?
ts
optional imports?: (
  | DynamicModule
  | Type<any>
  | Promise<DynamicModule>
  | ForwardReference<any>)[];

Defined in: node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts:18

Optional list of imported modules that export the providers which are required in this module.

Inherited from
ts
Pick.imports
inject?
ts
optional inject?: any[];

Defined in: src/interfaces/audit-log-options.interface.ts:16

useFactory
ts
useFactory: (...args) => 
  | AuditLogModuleOptions
| Promise<AuditLogModuleOptions>;

Defined in: src/interfaces/audit-log-options.interface.ts:13

Parameters
ParameterType
...argsany[]
Returns

| AuditLogModuleOptions | Promise<AuditLogModuleOptions>


AuditLogModuleOptions

Defined in: src/interfaces/audit-log-options.interface.ts:4

Properties

actorExtractor
ts
actorExtractor: ActorExtractor;

Defined in: src/interfaces/audit-log-options.interface.ts:6

prisma
ts
prisma: any;

Defined in: src/interfaces/audit-log-options.interface.ts:5

tenantRequired?
ts
optional tenantRequired?: boolean;

Defined in: src/interfaces/audit-log-options.interface.ts:8

When true, query() throws if tenant context is unavailable. Default: false


AuditQueryOptions

Defined in: src/interfaces/audit-entry.interface.ts:17

Properties

action?
ts
optional action?: string;

Defined in: src/interfaces/audit-entry.interface.ts:19

actorId?
ts
optional actorId?: string;

Defined in: src/interfaces/audit-entry.interface.ts:18

from?
ts
optional from?: Date;

Defined in: src/interfaces/audit-entry.interface.ts:22

limit?
ts
optional limit?: number;

Defined in: src/interfaces/audit-entry.interface.ts:24

offset?
ts
optional offset?: number;

Defined in: src/interfaces/audit-entry.interface.ts:25

targetId?
ts
optional targetId?: string;

Defined in: src/interfaces/audit-entry.interface.ts:21

targetType?
ts
optional targetType?: string;

Defined in: src/interfaces/audit-entry.interface.ts:20

to?
ts
optional to?: Date;

Defined in: src/interfaces/audit-entry.interface.ts:23


AuditQueryResult

Defined in: src/interfaces/audit-entry.interface.ts:28

Properties

entries
ts
entries: AuditEntry[];

Defined in: src/interfaces/audit-entry.interface.ts:29

total
ts
total: number;

Defined in: src/interfaces/audit-entry.interface.ts:30


ManualAuditLogInput

Defined in: src/interfaces/audit-entry.interface.ts:33

Properties

action
ts
action: string;

Defined in: src/interfaces/audit-entry.interface.ts:34

metadata?
ts
optional metadata?: Record<string, unknown>;

Defined in: src/interfaces/audit-entry.interface.ts:37

result?
ts
optional result?: "success" | "failure";

Defined in: src/interfaces/audit-entry.interface.ts:38

targetId?
ts
optional targetId?: string;

Defined in: src/interfaces/audit-entry.interface.ts:35

targetType?
ts
optional targetType?: string;

Defined in: src/interfaces/audit-entry.interface.ts:36

Type Aliases

ActorExtractor

ts
type ActorExtractor = (req) => AuditActor;

Defined in: src/interfaces/actor.interface.ts:7

Parameters

ParameterType
reqany

Returns

AuditActor

Variables

AUDIT_ACTION_KEY

ts
const AUDIT_ACTION_KEY: "AUDIT_ACTION" = 'AUDIT_ACTION';

Defined in: src/decorators/audit-action.decorator.ts:3


AUDIT_LOG_OPTIONS

ts
const AUDIT_LOG_OPTIONS: typeof AUDIT_LOG_OPTIONS;

Defined in: src/audit-log.constants.ts:1


NO_AUDIT_KEY

ts
const NO_AUDIT_KEY: "NO_AUDIT" = 'NO_AUDIT';

Defined in: src/decorators/no-audit.decorator.ts:3

Functions

applyAuditTableSchema()

ts
function applyAuditTableSchema(prisma): Promise<void>;

Defined in: src/sql/index.ts:50

Execute the audit table schema SQL using a Prisma client. Runs each statement individually to work with Prisma's prepared statement limit.

Parameters

ParameterType
prismaany

Returns

Promise<void>


AuditAction()

ts
function AuditAction(action): CustomDecorator<string>;

Defined in: src/decorators/audit-action.decorator.ts:4

Parameters

ParameterType
actionstring

Returns

CustomDecorator<string>


createAuditExtension()

ts
function createAuditExtension(options): any;

Defined in: src/prisma/audit-extension.ts:119

Parameters

ParameterType
optionsAuditExtensionOptions

Returns

any


getAuditTableSQL()

ts
function getAuditTableSQL(): string;

Defined in: src/sql/index.ts:4

Returns

string


getAuditTableStatements()

ts
function getAuditTableStatements(): string[];

Defined in: src/sql/index.ts:13

Split the audit table SQL into individual executable statements. Handles PL/pgSQL DO blocks ($$...$$) that contain inner semicolons. Useful because Prisma's $executeRawUnsafe cannot run multiple statements at once.

Returns

string[]


NoAudit()

ts
function NoAudit(): CustomDecorator<string>;

Defined in: src/decorators/no-audit.decorator.ts:4

Returns

CustomDecorator<string>

Released under the MIT License.