@transcend-io/cli 2.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.yarn/sdks/eslint/package.json +6 -0
- package/.yarn/sdks/prettier/package.json +6 -0
- package/.yarn/sdks/typescript/package.json +6 -0
- package/LICENSE +21 -0
- package/README.md +301 -0
- package/build/cli-pull.d.ts +3 -0
- package/build/cli-pull.d.ts.map +1 -0
- package/build/cli-pull.js +53 -0
- package/build/cli-pull.js.map +1 -0
- package/build/cli-push.d.ts +3 -0
- package/build/cli-push.d.ts.map +1 -0
- package/build/cli-push.js +82 -0
- package/build/cli-push.js.map +1 -0
- package/build/codecs.d.ts +541 -0
- package/build/codecs.d.ts.map +1 -0
- package/build/codecs.js +216 -0
- package/build/codecs.js.map +1 -0
- package/build/constants.d.ts +2 -0
- package/build/constants.d.ts.map +1 -0
- package/build/constants.js +5 -0
- package/build/constants.js.map +1 -0
- package/build/fetchApiKeys.d.ts +21 -0
- package/build/fetchApiKeys.d.ts.map +1 -0
- package/build/fetchApiKeys.js +56 -0
- package/build/fetchApiKeys.js.map +1 -0
- package/build/fetchDataSubjects.d.ts +40 -0
- package/build/fetchDataSubjects.d.ts.map +1 -0
- package/build/fetchDataSubjects.js +85 -0
- package/build/fetchDataSubjects.js.map +1 -0
- package/build/fetchIdentifiers.d.ts +27 -0
- package/build/fetchIdentifiers.d.ts.map +1 -0
- package/build/fetchIdentifiers.js +83 -0
- package/build/fetchIdentifiers.js.map +1 -0
- package/build/gqls.d.ts +16 -0
- package/build/gqls.d.ts.map +1 -0
- package/build/gqls.js +310 -0
- package/build/gqls.js.map +1 -0
- package/build/index.d.ts +4 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +16 -0
- package/build/index.js.map +1 -0
- package/build/logger.d.ts +2 -0
- package/build/logger.d.ts.map +1 -0
- package/build/logger.js +5 -0
- package/build/logger.js.map +1 -0
- package/build/pullTranscendConfiguration.d.ts +11 -0
- package/build/pullTranscendConfiguration.d.ts.map +1 -0
- package/build/pullTranscendConfiguration.js +95 -0
- package/build/pullTranscendConfiguration.js.map +1 -0
- package/build/readTranscendYaml.d.ts +19 -0
- package/build/readTranscendYaml.d.ts.map +1 -0
- package/build/readTranscendYaml.js +47 -0
- package/build/readTranscendYaml.js.map +1 -0
- package/build/syncConfigurationToTranscend.d.ts +11 -0
- package/build/syncConfigurationToTranscend.d.ts.map +1 -0
- package/build/syncConfigurationToTranscend.js +96 -0
- package/build/syncConfigurationToTranscend.js.map +1 -0
- package/build/syncDataSilos.d.ts +144 -0
- package/build/syncDataSilos.d.ts.map +1 -0
- package/build/syncDataSilos.js +178 -0
- package/build/syncDataSilos.js.map +1 -0
- package/build/syncEnrichers.d.ts +45 -0
- package/build/syncEnrichers.d.ts.map +1 -0
- package/build/syncEnrichers.js +69 -0
- package/build/syncEnrichers.js.map +1 -0
- package/build/tests/fetchApiKeys.test.d.ts +1 -0
- package/build/tests/fetchApiKeys.test.d.ts.map +1 -0
- package/build/tests/fetchApiKeys.test.js +3 -0
- package/build/tests/fetchApiKeys.test.js.map +1 -0
- package/build/tests/fetchDataSubjects.test.d.ts +1 -0
- package/build/tests/fetchDataSubjects.test.d.ts.map +1 -0
- package/build/tests/fetchDataSubjects.test.js +3 -0
- package/build/tests/fetchDataSubjects.test.js.map +1 -0
- package/build/tests/fetchIdentifiers.test.d.ts +1 -0
- package/build/tests/fetchIdentifiers.test.d.ts.map +1 -0
- package/build/tests/fetchIdentifiers.test.js +3 -0
- package/build/tests/fetchIdentifiers.test.js.map +1 -0
- package/build/tests/main.test.d.ts +1 -0
- package/build/tests/main.test.d.ts.map +1 -0
- package/build/tests/main.test.js +6 -0
- package/build/tests/main.test.js.map +1 -0
- package/build/tests/readTranscendYaml.test.d.ts +2 -0
- package/build/tests/readTranscendYaml.test.d.ts.map +1 -0
- package/build/tests/readTranscendYaml.test.js +38 -0
- package/build/tests/readTranscendYaml.test.js.map +1 -0
- package/build/tests/syncDataSilos.test.d.ts +1 -0
- package/build/tests/syncDataSilos.test.d.ts.map +1 -0
- package/build/tests/syncDataSilos.test.js +3 -0
- package/build/tests/syncDataSilos.test.js.map +1 -0
- package/build/tests/syncEnrichers.test.d.ts +1 -0
- package/build/tests/syncEnrichers.test.d.ts.map +1 -0
- package/build/tests/syncEnrichers.test.js +3 -0
- package/build/tests/syncEnrichers.test.js.map +1 -0
- package/build/tsbuildinfo +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,541 @@
|
|
|
1
|
+
import * as t from 'io-ts';
|
|
2
|
+
/**
|
|
3
|
+
* Input to define API keys that may be shared across data silos
|
|
4
|
+
* in the data map. When creating new data silos through the yaml
|
|
5
|
+
* cli, it is possible to specify which API key should be associated
|
|
6
|
+
* with the newly created data silo.
|
|
7
|
+
*
|
|
8
|
+
* @see https://docs.transcend.io/docs/authentication
|
|
9
|
+
*/
|
|
10
|
+
export declare const ApiKeyInput: t.TypeC<{
|
|
11
|
+
/** The display title of the enricher */
|
|
12
|
+
title: t.StringC;
|
|
13
|
+
}>;
|
|
14
|
+
/** Type override */
|
|
15
|
+
export declare type ApiKeyInput = t.TypeOf<typeof ApiKeyInput>;
|
|
16
|
+
/**
|
|
17
|
+
* Input to define an enricher
|
|
18
|
+
*
|
|
19
|
+
* Define enricher or pre-flight check webhooks that will be executed
|
|
20
|
+
* prior to privacy request workflows. Some examples may include:
|
|
21
|
+
* - identity enrichment: look up additional identifiers for that user.
|
|
22
|
+
* i.e. map an email address to a user ID
|
|
23
|
+
* - fraud check: auto-cancel requests if the user is flagged for fraudulent behavior
|
|
24
|
+
* - customer check: auto-cancel request for some custom business criteria
|
|
25
|
+
*
|
|
26
|
+
* @see https://docs.transcend.io/docs/identity-enrichment
|
|
27
|
+
*/
|
|
28
|
+
export declare const EnricherInput: t.IntersectionC<[t.TypeC<{
|
|
29
|
+
/** The display title of the enricher */
|
|
30
|
+
title: t.StringC;
|
|
31
|
+
/** The URL of the enricher */
|
|
32
|
+
url: t.StringC;
|
|
33
|
+
/**
|
|
34
|
+
* The name of the identifier that will be the input to this enricher.
|
|
35
|
+
* Whenever a privacy request contains this identifier, the webhook will
|
|
36
|
+
* be called with the value of that identifier as input
|
|
37
|
+
*/
|
|
38
|
+
'input-identifier': t.StringC;
|
|
39
|
+
/**
|
|
40
|
+
* The names of the identifiers that can be resolved by this enricher.
|
|
41
|
+
* i.e. email -> [userId, phone, advertisingId]
|
|
42
|
+
*/
|
|
43
|
+
'output-identifiers': t.ArrayC<t.StringC>;
|
|
44
|
+
}>, t.PartialC<{
|
|
45
|
+
/** Internal description for why the enricher is needed */
|
|
46
|
+
description: t.StringC;
|
|
47
|
+
/** The privacy actions that the enricher should run against */
|
|
48
|
+
'privacy-actions': t.ArrayC<t.KeyofC<{
|
|
49
|
+
AUTOMATED_DECISION_MAKING_OPT_OUT: unknown;
|
|
50
|
+
CONTACT_OPT_OUT: unknown;
|
|
51
|
+
SALE_OPT_OUT: unknown;
|
|
52
|
+
TRACKING_OPT_OUT: unknown;
|
|
53
|
+
ACCESS: unknown;
|
|
54
|
+
ERASURE: unknown;
|
|
55
|
+
ACCOUNT_DELETION: unknown;
|
|
56
|
+
RECTIFICATION: unknown;
|
|
57
|
+
RESTRICTION: unknown;
|
|
58
|
+
DATA_CHECK: unknown;
|
|
59
|
+
}>>;
|
|
60
|
+
}>]>;
|
|
61
|
+
/** Type override */
|
|
62
|
+
export declare type EnricherInput = t.TypeOf<typeof EnricherInput>;
|
|
63
|
+
/**
|
|
64
|
+
* Annotate specific fields within a datapoint. These are often database table columns.
|
|
65
|
+
* Fields can also be a JSON object or separate file.
|
|
66
|
+
*/
|
|
67
|
+
export declare const FieldInput: t.IntersectionC<[t.TypeC<{
|
|
68
|
+
/** The unique key of the field */
|
|
69
|
+
key: t.StringC;
|
|
70
|
+
}>, t.PartialC<{
|
|
71
|
+
/** Display title of the field */
|
|
72
|
+
title: t.StringC;
|
|
73
|
+
/** The unique key of the datapoint. When a database, this is the table name. */
|
|
74
|
+
key: t.StringC;
|
|
75
|
+
/** Description of the field */
|
|
76
|
+
description: t.StringC;
|
|
77
|
+
}>]>;
|
|
78
|
+
/** Type override */
|
|
79
|
+
export declare type FieldInput = t.TypeOf<typeof FieldInput>;
|
|
80
|
+
/**
|
|
81
|
+
* Datapoints are the different types of data models that existing within your data silo.
|
|
82
|
+
* If the data silo is a database, these would be your tables.
|
|
83
|
+
* Note: These are currently called "datapoints" in the Transcend UI and documentation.
|
|
84
|
+
*
|
|
85
|
+
* @see https://docs.transcend.io/docs/the-data-map#datapoints
|
|
86
|
+
*/
|
|
87
|
+
export declare const DatapointInput: t.IntersectionC<[t.TypeC<{
|
|
88
|
+
/** The display title of the enricher */
|
|
89
|
+
title: t.StringC;
|
|
90
|
+
/** The unique key of the datapoint. When a database, this is the table name. */
|
|
91
|
+
key: t.StringC;
|
|
92
|
+
}>, t.PartialC<{
|
|
93
|
+
/** Internal description for why the enricher is needed */
|
|
94
|
+
description: t.StringC;
|
|
95
|
+
/**
|
|
96
|
+
* What is the purpose of processing for this datapoint/table?
|
|
97
|
+
*
|
|
98
|
+
* @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
|
|
99
|
+
*/
|
|
100
|
+
purpose: t.KeyofC<{
|
|
101
|
+
ESSENTIAL: unknown;
|
|
102
|
+
ADDITIONAL_FUNCTIONALITY: unknown;
|
|
103
|
+
ADVERTISING: unknown;
|
|
104
|
+
MARKETING: unknown;
|
|
105
|
+
ANALYTICS: unknown;
|
|
106
|
+
PERSONALIZATION: unknown;
|
|
107
|
+
OPERATION_SECURITY: unknown;
|
|
108
|
+
LEGAL: unknown;
|
|
109
|
+
TRANSFER: unknown;
|
|
110
|
+
SALE: unknown;
|
|
111
|
+
HR: unknown;
|
|
112
|
+
OTHER: unknown;
|
|
113
|
+
UNSPECIFIED: unknown;
|
|
114
|
+
}>;
|
|
115
|
+
/**
|
|
116
|
+
* The category of personal data for this datapoint
|
|
117
|
+
*
|
|
118
|
+
* @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
|
|
119
|
+
*/
|
|
120
|
+
category: t.KeyofC<{
|
|
121
|
+
OTHER: unknown;
|
|
122
|
+
UNSPECIFIED: unknown;
|
|
123
|
+
FINANCIAL: unknown;
|
|
124
|
+
HEALTH: unknown;
|
|
125
|
+
CONTACT: unknown;
|
|
126
|
+
LOCATION: unknown;
|
|
127
|
+
DEMOGRAPHIC: unknown;
|
|
128
|
+
ID: unknown;
|
|
129
|
+
ONLINE_ACTIVITY: unknown;
|
|
130
|
+
USER_PROFILE: unknown;
|
|
131
|
+
SOCIAL_MEDIA: unknown;
|
|
132
|
+
CONNECTION: unknown;
|
|
133
|
+
TRACKING: unknown;
|
|
134
|
+
DEVICE: unknown;
|
|
135
|
+
SURVEY: unknown;
|
|
136
|
+
}>;
|
|
137
|
+
/**
|
|
138
|
+
* The SQL queries that should be run for that datapoint in a privacy request.
|
|
139
|
+
*
|
|
140
|
+
* @see https://github.com/transcend-io/privacy-types/blob/main/src/actions.ts
|
|
141
|
+
*/
|
|
142
|
+
'privacy-action-queries': t.PartialC<{
|
|
143
|
+
AUTOMATED_DECISION_MAKING_OPT_OUT: t.StringC;
|
|
144
|
+
CONTACT_OPT_OUT: t.StringC;
|
|
145
|
+
SALE_OPT_OUT: t.StringC;
|
|
146
|
+
TRACKING_OPT_OUT: t.StringC;
|
|
147
|
+
ACCESS: t.StringC;
|
|
148
|
+
ERASURE: t.StringC;
|
|
149
|
+
ACCOUNT_DELETION: t.StringC;
|
|
150
|
+
RECTIFICATION: t.StringC;
|
|
151
|
+
RESTRICTION: t.StringC;
|
|
152
|
+
}>;
|
|
153
|
+
/**
|
|
154
|
+
* The types of privacy actions that this datapoint can implement
|
|
155
|
+
*
|
|
156
|
+
* @see https://github.com/transcend-io/privacy-types/blob/main/src/actions.ts
|
|
157
|
+
*/
|
|
158
|
+
'privacy-actions': t.ArrayC<t.KeyofC<{
|
|
159
|
+
AUTOMATED_DECISION_MAKING_OPT_OUT: unknown;
|
|
160
|
+
CONTACT_OPT_OUT: unknown;
|
|
161
|
+
SALE_OPT_OUT: unknown;
|
|
162
|
+
TRACKING_OPT_OUT: unknown;
|
|
163
|
+
ACCESS: unknown;
|
|
164
|
+
ERASURE: unknown;
|
|
165
|
+
ACCOUNT_DELETION: unknown;
|
|
166
|
+
RECTIFICATION: unknown;
|
|
167
|
+
RESTRICTION: unknown;
|
|
168
|
+
}>>;
|
|
169
|
+
/**
|
|
170
|
+
* Provide field-level metadata for this datapoint.
|
|
171
|
+
* This is often the column metadata
|
|
172
|
+
*/
|
|
173
|
+
fields: t.ArrayC<t.IntersectionC<[t.TypeC<{
|
|
174
|
+
/** The unique key of the field */
|
|
175
|
+
key: t.StringC;
|
|
176
|
+
}>, t.PartialC<{
|
|
177
|
+
/** Display title of the field */
|
|
178
|
+
title: t.StringC;
|
|
179
|
+
/** The unique key of the datapoint. When a database, this is the table name. */
|
|
180
|
+
key: t.StringC;
|
|
181
|
+
/** Description of the field */
|
|
182
|
+
description: t.StringC;
|
|
183
|
+
}>]>>;
|
|
184
|
+
}>]>;
|
|
185
|
+
/** Type override */
|
|
186
|
+
export declare type DatapointInput = t.TypeOf<typeof DatapointInput>;
|
|
187
|
+
/**
|
|
188
|
+
* Input to define a data silo
|
|
189
|
+
*
|
|
190
|
+
* Define the data silos in your data map. A data silo can be a database,
|
|
191
|
+
* or a web service that may use a collection of different data stores under the hood.
|
|
192
|
+
*
|
|
193
|
+
* @see https://docs.transcend.io/docs/the-data-map#data-silos
|
|
194
|
+
*/
|
|
195
|
+
export declare const DataSiloInput: t.IntersectionC<[t.TypeC<{
|
|
196
|
+
/** The display title of the data silo */
|
|
197
|
+
title: t.StringC;
|
|
198
|
+
/**
|
|
199
|
+
* The type of integration. Common internal system types:
|
|
200
|
+
* server | database | cron | promptAPerson
|
|
201
|
+
*/
|
|
202
|
+
integrationName: t.StringC;
|
|
203
|
+
}>, t.PartialC<{
|
|
204
|
+
/** A description for that data silo */
|
|
205
|
+
description: t.StringC;
|
|
206
|
+
/** The webhook URL to notify for data privacy requests */
|
|
207
|
+
url: t.StringC;
|
|
208
|
+
/** The email address of the user to notify when a promptAPerson integration */
|
|
209
|
+
'notify-email-address': t.StringC;
|
|
210
|
+
/** The title of the API key that will be used to respond to privacy requests */
|
|
211
|
+
'api-key-title': t.StringC;
|
|
212
|
+
/**
|
|
213
|
+
* Specify which data subjects may have personally-identifiable-information (PII) within this system
|
|
214
|
+
* This field can be omitted, and the default assumption will be that the system may potentially
|
|
215
|
+
* contain PII for any potential data subject type.
|
|
216
|
+
*/
|
|
217
|
+
'data-subjects': t.ArrayC<t.StringC>;
|
|
218
|
+
/**
|
|
219
|
+
* When this data silo implements a privacy request, these are the identifiers
|
|
220
|
+
* that should be looked up within this system.
|
|
221
|
+
*/
|
|
222
|
+
'identity-keys': t.ArrayC<t.StringC>;
|
|
223
|
+
/**
|
|
224
|
+
* When a data erasure request is being performed, this data silo should not be deleted from
|
|
225
|
+
* until all of the following data silos were deleted first. This list can contain other internal
|
|
226
|
+
* systems defined in this file, as well as any of the SaaS tools connected in your Transcend instance.
|
|
227
|
+
*/
|
|
228
|
+
'deletion-dependencies': t.ArrayC<t.StringC>;
|
|
229
|
+
/**
|
|
230
|
+
* The email addresses of the employees within your company that are the go-to individuals
|
|
231
|
+
* for managing this data silo
|
|
232
|
+
*/
|
|
233
|
+
owners: t.ArrayC<t.StringC>;
|
|
234
|
+
/**
|
|
235
|
+
* Specify this flag if the data silo is under development and should not be included
|
|
236
|
+
* in production privacy request workflows. Will still sync metadata to app.transcend.io.
|
|
237
|
+
*/
|
|
238
|
+
disabled: t.BooleanC;
|
|
239
|
+
/**
|
|
240
|
+
* Datapoints defined within this data silo, see comment of `DatapointInput`
|
|
241
|
+
* for further details.
|
|
242
|
+
*/
|
|
243
|
+
datapoints: t.ArrayC<t.IntersectionC<[t.TypeC<{
|
|
244
|
+
/** The display title of the enricher */
|
|
245
|
+
title: t.StringC;
|
|
246
|
+
/** The unique key of the datapoint. When a database, this is the table name. */
|
|
247
|
+
key: t.StringC;
|
|
248
|
+
}>, t.PartialC<{
|
|
249
|
+
/** Internal description for why the enricher is needed */
|
|
250
|
+
description: t.StringC;
|
|
251
|
+
/**
|
|
252
|
+
* What is the purpose of processing for this datapoint/table?
|
|
253
|
+
*
|
|
254
|
+
* @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
|
|
255
|
+
*/
|
|
256
|
+
purpose: t.KeyofC<{
|
|
257
|
+
ESSENTIAL: unknown;
|
|
258
|
+
ADDITIONAL_FUNCTIONALITY: unknown;
|
|
259
|
+
ADVERTISING: unknown;
|
|
260
|
+
MARKETING: unknown;
|
|
261
|
+
ANALYTICS: unknown;
|
|
262
|
+
PERSONALIZATION: unknown;
|
|
263
|
+
OPERATION_SECURITY: unknown;
|
|
264
|
+
LEGAL: unknown;
|
|
265
|
+
TRANSFER: unknown;
|
|
266
|
+
SALE: unknown;
|
|
267
|
+
HR: unknown;
|
|
268
|
+
OTHER: unknown;
|
|
269
|
+
UNSPECIFIED: unknown;
|
|
270
|
+
}>;
|
|
271
|
+
/**
|
|
272
|
+
* The category of personal data for this datapoint
|
|
273
|
+
*
|
|
274
|
+
* @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
|
|
275
|
+
*/
|
|
276
|
+
category: t.KeyofC<{
|
|
277
|
+
OTHER: unknown;
|
|
278
|
+
UNSPECIFIED: unknown;
|
|
279
|
+
FINANCIAL: unknown;
|
|
280
|
+
HEALTH: unknown;
|
|
281
|
+
CONTACT: unknown;
|
|
282
|
+
LOCATION: unknown;
|
|
283
|
+
DEMOGRAPHIC: unknown;
|
|
284
|
+
ID: unknown;
|
|
285
|
+
ONLINE_ACTIVITY: unknown;
|
|
286
|
+
USER_PROFILE: unknown;
|
|
287
|
+
SOCIAL_MEDIA: unknown;
|
|
288
|
+
CONNECTION: unknown;
|
|
289
|
+
TRACKING: unknown;
|
|
290
|
+
DEVICE: unknown;
|
|
291
|
+
SURVEY: unknown;
|
|
292
|
+
}>;
|
|
293
|
+
/**
|
|
294
|
+
* The SQL queries that should be run for that datapoint in a privacy request.
|
|
295
|
+
*
|
|
296
|
+
* @see https://github.com/transcend-io/privacy-types/blob/main/src/actions.ts
|
|
297
|
+
*/
|
|
298
|
+
'privacy-action-queries': t.PartialC<{
|
|
299
|
+
AUTOMATED_DECISION_MAKING_OPT_OUT: t.StringC;
|
|
300
|
+
CONTACT_OPT_OUT: t.StringC;
|
|
301
|
+
SALE_OPT_OUT: t.StringC;
|
|
302
|
+
TRACKING_OPT_OUT: t.StringC;
|
|
303
|
+
ACCESS: t.StringC;
|
|
304
|
+
ERASURE: t.StringC;
|
|
305
|
+
ACCOUNT_DELETION: t.StringC;
|
|
306
|
+
RECTIFICATION: t.StringC;
|
|
307
|
+
RESTRICTION: t.StringC;
|
|
308
|
+
}>;
|
|
309
|
+
/**
|
|
310
|
+
* The types of privacy actions that this datapoint can implement
|
|
311
|
+
*
|
|
312
|
+
* @see https://github.com/transcend-io/privacy-types/blob/main/src/actions.ts
|
|
313
|
+
*/
|
|
314
|
+
'privacy-actions': t.ArrayC<t.KeyofC<{
|
|
315
|
+
AUTOMATED_DECISION_MAKING_OPT_OUT: unknown;
|
|
316
|
+
CONTACT_OPT_OUT: unknown;
|
|
317
|
+
SALE_OPT_OUT: unknown;
|
|
318
|
+
TRACKING_OPT_OUT: unknown;
|
|
319
|
+
ACCESS: unknown;
|
|
320
|
+
ERASURE: unknown;
|
|
321
|
+
ACCOUNT_DELETION: unknown;
|
|
322
|
+
RECTIFICATION: unknown;
|
|
323
|
+
RESTRICTION: unknown;
|
|
324
|
+
}>>;
|
|
325
|
+
/**
|
|
326
|
+
* Provide field-level metadata for this datapoint.
|
|
327
|
+
* This is often the column metadata
|
|
328
|
+
*/
|
|
329
|
+
fields: t.ArrayC<t.IntersectionC<[t.TypeC<{
|
|
330
|
+
/** The unique key of the field */
|
|
331
|
+
key: t.StringC;
|
|
332
|
+
}>, t.PartialC<{
|
|
333
|
+
/** Display title of the field */
|
|
334
|
+
title: t.StringC;
|
|
335
|
+
/** The unique key of the datapoint. When a database, this is the table name. */
|
|
336
|
+
key: t.StringC;
|
|
337
|
+
/** Description of the field */
|
|
338
|
+
description: t.StringC;
|
|
339
|
+
}>]>>;
|
|
340
|
+
}>]>>;
|
|
341
|
+
}>]>;
|
|
342
|
+
/** Type override */
|
|
343
|
+
export declare type DataSiloInput = t.TypeOf<typeof DataSiloInput>;
|
|
344
|
+
export declare const TranscendInput: t.PartialC<{
|
|
345
|
+
/**
|
|
346
|
+
* API key definitions
|
|
347
|
+
*/
|
|
348
|
+
'api-keys': t.ArrayC<t.TypeC<{
|
|
349
|
+
/** The display title of the enricher */
|
|
350
|
+
title: t.StringC;
|
|
351
|
+
}>>;
|
|
352
|
+
/**
|
|
353
|
+
* Enricher definitions
|
|
354
|
+
*/
|
|
355
|
+
enrichers: t.ArrayC<t.IntersectionC<[t.TypeC<{
|
|
356
|
+
/** The display title of the enricher */
|
|
357
|
+
title: t.StringC;
|
|
358
|
+
/** The URL of the enricher */
|
|
359
|
+
url: t.StringC;
|
|
360
|
+
/**
|
|
361
|
+
* The name of the identifier that will be the input to this enricher.
|
|
362
|
+
* Whenever a privacy request contains this identifier, the webhook will
|
|
363
|
+
* be called with the value of that identifier as input
|
|
364
|
+
*/
|
|
365
|
+
'input-identifier': t.StringC;
|
|
366
|
+
/**
|
|
367
|
+
* The names of the identifiers that can be resolved by this enricher.
|
|
368
|
+
* i.e. email -> [userId, phone, advertisingId]
|
|
369
|
+
*/
|
|
370
|
+
'output-identifiers': t.ArrayC<t.StringC>;
|
|
371
|
+
}>, t.PartialC<{
|
|
372
|
+
/** Internal description for why the enricher is needed */
|
|
373
|
+
description: t.StringC;
|
|
374
|
+
/** The privacy actions that the enricher should run against */
|
|
375
|
+
'privacy-actions': t.ArrayC<t.KeyofC<{
|
|
376
|
+
AUTOMATED_DECISION_MAKING_OPT_OUT: unknown;
|
|
377
|
+
CONTACT_OPT_OUT: unknown;
|
|
378
|
+
SALE_OPT_OUT: unknown;
|
|
379
|
+
TRACKING_OPT_OUT: unknown;
|
|
380
|
+
ACCESS: unknown;
|
|
381
|
+
ERASURE: unknown;
|
|
382
|
+
ACCOUNT_DELETION: unknown;
|
|
383
|
+
RECTIFICATION: unknown;
|
|
384
|
+
RESTRICTION: unknown;
|
|
385
|
+
DATA_CHECK: unknown;
|
|
386
|
+
}>>;
|
|
387
|
+
}>]>>;
|
|
388
|
+
/**
|
|
389
|
+
* Data silo definitions
|
|
390
|
+
*/
|
|
391
|
+
'data-silos': t.ArrayC<t.IntersectionC<[t.TypeC<{
|
|
392
|
+
/** The display title of the data silo */
|
|
393
|
+
title: t.StringC;
|
|
394
|
+
/**
|
|
395
|
+
* The type of integration. Common internal system types:
|
|
396
|
+
* server | database | cron | promptAPerson
|
|
397
|
+
*/
|
|
398
|
+
integrationName: t.StringC;
|
|
399
|
+
}>, t.PartialC<{
|
|
400
|
+
/** A description for that data silo */
|
|
401
|
+
description: t.StringC;
|
|
402
|
+
/** The webhook URL to notify for data privacy requests */
|
|
403
|
+
url: t.StringC;
|
|
404
|
+
/** The email address of the user to notify when a promptAPerson integration */
|
|
405
|
+
'notify-email-address': t.StringC;
|
|
406
|
+
/** The title of the API key that will be used to respond to privacy requests */
|
|
407
|
+
'api-key-title': t.StringC;
|
|
408
|
+
/**
|
|
409
|
+
* Specify which data subjects may have personally-identifiable-information (PII) within this system
|
|
410
|
+
* This field can be omitted, and the default assumption will be that the system may potentially
|
|
411
|
+
* contain PII for any potential data subject type.
|
|
412
|
+
*/
|
|
413
|
+
'data-subjects': t.ArrayC<t.StringC>;
|
|
414
|
+
/**
|
|
415
|
+
* When this data silo implements a privacy request, these are the identifiers
|
|
416
|
+
* that should be looked up within this system.
|
|
417
|
+
*/
|
|
418
|
+
'identity-keys': t.ArrayC<t.StringC>;
|
|
419
|
+
/**
|
|
420
|
+
* When a data erasure request is being performed, this data silo should not be deleted from
|
|
421
|
+
* until all of the following data silos were deleted first. This list can contain other internal
|
|
422
|
+
* systems defined in this file, as well as any of the SaaS tools connected in your Transcend instance.
|
|
423
|
+
*/
|
|
424
|
+
'deletion-dependencies': t.ArrayC<t.StringC>;
|
|
425
|
+
/**
|
|
426
|
+
* The email addresses of the employees within your company that are the go-to individuals
|
|
427
|
+
* for managing this data silo
|
|
428
|
+
*/
|
|
429
|
+
owners: t.ArrayC<t.StringC>;
|
|
430
|
+
/**
|
|
431
|
+
* Specify this flag if the data silo is under development and should not be included
|
|
432
|
+
* in production privacy request workflows. Will still sync metadata to app.transcend.io.
|
|
433
|
+
*/
|
|
434
|
+
disabled: t.BooleanC;
|
|
435
|
+
/**
|
|
436
|
+
* Datapoints defined within this data silo, see comment of `DatapointInput`
|
|
437
|
+
* for further details.
|
|
438
|
+
*/
|
|
439
|
+
datapoints: t.ArrayC<t.IntersectionC<[t.TypeC<{
|
|
440
|
+
/** The display title of the enricher */
|
|
441
|
+
title: t.StringC;
|
|
442
|
+
/** The unique key of the datapoint. When a database, this is the table name. */
|
|
443
|
+
key: t.StringC;
|
|
444
|
+
}>, t.PartialC<{
|
|
445
|
+
/** Internal description for why the enricher is needed */
|
|
446
|
+
description: t.StringC;
|
|
447
|
+
/**
|
|
448
|
+
* What is the purpose of processing for this datapoint/table?
|
|
449
|
+
*
|
|
450
|
+
* @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
|
|
451
|
+
*/
|
|
452
|
+
purpose: t.KeyofC<{
|
|
453
|
+
ESSENTIAL: unknown;
|
|
454
|
+
ADDITIONAL_FUNCTIONALITY: unknown;
|
|
455
|
+
ADVERTISING: unknown;
|
|
456
|
+
MARKETING: unknown;
|
|
457
|
+
ANALYTICS: unknown;
|
|
458
|
+
PERSONALIZATION: unknown;
|
|
459
|
+
OPERATION_SECURITY: unknown;
|
|
460
|
+
LEGAL: unknown;
|
|
461
|
+
TRANSFER: unknown;
|
|
462
|
+
SALE: unknown;
|
|
463
|
+
HR: unknown;
|
|
464
|
+
OTHER: unknown;
|
|
465
|
+
UNSPECIFIED: unknown;
|
|
466
|
+
}>;
|
|
467
|
+
/**
|
|
468
|
+
* The category of personal data for this datapoint
|
|
469
|
+
*
|
|
470
|
+
* @see https://github.com/transcend-io/privacy-types/blob/main/src/objects.ts
|
|
471
|
+
*/
|
|
472
|
+
category: t.KeyofC<{
|
|
473
|
+
OTHER: unknown;
|
|
474
|
+
UNSPECIFIED: unknown;
|
|
475
|
+
FINANCIAL: unknown;
|
|
476
|
+
HEALTH: unknown;
|
|
477
|
+
CONTACT: unknown;
|
|
478
|
+
LOCATION: unknown;
|
|
479
|
+
DEMOGRAPHIC: unknown;
|
|
480
|
+
ID: unknown;
|
|
481
|
+
ONLINE_ACTIVITY: unknown;
|
|
482
|
+
USER_PROFILE: unknown;
|
|
483
|
+
SOCIAL_MEDIA: unknown;
|
|
484
|
+
CONNECTION: unknown;
|
|
485
|
+
TRACKING: unknown;
|
|
486
|
+
DEVICE: unknown;
|
|
487
|
+
SURVEY: unknown;
|
|
488
|
+
}>;
|
|
489
|
+
/**
|
|
490
|
+
* The SQL queries that should be run for that datapoint in a privacy request.
|
|
491
|
+
*
|
|
492
|
+
* @see https://github.com/transcend-io/privacy-types/blob/main/src/actions.ts
|
|
493
|
+
*/
|
|
494
|
+
'privacy-action-queries': t.PartialC<{
|
|
495
|
+
AUTOMATED_DECISION_MAKING_OPT_OUT: t.StringC;
|
|
496
|
+
CONTACT_OPT_OUT: t.StringC;
|
|
497
|
+
SALE_OPT_OUT: t.StringC;
|
|
498
|
+
TRACKING_OPT_OUT: t.StringC;
|
|
499
|
+
ACCESS: t.StringC;
|
|
500
|
+
ERASURE: t.StringC;
|
|
501
|
+
ACCOUNT_DELETION: t.StringC;
|
|
502
|
+
RECTIFICATION: t.StringC;
|
|
503
|
+
RESTRICTION: t.StringC;
|
|
504
|
+
}>;
|
|
505
|
+
/**
|
|
506
|
+
* The types of privacy actions that this datapoint can implement
|
|
507
|
+
*
|
|
508
|
+
* @see https://github.com/transcend-io/privacy-types/blob/main/src/actions.ts
|
|
509
|
+
*/
|
|
510
|
+
'privacy-actions': t.ArrayC<t.KeyofC<{
|
|
511
|
+
AUTOMATED_DECISION_MAKING_OPT_OUT: unknown;
|
|
512
|
+
CONTACT_OPT_OUT: unknown;
|
|
513
|
+
SALE_OPT_OUT: unknown;
|
|
514
|
+
TRACKING_OPT_OUT: unknown;
|
|
515
|
+
ACCESS: unknown;
|
|
516
|
+
ERASURE: unknown;
|
|
517
|
+
ACCOUNT_DELETION: unknown;
|
|
518
|
+
RECTIFICATION: unknown;
|
|
519
|
+
RESTRICTION: unknown;
|
|
520
|
+
}>>;
|
|
521
|
+
/**
|
|
522
|
+
* Provide field-level metadata for this datapoint.
|
|
523
|
+
* This is often the column metadata
|
|
524
|
+
*/
|
|
525
|
+
fields: t.ArrayC<t.IntersectionC<[t.TypeC<{
|
|
526
|
+
/** The unique key of the field */
|
|
527
|
+
key: t.StringC;
|
|
528
|
+
}>, t.PartialC<{
|
|
529
|
+
/** Display title of the field */
|
|
530
|
+
title: t.StringC;
|
|
531
|
+
/** The unique key of the datapoint. When a database, this is the table name. */
|
|
532
|
+
key: t.StringC;
|
|
533
|
+
/** Description of the field */
|
|
534
|
+
description: t.StringC;
|
|
535
|
+
}>]>>;
|
|
536
|
+
}>]>>;
|
|
537
|
+
}>]>>;
|
|
538
|
+
}>;
|
|
539
|
+
/** Type override */
|
|
540
|
+
export declare type TranscendInput = t.TypeOf<typeof TranscendInput>;
|
|
541
|
+
//# sourceMappingURL=codecs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codecs.d.ts","sourceRoot":"","sources":["../src/codecs.ts"],"names":[],"mappings":"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"}
|