@transcend-io/cli 4.86.0 → 4.88.1
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/README.md +8 -1
- package/build/cli-pull-consent-metrics.js +1 -1
- package/build/cli-pull-consent-metrics.js.map +1 -1
- package/build/cli-pull.js +3 -2
- package/build/cli-pull.js.map +1 -1
- package/build/cli-push.js +1 -1
- package/build/cli-push.js.map +1 -1
- package/build/cli-request-upload.js +2 -1
- package/build/cli-request-upload.js.map +1 -1
- package/build/codecs.d.ts +10778 -0
- package/build/codecs.d.ts.map +1 -1
- package/build/codecs.js +4 -0
- package/build/codecs.js.map +1 -1
- package/build/constants.d.ts +14 -0
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +51 -1
- package/build/constants.js.map +1 -1
- package/build/enums.d.ts +18 -0
- package/build/enums.d.ts.map +1 -0
- package/build/enums.js +22 -0
- package/build/enums.js.map +1 -0
- package/build/graphql/fetchAllActions.js +1 -1
- package/build/graphql/fetchAllActions.js.map +1 -1
- package/build/graphql/fetchAllAttributeKeys.js +1 -1
- package/build/graphql/fetchAllAttributeKeys.js.map +1 -1
- package/build/graphql/fetchAllAttributes.js +2 -2
- package/build/graphql/fetchAllAttributes.js.map +1 -1
- package/build/graphql/fetchAllBusinessEntities.js +1 -1
- package/build/graphql/fetchAllBusinessEntities.js.map +1 -1
- package/build/graphql/fetchAllCookies.js +1 -1
- package/build/graphql/fetchAllCookies.js.map +1 -1
- package/build/graphql/fetchAllDataFlows.js +1 -1
- package/build/graphql/fetchAllDataFlows.js.map +1 -1
- package/build/graphql/fetchApiKeys.d.ts.map +1 -1
- package/build/graphql/fetchApiKeys.js +7 -4
- package/build/graphql/fetchApiKeys.js.map +1 -1
- package/build/graphql/fetchCatalogs.d.ts.map +1 -1
- package/build/graphql/fetchCatalogs.js +1 -1
- package/build/graphql/fetchCatalogs.js.map +1 -1
- package/build/graphql/fetchConsentManagerId.js +1 -1
- package/build/graphql/fetchConsentManagerId.js.map +1 -1
- package/build/graphql/fetchIdentifiers.js +1 -1
- package/build/graphql/fetchIdentifiers.js.map +1 -1
- package/build/graphql/gqls/RequestDataSilo.d.ts.map +1 -1
- package/build/graphql/gqls/RequestDataSilo.js +12 -1
- package/build/graphql/gqls/RequestDataSilo.js.map +1 -1
- package/build/graphql/gqls/RequestEnricher.d.ts.map +1 -1
- package/build/graphql/gqls/RequestEnricher.js +8 -0
- package/build/graphql/gqls/RequestEnricher.js.map +1 -1
- package/build/graphql/gqls/RequestIdentifier.d.ts.map +1 -1
- package/build/graphql/gqls/RequestIdentifier.js +7 -0
- package/build/graphql/gqls/RequestIdentifier.js.map +1 -1
- package/build/graphql/gqls/action.d.ts.map +1 -1
- package/build/graphql/gqls/action.js +9 -1
- package/build/graphql/gqls/action.js.map +1 -1
- package/build/graphql/gqls/apiKey.d.ts.map +1 -1
- package/build/graphql/gqls/apiKey.js +12 -1
- package/build/graphql/gqls/apiKey.js.map +1 -1
- package/build/graphql/gqls/attribute.d.ts.map +1 -1
- package/build/graphql/gqls/attribute.js +8 -0
- package/build/graphql/gqls/attribute.js.map +1 -1
- package/build/graphql/gqls/attributeKey.d.ts.map +1 -1
- package/build/graphql/gqls/attributeKey.js +4 -0
- package/build/graphql/gqls/attributeKey.js.map +1 -1
- package/build/graphql/gqls/businessEntity.d.ts.map +1 -1
- package/build/graphql/gqls/businessEntity.js +12 -1
- package/build/graphql/gqls/businessEntity.js.map +1 -1
- package/build/graphql/gqls/catalog.d.ts.map +1 -1
- package/build/graphql/gqls/catalog.js +4 -0
- package/build/graphql/gqls/catalog.js.map +1 -1
- package/build/graphql/gqls/consentManager.d.ts.map +1 -1
- package/build/graphql/gqls/consentManager.js +18 -0
- package/build/graphql/gqls/consentManager.js.map +1 -1
- package/build/graphql/gqls/dataPoint.d.ts.map +1 -1
- package/build/graphql/gqls/dataPoint.js +11 -0
- package/build/graphql/gqls/dataPoint.js.map +1 -1
- package/build/graphql/gqls/dataSilo.d.ts +2 -3
- package/build/graphql/gqls/dataSilo.d.ts.map +1 -1
- package/build/graphql/gqls/dataSilo.js +21 -112
- package/build/graphql/gqls/dataSilo.js.map +1 -1
- package/build/graphql/gqls/enricher.d.ts.map +1 -1
- package/build/graphql/gqls/enricher.js +12 -1
- package/build/graphql/gqls/enricher.js.map +1 -1
- package/build/graphql/gqls/identifier.d.ts.map +1 -1
- package/build/graphql/gqls/identifier.js +11 -1
- package/build/graphql/gqls/identifier.js.map +1 -1
- package/build/graphql/gqls/request.d.ts.map +1 -1
- package/build/graphql/gqls/request.js +13 -1
- package/build/graphql/gqls/request.js.map +1 -1
- package/build/graphql/gqls/template.d.ts.map +1 -1
- package/build/graphql/gqls/template.js +4 -0
- package/build/graphql/gqls/template.js.map +1 -1
- package/build/graphql/makeGraphQLRequest.d.ts.map +1 -1
- package/build/graphql/makeGraphQLRequest.js +9 -0
- package/build/graphql/makeGraphQLRequest.js.map +1 -1
- package/build/graphql/pullTranscendConfiguration.d.ts +1 -17
- package/build/graphql/pullTranscendConfiguration.d.ts.map +1 -1
- package/build/graphql/pullTranscendConfiguration.js +28 -43
- package/build/graphql/pullTranscendConfiguration.js.map +1 -1
- package/build/graphql/syncConfigurationToTranscend.d.ts.map +1 -1
- package/build/graphql/syncConfigurationToTranscend.js +14 -39
- package/build/graphql/syncConfigurationToTranscend.js.map +1 -1
- package/build/graphql/syncDataSilos.d.ts +23 -4
- package/build/graphql/syncDataSilos.d.ts.map +1 -1
- package/build/graphql/syncDataSilos.js +212 -137
- package/build/graphql/syncDataSilos.js.map +1 -1
- package/build/graphql/syncEnrichers.js +1 -1
- package/build/graphql/syncEnrichers.js.map +1 -1
- package/build/graphql/syncTemplates.js +1 -1
- package/build/graphql/syncTemplates.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/readTranscendYaml.d.ts +12 -0
- package/build/readTranscendYaml.d.ts.map +1 -1
- package/build/readTranscendYaml.js +34 -14
- package/build/readTranscendYaml.js.map +1 -1
- package/build/requests/submitPrivacyRequest.d.ts +3 -1
- package/build/requests/submitPrivacyRequest.d.ts.map +1 -1
- package/build/requests/submitPrivacyRequest.js +2 -1
- package/build/requests/submitPrivacyRequest.js.map +1 -1
- package/build/requests/uploadPrivacyRequestsFromCsv.d.ts +3 -1
- package/build/requests/uploadPrivacyRequestsFromCsv.d.ts.map +1 -1
- package/build/requests/uploadPrivacyRequestsFromCsv.js +9 -6
- package/build/requests/uploadPrivacyRequestsFromCsv.js.map +1 -1
- package/build/tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -18,9 +18,7 @@ const syncDataSubject_1 = require("./syncDataSubject");
|
|
|
18
18
|
const fetchApiKeys_1 = require("./fetchApiKeys");
|
|
19
19
|
const syncConsentManager_1 = require("./syncConsentManager");
|
|
20
20
|
const fetchAllAttributes_1 = require("./fetchAllAttributes");
|
|
21
|
-
const gqls_1 = require("./gqls");
|
|
22
21
|
const syncBusinessEntities_1 = require("./syncBusinessEntities");
|
|
23
|
-
const makeGraphQLRequest_1 = require("./makeGraphQLRequest");
|
|
24
22
|
const syncDataFlows_1 = require("./syncDataFlows");
|
|
25
23
|
const syncAction_1 = require("./syncAction");
|
|
26
24
|
const syncTemplates_1 = require("./syncTemplates");
|
|
@@ -228,48 +226,25 @@ publishToPrivacyCenter = true, classifyService = false, }) {
|
|
|
228
226
|
const dependencyUpdates = [];
|
|
229
227
|
// Sync data silos
|
|
230
228
|
if (dataSilos) {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
dependencyUpdates.push([
|
|
244
|
-
dataSiloInfo,
|
|
245
|
-
dataSilo['deletion-dependencies'],
|
|
246
|
-
]);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
catch (err) {
|
|
250
|
-
encounteredError = true;
|
|
251
|
-
logger_1.logger.info(colors_1.default.red(`Failed to sync data silo "${dataSilo.title}"! - ${err.message}`));
|
|
229
|
+
const { success, dataSiloTitleToId } = await (0, syncDataSilos_1.syncDataSilos)(dataSilos, client, {
|
|
230
|
+
dataSubjectsByName,
|
|
231
|
+
apiKeysByTitle: apiKeyTitleMap,
|
|
232
|
+
pageSize,
|
|
233
|
+
});
|
|
234
|
+
dataSilos === null || dataSilos === void 0 ? void 0 : dataSilos.forEach((dataSilo) => {
|
|
235
|
+
// Queue up dependency update
|
|
236
|
+
if (dataSilo['deletion-dependencies']) {
|
|
237
|
+
dependencyUpdates.push([
|
|
238
|
+
dataSiloTitleToId[dataSilo.title],
|
|
239
|
+
dataSilo['deletion-dependencies'],
|
|
240
|
+
]);
|
|
252
241
|
}
|
|
253
242
|
});
|
|
254
|
-
|
|
243
|
+
encounteredError = encounteredError || !success;
|
|
255
244
|
}
|
|
256
245
|
// Dependencies updated at the end after all data silos are created
|
|
257
246
|
if (dependencyUpdates.length > 0) {
|
|
258
|
-
|
|
259
|
-
await (0, bluebird_1.mapSeries)(dependencyUpdates, async ([dataSilo, dependencyTitles]) => {
|
|
260
|
-
logger_1.logger.info(colors_1.default.magenta(`Syncing dependencies for data silo "${dataSilo.title}"...`));
|
|
261
|
-
try {
|
|
262
|
-
await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.UPDATE_DATA_SILO, {
|
|
263
|
-
id: dataSilo.id,
|
|
264
|
-
dependedOnDataSiloTitles: dependencyTitles,
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
catch (err) {
|
|
268
|
-
encounteredError = true;
|
|
269
|
-
logger_1.logger.info(colors_1.default.red(`Failed to sync dependencies for data silo "${dataSilo.title}"! - ${err.message}`));
|
|
270
|
-
}
|
|
271
|
-
});
|
|
272
|
-
logger_1.logger.info(colors_1.default.green(`Synced "${dependencyUpdates.length}" data silos!`));
|
|
247
|
+
await (0, syncDataSilos_1.syncDataSiloDependencies)(client, dependencyUpdates);
|
|
273
248
|
}
|
|
274
249
|
if (publishToPrivacyCenter) {
|
|
275
250
|
// TODO: https://transcend.height.app/T-23779
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncConfigurationToTranscend.js","sourceRoot":"","sources":["../../src/graphql/syncConfigurationToTranscend.ts"],"names":[],"mappings":";;;;;;AAGA,sCAAmC;AACnC,oDAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"syncConfigurationToTranscend.js","sourceRoot":"","sources":["../../src/graphql/syncConfigurationToTranscend.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { DataCategoryInput, DataSiloInput, ProcessingPurposeInput } from '../cod
|
|
|
2
2
|
import { GraphQLClient } from 'graphql-request';
|
|
3
3
|
import { DataSubject } from './fetchDataSubjects';
|
|
4
4
|
import { ApiKey } from './fetchApiKeys';
|
|
5
|
-
import { PromptAVendorEmailCompletionLinkType, PromptAVendorEmailSendType, RequestActionObjectResolver } from '@transcend-io/privacy-types';
|
|
5
|
+
import { IsoCountryCode, IsoCountrySubdivisionCode, PromptAVendorEmailCompletionLinkType, PromptAVendorEmailSendType, RequestActionObjectResolver } from '@transcend-io/privacy-types';
|
|
6
6
|
export interface DataSiloAttributeValue {
|
|
7
7
|
/** Key associated to value */
|
|
8
8
|
attributeKey: {
|
|
@@ -205,6 +205,10 @@ export interface DataSiloEnriched {
|
|
|
205
205
|
};
|
|
206
206
|
/** Silo is live */
|
|
207
207
|
isLive: boolean;
|
|
208
|
+
/** Hosting country of data silo */
|
|
209
|
+
country?: IsoCountryCode;
|
|
210
|
+
/** Hosting subdivision data silo */
|
|
211
|
+
countrySubDivision?: IsoCountrySubdivisionCode;
|
|
208
212
|
/**
|
|
209
213
|
* The frequency with which we should be sending emails for this data silo, in milliseconds.
|
|
210
214
|
*/
|
|
@@ -253,12 +257,12 @@ export declare function fetchEnrichedDataSilos(client: GraphQLClient, { ids, pag
|
|
|
253
257
|
/**
|
|
254
258
|
* Sync a data silo configuration
|
|
255
259
|
*
|
|
256
|
-
* @param
|
|
260
|
+
* @param dataSilos - Data silos to sync
|
|
257
261
|
* @param client - GraphQL client
|
|
258
262
|
* @param options - Options
|
|
259
263
|
* @returns Data silo info
|
|
260
264
|
*/
|
|
261
|
-
export declare function
|
|
265
|
+
export declare function syncDataSilos(dataSilos: DataSiloInput[], client: GraphQLClient, { pageSize, dataSubjectsByName, apiKeysByTitle, }: {
|
|
262
266
|
/** Page size */
|
|
263
267
|
pageSize: number;
|
|
264
268
|
/** The data subjects in the organization */
|
|
@@ -269,6 +273,21 @@ export declare function syncDataSilo({ datapoints, 'email-settings': promptAVend
|
|
|
269
273
|
apiKeysByTitle: {
|
|
270
274
|
[title in string]: ApiKey;
|
|
271
275
|
};
|
|
272
|
-
}): Promise<
|
|
276
|
+
}): Promise<{
|
|
277
|
+
/** Whether successfully updated */
|
|
278
|
+
success: boolean;
|
|
279
|
+
/** A mapping between data silo title to data silo ID */
|
|
280
|
+
dataSiloTitleToId: {
|
|
281
|
+
[k in string]: string;
|
|
282
|
+
};
|
|
283
|
+
}>;
|
|
284
|
+
/**
|
|
285
|
+
* Sync data silo dependencies
|
|
286
|
+
*
|
|
287
|
+
* @param client - GraphQL client
|
|
288
|
+
* @param dependencyUpdates - Mapping from [data silo ID, dependency titles]
|
|
289
|
+
* @returns True upon success
|
|
290
|
+
*/
|
|
291
|
+
export declare function syncDataSiloDependencies(client: GraphQLClient, dependencyUpdates: [string, string[]][]): Promise<boolean>;
|
|
273
292
|
export {};
|
|
274
293
|
//# sourceMappingURL=syncDataSilos.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncDataSilos.d.ts","sourceRoot":"","sources":["../../src/graphql/syncDataSilos.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"syncDataSilos.d.ts","sourceRoot":"","sources":["../../src/graphql/syncDataSilos.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.syncDataSiloDependencies = exports.syncDataSilos = exports.fetchEnrichedDataSilos = exports.fetchAllDataPoints = exports.fetchAllSubDataPoints = exports.fetchAllDataSilos = void 0;
|
|
7
|
+
/* eslint-disable max-lines */
|
|
8
|
+
const cli_progress_1 = __importDefault(require("cli-progress"));
|
|
7
9
|
const logger_1 = require("../logger");
|
|
8
10
|
const colors_1 = __importDefault(require("colors"));
|
|
9
11
|
const bluebird_1 = require("bluebird");
|
|
12
|
+
const keyBy_1 = __importDefault(require("lodash/keyBy"));
|
|
10
13
|
const gqls_1 = require("./gqls");
|
|
11
14
|
const fetchDataSubjects_1 = require("./fetchDataSubjects");
|
|
12
15
|
const sortBy_1 = __importDefault(require("lodash/sortBy"));
|
|
16
|
+
const chunk_1 = __importDefault(require("lodash/chunk"));
|
|
13
17
|
const makeGraphQLRequest_1 = require("./makeGraphQLRequest");
|
|
18
|
+
const type_utils_1 = require("@transcend-io/type-utils");
|
|
19
|
+
const BATCH_SILOS_LIMIT = 20;
|
|
14
20
|
/**
|
|
15
21
|
* Fetch all dataSilos in the organization
|
|
16
22
|
*
|
|
@@ -28,11 +34,13 @@ async function fetchAllDataSilos(client, { title, pageSize, ids = [], integratio
|
|
|
28
34
|
const { dataSilos: { nodes },
|
|
29
35
|
// eslint-disable-next-line no-await-in-loop
|
|
30
36
|
} = await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.DATA_SILOS, {
|
|
37
|
+
filterBy: {
|
|
38
|
+
ids: ids.length > 0 ? ids : undefined,
|
|
39
|
+
types: integrationNames.length > 0 ? integrationNames : undefined,
|
|
40
|
+
text: title,
|
|
41
|
+
},
|
|
31
42
|
first: pageSize,
|
|
32
|
-
ids: ids.length > 0 ? ids : undefined,
|
|
33
|
-
types: integrationNames.length > 0 ? integrationNames : undefined,
|
|
34
43
|
offset,
|
|
35
|
-
title,
|
|
36
44
|
});
|
|
37
45
|
dataSilos.push(...nodes);
|
|
38
46
|
offset += pageSize;
|
|
@@ -41,7 +49,7 @@ async function fetchAllDataSilos(client, { title, pageSize, ids = [], integratio
|
|
|
41
49
|
logger_1.logger.info(colors_1.default.green(`Found a total of ${dataSilos.length} data silo${ids.length > 0 ? ` matching IDs ${ids.join(',')}` : ''}s${integrationNames.length > 0
|
|
42
50
|
? ` matching integrationNames ${integrationNames.join(',')}`
|
|
43
51
|
: ''}`));
|
|
44
|
-
return dataSilos;
|
|
52
|
+
return dataSilos.sort((a, b) => a.title.localeCompare(b.title));
|
|
45
53
|
}
|
|
46
54
|
exports.fetchAllDataSilos = fetchAllDataSilos;
|
|
47
55
|
/**
|
|
@@ -124,7 +132,7 @@ async function fetchAllDataPoints(client, dataSiloId, { debug, pageSize, }) {
|
|
|
124
132
|
});
|
|
125
133
|
dataPoints.push({
|
|
126
134
|
...node,
|
|
127
|
-
subDataPoints,
|
|
135
|
+
subDataPoints: subDataPoints.sort((a, b) => a.name.localeCompare(b.name)),
|
|
128
136
|
});
|
|
129
137
|
if (debug) {
|
|
130
138
|
logger_1.logger.info(colors_1.default.green(`Successfully fetched subdatapoints for ${node.name}`));
|
|
@@ -145,7 +153,7 @@ async function fetchAllDataPoints(client, dataSiloId, { debug, pageSize, }) {
|
|
|
145
153
|
offset += pageSize;
|
|
146
154
|
shouldContinue = nodes.length === pageSize;
|
|
147
155
|
} while (shouldContinue);
|
|
148
|
-
return (
|
|
156
|
+
return dataPoints.sort((a, b) => a.name.localeCompare(b.name));
|
|
149
157
|
}
|
|
150
158
|
exports.fetchAllDataPoints = fetchAllDataPoints;
|
|
151
159
|
/**
|
|
@@ -187,149 +195,216 @@ exports.fetchEnrichedDataSilos = fetchEnrichedDataSilos;
|
|
|
187
195
|
/**
|
|
188
196
|
* Sync a data silo configuration
|
|
189
197
|
*
|
|
190
|
-
* @param
|
|
198
|
+
* @param dataSilos - Data silos to sync
|
|
191
199
|
* @param client - GraphQL client
|
|
192
200
|
* @param options - Options
|
|
193
201
|
* @returns Data silo info
|
|
194
202
|
*/
|
|
195
|
-
async function
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
203
|
+
async function syncDataSilos(dataSilos, client, { pageSize, dataSubjectsByName, apiKeysByTitle, }) {
|
|
204
|
+
let encounteredError = false;
|
|
205
|
+
// Time duration
|
|
206
|
+
const t0 = new Date().getTime();
|
|
207
|
+
logger_1.logger.info(colors_1.default.magenta(`Syncing "${dataSilos.length}" data silos...`));
|
|
208
|
+
// TODO: https://transcend.height.app/T-28707 - search by title instead of over-fetching
|
|
209
|
+
// Determine the set of data silos that already exist
|
|
210
|
+
const allDataSilos = await fetchAllDataSilos(client, {
|
|
211
|
+
// TODO: https://transcend.height.app/T-28707 - search by title instead of over-fetching
|
|
212
|
+
// titles: dataSilos.map(({ title }) => title),
|
|
199
213
|
pageSize,
|
|
200
214
|
});
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
if
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
: undefined,
|
|
225
|
-
attributes: dataSilo.attributes,
|
|
215
|
+
const allTitles = dataSilos.map(({ title }) => title);
|
|
216
|
+
const existingDataSilos = allDataSilos.filter((silo) => allTitles.includes(silo.title));
|
|
217
|
+
// Create a mapping of title -> existing silo, if it exists
|
|
218
|
+
const existingDataSiloByTitle = (0, keyBy_1.default)(existingDataSilos, 'title');
|
|
219
|
+
// Create new silos that do not exist
|
|
220
|
+
const newDataSiloInputs = dataSilos.filter(({ title }) => !existingDataSiloByTitle[title]);
|
|
221
|
+
if (newDataSiloInputs.length > 0) {
|
|
222
|
+
logger_1.logger.info(colors_1.default.magenta(`Creating "${newDataSiloInputs.length}" data silos that did not exist...`));
|
|
223
|
+
// Batch the creation
|
|
224
|
+
const chunked = (0, chunk_1.default)(newDataSiloInputs, BATCH_SILOS_LIMIT);
|
|
225
|
+
await (0, bluebird_1.mapSeries)(chunked, async (dependencyUpdateChunk) => {
|
|
226
|
+
const { createDataSilos: { dataSilos }, } = await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.CREATE_DATA_SILOS, {
|
|
227
|
+
input: dependencyUpdateChunk.map((input) => ({
|
|
228
|
+
name: input.integrationName,
|
|
229
|
+
title: input.title,
|
|
230
|
+
country: input.country,
|
|
231
|
+
countrySubDivision: input.countrySubDivision,
|
|
232
|
+
})),
|
|
233
|
+
});
|
|
234
|
+
// save mapping of title and id
|
|
235
|
+
dataSilos.forEach((silo) => {
|
|
236
|
+
existingDataSiloByTitle[silo.title] = silo;
|
|
237
|
+
});
|
|
226
238
|
});
|
|
227
|
-
|
|
239
|
+
logger_1.logger.info(colors_1.default.green(`Successfully created "${newDataSiloInputs.length}" data silos!`));
|
|
228
240
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
241
|
+
// Batch the updates
|
|
242
|
+
const chunkedUpdates = (0, chunk_1.default)(dataSilos, BATCH_SILOS_LIMIT);
|
|
243
|
+
await (0, bluebird_1.mapSeries)(chunkedUpdates, async (dataSiloUpdateChunk, ind) => {
|
|
244
|
+
logger_1.logger.info(colors_1.default.magenta(`[Batch ${ind + 1}/${chunkedUpdates.length}] Syncing "${dataSiloUpdateChunk.length}" data silos`));
|
|
245
|
+
await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.UPDATE_DATA_SILOS, {
|
|
246
|
+
input: {
|
|
247
|
+
dataSilos: dataSiloUpdateChunk.map((input) => {
|
|
248
|
+
var _a, _b, _c, _d, _e, _f;
|
|
249
|
+
return ({
|
|
250
|
+
id: existingDataSiloByTitle[input.title].id,
|
|
251
|
+
country: input.country,
|
|
252
|
+
countrySubDivision: input.countrySubDivision,
|
|
253
|
+
url: input.url,
|
|
254
|
+
headers: input.headers,
|
|
255
|
+
description: input.description,
|
|
256
|
+
identifiers: input['identity-keys'],
|
|
257
|
+
isLive: !input.disabled,
|
|
258
|
+
ownerEmails: input.owners,
|
|
259
|
+
teamNames: input.teams,
|
|
260
|
+
// clear out if not specified, otherwise the update needs to be applied after
|
|
261
|
+
// all data silos are created
|
|
262
|
+
dependedOnDataSiloTitles: input['deletion-dependencies']
|
|
263
|
+
? undefined
|
|
264
|
+
: [],
|
|
265
|
+
apiKeyId: input['api-key-title']
|
|
266
|
+
? apiKeysByTitle[input['api-key-title']].id
|
|
267
|
+
: undefined,
|
|
268
|
+
dataSubjectBlockListIds: input['data-subjects']
|
|
269
|
+
? (0, fetchDataSubjects_1.convertToDataSubjectBlockList)(input['data-subjects'], dataSubjectsByName)
|
|
270
|
+
: undefined,
|
|
271
|
+
attributes: input.attributes,
|
|
272
|
+
// AVC settings
|
|
273
|
+
notifyEmailAddress: (_a = input['email-settings']) === null || _a === void 0 ? void 0 : _a['notify-email-address'],
|
|
274
|
+
promptAVendorEmailSendFrequency: (_b = input['email-settings']) === null || _b === void 0 ? void 0 : _b['send-frequency'],
|
|
275
|
+
promptAVendorEmailSendType: (_c = input['email-settings']) === null || _c === void 0 ? void 0 : _c['send-type'],
|
|
276
|
+
promptAVendorEmailIncludeIdentifiersAttachment: (_d = input['email-settings']) === null || _d === void 0 ? void 0 : _d['include-identifiers-attachment'],
|
|
277
|
+
promptAVendorEmailCompletionLinkType: (_e = input['email-settings']) === null || _e === void 0 ? void 0 : _e['completion-link-type'],
|
|
278
|
+
manualWorkRetryFrequency: (_f = input['email-settings']) === null || _f === void 0 ? void 0 : _f['manual-work-retry-frequency'],
|
|
279
|
+
});
|
|
280
|
+
}),
|
|
281
|
+
},
|
|
254
282
|
});
|
|
255
|
-
|
|
256
|
-
}
|
|
257
|
-
if (promptAVendorEmailSettings) {
|
|
258
|
-
if (!existingDataSilo.catalog.hasAvcFunctionality) {
|
|
259
|
-
logger_1.logger.info(colors_1.default.red(`The data silo ${dataSilo.title} does not support setting email-settings. Please remove this field your yml file.`));
|
|
260
|
-
process.exit(1);
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
logger_1.logger.info(colors_1.default.magenta(`Syncing email settings for data silo ${dataSilo.title}...`));
|
|
264
|
-
await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.UPDATE_PROMPT_A_VENDOR_SETTINGS, {
|
|
265
|
-
dataSiloId: existingDataSilo.id,
|
|
266
|
-
notifyEmailAddress: promptAVendorEmailSettings['notify-email-address'],
|
|
267
|
-
promptAVendorEmailSendFrequency: promptAVendorEmailSettings['send-frequency'],
|
|
268
|
-
promptAVendorEmailSendType: promptAVendorEmailSettings['send-type'],
|
|
269
|
-
promptAVendorEmailIncludeIdentifiersAttachment: promptAVendorEmailSettings['include-identifiers-attachment'],
|
|
270
|
-
promptAVendorEmailCompletionLinkType: promptAVendorEmailSettings['completion-link-type'],
|
|
271
|
-
promptAVendorEmailManualWorkRetryFrequency: promptAVendorEmailSettings['manual-work-retry-frequency'],
|
|
272
|
-
});
|
|
273
|
-
logger_1.logger.info(colors_1.default.green(`Synced email-settings for data silo ${dataSilo.title}!`));
|
|
274
|
-
}
|
|
275
|
-
}
|
|
283
|
+
logger_1.logger.info(colors_1.default.green(`[Batch ${ind + 1}/${chunkedUpdates.length}] Synced "${dataSiloUpdateChunk.length}" data silos!`));
|
|
284
|
+
});
|
|
276
285
|
// Sync datapoints
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
286
|
+
// create a new progress bar instance and use shades_classic theme
|
|
287
|
+
const progressBar = new cli_progress_1.default.SingleBar({}, cli_progress_1.default.Presets.shades_classic);
|
|
288
|
+
const dataSilosWithDataPoints = dataSilos.filter(({ datapoints = [] }) => datapoints.length > 0);
|
|
289
|
+
const totalDataPoints = dataSilos
|
|
290
|
+
.map(({ datapoints = [] }) => datapoints.length)
|
|
291
|
+
.reduce((acc, count) => acc + count, 0);
|
|
292
|
+
logger_1.logger.info(colors_1.default.magenta(`Syncing "${totalDataPoints}" datapoints from "${dataSilosWithDataPoints.length}" data silos...`));
|
|
293
|
+
progressBar.start(totalDataPoints, 0);
|
|
294
|
+
let total = 0;
|
|
295
|
+
await (0, bluebird_1.map)(dataSilosWithDataPoints, async ({ datapoints, title }) => {
|
|
296
|
+
if (datapoints) {
|
|
297
|
+
await (0, bluebird_1.map)(datapoints, async (datapoint) => {
|
|
298
|
+
const fields = datapoint.fields
|
|
299
|
+
? datapoint.fields.map(({ key, description, categories, purposes, attributes, ...rest }) =>
|
|
300
|
+
// TODO: Support setting title separately from the 'key/name'
|
|
301
|
+
({
|
|
302
|
+
name: key,
|
|
303
|
+
description,
|
|
304
|
+
categories: !categories
|
|
305
|
+
? undefined
|
|
306
|
+
: categories.map((category) => ({
|
|
307
|
+
...category,
|
|
308
|
+
name: category.name || 'Other',
|
|
309
|
+
})),
|
|
310
|
+
purposes: !purposes
|
|
311
|
+
? undefined
|
|
312
|
+
: purposes.map((purpose) => ({
|
|
313
|
+
...purpose,
|
|
314
|
+
name: purpose.name || 'Other',
|
|
315
|
+
})),
|
|
316
|
+
attributes,
|
|
317
|
+
accessRequestVisibilityEnabled: rest['access-request-visibility-enabled'],
|
|
318
|
+
erasureRequestRedactionEnabled: rest['erasure-request-redaction-enabled'],
|
|
319
|
+
}))
|
|
320
|
+
: undefined;
|
|
321
|
+
const payload = {
|
|
322
|
+
dataSiloId: existingDataSiloByTitle[title].id,
|
|
323
|
+
path: datapoint.path,
|
|
324
|
+
name: datapoint.key,
|
|
325
|
+
title: datapoint.title,
|
|
326
|
+
description: datapoint.description,
|
|
327
|
+
...(datapoint['data-collection-tag']
|
|
328
|
+
? { dataCollectionTag: datapoint['data-collection-tag'] }
|
|
329
|
+
: {}),
|
|
330
|
+
querySuggestions: !datapoint['privacy-action-queries']
|
|
294
331
|
? undefined
|
|
295
|
-
:
|
|
296
|
-
|
|
297
|
-
|
|
332
|
+
: Object.entries(datapoint['privacy-action-queries']).map(([key, value]) => ({
|
|
333
|
+
requestType: key,
|
|
334
|
+
suggestedQuery: value,
|
|
298
335
|
})),
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
336
|
+
enabledActions: datapoint['privacy-actions'] || [],
|
|
337
|
+
subDataPoints: fields,
|
|
338
|
+
};
|
|
339
|
+
// Ensure no duplicate sub-datapoints are provided
|
|
340
|
+
const subDataPointsToUpdate = (payload.subDataPoints || []).map(({ name }) => name);
|
|
341
|
+
const duplicateDataPoints = subDataPointsToUpdate.filter((name, index) => subDataPointsToUpdate.indexOf(name) !== index);
|
|
342
|
+
if (duplicateDataPoints.length > 0) {
|
|
343
|
+
logger_1.logger.info(colors_1.default.red(`\nCannot update datapoint "${datapoint.key}" as it has duplicate sub-datapoints with the same name: \n${duplicateDataPoints.join('\n')}`));
|
|
344
|
+
encounteredError = true;
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
try {
|
|
348
|
+
await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.UPDATE_OR_CREATE_DATA_POINT, payload);
|
|
349
|
+
}
|
|
350
|
+
catch (err) {
|
|
351
|
+
logger_1.logger.info(colors_1.default.red(`\nFailed to update datapoint "${datapoint.key}" for data silo "${title}"! - \n${err.message}`));
|
|
352
|
+
encounteredError = true;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
total += 1;
|
|
356
|
+
progressBar.update(total);
|
|
357
|
+
}, {
|
|
358
|
+
concurrency: 5,
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
}, {
|
|
362
|
+
concurrency: 5,
|
|
363
|
+
});
|
|
364
|
+
progressBar.stop();
|
|
365
|
+
const t1 = new Date().getTime();
|
|
366
|
+
const totalTime = t1 - t0;
|
|
367
|
+
logger_1.logger.info(colors_1.default.green(`Synced "${dataSilos.length}" data silos and "${totalDataPoints}" datapoints in "${totalTime / 1000}" seconds!`));
|
|
368
|
+
return {
|
|
369
|
+
success: !encounteredError,
|
|
370
|
+
dataSiloTitleToId: (0, type_utils_1.apply)(existingDataSiloByTitle, ({ id }) => id),
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
exports.syncDataSilos = syncDataSilos;
|
|
374
|
+
/**
|
|
375
|
+
* Sync data silo dependencies
|
|
376
|
+
*
|
|
377
|
+
* @param client - GraphQL client
|
|
378
|
+
* @param dependencyUpdates - Mapping from [data silo ID, dependency titles]
|
|
379
|
+
* @returns True upon success
|
|
380
|
+
*/
|
|
381
|
+
async function syncDataSiloDependencies(client, dependencyUpdates) {
|
|
382
|
+
let encounteredError = false;
|
|
383
|
+
logger_1.logger.info(colors_1.default.magenta(`Syncing "${dependencyUpdates.length}" data silo dependencies...`));
|
|
384
|
+
// Batch the updates
|
|
385
|
+
const chunkedUpdates = (0, chunk_1.default)(dependencyUpdates, BATCH_SILOS_LIMIT);
|
|
386
|
+
await (0, bluebird_1.mapSeries)(chunkedUpdates, async (dependencyUpdateChunk, ind) => {
|
|
387
|
+
logger_1.logger.info(colors_1.default.magenta(`[Batch ${ind}/${dependencyUpdateChunk.length}] Updating "${dependencyUpdateChunk.length}" data silos...`));
|
|
388
|
+
try {
|
|
389
|
+
await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.UPDATE_DATA_SILOS, {
|
|
390
|
+
input: {
|
|
391
|
+
dataSilos: dependencyUpdateChunk.map(([id, dependedOnDataSiloTitles]) => ({
|
|
392
|
+
id,
|
|
393
|
+
dependedOnDataSiloTitles,
|
|
321
394
|
})),
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
395
|
+
},
|
|
396
|
+
});
|
|
397
|
+
logger_1.logger.info(colors_1.default.green(`[Batch ${ind + 1}/${dependencyUpdateChunk.length}] ` +
|
|
398
|
+
`Synced "${dependencyUpdateChunk.length}" data silos!`));
|
|
399
|
+
}
|
|
400
|
+
catch (err) {
|
|
401
|
+
encounteredError = true;
|
|
402
|
+
logger_1.logger.info(colors_1.default.red(`[Batch ${ind + 1}/${dependencyUpdateChunk.length}] ` +
|
|
403
|
+
`Failed to update "${dependencyUpdateChunk.length}" silos! - ${err.message}`));
|
|
404
|
+
}
|
|
405
|
+
});
|
|
406
|
+
return !encounteredError;
|
|
332
407
|
}
|
|
333
|
-
exports.
|
|
408
|
+
exports.syncDataSiloDependencies = syncDataSiloDependencies;
|
|
334
409
|
/* eslint-enable max-lines */
|
|
335
410
|
//# sourceMappingURL=syncDataSilos.js.map
|