Skip to content

@nestarc/data-subject ​

Classes ​

DataSubjectError ​

Defined in: src/errors.ts:32

Extends ​

  • Error

Constructors ​

Constructor ​
ts
new DataSubjectError(code, reason?): DataSubjectError;

Defined in: src/errors.ts:36

Parameters ​
ParameterType
codeDataSubjectErrorCode
reason?string
Returns ​

DataSubjectError

Overrides ​
ts
Error.constructor

Properties ​

cause? ​
ts
optional cause?: unknown;

Defined in: node_modules/typescript/lib/lib.es2022.error.d.ts:26

Inherited from ​
ts
Error.cause

code ​
ts
readonly code: DataSubjectErrorCode;

Defined in: src/errors.ts:33

httpStatus ​
ts
readonly httpStatus: number;

Defined in: src/errors.ts:34

message ​
ts
message: string;

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1077

Inherited from ​
ts
Error.message

name ​
ts
name: string;

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1076

Inherited from ​
ts
Error.name

stack? ​
ts
optional stack?: string;

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1078

Inherited from ​
ts
Error.stack

stackTraceLimit ​
ts
static stackTraceLimit: number;

Defined in: node_modules/@types/node/globals.d.ts:68

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.

If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

Inherited from ​
ts
Error.stackTraceLimit

Methods ​

captureStackTrace() ​
ts
static captureStackTrace(targetObject, constructorOpt?): void;

Defined in: node_modules/@types/node/globals.d.ts:52

Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

js
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack;  // Similar to `new Error().stack`

The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}.

The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace.

The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance:

js
function a() {
  b();
}

function b() {
  c();
}

function c() {
  // Create an error without stack trace to avoid calculating the stack trace twice.
  const { stackTraceLimit } = Error;
  Error.stackTraceLimit = 0;
  const error = new Error();
  Error.stackTraceLimit = stackTraceLimit;

  // Capture the stack trace above function b
  Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
  throw error;
}

a();
Parameters ​
ParameterType
targetObjectobject
constructorOpt?Function
Returns ​

void

Inherited from ​
ts
Error.captureStackTrace

prepareStackTrace() ​
ts
static prepareStackTrace(err, stackTraces): any;

Defined in: node_modules/@types/node/globals.d.ts:56

Parameters ​
ParameterType
errError
stackTracesCallSite[]
Returns ​

any

See ​

https://v8.dev/docs/stack-trace-api#customizing-stack-traces

Inherited from ​
ts
Error.prepareStackTrace

DataSubjectModule ​

Defined in: src/data-subject.module.ts:25

Constructors ​

Constructor ​
ts
new DataSubjectModule(): DataSubjectModule;
Returns ​

DataSubjectModule

Methods ​

forRoot() ​
ts
static forRoot(options): DynamicModule;

Defined in: src/data-subject.module.ts:26

Parameters ​
ParameterType
optionsDataSubjectModuleOptions
Returns ​

DynamicModule


DataSubjectService ​

Defined in: src/data-subject.service.ts:30

Constructors ​

Constructor ​
ts
new DataSubjectService(deps): DataSubjectService;

Defined in: src/data-subject.service.ts:43

Parameters ​
ParameterType
depsDataSubjectServiceDeps
Returns ​

DataSubjectService

Methods ​

erase() ​
ts
erase(subjectId, tenantId): Promise<DataSubjectRequest>;

Defined in: src/data-subject.service.ts:111

Parameters ​
ParameterType
subjectIdstring
tenantIdstring
Returns ​

Promise<DataSubjectRequest>

export() ​
ts
export(subjectId, tenantId): Promise<DataSubjectRequest>;

Defined in: src/data-subject.service.ts:51

Parameters ​
ParameterType
subjectIdstring
tenantIdstring
Returns ​

Promise<DataSubjectRequest>

getRequest() ​
ts
getRequest(id): Promise<DataSubjectRequest>;

Defined in: src/data-subject.service.ts:201

Parameters ​
ParameterType
idstring
Returns ​

Promise<DataSubjectRequest>

listByTenant() ​
ts
listByTenant(tenantId, opts?): Promise<DataSubjectRequest[]>;

Defined in: src/data-subject.service.ts:205

Parameters ​
ParameterType
tenantIdstring
opts{ state?: RequestState; }
opts.state?RequestState
Returns ​

Promise<DataSubjectRequest[]>

listOverdue() ​
ts
listOverdue(): Promise<DataSubjectRequest[]>;

Defined in: src/data-subject.service.ts:212

Returns ​

Promise<DataSubjectRequest[]>


InMemoryArtifactStorage ​

Defined in: src/storage/in-memory-artifact-storage.ts:3

Implements ​

Constructors ​

Constructor ​
ts
new InMemoryArtifactStorage(): InMemoryArtifactStorage;
Returns ​

InMemoryArtifactStorage

Methods ​

get() ​
ts
get(key): Promise<
  | {
  body: Buffer;
  contentType: string;
}
| null>;

Defined in: src/storage/in-memory-artifact-storage.ts:14

Parameters ​
ParameterType
keystring
Returns ​

Promise< | { body: Buffer; contentType: string; } | null>

Implementation of ​

ArtifactStorage.get

put() ​
ts
put(
   key,
   body,
contentType): Promise<string>;

Defined in: src/storage/in-memory-artifact-storage.ts:9

Parameters ​
ParameterType
keystring
bodyBuffer
contentTypestring
Returns ​

Promise<string>

Implementation of ​

ArtifactStorage.put


InMemoryRequestStorage ​

Defined in: src/storage/in-memory-request-storage.ts:7

Implements ​

Constructors ​

Constructor ​
ts
new InMemoryRequestStorage(): InMemoryRequestStorage;
Returns ​

InMemoryRequestStorage

Methods ​

findById() ​
ts
findById(id): Promise<DataSubjectRequest | null>;

Defined in: src/storage/in-memory-request-storage.ts:33

Parameters ​
ParameterType
idstring
Returns ​

Promise<DataSubjectRequest | null>

Implementation of ​

RequestStorage.findById

insert() ​
ts
insert(req): Promise<void>;

Defined in: src/storage/in-memory-request-storage.ts:10

Parameters ​
ParameterType
reqDataSubjectRequest
Returns ​

Promise<void>

Implementation of ​

RequestStorage.insert

listByTenant() ​
ts
listByTenant(tenantId, opts?): Promise<DataSubjectRequest[]>;

Defined in: src/storage/in-memory-request-storage.ts:38

Parameters ​
ParameterType
tenantIdstring
opts{ state?: RequestState; }
opts.state?RequestState
Returns ​

Promise<DataSubjectRequest[]>

Implementation of ​

RequestStorage.listByTenant

listOverdue() ​
ts
listOverdue(now): Promise<DataSubjectRequest[]>;

Defined in: src/storage/in-memory-request-storage.ts:48

Parameters ​
ParameterType
nowDate
Returns ​

Promise<DataSubjectRequest[]>

Implementation of ​

RequestStorage.listOverdue

update() ​
ts
update(id, patch): Promise<void>;

Defined in: src/storage/in-memory-request-storage.ts:21

Parameters ​
ParameterType
idstring
patchPartial<DataSubjectRequest>
Returns ​

Promise<void>

Implementation of ​

RequestStorage.update


PrismaRequestStorage ​

Defined in: src/storage/prisma-request-storage.ts:21

Implements ​

Constructors ​

Constructor ​
ts
new PrismaRequestStorage(opts): PrismaRequestStorage;

Defined in: src/storage/prisma-request-storage.ts:22

Parameters ​
ParameterType
optsPrismaRequestStorageOptions
Returns ​

PrismaRequestStorage

Methods ​

findById() ​
ts
findById(id): Promise<DataSubjectRequest | null>;

Defined in: src/storage/prisma-request-storage.ts:58

Parameters ​
ParameterType
idstring
Returns ​

Promise<DataSubjectRequest | null>

Implementation of ​

RequestStorage.findById

insert() ​
ts
insert(req): Promise<void>;

Defined in: src/storage/prisma-request-storage.ts:24

Parameters ​
ParameterType
reqDataSubjectRequest
Returns ​

Promise<void>

Implementation of ​

RequestStorage.insert

listByTenant() ​
ts
listByTenant(tenantId, opts?): Promise<DataSubjectRequest[]>;

Defined in: src/storage/prisma-request-storage.ts:63

Parameters ​
ParameterType
tenantIdstring
opts{ state?: RequestState; }
opts.state?RequestState
Returns ​

Promise<DataSubjectRequest[]>

Implementation of ​

RequestStorage.listByTenant

listOverdue() ​
ts
listOverdue(now): Promise<DataSubjectRequest[]>;

Defined in: src/storage/prisma-request-storage.ts:77

Parameters ​
ParameterType
nowDate
Returns ​

Promise<DataSubjectRequest[]>

Implementation of ​

RequestStorage.listOverdue

update() ​
ts
update(id, patch): Promise<void>;

Defined in: src/storage/prisma-request-storage.ts:38

Parameters ​
ParameterType
idstring
patchPartial<DataSubjectRequest>
Returns ​

Promise<void>

Implementation of ​

RequestStorage.update


Registry ​

Defined in: src/registry.ts:10

Constructors ​

Constructor ​
ts
new Registry(opts?): Registry;

Defined in: src/registry.ts:13

Parameters ​
ParameterType
optsCompileOptions
Returns ​

Registry

Methods ​

get() ​
ts
get(name): RegisteredEntity | undefined;

Defined in: src/registry.ts:28

Parameters ​
ParameterType
namestring
Returns ​

RegisteredEntity | undefined

list() ​
ts
list(): RegisteredEntity[];

Defined in: src/registry.ts:32

Returns ​

RegisteredEntity[]

register() ​
ts
register(input): void;

Defined in: src/registry.ts:15

Parameters ​
ParameterType
inputRegisterInput
Returns ​

void

Interfaces ​

ArtifactStorage ​

Defined in: src/storage/artifact-storage.interface.ts:1

Methods ​

get() ​
ts
get(key): Promise<
  | {
  body: Buffer;
  contentType: string;
}
| null>;

Defined in: src/storage/artifact-storage.interface.ts:3

Parameters ​
ParameterType
keystring
Returns ​

Promise< | { body: Buffer; contentType: string; } | null>

put() ​
ts
put(
   key,
   body,
contentType): Promise<string>;

Defined in: src/storage/artifact-storage.interface.ts:2

Parameters ​
ParameterType
keystring
bodyBuffer
contentTypestring
Returns ​

Promise<string>


CompileOptions ​

Defined in: src/policy-compiler.ts:5

Properties ​

strictLegalBasis? ​
ts
optional strictLegalBasis?: boolean;

Defined in: src/policy-compiler.ts:6


DataSubjectModuleOptions ​

Defined in: src/data-subject.module.ts:13

Properties ​

artifactStorage ​
ts
artifactStorage: ArtifactStorage;

Defined in: src/data-subject.module.ts:15

entities? ​
ts
optional entities?: RegisterInput[];

Defined in: src/data-subject.module.ts:18

publishAudit? ​
ts
optional publishAudit?: (event, data) => Promise<void>;

Defined in: src/data-subject.module.ts:20

Parameters ​
ParameterType
eventstring
dataRecord<string, unknown>
Returns ​

Promise<void>

publishOutbox? ​
ts
optional publishOutbox?: (type, payload) => Promise<void>;

Defined in: src/data-subject.module.ts:19

Parameters ​
ParameterType
typestring
payloadunknown
Returns ​

Promise<void>

requestStorage ​
ts
requestStorage: RequestStorage;

Defined in: src/data-subject.module.ts:14

runInTransaction? ​
ts
optional runInTransaction?: <T>(work) => Promise<T>;

Defined in: src/data-subject.module.ts:21

Type Parameters ​
Type Parameter
T
Parameters ​
ParameterType
work() => Promise<T>
Returns ​

Promise<T>

slaDays? ​
ts
optional slaDays?: number;

Defined in: src/data-subject.module.ts:16

strictLegalBasis? ​
ts
optional strictLegalBasis?: boolean;

Defined in: src/data-subject.module.ts:17


DataSubjectRequest ​

Defined in: src/types.ts:42

Properties ​

artifactHash ​
ts
artifactHash: string | null;

Defined in: src/types.ts:53

artifactUrl ​
ts
artifactUrl: string | null;

Defined in: src/types.ts:54

completedAt ​
ts
completedAt: Date | null;

Defined in: src/types.ts:50

createdAt ​
ts
createdAt: Date;

Defined in: src/types.ts:48

dueAt ​
ts
dueAt: Date;

Defined in: src/types.ts:49

failedAt ​
ts
failedAt: Date | null;

Defined in: src/types.ts:51

failureReason ​
ts
failureReason: string | null;

Defined in: src/types.ts:52

id ​
ts
id: string;

Defined in: src/types.ts:43

requestedBy ​
ts
requestedBy: string | null;

Defined in: src/types.ts:56

state ​
ts
state: RequestState;

Defined in: src/types.ts:47

stats ​
ts
stats: RequestStats | null;

Defined in: src/types.ts:55

subjectId ​
ts
subjectId: string;

Defined in: src/types.ts:45

tenantId ​
ts
tenantId: string;

Defined in: src/types.ts:44

type ​
ts
type: RequestType;

Defined in: src/types.ts:46


DataSubjectServiceDeps ​

Defined in: src/data-subject.service.ts:18

Properties ​

artifactStorage ​
ts
artifactStorage: ArtifactStorage;

Defined in: src/data-subject.service.ts:21

clock? ​
ts
optional clock?: () => Date;

Defined in: src/data-subject.service.ts:24

Returns ​

Date

idFactory? ​
ts
optional idFactory?: () => string;

Defined in: src/data-subject.service.ts:23

Returns ​

string

publishAudit? ​
ts
optional publishAudit?: (event, data) => Promise<void>;

Defined in: src/data-subject.service.ts:26

Parameters ​
ParameterType
eventstring
dataRecord<string, unknown>
Returns ​

Promise<void>

publishOutbox? ​
ts
optional publishOutbox?: (type, payload) => Promise<void>;

Defined in: src/data-subject.service.ts:25

Parameters ​
ParameterType
typestring
payloadunknown
Returns ​

Promise<void>

registry ​
ts
registry: Registry;

Defined in: src/data-subject.service.ts:19

requestStorage ​
ts
requestStorage: RequestStorage;

Defined in: src/data-subject.service.ts:20

runInTransaction? ​
ts
optional runInTransaction?: <T>(work) => Promise<T>;

Defined in: src/data-subject.service.ts:27

Type Parameters ​
Type Parameter
T
Parameters ​
ParameterType
work() => Promise<T>
Returns ​

Promise<T>

slaDays ​
ts
slaDays: number;

Defined in: src/data-subject.service.ts:22


EntityExecutor ​

Defined in: src/types.ts:28

Methods ​

anonymize() ​
ts
anonymize(
   subjectId,
   tenantId,
replacements): Promise<number>;

Defined in: src/types.ts:31

Parameters ​
ParameterType
subjectIdstring
tenantIdstring
replacementsRecord<string, unknown>
Returns ​

Promise<number>

erase() ​
ts
erase(
   subjectId,
   tenantId,
plan): Promise<number>;

Defined in: src/types.ts:30

Parameters ​
ParameterType
subjectIdstring
tenantIdstring
planErasePlan
Returns ​

Promise<number>

select() ​
ts
select(subjectId, tenantId): Promise<Record<string, unknown>[]>;

Defined in: src/types.ts:29

Parameters ​
ParameterType
subjectIdstring
tenantIdstring
Returns ​

Promise<Record<string, unknown>[]>


EntityPolicy ​

Defined in: src/types.ts:16

Properties ​

entityName ​
ts
entityName: string;

Defined in: src/types.ts:17

fields ​
ts
fields: Record<string, PolicyEntry>;

Defined in: src/types.ts:20

rowLevel ​
ts
rowLevel: RowLevel;

Defined in: src/types.ts:19

subjectField ​
ts
subjectField: string;

Defined in: src/types.ts:18


ErasePlan ​

Defined in: src/types.ts:23

Properties ​

deleteFields ​
ts
deleteFields: string[];

Defined in: src/types.ts:25

rowLevel ​
ts
rowLevel: RowLevel;

Defined in: src/types.ts:24


ErasureEvidenceAction ​

Defined in: src/types.ts:82

Properties ​

affected ​
ts
affected: number;

Defined in: src/types.ts:85

anonymizedFields? ​
ts
optional anonymizedFields?: string[];

Defined in: src/types.ts:88

deleteFields? ​
ts
optional deleteFields?: string[];

Defined in: src/types.ts:87

entityName ​
ts
entityName: string;

Defined in: src/types.ts:83

retainedFields? ​
ts
optional retainedFields?: {
  count: number;
  field: string;
  legalBasis: string;
  until?: string;
}[];

Defined in: src/types.ts:89

count ​
ts
count: number;
field ​
ts
field: string;
legalBasis ​
ts
legalBasis: string;
until? ​
ts
optional until?: string;

rowLevel ​
ts
rowLevel: RowLevel;

Defined in: src/types.ts:86

strategy ​
ts
strategy: Strategy | "mixed";

Defined in: src/types.ts:84


ErasureEvidenceArtifact ​

Defined in: src/types.ts:97

Properties ​

actions ​
ts
actions: ErasureEvidenceAction[];

Defined in: src/types.ts:105

artifactHashAlgorithm ​
ts
artifactHashAlgorithm: "sha256";

Defined in: src/types.ts:108

generatedAt ​
ts
generatedAt: string;

Defined in: src/types.ts:102

postScan ​
ts
postScan: {
  count: number;
  entityName: string;
}[];

Defined in: src/types.ts:106

count ​
ts
count: number;
entityName ​
ts
entityName: string;

preScan ​
ts
preScan: {
  count: number;
  entityName: string;
}[];

Defined in: src/types.ts:104

count ​
ts
count: number;
entityName ​
ts
entityName: string;

requestId ​
ts
requestId: string;

Defined in: src/types.ts:99

requestType ​
ts
requestType: "erase";

Defined in: src/types.ts:101

schemaVersion ​
ts
schemaVersion: "data-subject.erasure-evidence.v1";

Defined in: src/types.ts:98

state ​
ts
state: "completed";

Defined in: src/types.ts:103

tenantId ​
ts
tenantId: string;

Defined in: src/types.ts:100

verificationResidual ​
ts
verificationResidual: {
  count: number;
  entityName: string;
}[];

Defined in: src/types.ts:107

count ​
ts
count: number;
entityName ​
ts
entityName: string;

FromPrismaOptions ​

Defined in: src/prisma/from-prisma.ts:16

Properties ​

delegate ​
ts
delegate: PrismaDelegate;

Defined in: src/prisma/from-prisma.ts:17

subjectField ​
ts
subjectField: string;

Defined in: src/prisma/from-prisma.ts:18

tenantField? ​
ts
optional tenantField?: string;

Defined in: src/prisma/from-prisma.ts:19


LegalBasisOptions ​

Defined in: src/legal-basis.ts:1

Properties ​

strict? ​
ts
optional strict?: boolean;

Defined in: src/legal-basis.ts:2


PolicySpec ​

Defined in: src/policy-compiler.ts:9

Properties ​

entityName ​
ts
entityName: string;

Defined in: src/policy-compiler.ts:10

fields ​
ts
fields: Record<string, PolicyEntry>;

Defined in: src/policy-compiler.ts:13

rowLevel? ​
ts
optional rowLevel?: "delete-row" | "delete-fields";

Defined in: src/policy-compiler.ts:12

subjectField ​
ts
subjectField: string;

Defined in: src/policy-compiler.ts:11


PrismaDataSubjectRequestDelegate ​

Defined in: src/storage/prisma-request-storage.ts:7

Methods ​

create() ​
ts
create(args): Promise<unknown>;

Defined in: src/storage/prisma-request-storage.ts:8

Parameters ​
ParameterType
args{ data: Record<string, unknown>; }
args.dataRecord<string, unknown>
Returns ​

Promise<unknown>

findMany() ​
ts
findMany(args): Promise<unknown[]>;

Defined in: src/storage/prisma-request-storage.ts:14

Parameters ​
ParameterType
argsRecord<string, unknown>
Returns ​

Promise<unknown[]>

findUnique() ​
ts
findUnique(args): Promise<unknown>;

Defined in: src/storage/prisma-request-storage.ts:13

Parameters ​
ParameterType
args{ where: { id: string; }; }
args.where{ id: string; }
args.where.idstring
Returns ​

Promise<unknown>

update() ​
ts
update(args): Promise<unknown>;

Defined in: src/storage/prisma-request-storage.ts:9

Parameters ​
ParameterType
args{ data: Record<string, unknown>; where: { id: string; }; }
args.dataRecord<string, unknown>
args.where{ id: string; }
args.where.idstring
Returns ​

Promise<unknown>


PrismaDelegate ​

Defined in: src/prisma/from-prisma.ts:3

Methods ​

deleteMany() ​
ts
deleteMany(args): Promise<{
  count: number;
}>;

Defined in: src/prisma/from-prisma.ts:7

Parameters ​
ParameterType
args{ where: Record<string, unknown>; }
args.whereRecord<string, unknown>
Returns ​

Promise<{ count: number; }>

findMany() ​
ts
findMany(args): Promise<Record<string, unknown>[]>;

Defined in: src/prisma/from-prisma.ts:4

Parameters ​
ParameterType
args{ where: Record<string, unknown>; }
args.whereRecord<string, unknown>
Returns ​

Promise<Record<string, unknown>[]>

updateMany() ​
ts
updateMany(args): Promise<{
  count: number;
}>;

Defined in: src/prisma/from-prisma.ts:10

Parameters ​
ParameterType
args{ data: Record<string, unknown>; where: Record<string, unknown>; }
args.dataRecord<string, unknown>
args.whereRecord<string, unknown>
Returns ​

Promise<{ count: number; }>


PrismaRequestStorageOptions ​

Defined in: src/storage/prisma-request-storage.ts:17

Properties ​

delegate ​
ts
delegate: PrismaDataSubjectRequestDelegate;

Defined in: src/storage/prisma-request-storage.ts:18


RegisteredEntity ​

Defined in: src/types.ts:34

Properties ​

executor ​
ts
executor: EntityExecutor;

Defined in: src/types.ts:36

policy ​
ts
policy: EntityPolicy;

Defined in: src/types.ts:35


RegisterInput ​

Defined in: src/registry.ts:5

Properties ​

executor ​
ts
executor: EntityExecutor;

Defined in: src/registry.ts:7

policy ​
ts
policy: PolicySpec;

Defined in: src/registry.ts:6


RegistryValidationReport ​

Defined in: src/registry-validation.ts:4

Properties ​

findings ​
ts
findings: DataSubjectLintFinding[];

Defined in: src/registry-validation.ts:6

ok ​
ts
ok: boolean;

Defined in: src/registry-validation.ts:5


RequestStats ​

Defined in: src/types.ts:59

Properties ​

entities ​
ts
entities: {
  affected: number;
  entityName: string;
  strategy: RequestEntityStrategy;
}[];

Defined in: src/types.ts:60

affected ​
ts
affected: number;
entityName ​
ts
entityName: string;
strategy ​
ts
strategy: RequestEntityStrategy;

evidence? ​
ts
optional evidence?: {
  artifactHash: string;
  artifactUrl: string;
  schemaVersion: "data-subject.evidence.v1";
};

Defined in: src/types.ts:75

artifactHash ​
ts
artifactHash: string;
artifactUrl ​
ts
artifactUrl: string;
schemaVersion ​
ts
schemaVersion: "data-subject.evidence.v1";

postScan? ​
ts
optional postScan?: {
  count: number;
  entityName: string;
}[];

Defined in: src/types.ts:74

count ​
ts
count: number;
entityName ​
ts
entityName: string;

preScan? ​
ts
optional preScan?: {
  count: number;
  entityName: string;
}[];

Defined in: src/types.ts:73

count ​
ts
count: number;
entityName ​
ts
entityName: string;

retained? ​
ts
optional retained?: {
  count: number;
  entityName: string;
  field: string;
  legalBasis: string;
  until?: string;
}[];

Defined in: src/types.ts:65

count ​
ts
count: number;
entityName ​
ts
entityName: string;
field ​
ts
field: string;
legalBasis ​
ts
legalBasis: string;
until? ​
ts
optional until?: string;

verificationResidual? ​
ts
optional verificationResidual?: {
  count: number;
  entityName: string;
}[];

Defined in: src/types.ts:72

count ​
ts
count: number;
entityName ​
ts
entityName: string;

RequestStorage ​

Defined in: src/storage/request-storage.interface.ts:3

Methods ​

findById() ​
ts
findById(id): Promise<DataSubjectRequest | null>;

Defined in: src/storage/request-storage.interface.ts:6

Parameters ​
ParameterType
idstring
Returns ​

Promise<DataSubjectRequest | null>

insert() ​
ts
insert(req): Promise<void>;

Defined in: src/storage/request-storage.interface.ts:4

Parameters ​
ParameterType
reqDataSubjectRequest
Returns ​

Promise<void>

listByTenant() ​
ts
listByTenant(tenantId, opts?): Promise<DataSubjectRequest[]>;

Defined in: src/storage/request-storage.interface.ts:7

Parameters ​
ParameterType
tenantIdstring
opts?{ state?: RequestState; }
opts.state?RequestState
Returns ​

Promise<DataSubjectRequest[]>

listOverdue() ​
ts
listOverdue(now): Promise<DataSubjectRequest[]>;

Defined in: src/storage/request-storage.interface.ts:11

Parameters ​
ParameterType
nowDate
Returns ​

Promise<DataSubjectRequest[]>

update() ​
ts
update(id, patch): Promise<void>;

Defined in: src/storage/request-storage.interface.ts:5

Parameters ​
ParameterType
idstring
patchPartial<DataSubjectRequest>
Returns ​

Promise<void>

Type Aliases ​

DataSubjectErrorCode ​

ts
type DataSubjectErrorCode = typeof DataSubjectErrorCode[keyof typeof DataSubjectErrorCode];

Defined in: src/errors.ts:1


DataSubjectOutboxEvent ​

ts
type DataSubjectOutboxEvent =
  | {
  payload: {
     requestId: string;
     requestType: RequestType;
     subjectId: string;
     tenantId: string;
  };
  type: "data_subject.request_created";
}
  | {
  payload: {
     requestedAt: string;
     requestId: string;
     subjectId: string;
     tenantId: string;
  };
  type: "data_subject.erasure_requested";
}
  | {
  payload: {
     artifactHash: string;
     requestId: string;
     requestType: RequestType;
     state: "completed";
     tenantId: string;
  };
  type: "data_subject.request_completed";
}
  | {
  payload: {
     failureReason: string;
     requestId: string;
     requestType: RequestType;
     tenantId: string;
  };
  type: "data_subject.request_failed";
};

Defined in: src/types.ts:111


PolicyEntry ​

ts
type PolicyEntry =
  | "delete"
  | {
  strategy: "delete";
}
  | {
  replacement: string | number | null;
  strategy: "anonymize";
}
  | {
  legalBasis: string;
  pseudonymize?: "hmac" | "none";
  strategy: "retain";
  until?: string;
};

Defined in: src/types.ts:5


RequestEntityStrategy ​

ts
type RequestEntityStrategy = Strategy | "mixed" | "export";

Defined in: src/types.ts:2


RequestState ​

ts
type RequestState = "created" | "validating" | "processing" | "completed" | "failed";

Defined in: src/types.ts:40


RequestType ​

ts
type RequestType = "export" | "erase";

Defined in: src/types.ts:39


RowLevel ​

ts
type RowLevel = "delete-row" | "delete-fields";

Defined in: src/types.ts:3


Strategy ​

ts
type Strategy = "delete" | "anonymize" | "retain";

Defined in: src/types.ts:1

Variables ​

DATA_SUBJECT_REGISTRY ​

ts
const DATA_SUBJECT_REGISTRY: typeof DATA_SUBJECT_REGISTRY;

Defined in: src/data-subject.module.ts:11


DataSubjectErrorCode ​

ts
const DataSubjectErrorCode: {
  AnonymizeDynamicReplacement: "dsr_anonymize_dynamic_replacement";
  ArtifactWriteFailed: "dsr_artifact_write_failed";
  EntityAlreadyRegistered: "dsr_entity_already_registered";
  EvidenceReportInvalid: "dsr_evidence_report_invalid";
  InvalidPolicy: "dsr_invalid_policy";
  InvalidStateTransition: "dsr_invalid_state_transition";
  RequestConflict: "dsr_request_conflict";
  RequestNotFound: "dsr_request_not_found";
  SubjectNotFound: "dsr_subject_not_found";
  UnregisteredEntity: "dsr_unregistered_entity";
  VerificationFailed: "dsr_verification_failed";
};

Defined in: src/errors.ts:1

Type Declaration ​

NameTypeDefault valueDefined in
AnonymizeDynamicReplacement"dsr_anonymize_dynamic_replacement"'dsr_anonymize_dynamic_replacement'src/errors.ts:6
ArtifactWriteFailed"dsr_artifact_write_failed"'dsr_artifact_write_failed'src/errors.ts:10
EntityAlreadyRegistered"dsr_entity_already_registered"'dsr_entity_already_registered'src/errors.ts:7
EvidenceReportInvalid"dsr_evidence_report_invalid"'dsr_evidence_report_invalid'src/errors.ts:12
InvalidPolicy"dsr_invalid_policy"'dsr_invalid_policy'src/errors.ts:4
InvalidStateTransition"dsr_invalid_state_transition"'dsr_invalid_state_transition'src/errors.ts:11
RequestConflict"dsr_request_conflict"'dsr_request_conflict'src/errors.ts:8
RequestNotFound"dsr_request_not_found"'dsr_request_not_found'src/errors.ts:9
SubjectNotFound"dsr_subject_not_found"'dsr_subject_not_found'src/errors.ts:2
UnregisteredEntity"dsr_unregistered_entity"'dsr_unregistered_entity'src/errors.ts:3
VerificationFailed"dsr_verification_failed"'dsr_verification_failed'src/errors.ts:5

Functions ​

buildErasureEvidenceArtifact() ​

ts
function buildErasureEvidenceArtifact(input): ErasureEvidenceArtifact;

Defined in: src/erasure-evidence.ts:15

Parameters ​

ParameterType
inputBuildErasureEvidenceInput

Returns ​

ErasureEvidenceArtifact


compilePolicy() ​

ts
function compilePolicy(spec, opts?): EntityPolicy;

Defined in: src/policy-compiler.ts:16

Parameters ​

ParameterType
specPolicySpec
optsCompileOptions

Returns ​

EntityPolicy


erasureEvidenceArtifactKey() ​

ts
function erasureEvidenceArtifactKey(tenantId, requestId): string;

Defined in: src/artifacts.ts:11

Parameters ​

ParameterType
tenantIdstring
requestIdstring

Returns ​

string


exportArtifactKey() ​

ts
function exportArtifactKey(tenantId, requestId): string;

Defined in: src/artifacts.ts:7

Parameters ​

ParameterType
tenantIdstring
requestIdstring

Returns ​

string


formatLintReport() ​

ts
function formatLintReport(report): string;

Defined in: src/lint/lint.ts:157

Parameters ​

ParameterType
reportDataSubjectLintReport

Returns ​

string


fromPrisma() ​

ts
function fromPrisma(opts): EntityExecutor;

Defined in: src/prisma/from-prisma.ts:22

Parameters ​

ParameterType
optsFromPrismaOptions

Returns ​

EntityExecutor


lintPrismaSchema() ​

ts
function lintPrismaSchema(schemaSource, config?): DataSubjectLintReport;

Defined in: src/lint/lint.ts:23

Parameters ​

ParameterType
schemaSourcestring
configDataSubjectLintConfig

Returns ​

DataSubjectLintReport


parsePrismaSchema() ​

ts
function parsePrismaSchema(source): PrismaSchemaModel[];

Defined in: src/lint/prisma-schema.ts:13

Parameters ​

ParameterType
sourcestring

Returns ​

PrismaSchemaModel[]


sha256Hex() ​

ts
function sha256Hex(body): string;

Defined in: src/artifacts.ts:3

Parameters ​

ParameterType
bodystring | Buffer<ArrayBufferLike>

Returns ​

string


shouldFailLint() ​

ts
function shouldFailLint(report, failOn): boolean;

Defined in: src/lint/lint.ts:173

Parameters ​

ParameterType
reportDataSubjectLintReport
failOnDataSubjectLintSeverity

Returns ​

boolean


validateLegalBasis() ​

ts
function validateLegalBasis(value, opts?): string | null;

Defined in: src/legal-basis.ts:7

Parameters ​

ParameterType
valuestring
optsLegalBasisOptions

Returns ​

string | null


validateRegistry() ​

ts
function validateRegistry(registry, opts?): RegistryValidationReport;

Defined in: src/registry-validation.ts:9

Parameters ​

ParameterType
registryRegistry
opts{ requireTenantField?: boolean; }
opts.requireTenantField?boolean

Returns ​

RegistryValidationReport

References ​

DataSubjectLintCode ​

Re-exports DataSubjectLintCode


DataSubjectLintConfig ​

Re-exports DataSubjectLintConfig


DataSubjectLintFinding ​

Re-exports DataSubjectLintFinding


DataSubjectLintRegistryEntry ​

Re-exports DataSubjectLintRegistryEntry


DataSubjectLintReport ​

Re-exports DataSubjectLintReport


DataSubjectLintSeverity ​

Re-exports DataSubjectLintSeverity


DataSubjectLintSuppression ​

Re-exports DataSubjectLintSuppression

Released under the MIT License.