@transcend-io/cli 6.12.1 → 6.13.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 +86 -42
- package/build/cli-cron-pull-profiles.js +9 -3
- package/build/cli-cron-pull-profiles.js.map +1 -1
- package/build/cli-pull-ot.d.ts +3 -0
- package/build/cli-pull-ot.d.ts.map +1 -0
- package/build/cli-pull-ot.js +55 -0
- package/build/cli-pull-ot.js.map +1 -0
- package/build/enums.d.ts +13 -2
- package/build/enums.d.ts.map +1 -1
- package/build/enums.js +14 -1
- package/build/enums.js.map +1 -1
- package/build/graphql/fetchRequestFilesForRequest.d.ts +2 -0
- package/build/graphql/fetchRequestFilesForRequest.d.ts.map +1 -1
- package/build/graphql/fetchRequestFilesForRequest.js.map +1 -1
- package/build/oneTrust/createOneTrustGotInstance.d.ts +14 -0
- package/build/oneTrust/createOneTrustGotInstance.d.ts.map +1 -0
- package/build/oneTrust/createOneTrustGotInstance.js +23 -0
- package/build/oneTrust/createOneTrustGotInstance.js.map +1 -0
- package/build/oneTrust/getAssessment.d.ts +15 -0
- package/build/oneTrust/getAssessment.d.ts.map +1 -0
- package/build/oneTrust/getAssessment.js +15 -0
- package/build/oneTrust/getAssessment.js.map +1 -0
- package/build/oneTrust/getListOfAssessments.d.ts +13 -0
- package/build/oneTrust/getListOfAssessments.d.ts.map +1 -0
- package/build/oneTrust/getListOfAssessments.js +34 -0
- package/build/oneTrust/getListOfAssessments.js.map +1 -0
- package/build/oneTrust/index.d.ts +6 -0
- package/build/oneTrust/index.d.ts.map +1 -0
- package/build/oneTrust/index.js +22 -0
- package/build/oneTrust/index.js.map +1 -0
- package/build/oneTrust/parseCliPullOtArguments.d.ts +23 -0
- package/build/oneTrust/parseCliPullOtArguments.d.ts.map +1 -0
- package/build/oneTrust/parseCliPullOtArguments.js +67 -0
- package/build/oneTrust/parseCliPullOtArguments.js.map +1 -0
- package/build/oneTrust/types.d.ts +391 -0
- package/build/oneTrust/types.d.ts.map +1 -0
- package/build/oneTrust/types.js +4 -0
- package/build/oneTrust/types.js.map +1 -0
- package/build/oneTrust/writeOneTrustAssessment.d.ts +23 -0
- package/build/oneTrust/writeOneTrustAssessment.d.ts.map +1 -0
- package/build/oneTrust/writeOneTrustAssessment.js +41 -0
- package/build/oneTrust/writeOneTrustAssessment.js.map +1 -0
- package/build/tsbuildinfo +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -12,141 +12,145 @@
|
|
|
12
12
|
- [Authentication](#authentication)
|
|
13
13
|
- [Arguments](#arguments)
|
|
14
14
|
- [Usage](#usage-1)
|
|
15
|
-
- [tr-
|
|
15
|
+
- [tr-pull-ot](#tr-pull-ot)
|
|
16
16
|
- [Authentication](#authentication-1)
|
|
17
17
|
- [Arguments](#arguments-1)
|
|
18
18
|
- [Usage](#usage-2)
|
|
19
|
-
|
|
20
|
-
- [Dynamic Variables](#dynamic-variables)
|
|
21
|
-
- [tr-scan-packages](#tr-scan-packages)
|
|
19
|
+
- [tr-push](#tr-push)
|
|
22
20
|
- [Authentication](#authentication-2)
|
|
23
21
|
- [Arguments](#arguments-2)
|
|
24
22
|
- [Usage](#usage-3)
|
|
25
|
-
|
|
23
|
+
- [CI Integration](#ci-integration)
|
|
24
|
+
- [Dynamic Variables](#dynamic-variables)
|
|
25
|
+
- [tr-scan-packages](#tr-scan-packages)
|
|
26
26
|
- [Authentication](#authentication-3)
|
|
27
27
|
- [Arguments](#arguments-3)
|
|
28
28
|
- [Usage](#usage-4)
|
|
29
|
-
- [tr-
|
|
29
|
+
- [tr-discover-silos](#tr-discover-silos)
|
|
30
30
|
- [Authentication](#authentication-4)
|
|
31
31
|
- [Arguments](#arguments-4)
|
|
32
32
|
- [Usage](#usage-5)
|
|
33
|
-
- [tr-request-
|
|
33
|
+
- [tr-request-approve](#tr-request-approve)
|
|
34
34
|
- [Authentication](#authentication-5)
|
|
35
35
|
- [Arguments](#arguments-5)
|
|
36
36
|
- [Usage](#usage-6)
|
|
37
|
-
- [tr-request-
|
|
37
|
+
- [tr-request-cancel](#tr-request-cancel)
|
|
38
38
|
- [Authentication](#authentication-6)
|
|
39
39
|
- [Arguments](#arguments-6)
|
|
40
40
|
- [Usage](#usage-7)
|
|
41
|
-
- [tr-request-
|
|
41
|
+
- [tr-request-notify-additional-time](#tr-request-notify-additional-time)
|
|
42
42
|
- [Authentication](#authentication-7)
|
|
43
43
|
- [Arguments](#arguments-7)
|
|
44
44
|
- [Usage](#usage-8)
|
|
45
|
-
- [tr-request-
|
|
45
|
+
- [tr-request-mark-silent](#tr-request-mark-silent)
|
|
46
46
|
- [Authentication](#authentication-8)
|
|
47
47
|
- [Arguments](#arguments-8)
|
|
48
48
|
- [Usage](#usage-9)
|
|
49
|
-
- [tr-request-
|
|
49
|
+
- [tr-request-upload](#tr-request-upload)
|
|
50
50
|
- [Authentication](#authentication-9)
|
|
51
51
|
- [Arguments](#arguments-9)
|
|
52
52
|
- [Usage](#usage-10)
|
|
53
|
-
- [tr-request-
|
|
53
|
+
- [tr-request-restart](#tr-request-restart)
|
|
54
54
|
- [Authentication](#authentication-10)
|
|
55
55
|
- [Arguments](#arguments-10)
|
|
56
56
|
- [Usage](#usage-11)
|
|
57
|
-
- [tr-request-
|
|
57
|
+
- [tr-request-enricher-restart](#tr-request-enricher-restart)
|
|
58
58
|
- [Authentication](#authentication-11)
|
|
59
59
|
- [Arguments](#arguments-11)
|
|
60
60
|
- [Usage](#usage-12)
|
|
61
|
-
- [tr-request-
|
|
61
|
+
- [tr-request-reject-unverified-identifiers](#tr-request-reject-unverified-identifiers)
|
|
62
62
|
- [Authentication](#authentication-12)
|
|
63
63
|
- [Arguments](#arguments-12)
|
|
64
64
|
- [Usage](#usage-13)
|
|
65
|
-
- [tr-
|
|
65
|
+
- [tr-request-export](#tr-request-export)
|
|
66
66
|
- [Authentication](#authentication-13)
|
|
67
67
|
- [Arguments](#arguments-13)
|
|
68
68
|
- [Usage](#usage-14)
|
|
69
|
-
- [tr-cron-
|
|
69
|
+
- [tr-cron-pull-identifiers](#tr-cron-pull-identifiers)
|
|
70
70
|
- [Authentication](#authentication-14)
|
|
71
71
|
- [Arguments](#arguments-14)
|
|
72
72
|
- [Usage](#usage-15)
|
|
73
|
-
- [tr-
|
|
73
|
+
- [tr-cron-mark-identifiers-completed](#tr-cron-mark-identifiers-completed)
|
|
74
74
|
- [Authentication](#authentication-15)
|
|
75
75
|
- [Arguments](#arguments-15)
|
|
76
76
|
- [Usage](#usage-16)
|
|
77
|
-
- [tr-manual-enrichment-
|
|
77
|
+
- [tr-manual-enrichment-pull-identifiers](#tr-manual-enrichment-pull-identifiers)
|
|
78
78
|
- [Authentication](#authentication-16)
|
|
79
79
|
- [Arguments](#arguments-16)
|
|
80
80
|
- [Usage](#usage-17)
|
|
81
|
-
- [tr-
|
|
81
|
+
- [tr-manual-enrichment-push-identifiers](#tr-manual-enrichment-push-identifiers)
|
|
82
82
|
- [Authentication](#authentication-17)
|
|
83
83
|
- [Arguments](#arguments-17)
|
|
84
84
|
- [Usage](#usage-18)
|
|
85
|
-
- [tr-
|
|
85
|
+
- [tr-mark-request-data-silos-completed](#tr-mark-request-data-silos-completed)
|
|
86
86
|
- [Authentication](#authentication-18)
|
|
87
87
|
- [Arguments](#arguments-18)
|
|
88
88
|
- [Usage](#usage-19)
|
|
89
|
-
- [tr-
|
|
89
|
+
- [tr-skip-request-data-silos](#tr-skip-request-data-silos)
|
|
90
90
|
- [Authentication](#authentication-19)
|
|
91
91
|
- [Arguments](#arguments-19)
|
|
92
92
|
- [Usage](#usage-20)
|
|
93
|
-
- [tr-
|
|
93
|
+
- [tr-retry-request-data-silos](#tr-retry-request-data-silos)
|
|
94
94
|
- [Authentication](#authentication-20)
|
|
95
95
|
- [Arguments](#arguments-20)
|
|
96
96
|
- [Usage](#usage-21)
|
|
97
|
-
- [tr-consent-
|
|
97
|
+
- [tr-update-consent-manager](#tr-update-consent-manager)
|
|
98
98
|
- [Authentication](#authentication-21)
|
|
99
99
|
- [Arguments](#arguments-21)
|
|
100
100
|
- [Usage](#usage-22)
|
|
101
|
-
- [tr-consent-
|
|
101
|
+
- [tr-consent-managers-to-business-entities](#tr-consent-managers-to-business-entities)
|
|
102
102
|
- [Authentication](#authentication-22)
|
|
103
103
|
- [Arguments](#arguments-22)
|
|
104
104
|
- [Usage](#usage-23)
|
|
105
|
-
- [tr-
|
|
105
|
+
- [tr-consent-manager-service-json-to-yml](#tr-consent-manager-service-json-to-yml)
|
|
106
106
|
- [Authentication](#authentication-23)
|
|
107
107
|
- [Arguments](#arguments-23)
|
|
108
108
|
- [Usage](#usage-24)
|
|
109
|
-
- [tr-derive-data-silos-from-data-flows
|
|
109
|
+
- [tr-derive-data-silos-from-data-flows](#tr-derive-data-silos-from-data-flows)
|
|
110
110
|
- [Authentication](#authentication-24)
|
|
111
111
|
- [Arguments](#arguments-24)
|
|
112
112
|
- [Usage](#usage-25)
|
|
113
|
-
- [tr-
|
|
113
|
+
- [tr-derive-data-silos-from-data-flows-cross-instance](#tr-derive-data-silos-from-data-flows-cross-instance)
|
|
114
114
|
- [Authentication](#authentication-25)
|
|
115
115
|
- [Arguments](#arguments-25)
|
|
116
116
|
- [Usage](#usage-26)
|
|
117
|
-
- [tr-pull-
|
|
117
|
+
- [tr-pull-consent-metrics](#tr-pull-consent-metrics)
|
|
118
118
|
- [Authentication](#authentication-26)
|
|
119
119
|
- [Arguments](#arguments-26)
|
|
120
120
|
- [Usage](#usage-27)
|
|
121
|
-
- [tr-
|
|
121
|
+
- [tr-pull-datapoints](#tr-pull-datapoints)
|
|
122
122
|
- [Authentication](#authentication-27)
|
|
123
|
-
- [Authentication](#authentication-28)
|
|
124
123
|
- [Arguments](#arguments-27)
|
|
125
124
|
- [Usage](#usage-28)
|
|
126
|
-
- [tr-upload-
|
|
125
|
+
- [tr-upload-preferences](#tr-upload-preferences)
|
|
126
|
+
- [Authentication](#authentication-28)
|
|
127
127
|
- [Authentication](#authentication-29)
|
|
128
128
|
- [Arguments](#arguments-28)
|
|
129
129
|
- [Usage](#usage-29)
|
|
130
|
-
- [tr-
|
|
130
|
+
- [tr-upload-consent-preferences](#tr-upload-consent-preferences)
|
|
131
131
|
- [Authentication](#authentication-30)
|
|
132
132
|
- [Arguments](#arguments-29)
|
|
133
133
|
- [Usage](#usage-30)
|
|
134
|
-
- [tr-
|
|
134
|
+
- [tr-pull-consent-preferences](#tr-pull-consent-preferences)
|
|
135
135
|
- [Authentication](#authentication-31)
|
|
136
136
|
- [Arguments](#arguments-30)
|
|
137
137
|
- [Usage](#usage-31)
|
|
138
|
-
- [tr-upload-
|
|
138
|
+
- [tr-upload-data-flows-from-csv](#tr-upload-data-flows-from-csv)
|
|
139
139
|
- [Authentication](#authentication-32)
|
|
140
140
|
- [Arguments](#arguments-31)
|
|
141
141
|
- [Usage](#usage-32)
|
|
142
|
-
- [tr-
|
|
142
|
+
- [tr-upload-cookies-from-csv](#tr-upload-cookies-from-csv)
|
|
143
143
|
- [Authentication](#authentication-33)
|
|
144
144
|
- [Arguments](#arguments-32)
|
|
145
145
|
- [Usage](#usage-33)
|
|
146
|
-
- [tr-
|
|
146
|
+
- [tr-generate-api-keys](#tr-generate-api-keys)
|
|
147
147
|
- [Authentication](#authentication-34)
|
|
148
148
|
- [Arguments](#arguments-33)
|
|
149
149
|
- [Usage](#usage-34)
|
|
150
|
+
- [tr-build-xdi-sync-endpoint](#tr-build-xdi-sync-endpoint)
|
|
151
|
+
- [Authentication](#authentication-35)
|
|
152
|
+
- [Arguments](#arguments-34)
|
|
153
|
+
- [Usage](#usage-35)
|
|
150
154
|
- [Prompt Manager](#prompt-manager)
|
|
151
155
|
- [Proxy usage](#proxy-usage)
|
|
152
156
|
|
|
@@ -172,6 +176,7 @@ yarn add -D @transcend-io/cli
|
|
|
172
176
|
|
|
173
177
|
# cli commands available within package
|
|
174
178
|
yarn tr-pull --auth=$TRANSCEND_API_KEY
|
|
179
|
+
yarn tr-pull-ot --auth=$ONE_TRUST_OAUTH_TOKEN --hostname=$ONE_TRUST_HOSTNAME --file=$ONE_TRUST_OUTPUT_FILE
|
|
175
180
|
yarn tr-push --auth=$TRANSCEND_API_KEY
|
|
176
181
|
yarn tr-scan-packages --auth=$TRANSCEND_API_KEY
|
|
177
182
|
yarn tr-discover-silos --auth=$TRANSCEND_API_KEY
|
|
@@ -212,6 +217,7 @@ npm i -D @transcend-io/cli
|
|
|
212
217
|
|
|
213
218
|
# cli commands available within package
|
|
214
219
|
tr-pull --auth=$TRANSCEND_API_KEY
|
|
220
|
+
tr-pull-ot --auth=$ONE_TRUST_OAUTH_TOKEN --hostname=$ONE_TRUST_HOSTNAME --file=$ONE_TRUST_OUTPUT_FILE
|
|
215
221
|
tr-push --auth=$TRANSCEND_API_KEY
|
|
216
222
|
tr-scan-packages --auth=$TRANSCEND_API_KEY
|
|
217
223
|
tr-discover-silos --auth=$TRANSCEND_API_KEY
|
|
@@ -571,6 +577,43 @@ tr-pull --auth=./transcend-api-keys.json --resources=consentManager --file=./tra
|
|
|
571
577
|
|
|
572
578
|
Note: This command will overwrite the existing transcend.yml file that you have locally.
|
|
573
579
|
|
|
580
|
+
### tr-pull-ot
|
|
581
|
+
|
|
582
|
+
Pulls resources from a OneTrust instance. For now, it only supports retrieving OneTrust Assessments. It sends a request to the [Get List of Assessments](https://developer.onetrust.com/onetrust/reference/getallassessmentbasicdetailsusingget) endpoint to fetch a list of all Assessments in your account. Then, it queries the [Get Assessment](https://developer.onetrust.com/onetrust/reference/exportassessmentusingget) and [Get Risk](https://developer.onetrust.com/onetrust/reference/getriskusingget) endpoints to enrich these assessments with more details such as respondents, approvers, assessment questions and responses, and assessment risks. Finally, it syncs the enriched resources to disk in the specified file and format.
|
|
583
|
+
|
|
584
|
+
This command can be helpful if you are looking to:
|
|
585
|
+
|
|
586
|
+
- Pull resources from your OneTrust account.
|
|
587
|
+
- Migrate your resources from your OneTrust account to Transcend.
|
|
588
|
+
|
|
589
|
+
#### Authentication
|
|
590
|
+
|
|
591
|
+
In order to use this command, you will need to generate a OneTrust OAuth Token with scope for accessing the following endpoints:
|
|
592
|
+
|
|
593
|
+
- [GET /v2/assessments](https://developer.onetrust.com/onetrust/reference/getallassessmentbasicdetailsusingget)
|
|
594
|
+
- [GET /v2/assessments/{assessmentId}/export](https://developer.onetrust.com/onetrust/reference/exportassessmentusingget)
|
|
595
|
+
- [GET /risks/{riskId}](https://developer.onetrust.com/onetrust/reference/getriskusingget)
|
|
596
|
+
|
|
597
|
+
To learn how to generate the token, see the [OAuth 2.0 Scopes](https://developer.onetrust.com/onetrust/reference/oauth-20-scopes) and [Generate Access Token](https://developer.onetrust.com/onetrust/reference/getoauthtoken) pages.
|
|
598
|
+
|
|
599
|
+
#### Arguments
|
|
600
|
+
|
|
601
|
+
| Argument | Description | Type | Default | Required |
|
|
602
|
+
| ---------- | ------------------------------------------------------------------------------------------------- | ------- | ----------- | -------- |
|
|
603
|
+
| auth | The OAuth access token with the scopes necessary to access the OneTrust Public APIs. | string | N/A | true |
|
|
604
|
+
| hostname | The domain of the OneTrust environment from which to pull the resource (e.g. trial.onetrust.com). | string | N/A | true |
|
|
605
|
+
| file | Path to the file to pull the resource into. Its format must match the fileFormat argument. | string | N/A | true |
|
|
606
|
+
| fileFormat | The format of the output file. For now, only json is supported. | string | json | false |
|
|
607
|
+
| resource | The resource to pull from OneTrust. For now, only assessments is supported. | string | assessments | false |
|
|
608
|
+
| debug | Whether to print detailed logs in case of error. | boolean | false | false |
|
|
609
|
+
|
|
610
|
+
#### Usage
|
|
611
|
+
|
|
612
|
+
```sh
|
|
613
|
+
# Writes out file to ./oneTrustAssessments.json
|
|
614
|
+
tr-pull-ot --auth=$ONE_TRUST_OAUTH_TOKEN --hostname=trial.onetrust.com --file=./oneTrustAssessments.json
|
|
615
|
+
```
|
|
616
|
+
|
|
574
617
|
### tr-push
|
|
575
618
|
|
|
576
619
|
Given a transcend.yml file, sync the contents up to your connected services view (https://app.transcend.io/privacy-requests/connected-services).
|
|
@@ -792,12 +835,13 @@ The API key needs the following scopes:
|
|
|
792
835
|
|
|
793
836
|
#### Arguments
|
|
794
837
|
|
|
795
|
-
| Argument
|
|
796
|
-
|
|
|
797
|
-
| auth
|
|
798
|
-
| scanPath
|
|
799
|
-
| ignoreDirs
|
|
800
|
-
| packageName
|
|
838
|
+
| Argument | Description | Type | Default | Required |
|
|
839
|
+
| ------------ | ----------------------------------------------------------------------------- | ------------ | --------------------------------------------------------- | -------- |
|
|
840
|
+
| auth | Transcend API key. | string | N/A | true |
|
|
841
|
+
| scanPath | File path in the project to scan. | string | ./ | false |
|
|
842
|
+
| ignoreDirs | List of directories to ignore in scan | string[] | [] | false |
|
|
843
|
+
| packageName | Name of the git repository that the package should be tied to | string | $(`cd ${scanPath} && git config --get remote.origin.url`) | false |
|
|
844
|
+
| transcendUrl | URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. | string - URL | https://api.transcend.io | false |
|
|
801
845
|
|
|
802
846
|
#### Usage
|
|
803
847
|
|
|
@@ -85,17 +85,23 @@ async function main() {
|
|
|
85
85
|
const client = (0, graphql_1.buildTranscendGraphQLClient)(transcendUrl, auth);
|
|
86
86
|
// Pull down target identifiers
|
|
87
87
|
const results = await (0, bluebird_1.map)((0, uniq_1.default)(requestIds), async (requestId) => {
|
|
88
|
-
const results = await (0, graphql_1.fetchRequestFilesForRequest)(client, {
|
|
88
|
+
const results = await (0, graphql_1.fetchRequestFilesForRequest)(client, {
|
|
89
|
+
requestId,
|
|
90
|
+
dataSiloId: targetDataSiloId,
|
|
91
|
+
});
|
|
89
92
|
return results.map(({ fileName, remoteId }) => {
|
|
90
93
|
var _a;
|
|
91
|
-
|
|
94
|
+
if (!remoteId) {
|
|
95
|
+
throw new Error(`Failed to find remoteId for ${fileName} request: ${requestId}`);
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
92
98
|
RecordId: remoteId,
|
|
93
99
|
Object: (_a = fileName
|
|
94
100
|
.replace('.json', '')
|
|
95
101
|
.split('/')
|
|
96
102
|
.pop()) === null || _a === void 0 ? void 0 : _a.replace(' Information', ''),
|
|
97
103
|
Comment: 'Customer data deletion request submitted via transcend.io',
|
|
98
|
-
}
|
|
104
|
+
};
|
|
99
105
|
});
|
|
100
106
|
}, {
|
|
101
107
|
concurrency: 10,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-cron-pull-profiles.js","sourceRoot":"","sources":["../src/cli-cron-pull-profiles.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-cron-pull-profiles.js","sourceRoot":"","sources":["../src/cli-cron-pull-profiles.ts"],"names":[],"mappings":";;;;;;AAEA,gEAAiC;AACjC,oDAA4B;AAE5B,qCAAkC;AAClC,uDAA+B;AAC/B,iCAAwE;AACxE,+DAA4D;AAC5D,2CAAoD;AACpD,yCAA4C;AAC5C,uCAA+B;AAC/B,uCAGmB;AAEnB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,KAAK,UAAU,IAAI;IACjB,+BAA+B;IAC/B,MAAM,EACJ,IAAI,GAAG,wBAAwB,EAC/B,UAAU,GAAG,+BAA+B,EAC5C,YAAY,GAAG,iCAAqB,EACpC,IAAI,EACJ,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,SAAS,GAAG,KAAK,GAClB,GAAG,IAAA,sBAAK,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAA8B,CAAC;IAE9D,wBAAwB;IACxB,IAAI,CAAC,IAAI,EAAE;QACT,eAAM,CAAC,KAAK,CACV,gBAAM,CAAC,GAAG,CACR,uFAAuF,CACxF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,wBAAwB;IACxB,IAAI,CAAC,cAAc,EAAE;QACnB,eAAM,CAAC,KAAK,CACV,gBAAM,CAAC,GAAG,CACR,gHAAgH,CACjH,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,0BAA0B;IAC1B,IAAI,CAAC,gBAAgB,EAAE;QACrB,eAAM,CAAC,KAAK,CACV,gBAAM,CAAC,GAAG,CACR,oHAAoH,CACrH,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,iBAAiB;IACjB,IAAI,CAAC,OAAO,EAAE;QACZ,eAAM,CAAC,KAAK,CACV,gBAAM,CAAC,GAAG,CACR,+EAA+E,CAChF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,mBAAmB;IACnB,MAAM,aAAa,GAAG,IAAA,yBAAc,EAAC,OAAO,CAAoB,CAAC;IACjE,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM;IACzC,8DAA8D;IAC9D,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,6BAAa,CAAC,CAAC,QAAQ,CAAC,IAAW,CAAC,CAC9D,CAAC;IACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,eAAM,CAAC,KAAK,CACV,gBAAM,CAAC,GAAG,CACR,4BAA4B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;YACxD,sBAAsB,MAAM,CAAC,MAAM,CAAC,6BAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAClE,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,oCAAoC;IACpC,MAAM,EAAE,0BAA0B,EAAE,GAClC,MAAM,IAAA,2CAAoC,EAAC;QACzC,YAAY;QACZ,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;QAClC,OAAO,EAAE,aAAa;QACtB,IAAI;QACJ,UAAU;QACV,UAAU,EAAE,cAAc;KAC3B,CAAC,CAAC;IAEL,wDAAwD;IACxD,MAAM,UAAU,GAAG,0BAA0B,CAAC,GAAG,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAmB,CAC7B,CAAC;IAEF,wDAAwD;IACxD,MAAM,MAAM,GAAG,IAAA,qCAA2B,EAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAE/D,+BAA+B;IAC/B,MAAM,OAAO,GAAG,MAAM,IAAA,cAAG,EACvB,IAAA,cAAI,EAAC,UAAU,CAAC,EAChB,KAAK,EAAE,SAAS,EAAE,EAAE;QAClB,MAAM,OAAO,GAAG,MAAM,IAAA,qCAA2B,EAAC,MAAM,EAAE;YACxD,SAAS;YACT,UAAU,EAAE,gBAAgB;SAC7B,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;;YAC5C,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,IAAI,KAAK,CACb,+BAA+B,QAAQ,aAAa,SAAS,EAAE,CAChE,CAAC;aACH;YACD,OAAO;gBACL,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,MAAA,QAAQ;qBACb,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;qBACpB,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,EAAE,0CACJ,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC/B,OAAO,EAAE,2DAA2D;aACrE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EACD;QACE,WAAW,EAAE,EAAE;KAChB,CACF,CAAC;IAEF,YAAY;IACZ,MAAM,OAAO,GAAG,IAAA,cAAI,EAClB,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAC7D,CAAC;IACF,IAAA,eAAQ,EAAC,IAAI,EAAE,0BAA0B,EAAE,OAAO,CAAC,CAAC;IACpD,eAAM,CAAC,IAAI,CACT,gBAAM,CAAC,KAAK,CACV,sBAAsB,0BAA0B,CAAC,MAAM,yBAAyB,IAAI,GAAG,CACxF,CACF,CAAC;IAEF,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAA,cAAI,EAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3E,IAAA,eAAQ,EAAC,UAAU,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAClD,eAAM,CAAC,IAAI,CACT,gBAAM,CAAC,KAAK,CACV,sBAAsB,iBAAiB,CAAC,MAAM,yBAAyB,UAAU,GAAG,CACrF,CACF,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-pull-ot.d.ts","sourceRoot":"","sources":["../src/cli-pull-ot.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const logger_1 = require("./logger");
|
|
8
|
+
const colors_1 = __importDefault(require("colors"));
|
|
9
|
+
const oneTrust_1 = require("./oneTrust");
|
|
10
|
+
const enums_1 = require("./enums");
|
|
11
|
+
const bluebird_1 = require("bluebird");
|
|
12
|
+
/**
|
|
13
|
+
* Pull configuration from OneTrust down locally to disk
|
|
14
|
+
*
|
|
15
|
+
* Dev Usage:
|
|
16
|
+
* yarn ts-node ./src/cli-pull-ot.ts --hostname=customer.my.onetrust.com --auth=$ONE_TRUST_OAUTH_TOKEN --file=./oneTrustAssessment.json
|
|
17
|
+
*
|
|
18
|
+
* Standard usage
|
|
19
|
+
* yarn cli-pull-ot --hostname=customer.my.onetrust.com --auth=$ONE_TRUST_OAUTH_TOKEN --file=./oneTrustAssessment.json
|
|
20
|
+
*/
|
|
21
|
+
async function main() {
|
|
22
|
+
const { file, fileFormat, hostname, auth, resource, debug } = (0, oneTrust_1.parseCliPullOtArguments)();
|
|
23
|
+
try {
|
|
24
|
+
if (resource === enums_1.OneTrustPullResource.Assessments) {
|
|
25
|
+
// use the hostname and auth token to instantiate a client to talk to OneTrust
|
|
26
|
+
const oneTrust = (0, oneTrust_1.createOneTrustGotInstance)({ hostname, auth });
|
|
27
|
+
// fetch the list of all assessments in the OneTrust organization
|
|
28
|
+
const assessments = await (0, oneTrust_1.getListOfAssessments)({ oneTrust });
|
|
29
|
+
// fetch details about one assessment at a time and sync to disk right away to avoid running out of memory
|
|
30
|
+
await (0, bluebird_1.mapSeries)(assessments, async (assessment, index) => {
|
|
31
|
+
logger_1.logger.info(`Fetching details about assessment ${index + 1} of ${assessments.length}...`);
|
|
32
|
+
const assessmentDetails = await (0, oneTrust_1.getAssessment)({
|
|
33
|
+
oneTrust,
|
|
34
|
+
assessmentId: assessment.assessmentId,
|
|
35
|
+
});
|
|
36
|
+
(0, oneTrust_1.writeOneTrustAssessment)({
|
|
37
|
+
assessment,
|
|
38
|
+
assessmentDetails,
|
|
39
|
+
index,
|
|
40
|
+
total: assessments.length,
|
|
41
|
+
file,
|
|
42
|
+
fileFormat,
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
logger_1.logger.error(colors_1.default.red(`An error occurred pulling the resource ${resource} from OneTrust: ${debug ? err.stack : err.message}`));
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
// Indicate success
|
|
52
|
+
logger_1.logger.info(colors_1.default.green(`Successfully synced OneTrust ${resource} to disk at "${file}"!`));
|
|
53
|
+
}
|
|
54
|
+
main();
|
|
55
|
+
//# sourceMappingURL=cli-pull-ot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-pull-ot.js","sourceRoot":"","sources":["../src/cli-pull-ot.ts"],"names":[],"mappings":";;;;;;AACA,qCAAkC;AAClC,oDAA4B;AAC5B,yCAMoB;AACpB,mCAA+C;AAC/C,uCAAqC;AAErC;;;;;;;;GAQG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GACzD,IAAA,kCAAuB,GAAE,CAAC;IAE5B,IAAI;QACF,IAAI,QAAQ,KAAK,4BAAoB,CAAC,WAAW,EAAE;YACjD,8EAA8E;YAC9E,MAAM,QAAQ,GAAG,IAAA,oCAAyB,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAE/D,iEAAiE;YACjE,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAoB,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAE7D,0GAA0G;YAC1G,MAAM,IAAA,oBAAS,EAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE;gBACvD,eAAM,CAAC,IAAI,CACT,qCAAqC,KAAK,GAAG,CAAC,OAC5C,WAAW,CAAC,MACd,KAAK,CACN,CAAC;gBACF,MAAM,iBAAiB,GAAG,MAAM,IAAA,wBAAa,EAAC;oBAC5C,QAAQ;oBACR,YAAY,EAAE,UAAU,CAAC,YAAY;iBACtC,CAAC,CAAC;gBAEH,IAAA,kCAAuB,EAAC;oBACtB,UAAU;oBACV,iBAAiB;oBACjB,KAAK;oBACL,KAAK,EAAE,WAAW,CAAC,MAAM;oBACzB,IAAI;oBACJ,UAAU;iBACX,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,eAAM,CAAC,KAAK,CACV,gBAAM,CAAC,GAAG,CACR,0CAA0C,QAAQ,mBAChD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAC1B,EAAE,CACH,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,mBAAmB;IACnB,eAAM,CAAC,IAAI,CACT,gBAAM,CAAC,KAAK,CACV,gCAAgC,QAAQ,gBAAgB,IAAI,IAAI,CACjE,CACF,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC"}
|
package/build/enums.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/** Accepted file formats for exporting resources from OneTrust */
|
|
2
|
+
export declare enum OneTrustFileFormat {
|
|
3
|
+
Json = "json",
|
|
4
|
+
Csv = "csv"
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Resources that can be pulled in from OneTrust
|
|
8
|
+
*/
|
|
9
|
+
export declare enum OneTrustPullResource {
|
|
10
|
+
Assessments = "assessments"
|
|
11
|
+
}
|
|
1
12
|
/**
|
|
2
13
|
* Resources that can be pulled in
|
|
3
14
|
*/
|
|
@@ -45,7 +56,7 @@ export declare const PathfinderPolicyName: {
|
|
|
45
56
|
/**
|
|
46
57
|
* Type override
|
|
47
58
|
*/
|
|
48
|
-
export type PathfinderPolicyName = typeof PathfinderPolicyName[keyof typeof PathfinderPolicyName];
|
|
59
|
+
export type PathfinderPolicyName = (typeof PathfinderPolicyName)[keyof typeof PathfinderPolicyName];
|
|
49
60
|
/**
|
|
50
61
|
* The names of the OpenAI routes that we support setting policies for
|
|
51
62
|
* reference: https://platform.openai.com/docs/api-reference/introduction
|
|
@@ -68,5 +79,5 @@ export declare const OpenAIRouteName: {
|
|
|
68
79
|
/**
|
|
69
80
|
* Type override
|
|
70
81
|
*/
|
|
71
|
-
export type OpenAIRouteName = typeof OpenAIRouteName[keyof typeof OpenAIRouteName];
|
|
82
|
+
export type OpenAIRouteName = (typeof OpenAIRouteName)[keyof typeof OpenAIRouteName];
|
|
72
83
|
//# sourceMappingURL=enums.d.ts.map
|
package/build/enums.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,oBAAY,qBAAqB;IAC/B,OAAO,YAAY;IACnB,UAAU,iBAAiB;IAC3B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,qBAAqB,0BAA0B;IAC/C,KAAK,UAAU;IACf,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,mBAAmB,wBAAwB;CAC5C;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;CAK/B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC9B,OAAO,oBAAoB,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":"AAEA,kEAAkE;AAClE,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,WAAW,gBAAgB;CAC5B;AAED;;GAEG;AACH,oBAAY,qBAAqB;IAC/B,OAAO,YAAY;IACnB,UAAU,iBAAiB;IAC3B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,qBAAqB,0BAA0B;IAC/C,KAAK,UAAU;IACf,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,mBAAmB,wBAAwB;CAC5C;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;CAK/B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC9B,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;CAc1B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GACzB,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC"}
|
package/build/enums.js
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OpenAIRouteName = exports.PathfinderPolicyName = exports.TranscendPullResource = void 0;
|
|
3
|
+
exports.OpenAIRouteName = exports.PathfinderPolicyName = exports.TranscendPullResource = exports.OneTrustPullResource = exports.OneTrustFileFormat = void 0;
|
|
4
4
|
const type_utils_1 = require("@transcend-io/type-utils");
|
|
5
|
+
/** Accepted file formats for exporting resources from OneTrust */
|
|
6
|
+
var OneTrustFileFormat;
|
|
7
|
+
(function (OneTrustFileFormat) {
|
|
8
|
+
OneTrustFileFormat["Json"] = "json";
|
|
9
|
+
OneTrustFileFormat["Csv"] = "csv";
|
|
10
|
+
})(OneTrustFileFormat = exports.OneTrustFileFormat || (exports.OneTrustFileFormat = {}));
|
|
11
|
+
/**
|
|
12
|
+
* Resources that can be pulled in from OneTrust
|
|
13
|
+
*/
|
|
14
|
+
var OneTrustPullResource;
|
|
15
|
+
(function (OneTrustPullResource) {
|
|
16
|
+
OneTrustPullResource["Assessments"] = "assessments";
|
|
17
|
+
})(OneTrustPullResource = exports.OneTrustPullResource || (exports.OneTrustPullResource = {}));
|
|
5
18
|
/**
|
|
6
19
|
* Resources that can be pulled in
|
|
7
20
|
*/
|
package/build/enums.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AAEpD;;GAEG;AACH,IAAY,qBA+BX;AA/BD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,oDAA2B,CAAA;IAC3B,gDAAuB,CAAA;IACvB,gDAAuB,CAAA;IACvB,gDAAuB,CAAA;IACvB,gDAAuB,CAAA;IACvB,8DAAqC,CAAA;IACrC,4CAAmB,CAAA;IACnB,sDAA6B,CAAA;IAC7B,oDAA2B,CAAA;IAC3B,4CAAmB,CAAA;IACnB,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;IACzB,4CAAmB,CAAA;IACnB,0DAAiC,CAAA;IACjC,sDAA6B,CAAA;IAC7B,0CAAiB,CAAA;IACjB,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;IACzB,4CAAmB,CAAA;IACnB,0DAAiC,CAAA;IACjC,kEAAyC,CAAA;IACzC,oDAA2B,CAAA;IAC3B,wEAA+C,CAAA;IAC/C,wCAAe,CAAA;IACf,0DAAiC,CAAA;IACjC,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;IACrB,oDAA2B,CAAA;IAC3B,oEAA2C,CAAA;AAC7C,CAAC,EA/BW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QA+BhC;AAED;;GAEG;AACU,QAAA,oBAAoB,GAAG,IAAA,qBAAQ,EAAC;IAC3C,WAAW,EAAE,aAAa;IAC1B,GAAG,EAAE,KAAK;IACV,cAAc,EAAE,gBAAgB;IAChC,sBAAsB,EAAE,wBAAwB;CACjD,CAAC,CAAC;AAQH;;;GAGG;AACU,QAAA,eAAe,GAAG,IAAA,qBAAQ,EAAC;IACtC,cAAc,EAAE,sBAAsB;IACtC,UAAU,EAAE,gBAAgB;IAC5B,WAAW,EAAE,iBAAiB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,6BAA6B;IACpC,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,uBAAuB;IAC/B,QAAQ,EAAE,gCAAgC;IAC1C,OAAO,EAAE,2CAA2C;IACpD,IAAI,EAAE,4BAA4B;IAClC,GAAG,EAAE,mCAAmC;IACxC,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AAEpD,kEAAkE;AAClE,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,mCAAa,CAAA;IACb,iCAAW,CAAA;AACb,CAAC,EAHW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAG7B;AAED;;GAEG;AACH,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC9B,mDAA2B,CAAA;AAC7B,CAAC,EAFW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAE/B;AAED;;GAEG;AACH,IAAY,qBA+BX;AA/BD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,oDAA2B,CAAA;IAC3B,gDAAuB,CAAA;IACvB,gDAAuB,CAAA;IACvB,gDAAuB,CAAA;IACvB,gDAAuB,CAAA;IACvB,8DAAqC,CAAA;IACrC,4CAAmB,CAAA;IACnB,sDAA6B,CAAA;IAC7B,oDAA2B,CAAA;IAC3B,4CAAmB,CAAA;IACnB,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;IACzB,4CAAmB,CAAA;IACnB,0DAAiC,CAAA;IACjC,sDAA6B,CAAA;IAC7B,0CAAiB,CAAA;IACjB,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;IACzB,4CAAmB,CAAA;IACnB,0DAAiC,CAAA;IACjC,kEAAyC,CAAA;IACzC,oDAA2B,CAAA;IAC3B,wEAA+C,CAAA;IAC/C,wCAAe,CAAA;IACf,0DAAiC,CAAA;IACjC,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;IACrB,oDAA2B,CAAA;IAC3B,oEAA2C,CAAA;AAC7C,CAAC,EA/BW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QA+BhC;AAED;;GAEG;AACU,QAAA,oBAAoB,GAAG,IAAA,qBAAQ,EAAC;IAC3C,WAAW,EAAE,aAAa;IAC1B,GAAG,EAAE,KAAK;IACV,cAAc,EAAE,gBAAgB;IAChC,sBAAsB,EAAE,wBAAwB;CACjD,CAAC,CAAC;AAQH;;;GAGG;AACU,QAAA,eAAe,GAAG,IAAA,qBAAQ,EAAC;IACtC,cAAc,EAAE,sBAAsB;IACtC,UAAU,EAAE,gBAAgB;IAC5B,WAAW,EAAE,iBAAiB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,6BAA6B;IACpC,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,uBAAuB;IAC/B,QAAQ,EAAE,gCAAgC;IAC1C,OAAO,EAAE,2CAA2C;IACpD,IAAI,EAAE,4BAA4B;IAClC,GAAG,EAAE,mCAAmC;IACxC,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAC"}
|
|
@@ -15,5 +15,7 @@ export interface RequestFile {
|
|
|
15
15
|
export declare function fetchRequestFilesForRequest(client: GraphQLClient, filterBy: {
|
|
16
16
|
/** Filter by request ID */
|
|
17
17
|
requestId: string;
|
|
18
|
+
/** Filter by data silo ID */
|
|
19
|
+
dataSiloId?: string;
|
|
18
20
|
}): Promise<RequestFile[]>;
|
|
19
21
|
//# sourceMappingURL=fetchRequestFilesForRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchRequestFilesForRequest.d.ts","sourceRoot":"","sources":["../../src/graphql/fetchRequestFilesForRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE;IACR,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"fetchRequestFilesForRequest.d.ts","sourceRoot":"","sources":["../../src/graphql/fetchRequestFilesForRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE;IACR,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,OAAO,CAAC,WAAW,EAAE,CAAC,CA2BxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchRequestFilesForRequest.js","sourceRoot":"","sources":["../../src/graphql/fetchRequestFilesForRequest.ts"],"names":[],"mappings":";;;AACA,iCAAuC;AACvC,6DAA0D;AAS1D,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB;;;;;;GAMG;AACI,KAAK,UAAU,2BAA2B,CAC/C,MAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"fetchRequestFilesForRequest.js","sourceRoot":"","sources":["../../src/graphql/fetchRequestFilesForRequest.ts"],"names":[],"mappings":";;;AACA,iCAAuC;AACvC,6DAA0D;AAS1D,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB;;;;;;GAMG;AACI,KAAK,UAAU,2BAA2B,CAC/C,MAAqB,EACrB,QAKC;IAED,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,8BAA8B;IAC9B,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,GAAG;QACD,MAAM,EACJ,YAAY,EAAE,EAAE,KAAK,EAAE;QACvB,4CAA4C;UAC7C,GAAG,MAAM,IAAA,uCAAkB,EAMzB,MAAM,EAAE,oBAAa,EAAE;YACxB,KAAK,EAAE,SAAS;YAChB,MAAM;YACN,QAAQ;SACT,CAAC,CAAC;QACH,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC5B,MAAM,IAAI,SAAS,CAAC;QACpB,cAAc,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC;KAC7C,QAAQ,cAAc,EAAE;IAEzB,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3E,CAAC;AAnCD,kEAmCC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Got } from 'got';
|
|
2
|
+
/**
|
|
3
|
+
* Instantiate an instance of got that is capable of making requests to OneTrust
|
|
4
|
+
*
|
|
5
|
+
* @param param - information about the OneTrust URL
|
|
6
|
+
* @returns The instance of got that is capable of making requests to the customer ingress
|
|
7
|
+
*/
|
|
8
|
+
export declare const createOneTrustGotInstance: ({ hostname, auth, }: {
|
|
9
|
+
/** Hostname of the OneTrust API */
|
|
10
|
+
hostname: string;
|
|
11
|
+
/** The OAuth access token */
|
|
12
|
+
auth: string;
|
|
13
|
+
}) => Got;
|
|
14
|
+
//# sourceMappingURL=createOneTrustGotInstance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createOneTrustGotInstance.d.ts","sourceRoot":"","sources":["../../src/oneTrust/createOneTrustGotInstance.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;IAIpC,mCAAmC;cACzB,MAAM;IAChB,6BAA6B;UACvB,MAAM;MACV,GAQA,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createOneTrustGotInstance = void 0;
|
|
7
|
+
const got_1 = __importDefault(require("got"));
|
|
8
|
+
/**
|
|
9
|
+
* Instantiate an instance of got that is capable of making requests to OneTrust
|
|
10
|
+
*
|
|
11
|
+
* @param param - information about the OneTrust URL
|
|
12
|
+
* @returns The instance of got that is capable of making requests to the customer ingress
|
|
13
|
+
*/
|
|
14
|
+
const createOneTrustGotInstance = ({ hostname, auth, }) => got_1.default.extend({
|
|
15
|
+
prefixUrl: `https://${hostname}`,
|
|
16
|
+
headers: {
|
|
17
|
+
accept: 'application/json',
|
|
18
|
+
'content-type': 'application/json',
|
|
19
|
+
authorization: `Bearer ${auth}`,
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
exports.createOneTrustGotInstance = createOneTrustGotInstance;
|
|
23
|
+
//# sourceMappingURL=createOneTrustGotInstance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createOneTrustGotInstance.js","sourceRoot":"","sources":["../../src/oneTrust/createOneTrustGotInstance.ts"],"names":[],"mappings":";;;;;;AAAA,8CAA+B;AAE/B;;;;;GAKG;AACI,MAAM,yBAAyB,GAAG,CAAC,EACxC,QAAQ,EACR,IAAI,GAML,EAAO,EAAE,CACR,aAAG,CAAC,MAAM,CAAC;IACT,SAAS,EAAE,WAAW,QAAQ,EAAE;IAChC,OAAO,EAAE;QACP,MAAM,EAAE,kBAAkB;QAC1B,cAAc,EAAE,kBAAkB;QAClC,aAAa,EAAE,UAAU,IAAI,EAAE;KAChC;CACF,CAAC,CAAC;AAhBQ,QAAA,yBAAyB,6BAgBjC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Got } from 'got';
|
|
2
|
+
import { OneTrustGetAssessmentResponse } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Retrieve details about a particular assessment.
|
|
5
|
+
*
|
|
6
|
+
* @param param - the information about the OneTrust client and assessment to retrieve
|
|
7
|
+
* @returns details about the assessment
|
|
8
|
+
*/
|
|
9
|
+
export declare const getAssessment: ({ oneTrust, assessmentId, }: {
|
|
10
|
+
/** The OneTrust client instance */
|
|
11
|
+
oneTrust: Got;
|
|
12
|
+
/** The ID of the assessment to retrieve */
|
|
13
|
+
assessmentId: string;
|
|
14
|
+
}) => Promise<OneTrustGetAssessmentResponse>;
|
|
15
|
+
//# sourceMappingURL=getAssessment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAssessment.d.ts","sourceRoot":"","sources":["../../src/oneTrust/getAssessment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,aAAa;IAIxB,mCAAmC;cACzB,GAAG;IACb,2CAA2C;kBAC7B,MAAM;MAClB,QAAQ,6BAA6B,CAMxC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAssessment = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Retrieve details about a particular assessment.
|
|
6
|
+
*
|
|
7
|
+
* @param param - the information about the OneTrust client and assessment to retrieve
|
|
8
|
+
* @returns details about the assessment
|
|
9
|
+
*/
|
|
10
|
+
const getAssessment = async ({ oneTrust, assessmentId, }) => {
|
|
11
|
+
const { body } = await oneTrust.get(`api/assessment/v2/assessments/${assessmentId}/export?ExcludeSkippedQuestions=false`);
|
|
12
|
+
return JSON.parse(body);
|
|
13
|
+
};
|
|
14
|
+
exports.getAssessment = getAssessment;
|
|
15
|
+
//# sourceMappingURL=getAssessment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAssessment.js","sourceRoot":"","sources":["../../src/oneTrust/getAssessment.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;AACI,MAAM,aAAa,GAAG,KAAK,EAAE,EAClC,QAAQ,EACR,YAAY,GAMb,EAA0C,EAAE;IAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,GAAG,CACjC,iCAAiC,YAAY,uCAAuC,CACrF,CAAC;IAEF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkC,CAAC;AAC3D,CAAC,CAAC;AAdW,QAAA,aAAa,iBAcxB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Got } from 'got';
|
|
2
|
+
import { OneTrustAssessment } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Fetch a list of all assessments from the OneTrust client.
|
|
5
|
+
*
|
|
6
|
+
* @param param - the information about the OneTrust client
|
|
7
|
+
* @returns a list of OneTrustAssessment
|
|
8
|
+
*/
|
|
9
|
+
export declare const getListOfAssessments: ({ oneTrust, }: {
|
|
10
|
+
/** The OneTrust client instance */
|
|
11
|
+
oneTrust: Got;
|
|
12
|
+
}) => Promise<OneTrustAssessment[]>;
|
|
13
|
+
//# sourceMappingURL=getListOfAssessments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getListOfAssessments.d.ts","sourceRoot":"","sources":["../../src/oneTrust/getListOfAssessments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EACL,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAEjB;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;IAG/B,mCAAmC;cACzB,GAAG;MACX,QAAQ,kBAAkB,EAAE,CA8B/B,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getListOfAssessments = void 0;
|
|
4
|
+
const logger_1 = require("../logger");
|
|
5
|
+
/**
|
|
6
|
+
* Fetch a list of all assessments from the OneTrust client.
|
|
7
|
+
*
|
|
8
|
+
* @param param - the information about the OneTrust client
|
|
9
|
+
* @returns a list of OneTrustAssessment
|
|
10
|
+
*/
|
|
11
|
+
const getListOfAssessments = async ({ oneTrust, }) => {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
let currentPage = 0;
|
|
14
|
+
let totalPages = 1;
|
|
15
|
+
let totalElements = 0;
|
|
16
|
+
const allAssessments = [];
|
|
17
|
+
logger_1.logger.info('Getting list of all assessments from OneTrust...');
|
|
18
|
+
while (currentPage < totalPages) {
|
|
19
|
+
// eslint-disable-next-line no-await-in-loop
|
|
20
|
+
const { body } = await oneTrust.get(`api/assessment/v2/assessments?page=${currentPage}&size=2000`);
|
|
21
|
+
const { page, content } = JSON.parse(body);
|
|
22
|
+
allAssessments.push(...(content !== null && content !== void 0 ? content : []));
|
|
23
|
+
if (currentPage === 0) {
|
|
24
|
+
totalPages = (_a = page === null || page === void 0 ? void 0 : page.totalPages) !== null && _a !== void 0 ? _a : 0;
|
|
25
|
+
totalElements = (_b = page === null || page === void 0 ? void 0 : page.totalElements) !== null && _b !== void 0 ? _b : 0;
|
|
26
|
+
}
|
|
27
|
+
currentPage += 1;
|
|
28
|
+
// log progress
|
|
29
|
+
logger_1.logger.info(`Fetched ${allAssessments.length} of ${totalElements} assessments.`);
|
|
30
|
+
}
|
|
31
|
+
return allAssessments;
|
|
32
|
+
};
|
|
33
|
+
exports.getListOfAssessments = getListOfAssessments;
|
|
34
|
+
//# sourceMappingURL=getListOfAssessments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getListOfAssessments.js","sourceRoot":"","sources":["../../src/oneTrust/getListOfAssessments.ts"],"names":[],"mappings":";;;AACA,sCAAmC;AAMnC;;;;;GAKG;AACI,MAAM,oBAAoB,GAAG,KAAK,EAAE,EACzC,QAAQ,GAIT,EAAiC,EAAE;;IAClC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,MAAM,cAAc,GAAyB,EAAE,CAAC;IAEhD,eAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAChE,OAAO,WAAW,GAAG,UAAU,EAAE;QAC/B,4CAA4C;QAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,GAAG,CACjC,sCAAsC,WAAW,YAAY,CAC9D,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAClC,IAAI,CACmC,CAAC;QAC1C,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,CAAC,CAAC;QACxC,IAAI,WAAW,KAAK,CAAC,EAAE;YACrB,UAAU,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,mCAAI,CAAC,CAAC;YACnC,aAAa,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,mCAAI,CAAC,CAAC;SAC1C;QACD,WAAW,IAAI,CAAC,CAAC;QAEjB,eAAe;QACf,eAAM,CAAC,IAAI,CACT,WAAW,cAAc,CAAC,MAAM,OAAO,aAAa,eAAe,CACpE,CAAC;KACH;IAED,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAnCW,QAAA,oBAAoB,wBAmC/B"}
|