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.