@transcend-io/cli 4.37.0 → 4.39.0

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.
Files changed (90) hide show
  1. package/README.md +33 -16
  2. package/build/api-keys/generateCrossAccountApiKeys.d.ts +2 -9
  3. package/build/api-keys/generateCrossAccountApiKeys.d.ts.map +1 -1
  4. package/build/api-keys/generateCrossAccountApiKeys.js +1 -1
  5. package/build/api-keys/generateCrossAccountApiKeys.js.map +1 -1
  6. package/build/api-keys/index.d.ts +1 -0
  7. package/build/api-keys/index.d.ts.map +1 -1
  8. package/build/api-keys/index.js +1 -0
  9. package/build/api-keys/index.js.map +1 -1
  10. package/build/api-keys/validateTranscendAuth.d.ts +10 -0
  11. package/build/api-keys/validateTranscendAuth.d.ts.map +1 -0
  12. package/build/api-keys/validateTranscendAuth.js +54 -0
  13. package/build/api-keys/validateTranscendAuth.js.map +1 -0
  14. package/build/cli-generate-cross-account-api-keys.js +1 -1
  15. package/build/cli-generate-cross-account-api-keys.js.map +1 -1
  16. package/build/cli-pull.js +66 -24
  17. package/build/cli-pull.js.map +1 -1
  18. package/build/cli-push.js +61 -15
  19. package/build/cli-push.js.map +1 -1
  20. package/build/codecs.d.ts +13 -0
  21. package/build/codecs.d.ts.map +1 -1
  22. package/build/codecs.js +12 -1
  23. package/build/codecs.js.map +1 -1
  24. package/build/graphql/fetchAllAttributes.js +1 -1
  25. package/build/graphql/fetchAllAttributes.js.map +1 -1
  26. package/build/graphql/fetchConsentManagerId.d.ts +3 -2
  27. package/build/graphql/fetchConsentManagerId.d.ts.map +1 -1
  28. package/build/graphql/fetchConsentManagerId.js +4 -3
  29. package/build/graphql/fetchConsentManagerId.js.map +1 -1
  30. package/build/graphql/fetchDataSubjects.d.ts.map +1 -1
  31. package/build/graphql/fetchDataSubjects.js +1 -0
  32. package/build/graphql/fetchDataSubjects.js.map +1 -1
  33. package/build/graphql/fetchIdentifiers.d.ts +2 -1
  34. package/build/graphql/fetchIdentifiers.d.ts.map +1 -1
  35. package/build/graphql/fetchIdentifiers.js +9 -5
  36. package/build/graphql/fetchIdentifiers.js.map +1 -1
  37. package/build/graphql/fetchPrivacyCenterId.d.ts +9 -0
  38. package/build/graphql/fetchPrivacyCenterId.d.ts.map +1 -0
  39. package/build/graphql/fetchPrivacyCenterId.js +17 -0
  40. package/build/graphql/fetchPrivacyCenterId.js.map +1 -0
  41. package/build/graphql/gqls/consentManager.d.ts +1 -0
  42. package/build/graphql/gqls/consentManager.d.ts.map +1 -1
  43. package/build/graphql/gqls/consentManager.js +10 -1
  44. package/build/graphql/gqls/consentManager.js.map +1 -1
  45. package/build/graphql/gqls/identifier.d.ts.map +1 -1
  46. package/build/graphql/gqls/identifier.js +2 -5
  47. package/build/graphql/gqls/identifier.js.map +1 -1
  48. package/build/graphql/gqls/index.d.ts +1 -0
  49. package/build/graphql/gqls/index.d.ts.map +1 -1
  50. package/build/graphql/gqls/index.js +1 -0
  51. package/build/graphql/gqls/index.js.map +1 -1
  52. package/build/graphql/gqls/privacyCenter.d.ts +3 -0
  53. package/build/graphql/gqls/privacyCenter.d.ts.map +1 -0
  54. package/build/graphql/gqls/privacyCenter.js +19 -0
  55. package/build/graphql/gqls/privacyCenter.js.map +1 -0
  56. package/build/graphql/index.d.ts +1 -1
  57. package/build/graphql/index.d.ts.map +1 -1
  58. package/build/graphql/index.js +1 -1
  59. package/build/graphql/index.js.map +1 -1
  60. package/build/graphql/makeGraphQLRequest.d.ts +2 -1
  61. package/build/graphql/makeGraphQLRequest.d.ts.map +1 -1
  62. package/build/graphql/makeGraphQLRequest.js +5 -4
  63. package/build/graphql/makeGraphQLRequest.js.map +1 -1
  64. package/build/graphql/syncAction.d.ts +3 -1
  65. package/build/graphql/syncAction.d.ts.map +1 -1
  66. package/build/graphql/syncAction.js +2 -4
  67. package/build/graphql/syncAction.js.map +1 -1
  68. package/build/graphql/syncConfigurationToTranscend.d.ts +6 -1
  69. package/build/graphql/syncConfigurationToTranscend.d.ts.map +1 -1
  70. package/build/graphql/syncConfigurationToTranscend.js +29 -8
  71. package/build/graphql/syncConfigurationToTranscend.js.map +1 -1
  72. package/build/graphql/syncConsentManager.d.ts.map +1 -1
  73. package/build/graphql/syncConsentManager.js +21 -1
  74. package/build/graphql/syncConsentManager.js.map +1 -1
  75. package/build/graphql/syncDataFlows.js +2 -2
  76. package/build/graphql/syncDataFlows.js.map +1 -1
  77. package/build/graphql/syncDataSubject.d.ts +3 -1
  78. package/build/graphql/syncDataSubject.d.ts.map +1 -1
  79. package/build/graphql/syncDataSubject.js +3 -6
  80. package/build/graphql/syncDataSubject.js.map +1 -1
  81. package/build/graphql/syncIdentifier.d.ts +3 -1
  82. package/build/graphql/syncIdentifier.d.ts.map +1 -1
  83. package/build/graphql/syncIdentifier.js +2 -4
  84. package/build/graphql/syncIdentifier.js.map +1 -1
  85. package/build/tsbuildinfo +1 -1
  86. package/package.json +1 -1
  87. package/build/graphql/sleepPromise.d.ts +0 -8
  88. package/build/graphql/sleepPromise.d.ts.map +0 -1
  89. package/build/graphql/sleepPromise.js +0 -16
  90. package/build/graphql/sleepPromise.js.map +0 -1
package/README.md CHANGED
@@ -249,15 +249,15 @@ _Note: The scopes for tr-push are comprehensive of the scopes for tr-pull_
249
249
 
250
250
  #### Arguments
251
251
 
252
- | Argument | Description | Type | Default | Required |
253
- | ------------ | ---------------------------------------------------------------------------------------- | ------------------- | ------------------------------------- | -------- |
254
- | auth | The Transcend API capable of fetching the configuration | string | N/A | true |
255
- | resources | The different resource types to pull in (see table above for breakdown of each resource) | string | apiKeys,templates,dataSilos,enrichers | false |
256
- | file | Path to the YAML file to pull into | string - file-path | ./transcend.yml | false |
257
- | transcendUrl | URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. | string - URL | https://api.transcend.io | false |
258
- | dataSiloIds | The UUIDs of the data silos that should be pulled into the YAML file. | list(string - UUID) | N/A | false |
259
- | pageSize | The page size to use when paginating over the API | number | 50 | false |
260
- | debug | Set to true to include debug logs while pulling the configuration | boolean | false | false |
252
+ | Argument | Description | Type | Default | Required |
253
+ | ------------ | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------- | -------- |
254
+ | auth | The Transcend API capable of fetching the configuration | string (API key or path to tr-generate-api-keys JSON output) | N/A | true |
255
+ | resources | The different resource types to pull in (see table above for breakdown of each resource) | string | apiKeys,templates,dataSilos,enrichers | false |
256
+ | file | Path to the YAML file to pull into | string - file-path | ./transcend.yml | false |
257
+ | transcendUrl | URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. | string - URL | https://api.transcend.io | false |
258
+ | dataSiloIds | The UUIDs of the data silos that should be pulled into the YAML file. | list(string - UUID) | N/A | false |
259
+ | pageSize | The page size to use when paginating over the API | number | 50 | false |
260
+ | debug | Set to true to include debug logs while pulling the configuration | boolean | false | false |
261
261
 
262
262
  #### Usage
263
263
 
@@ -357,6 +357,14 @@ Or with debug logs
357
357
  tr-pull --auth=$TRANSCEND_API_KEY --integrationNames=salesforce,snowflake --debug=true
358
358
  ```
359
359
 
360
+ Pull in configuration files across multiple instances
361
+
362
+ ```sh
363
+ tr-generate-api-keys --email=test@transcend.io --password=$TRANSCEND_PASSWORD \
364
+ --scopes="View Consent Manager" --apiKeyTitle="CLI Usage Cross Instance Sync" --file=./transcend-api-keys.json
365
+ tr-pull --auth=./transcend-api-keys.json --resources=consentManager --file=./transcend/
366
+ ```
367
+
360
368
  Note: This command will overwrite the existing transcend.yml file that you have locally.
361
369
 
362
370
  ### tr-push
@@ -386,13 +394,13 @@ The API key needs the following scopes when pushing the various resource types:
386
394
 
387
395
  #### Arguments
388
396
 
389
- | Argument | Description | Type | Default | Required |
390
- | ------------ | ----------------------------------------------------------------------------------------------------------- | ------------------ | ------------------------ | -------- |
391
- | auth | The Transcend API capable of pushing the configuration | string | N/A | true |
392
- | file | Path to the YAML file to push from | string - file-path | ./transcend.yml | false |
393
- | transcendUrl | URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. | string - URL | https://api.transcend.io | false |
394
- | pageSize | The page size to use when paginating over the API | number | 50 | false |
395
- | variables | The variables to template into the YAML file when pushing configuration. e.g. domain:acme.com,stage:staging | string | N/A | false |
397
+ | Argument | Description | Type | Default | Required |
398
+ | ------------ | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------ | -------- |
399
+ | auth | The Transcend API capable of pushing the configuration | string (API key or path to tr-generate-api-keys JSON output) | N/A | true |
400
+ | file | Path to the YAML file to push from | string - file-path | ./transcend.yml | false |
401
+ | transcendUrl | URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. | string - URL | https://api.transcend.io | false |
402
+ | pageSize | The page size to use when paginating over the API | number | 50 | false |
403
+ | variables | The variables to template into the YAML file when pushing configuration. e.g. domain:acme.com,stage:staging | string | N/A | false |
396
404
 
397
405
  #### Usage
398
406
 
@@ -408,6 +416,15 @@ An alternative file destination can be specified:
408
416
  tr-push --auth=$TRANSCEND_API_KEY --file=./custom/location.yml
409
417
  ```
410
418
 
419
+ Push changes to multiple Transcend instances using the output of [tr-generate-api-keys](#tr-generate-api-keys)
420
+
421
+ ```sh
422
+ tr-generate-api-keys --email=test@transcend.io --password=$TRANSCEND_PASSWORD \
423
+ --scopes="View Email Templates,View Data Map" --apiKeyTitle="CLI Usage Cross Instance Sync" --file=./transcend-api-keys.json
424
+ tr-pull --auth=$TRANSCEND_API_KEY
425
+ tr-push --auth=./transcend-api-keys.json
426
+ ```
427
+
411
428
  Some things to note about this sync process:
412
429
 
413
430
  1. Any field that is defined in your .yml file will be synced up to app.transcend.io. If any change was made on the admin dashboard, it will be overwritten.
@@ -1,12 +1,5 @@
1
1
  import { ScopeName } from '@transcend-io/privacy-types';
2
- export interface ApiKeyAndOrganization {
3
- /** Name of instance */
4
- organizationName: string;
5
- /** API key */
6
- apiKey: string;
7
- /** Organization ID API key is for */
8
- organizationId: string;
9
- }
2
+ import { StoredApiKey } from '../codecs';
10
3
  export interface ApiKeyGenerateError {
11
4
  /** Name of instance */
12
5
  organizationName: string;
@@ -38,7 +31,7 @@ export declare function generateCrossAccountApiKeys({ email, password, scopes, a
38
31
  createNewApiKey?: boolean;
39
32
  }): Promise<{
40
33
  /** Successfully generated */
41
- apiKeys: ApiKeyAndOrganization[];
34
+ apiKeys: StoredApiKey[];
42
35
  /** Error results */
43
36
  errors: ApiKeyGenerateError[];
44
37
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"generateCrossAccountApiKeys.d.ts","sourceRoot":"","sources":["../../src/api-keys/generateCrossAccountApiKeys.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAIxD,MAAM,WAAW,qBAAqB;IACpC,uBAAuB;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,uBAAuB;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,EAChD,KAAK,EACL,QAAQ,EACR,MAAM,EACN,WAAW,EACX,oBAA2B,EAC3B,eAAsB,EACtB,YAAyC,GAC1C,EAAE;IACD,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gIAAgI;IAChI,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iFAAiF;IACjF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG,OAAO,CAAC;IACV,6BAA6B;IAC7B,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,oBAAoB;IACpB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B,CAAC,CA8HD"}
1
+ {"version":3,"file":"generateCrossAccountApiKeys.d.ts","sourceRoot":"","sources":["../../src/api-keys/generateCrossAccountApiKeys.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,MAAM,WAAW,mBAAmB;IAClC,uBAAuB;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,EAChD,KAAK,EACL,QAAQ,EACR,MAAM,EACN,WAAW,EACX,oBAA2B,EAC3B,eAAsB,EACtB,YAAyC,GAC1C,EAAE;IACD,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gIAAgI;IAChI,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iFAAiF;IACjF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG,OAAO,CAAC;IACV,6BAA6B;IAC7B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,oBAAoB;IACpB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B,CAAC,CA8HD"}
@@ -80,7 +80,7 @@ async function generateCrossAccountApiKeys({ email, password, scopes, apiKeyTitl
80
80
  });
81
81
  }
82
82
  });
83
- logger_1.logger.info(colors_1.default.green(`Successfully created ${results.length} API keys${results.length === 1 ? '' : 's'}`));
83
+ logger_1.logger.info(colors_1.default.green(`Successfully created ${results.length} API key${results.length === 1 ? '' : 's'}`));
84
84
  if (errors.length > 0) {
85
85
  logger_1.logger.error(colors_1.default.red(`Failed to create ${errors.length} API key${errors.length === 1 ? '' : 's'}!`));
86
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generateCrossAccountApiKeys.js","sourceRoot":"","sources":["../../src/api-keys/generateCrossAccountApiKeys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateCrossAccountApiKeys.js","sourceRoot":"","sources":["../../src/api-keys/generateCrossAccountApiKeys.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from './generateCrossAccountApiKeys';
2
+ export * from './validateTranscendAuth';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api-keys/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api-keys/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
@@ -11,4 +11,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./generateCrossAccountApiKeys"), exports);
14
+ __exportStar(require("./validateTranscendAuth"), exports);
14
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api-keys/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api-keys/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA8C;AAC9C,0DAAwC"}
@@ -0,0 +1,10 @@
1
+ import { StoredApiKey } from '../codecs';
2
+ /**
3
+ * Determine if the `--auth` parameter is an API key or a path to a JSON
4
+ * file containing a list of API keys.
5
+ *
6
+ * @param auth - Raw auth parameter
7
+ * @returns The API key or the list API keys
8
+ */
9
+ export declare function validateTranscendAuth(auth: string): string | StoredApiKey[];
10
+ //# sourceMappingURL=validateTranscendAuth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateTranscendAuth.d.ts","sourceRoot":"","sources":["../../src/api-keys/validateTranscendAuth.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,EAAE,CAmB3E"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.validateTranscendAuth = void 0;
26
+ const type_utils_1 = require("@transcend-io/type-utils");
27
+ const colors_1 = __importDefault(require("colors"));
28
+ const t = __importStar(require("io-ts"));
29
+ const logger_1 = require("../logger");
30
+ const fs_1 = require("fs");
31
+ const codecs_1 = require("../codecs");
32
+ /**
33
+ * Determine if the `--auth` parameter is an API key or a path to a JSON
34
+ * file containing a list of API keys.
35
+ *
36
+ * @param auth - Raw auth parameter
37
+ * @returns The API key or the list API keys
38
+ */
39
+ function validateTranscendAuth(auth) {
40
+ // Ensure auth is passed
41
+ if (!auth) {
42
+ logger_1.logger.error(colors_1.default.red('A Transcend API key must be provided. You can specify using --auth=asd123'));
43
+ process.exit(1);
44
+ }
45
+ // Read from disk
46
+ if ((0, fs_1.existsSync)(auth)) {
47
+ // validate that file is a list of API keys
48
+ return (0, type_utils_1.decodeCodec)(t.array(codecs_1.StoredApiKey), (0, fs_1.readFileSync)(auth, 'utf-8'));
49
+ }
50
+ // Return as single API key
51
+ return auth;
52
+ }
53
+ exports.validateTranscendAuth = validateTranscendAuth;
54
+ //# sourceMappingURL=validateTranscendAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateTranscendAuth.js","sourceRoot":"","sources":["../../src/api-keys/validateTranscendAuth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAuD;AACvD,oDAA4B;AAC5B,yCAA2B;AAC3B,sCAAmC;AACnC,2BAA8C;AAC9C,sCAAyC;AAEzC;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,IAAY;IAChD,wBAAwB;IACxB,IAAI,CAAC,IAAI,EAAE;QACT,eAAM,CAAC,KAAK,CACV,gBAAM,CAAC,GAAG,CACR,2EAA2E,CAC5E,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,iBAAiB;IACjB,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE;QACpB,2CAA2C;QAC3C,OAAO,IAAA,wBAAW,EAAC,CAAC,CAAC,KAAK,CAAC,qBAAY,CAAC,EAAE,IAAA,iBAAY,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;KACxE;IAED,2BAA2B;IAC3B,OAAO,IAAI,CAAC;AACd,CAAC;AAnBD,sDAmBC"}
@@ -59,7 +59,7 @@ async function main() {
59
59
  process.exit(1);
60
60
  }
61
61
  // Validate scopes
62
- const splitScopes = scopes.split(',');
62
+ const splitScopes = scopes.split(',').map((x) => x.trim());
63
63
  const invalidScopes = splitScopes.filter((scopeTitle) => !SCOPES_BY_TITLE[scopeTitle]);
64
64
  if (invalidScopes.length > 0) {
65
65
  logger_1.logger.error(colors_1.default.red(`Failed to parse scopes:"${invalidScopes.join(',')}".\n` +
@@ -1 +1 @@
1
- {"version":3,"file":"cli-generate-cross-account-api-keys.js","sourceRoot":"","sources":["../src/cli-generate-cross-account-api-keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-generate-cross-account-api-keys.js","sourceRoot":"","sources":["../src/cli-generate-cross-account-api-keys.ts"],"names":[],"mappings":"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"}
package/build/cli-pull.js CHANGED
@@ -7,7 +7,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const yargs_parser_1 = __importDefault(require("yargs-parser"));
8
8
  const logger_1 = require("./logger");
9
9
  const colors_1 = __importDefault(require("colors"));
10
+ const bluebird_1 = require("bluebird");
11
+ const path_1 = require("path");
12
+ const fs_1 = __importDefault(require("fs"));
10
13
  const graphql_1 = require("./graphql");
14
+ const api_keys_1 = require("./api-keys");
11
15
  const readTranscendYaml_1 = require("./readTranscendYaml");
12
16
  const constants_1 = require("./constants");
13
17
  const VALID_RESOURCES = Object.values(graphql_1.TranscendPullResource);
@@ -23,13 +27,8 @@ const VALID_RESOURCES = Object.values(graphql_1.TranscendPullResource);
23
27
  async function main() {
24
28
  // Parse command line arguments
25
29
  const { file = './transcend.yml', transcendUrl = 'https://api.transcend.io', dataSiloIds = '', integrationNames = '', resources = graphql_1.DEFAULT_TRANSCEND_PULL_RESOURCES.join(','), pageSize = '', debug = '', auth, } = (0, yargs_parser_1.default)(process.argv.slice(2));
26
- // Ensure auth is passed
27
- if (!auth) {
28
- logger_1.logger.error(colors_1.default.red('A Transcend API key must be provided. You can specify using --auth=asd123'));
29
- process.exit(1);
30
- }
31
- // Create a GraphQL client
32
- const client = (0, graphql_1.buildTranscendGraphQLClient)(transcendUrl, auth);
30
+ // Parse authentication as API key or path to list of API keys
31
+ const apiKeyOrList = await (0, api_keys_1.validateTranscendAuth)(auth);
33
32
  // Parse request actions
34
33
  let splitResources = [];
35
34
  if (!resources) {
@@ -45,26 +44,69 @@ async function main() {
45
44
  logger_1.logger.error(colors_1.default.red(`Received invalid resources values: "${invalidResources.join(',')}". Allowed: ${VALID_RESOURCES.join(',')}`));
46
45
  process.exit(1);
47
46
  }
47
+ const dataSiloIdsParsed = dataSiloIds
48
+ .split(',')
49
+ .filter((x) => !!x);
50
+ const integrationNamesParsed = integrationNames
51
+ .split(',')
52
+ .filter((x) => !!x);
53
+ const pageSizeParsed = pageSize ? parseInt(pageSize, 10) : 50;
54
+ const isDebug = debug === 'true';
48
55
  // Sync to Disk
49
- try {
50
- const configuration = await (0, graphql_1.pullTranscendConfiguration)(client, {
51
- dataSiloIds: dataSiloIds.split(',').filter((x) => !!x),
52
- integrationNames: integrationNames
53
- .split(',')
54
- .filter((x) => !!x),
55
- resources: splitResources,
56
- pageSize: pageSize ? parseInt(pageSize, 10) : 50,
57
- debug: debug === 'true',
58
- });
59
- logger_1.logger.info(colors_1.default.magenta(`Writing configuration to file "${file}"...`));
60
- (0, readTranscendYaml_1.writeTranscendYaml)(file, configuration);
56
+ if (typeof apiKeyOrList === 'string') {
57
+ try {
58
+ // Create a GraphQL client
59
+ const client = (0, graphql_1.buildTranscendGraphQLClient)(transcendUrl, apiKeyOrList);
60
+ const configuration = await (0, graphql_1.pullTranscendConfiguration)(client, {
61
+ dataSiloIds: dataSiloIdsParsed,
62
+ integrationNames: integrationNamesParsed,
63
+ resources: splitResources,
64
+ pageSize: pageSizeParsed,
65
+ debug: isDebug,
66
+ });
67
+ logger_1.logger.info(colors_1.default.magenta(`Writing configuration to file "${file}"...`));
68
+ (0, readTranscendYaml_1.writeTranscendYaml)(file, configuration);
69
+ }
70
+ catch (err) {
71
+ logger_1.logger.error(colors_1.default.red(`An error occurred syncing the schema: ${err.message}`));
72
+ process.exit(1);
73
+ }
74
+ // Indicate success
75
+ logger_1.logger.info(colors_1.default.green(`Successfully synced yaml file to disk at ${file}! View at ${constants_1.ADMIN_DASH_INTEGRATIONS}`));
61
76
  }
62
- catch (err) {
63
- logger_1.logger.error(colors_1.default.red(`An error occurred syncing the schema: ${err.message}`));
64
- process.exit(1);
77
+ else {
78
+ if (!fs_1.default.lstatSync(file).isDirectory()) {
79
+ throw new Error('File is expected to be a folder when passing in a list of API keys to pull from. e.g. --file=./working/');
80
+ }
81
+ const encounteredErrors = [];
82
+ await (0, bluebird_1.mapSeries)(apiKeyOrList, async (apiKey, ind) => {
83
+ const prefix = `[${ind}/${apiKeyOrList.length}][${apiKey.organizationName}] `;
84
+ logger_1.logger.info(colors_1.default.magenta(`~~~\n\n${prefix}Attempting to pull configuration...\n\n~~~`));
85
+ // Create a GraphQL client
86
+ const client = (0, graphql_1.buildTranscendGraphQLClient)(transcendUrl, apiKey.apiKey);
87
+ try {
88
+ const configuration = await (0, graphql_1.pullTranscendConfiguration)(client, {
89
+ dataSiloIds: dataSiloIdsParsed,
90
+ integrationNames: integrationNamesParsed,
91
+ resources: splitResources,
92
+ pageSize: pageSizeParsed,
93
+ debug: isDebug,
94
+ });
95
+ const filePath = (0, path_1.join)(file, `${apiKey.organizationName}.yml`);
96
+ logger_1.logger.info(colors_1.default.magenta(`Writing configuration to file "${filePath}"...`));
97
+ (0, readTranscendYaml_1.writeTranscendYaml)(filePath, configuration);
98
+ logger_1.logger.info(colors_1.default.green(`${prefix}Successfully pulled configuration!`));
99
+ }
100
+ catch (err) {
101
+ logger_1.logger.error(colors_1.default.red(`${prefix}Failed to sync configuration.`));
102
+ encounteredErrors.push(apiKey.organizationName);
103
+ }
104
+ });
105
+ if (encounteredErrors.length > 0) {
106
+ logger_1.logger.info(colors_1.default.red(`Sync encountered errors for "${encounteredErrors.join(',')}". View output above for more information, or check out ${constants_1.ADMIN_DASH_INTEGRATIONS}`));
107
+ process.exit(1);
108
+ }
65
109
  }
66
- // Indicate success
67
- logger_1.logger.info(colors_1.default.green(`Successfully synced yaml file to disk at ${file}! View at ${constants_1.ADMIN_DASH_INTEGRATIONS}`));
68
110
  }
69
111
  main();
70
112
  //# sourceMappingURL=cli-pull.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-pull.js","sourceRoot":"","sources":["../src/cli-pull.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-pull.js","sourceRoot":"","sources":["../src/cli-pull.ts"],"names":[],"mappings":"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"}
package/build/cli-push.js CHANGED
@@ -6,12 +6,33 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const yargs_parser_1 = __importDefault(require("yargs-parser"));
8
8
  const logger_1 = require("./logger");
9
+ const bluebird_1 = require("bluebird");
9
10
  const fs_1 = require("fs");
10
11
  const readTranscendYaml_1 = require("./readTranscendYaml");
11
12
  const colors_1 = __importDefault(require("colors"));
12
13
  const graphql_1 = require("./graphql");
13
14
  const constants_1 = require("./constants");
15
+ const api_keys_1 = require("./api-keys");
14
16
  const mergeTranscendInputs_1 = require("./mergeTranscendInputs");
17
+ /**
18
+ * Sync configuration to Transcend
19
+ *
20
+ * @param options - Options
21
+ * @returns True if synced successfully, false if error occurs
22
+ */
23
+ async function syncConfiguration({ transcendUrl, auth, pageSize, publishToPrivacyCenter, contents, }) {
24
+ const client = (0, graphql_1.buildTranscendGraphQLClient)(transcendUrl, auth);
25
+ // Sync to Transcend
26
+ try {
27
+ const encounteredError = await (0, graphql_1.syncConfigurationToTranscend)(contents, client, { pageSize, publishToPrivacyCenter });
28
+ return !encounteredError;
29
+ return true;
30
+ }
31
+ catch (err) {
32
+ logger_1.logger.error(colors_1.default.red(`An unexpected error occurred syncing the schema: ${err.message}`));
33
+ return false;
34
+ }
35
+ }
15
36
  /**
16
37
  * Push the transcend.yml file remotely into a Transcend instance
17
38
  *
@@ -23,12 +44,9 @@ const mergeTranscendInputs_1 = require("./mergeTranscendInputs");
23
44
  */
24
45
  async function main() {
25
46
  // Parse command line arguments
26
- const { file = './transcend.yml', transcendUrl = 'https://api.transcend.io', auth, variables = '', pageSize = '', } = (0, yargs_parser_1.default)(process.argv.slice(2));
27
- // Ensure auth is passed
28
- if (!auth) {
29
- logger_1.logger.error(colors_1.default.red('A Transcend API key must be provided. You can specify using --auth=asd123'));
30
- process.exit(1);
31
- }
47
+ const { file = './transcend.yml', transcendUrl = 'https://api.transcend.io', auth, variables = '', pageSize = '', publishToPrivacyCenter, } = (0, yargs_parser_1.default)(process.argv.slice(2));
48
+ // Parse authentication as API key or path to list of API keys
49
+ const apiKeyOrList = await (0, api_keys_1.validateTranscendAuth)(auth);
32
50
  // Parse out the variables
33
51
  const splitVars = variables.split(',').filter((x) => !!x);
34
52
  const vars = {};
@@ -66,19 +84,47 @@ async function main() {
66
84
  });
67
85
  const [base, ...rest] = transcendInputs;
68
86
  const contents = (0, mergeTranscendInputs_1.mergeTranscendInputs)(base, ...rest);
69
- // Create a GraphQL client
70
- const client = (0, graphql_1.buildTranscendGraphQLClient)(transcendUrl, auth);
71
- // Sync to Transcend
72
- try {
73
- const encounteredError = await (0, graphql_1.syncConfigurationToTranscend)(contents, client, pageSize ? parseInt(pageSize, 10) : 50);
74
- if (encounteredError) {
87
+ // Parse page size
88
+ const parsedPageSize = pageSize ? parseInt(pageSize, 10) : 50;
89
+ // process a single API key
90
+ if (typeof apiKeyOrList === 'string') {
91
+ const success = await syncConfiguration({
92
+ transcendUrl,
93
+ auth: apiKeyOrList,
94
+ contents,
95
+ publishToPrivacyCenter: publishToPrivacyCenter === 'true',
96
+ pageSize: parsedPageSize,
97
+ });
98
+ // exist with error code
99
+ if (!success) {
75
100
  logger_1.logger.info(colors_1.default.red(`Sync encountered errors. View output above for more information, or check out ${constants_1.ADMIN_DASH_INTEGRATIONS}`));
76
101
  process.exit(1);
77
102
  }
78
103
  }
79
- catch (err) {
80
- logger_1.logger.error(colors_1.default.red(`An error occurred syncing the schema: ${err.message}`));
81
- process.exit(1);
104
+ else {
105
+ const encounteredErrors = [];
106
+ await (0, bluebird_1.mapSeries)(apiKeyOrList, async (apiKey, ind) => {
107
+ const prefix = `[${ind}/${apiKeyOrList.length}][${apiKey.organizationName}] `;
108
+ logger_1.logger.info(colors_1.default.magenta(`~~~\n\n${prefix}Attempting to push configuration...\n\n~~~`));
109
+ const success = await syncConfiguration({
110
+ transcendUrl,
111
+ auth: apiKey.apiKey,
112
+ contents,
113
+ pageSize: parsedPageSize,
114
+ publishToPrivacyCenter: publishToPrivacyCenter === 'true',
115
+ });
116
+ if (success) {
117
+ logger_1.logger.info(colors_1.default.green(`${prefix}Successfully pushed configuration!`));
118
+ }
119
+ else {
120
+ logger_1.logger.error(colors_1.default.red(`${prefix}Failed to sync configuration.`));
121
+ encounteredErrors.push(apiKey.organizationName);
122
+ }
123
+ });
124
+ if (encounteredErrors.length > 0) {
125
+ logger_1.logger.info(colors_1.default.red(`Sync encountered errors for "${encounteredErrors.join(',')}". View output above for more information, or check out ${constants_1.ADMIN_DASH_INTEGRATIONS}`));
126
+ process.exit(1);
127
+ }
82
128
  }
83
129
  // Indicate success
84
130
  logger_1.logger.info(colors_1.default.green(`Successfully synced yaml file to Transcend! View at ${constants_1.ADMIN_DASH_INTEGRATIONS}`));
@@ -1 +1 @@
1
- {"version":3,"file":"cli-push.js","sourceRoot":"","sources":["../src/cli-push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-push.js","sourceRoot":"","sources":["../src/cli-push.ts"],"names":[],"mappings":"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"}
package/build/codecs.d.ts CHANGED
@@ -12516,4 +12516,17 @@ export declare const TranscendInput: t.PartialC<{
12516
12516
  }>;
12517
12517
  /** Type override */
12518
12518
  export declare type TranscendInput = t.TypeOf<typeof TranscendInput>;
12519
+ /**
12520
+ * The output of `tr-generate-api-keys` that can be provided to `tr-push`
12521
+ */
12522
+ export declare const StoredApiKey: t.TypeC<{
12523
+ /** Name of instance */
12524
+ organizationName: t.StringC;
12525
+ /** API key */
12526
+ apiKey: t.StringC;
12527
+ /** Organization ID API key is for */
12528
+ organizationId: t.StringC;
12529
+ }>;
12530
+ /** Type override */
12531
+ export declare type StoredApiKey = t.TypeOf<typeof StoredApiKey>;
12519
12532
  //# sourceMappingURL=codecs.d.ts.map