@transcend-io/cli 6.24.0 → 6.26.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 (100) hide show
  1. package/README.md +156 -64
  2. package/build/cli-request-download-files.d.ts +3 -0
  3. package/build/cli-request-download-files.d.ts.map +1 -0
  4. package/build/cli-request-download-files.js +77 -0
  5. package/build/cli-request-download-files.js.map +1 -0
  6. package/build/codecs.d.ts +207 -2
  7. package/build/codecs.d.ts.map +1 -1
  8. package/build/codecs.js +61 -1
  9. package/build/codecs.js.map +1 -1
  10. package/build/constants.d.ts.map +1 -1
  11. package/build/constants.js +9 -0
  12. package/build/constants.js.map +1 -1
  13. package/build/enums.d.ts +2 -1
  14. package/build/enums.d.ts.map +1 -1
  15. package/build/enums.js +1 -0
  16. package/build/enums.js.map +1 -1
  17. package/build/graphql/fetchAllPreferenceTopics.d.ts +25 -0
  18. package/build/graphql/fetchAllPreferenceTopics.d.ts.map +1 -1
  19. package/build/graphql/fetchAllPreferenceTopics.js.map +1 -1
  20. package/build/graphql/fetchAllPrivacyCenters.d.ts +0 -2
  21. package/build/graphql/fetchAllPrivacyCenters.d.ts.map +1 -1
  22. package/build/graphql/fetchAllPrivacyCenters.js.map +1 -1
  23. package/build/graphql/fetchAllPurposes.d.ts +22 -0
  24. package/build/graphql/fetchAllPurposes.d.ts.map +1 -1
  25. package/build/graphql/fetchAllPurposes.js.map +1 -1
  26. package/build/graphql/fetchAllPurposesAndPreferences.d.ts +15 -0
  27. package/build/graphql/fetchAllPurposesAndPreferences.d.ts.map +1 -0
  28. package/build/graphql/fetchAllPurposesAndPreferences.js +26 -0
  29. package/build/graphql/fetchAllPurposesAndPreferences.js.map +1 -0
  30. package/build/graphql/fetchAllRequests.d.ts +6 -1
  31. package/build/graphql/fetchAllRequests.d.ts.map +1 -1
  32. package/build/graphql/fetchAllRequests.js +9 -2
  33. package/build/graphql/fetchAllRequests.js.map +1 -1
  34. package/build/graphql/fetchConsentManagerId.d.ts +0 -8
  35. package/build/graphql/fetchConsentManagerId.d.ts.map +1 -1
  36. package/build/graphql/fetchConsentManagerId.js.map +1 -1
  37. package/build/graphql/gqls/preferenceTopic.d.ts.map +1 -1
  38. package/build/graphql/gqls/preferenceTopic.js +14 -0
  39. package/build/graphql/gqls/preferenceTopic.js.map +1 -1
  40. package/build/graphql/gqls/privacyCenter.d.ts.map +1 -1
  41. package/build/graphql/gqls/privacyCenter.js +0 -1
  42. package/build/graphql/gqls/privacyCenter.js.map +1 -1
  43. package/build/graphql/gqls/purpose.d.ts.map +1 -1
  44. package/build/graphql/gqls/purpose.js +10 -0
  45. package/build/graphql/gqls/purpose.js.map +1 -1
  46. package/build/graphql/index.d.ts +1 -0
  47. package/build/graphql/index.d.ts.map +1 -1
  48. package/build/graphql/index.js +1 -0
  49. package/build/graphql/index.js.map +1 -1
  50. package/build/graphql/pullTranscendConfiguration.d.ts.map +1 -1
  51. package/build/graphql/pullTranscendConfiguration.js +38 -2
  52. package/build/graphql/pullTranscendConfiguration.js.map +1 -1
  53. package/build/graphql/syncPrivacyCenter.d.ts.map +1 -1
  54. package/build/graphql/syncPrivacyCenter.js +0 -3
  55. package/build/graphql/syncPrivacyCenter.js.map +1 -1
  56. package/build/index.d.ts +1 -0
  57. package/build/index.d.ts.map +1 -1
  58. package/build/index.js +1 -0
  59. package/build/index.js.map +1 -1
  60. package/build/preference-management/codecs.d.ts +22 -4
  61. package/build/preference-management/codecs.d.ts.map +1 -1
  62. package/build/preference-management/tests/checkIfPendingPreferenceUpdatesAreNoOp.test.js +56 -0
  63. package/build/preference-management/tests/checkIfPendingPreferenceUpdatesAreNoOp.test.js.map +1 -1
  64. package/build/preference-management/tests/checkIfPendingPreferenceUpdatesCauseConflict.test.js +57 -0
  65. package/build/preference-management/tests/checkIfPendingPreferenceUpdatesCauseConflict.test.js.map +1 -1
  66. package/build/preference-management/tests/getPreferenceUpdatesFromRow.test.js +188 -0
  67. package/build/preference-management/tests/getPreferenceUpdatesFromRow.test.js.map +1 -1
  68. package/build/requests/bulkRestartRequests.d.ts.map +1 -1
  69. package/build/requests/bulkRestartRequests.js +1 -3
  70. package/build/requests/bulkRestartRequests.js.map +1 -1
  71. package/build/requests/bulkRetryEnrichers.d.ts.map +1 -1
  72. package/build/requests/bulkRetryEnrichers.js +2 -3
  73. package/build/requests/bulkRetryEnrichers.js.map +1 -1
  74. package/build/requests/cancelPrivacyRequests.d.ts.map +1 -1
  75. package/build/requests/cancelPrivacyRequests.js +2 -5
  76. package/build/requests/cancelPrivacyRequests.js.map +1 -1
  77. package/build/requests/downloadPrivacyRequestFiles.d.ts +30 -0
  78. package/build/requests/downloadPrivacyRequestFiles.d.ts.map +1 -0
  79. package/build/requests/downloadPrivacyRequestFiles.js +96 -0
  80. package/build/requests/downloadPrivacyRequestFiles.js.map +1 -0
  81. package/build/requests/getFileMetadataForPrivacyRequests.d.ts +157 -0
  82. package/build/requests/getFileMetadataForPrivacyRequests.d.ts.map +1 -0
  83. package/build/requests/getFileMetadataForPrivacyRequests.js +159 -0
  84. package/build/requests/getFileMetadataForPrivacyRequests.js.map +1 -0
  85. package/build/requests/index.d.ts +3 -0
  86. package/build/requests/index.d.ts.map +1 -1
  87. package/build/requests/index.js +3 -0
  88. package/build/requests/index.js.map +1 -1
  89. package/build/requests/markSilentPrivacyRequests.d.ts.map +1 -1
  90. package/build/requests/markSilentPrivacyRequests.js +2 -5
  91. package/build/requests/markSilentPrivacyRequests.js.map +1 -1
  92. package/build/requests/notifyPrivacyRequestsAdditionalTime.d.ts.map +1 -1
  93. package/build/requests/notifyPrivacyRequestsAdditionalTime.js +1 -4
  94. package/build/requests/notifyPrivacyRequestsAdditionalTime.js.map +1 -1
  95. package/build/requests/streamPrivacyRequestFiles.d.ts +22 -0
  96. package/build/requests/streamPrivacyRequestFiles.d.ts.map +1 -0
  97. package/build/requests/streamPrivacyRequestFiles.js +48 -0
  98. package/build/requests/streamPrivacyRequestFiles.js.map +1 -0
  99. package/build/tsbuildinfo +1 -1
  100. package/package.json +4 -3
package/README.md CHANGED
@@ -34,131 +34,135 @@
34
34
  - [Authentication](#authentication-5)
35
35
  - [Arguments](#arguments-5)
36
36
  - [Usage](#usage-6)
37
- - [tr-request-cancel](#tr-request-cancel)
37
+ - [tr-request-download-files](#tr-request-download-files)
38
38
  - [Authentication](#authentication-6)
39
39
  - [Arguments](#arguments-6)
40
40
  - [Usage](#usage-7)
41
- - [tr-request-notify-additional-time](#tr-request-notify-additional-time)
41
+ - [tr-request-cancel](#tr-request-cancel)
42
42
  - [Authentication](#authentication-7)
43
43
  - [Arguments](#arguments-7)
44
44
  - [Usage](#usage-8)
45
- - [tr-request-mark-silent](#tr-request-mark-silent)
45
+ - [tr-request-notify-additional-time](#tr-request-notify-additional-time)
46
46
  - [Authentication](#authentication-8)
47
47
  - [Arguments](#arguments-8)
48
48
  - [Usage](#usage-9)
49
- - [tr-request-upload](#tr-request-upload)
49
+ - [tr-request-mark-silent](#tr-request-mark-silent)
50
50
  - [Authentication](#authentication-9)
51
51
  - [Arguments](#arguments-9)
52
52
  - [Usage](#usage-10)
53
- - [tr-request-restart](#tr-request-restart)
53
+ - [tr-request-upload](#tr-request-upload)
54
54
  - [Authentication](#authentication-10)
55
55
  - [Arguments](#arguments-10)
56
56
  - [Usage](#usage-11)
57
- - [tr-request-enricher-restart](#tr-request-enricher-restart)
57
+ - [tr-request-restart](#tr-request-restart)
58
58
  - [Authentication](#authentication-11)
59
59
  - [Arguments](#arguments-11)
60
60
  - [Usage](#usage-12)
61
- - [tr-request-reject-unverified-identifiers](#tr-request-reject-unverified-identifiers)
61
+ - [tr-request-enricher-restart](#tr-request-enricher-restart)
62
62
  - [Authentication](#authentication-12)
63
63
  - [Arguments](#arguments-12)
64
64
  - [Usage](#usage-13)
65
- - [tr-request-export](#tr-request-export)
65
+ - [tr-request-reject-unverified-identifiers](#tr-request-reject-unverified-identifiers)
66
66
  - [Authentication](#authentication-13)
67
67
  - [Arguments](#arguments-13)
68
68
  - [Usage](#usage-14)
69
- - [tr-cron-pull-identifiers](#tr-cron-pull-identifiers)
69
+ - [tr-request-export](#tr-request-export)
70
70
  - [Authentication](#authentication-14)
71
71
  - [Arguments](#arguments-14)
72
72
  - [Usage](#usage-15)
73
- - [tr-cron-mark-identifiers-completed](#tr-cron-mark-identifiers-completed)
73
+ - [tr-cron-pull-identifiers](#tr-cron-pull-identifiers)
74
74
  - [Authentication](#authentication-15)
75
75
  - [Arguments](#arguments-15)
76
76
  - [Usage](#usage-16)
77
- - [tr-manual-enrichment-pull-identifiers](#tr-manual-enrichment-pull-identifiers)
77
+ - [tr-cron-mark-identifiers-completed](#tr-cron-mark-identifiers-completed)
78
78
  - [Authentication](#authentication-16)
79
79
  - [Arguments](#arguments-16)
80
80
  - [Usage](#usage-17)
81
- - [tr-manual-enrichment-push-identifiers](#tr-manual-enrichment-push-identifiers)
81
+ - [tr-manual-enrichment-pull-identifiers](#tr-manual-enrichment-pull-identifiers)
82
82
  - [Authentication](#authentication-17)
83
83
  - [Arguments](#arguments-17)
84
84
  - [Usage](#usage-18)
85
- - [tr-mark-request-data-silos-completed](#tr-mark-request-data-silos-completed)
85
+ - [tr-manual-enrichment-push-identifiers](#tr-manual-enrichment-push-identifiers)
86
86
  - [Authentication](#authentication-18)
87
87
  - [Arguments](#arguments-18)
88
88
  - [Usage](#usage-19)
89
- - [tr-skip-request-data-silos](#tr-skip-request-data-silos)
89
+ - [tr-mark-request-data-silos-completed](#tr-mark-request-data-silos-completed)
90
90
  - [Authentication](#authentication-19)
91
91
  - [Arguments](#arguments-19)
92
92
  - [Usage](#usage-20)
93
- - [tr-skip-preflight-jobs](#tr-skip-preflight-jobs)
93
+ - [tr-skip-request-data-silos](#tr-skip-request-data-silos)
94
94
  - [Authentication](#authentication-20)
95
95
  - [Arguments](#arguments-20)
96
96
  - [Usage](#usage-21)
97
- - [tr-retry-request-data-silos](#tr-retry-request-data-silos)
97
+ - [tr-skip-preflight-jobs](#tr-skip-preflight-jobs)
98
98
  - [Authentication](#authentication-21)
99
99
  - [Arguments](#arguments-21)
100
100
  - [Usage](#usage-22)
101
- - [tr-update-consent-manager](#tr-update-consent-manager)
101
+ - [tr-retry-request-data-silos](#tr-retry-request-data-silos)
102
102
  - [Authentication](#authentication-22)
103
103
  - [Arguments](#arguments-22)
104
104
  - [Usage](#usage-23)
105
- - [tr-consent-managers-to-business-entities](#tr-consent-managers-to-business-entities)
105
+ - [tr-update-consent-manager](#tr-update-consent-manager)
106
106
  - [Authentication](#authentication-23)
107
107
  - [Arguments](#arguments-23)
108
108
  - [Usage](#usage-24)
109
- - [tr-consent-manager-service-json-to-yml](#tr-consent-manager-service-json-to-yml)
109
+ - [tr-consent-managers-to-business-entities](#tr-consent-managers-to-business-entities)
110
110
  - [Authentication](#authentication-24)
111
111
  - [Arguments](#arguments-24)
112
112
  - [Usage](#usage-25)
113
- - [tr-derive-data-silos-from-data-flows](#tr-derive-data-silos-from-data-flows)
113
+ - [tr-consent-manager-service-json-to-yml](#tr-consent-manager-service-json-to-yml)
114
114
  - [Authentication](#authentication-25)
115
115
  - [Arguments](#arguments-25)
116
116
  - [Usage](#usage-26)
117
- - [tr-derive-data-silos-from-data-flows-cross-instance](#tr-derive-data-silos-from-data-flows-cross-instance)
117
+ - [tr-derive-data-silos-from-data-flows](#tr-derive-data-silos-from-data-flows)
118
118
  - [Authentication](#authentication-26)
119
119
  - [Arguments](#arguments-26)
120
120
  - [Usage](#usage-27)
121
- - [tr-pull-consent-metrics](#tr-pull-consent-metrics)
121
+ - [tr-derive-data-silos-from-data-flows-cross-instance](#tr-derive-data-silos-from-data-flows-cross-instance)
122
122
  - [Authentication](#authentication-27)
123
123
  - [Arguments](#arguments-27)
124
124
  - [Usage](#usage-28)
125
- - [tr-pull-datapoints](#tr-pull-datapoints)
125
+ - [tr-pull-consent-metrics](#tr-pull-consent-metrics)
126
126
  - [Authentication](#authentication-28)
127
127
  - [Arguments](#arguments-28)
128
128
  - [Usage](#usage-29)
129
- - [tr-pull-pull-unstructured-discovery-files](#tr-pull-pull-unstructured-discovery-files)
129
+ - [tr-pull-datapoints](#tr-pull-datapoints)
130
130
  - [Authentication](#authentication-29)
131
131
  - [Arguments](#arguments-29)
132
132
  - [Usage](#usage-30)
133
- - [tr-upload-preferences](#tr-upload-preferences)
133
+ - [tr-pull-pull-unstructured-discovery-files](#tr-pull-pull-unstructured-discovery-files)
134
134
  - [Authentication](#authentication-30)
135
- - [Authentication](#authentication-31)
136
135
  - [Arguments](#arguments-30)
137
136
  - [Usage](#usage-31)
138
- - [tr-upload-consent-preferences](#tr-upload-consent-preferences)
137
+ - [tr-upload-preferences](#tr-upload-preferences)
138
+ - [Authentication](#authentication-31)
139
139
  - [Authentication](#authentication-32)
140
140
  - [Arguments](#arguments-31)
141
141
  - [Usage](#usage-32)
142
- - [tr-pull-consent-preferences](#tr-pull-consent-preferences)
142
+ - [tr-upload-consent-preferences](#tr-upload-consent-preferences)
143
143
  - [Authentication](#authentication-33)
144
144
  - [Arguments](#arguments-32)
145
145
  - [Usage](#usage-33)
146
- - [tr-upload-data-flows-from-csv](#tr-upload-data-flows-from-csv)
146
+ - [tr-pull-consent-preferences](#tr-pull-consent-preferences)
147
147
  - [Authentication](#authentication-34)
148
148
  - [Arguments](#arguments-33)
149
149
  - [Usage](#usage-34)
150
- - [tr-upload-cookies-from-csv](#tr-upload-cookies-from-csv)
150
+ - [tr-upload-data-flows-from-csv](#tr-upload-data-flows-from-csv)
151
151
  - [Authentication](#authentication-35)
152
152
  - [Arguments](#arguments-34)
153
153
  - [Usage](#usage-35)
154
- - [tr-generate-api-keys](#tr-generate-api-keys)
154
+ - [tr-upload-cookies-from-csv](#tr-upload-cookies-from-csv)
155
155
  - [Authentication](#authentication-36)
156
156
  - [Arguments](#arguments-35)
157
157
  - [Usage](#usage-36)
158
- - [tr-build-xdi-sync-endpoint](#tr-build-xdi-sync-endpoint)
158
+ - [tr-generate-api-keys](#tr-generate-api-keys)
159
159
  - [Authentication](#authentication-37)
160
160
  - [Arguments](#arguments-36)
161
161
  - [Usage](#usage-37)
162
+ - [tr-build-xdi-sync-endpoint](#tr-build-xdi-sync-endpoint)
163
+ - [Authentication](#authentication-38)
164
+ - [Arguments](#arguments-37)
165
+ - [Usage](#usage-38)
162
166
  - [Prompt Manager](#prompt-manager)
163
167
  - [Proxy usage](#proxy-usage)
164
168
 
@@ -389,38 +393,39 @@ In order to use this cli, you will first need to generate an API key on the Tran
389
393
 
390
394
  The API key permissions for this command vary based on the value to the `resources` argument. See the table below to understand the necessary permissions for the resources you are attempting to pull.
391
395
 
392
- | Key | Description | Scope | Is Default | Link |
393
- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------ | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
394
- | apiKeys | API Key definitions assigned to Data Silos. API keys cannot be created through the cli, but you can map API key usage to Data Silos. | View API Keys | true | [Developer Tools -> API keys](https://app.transcend.io/infrastructure/api-keys) |
395
- | actionItems | Onboarding related action items | Read only | false | [Action Items](https://app.transcend.io/action-items/all) |
396
- | actionItemCollections | Onboarding related action item group names | Read only | false | [Action Items](https://app.transcend.io/action-items/all) |
397
- | templates | Email templates. Only template titles can be created and mapped to other resources. | View Email Templates | true | [DSR Automation -> Email Templates](https://app.transcend.io/privacy-requests/email-templates) |
398
- | dataSilos | The Data Silo/Integration definitions. | View Data Map,View Data Subject Request Settings | true | [Data Inventory -> Data Silos](https://app.transcend.io/data-map/data-inventory/) and [Infrastucture -> Integrations](https://app.transcend.io/infrastructure/integrationsdata-silos) |
399
- | enrichers | The Privacy Request enricher configurations. | View Identity Verification Settings | true | [DSR Automation -> Identifiers](https://app.transcend.io/privacy-requests/identifiers) |
400
- | teams | Team definitions of users and scope groupings | View Scopes | false | [Administration -> Teams](https://app.transcend.io/admin/teams) |
401
- | businessEntities | The business entities in the data inventory. | View Data Inventory | false | [Data Inventory -> Business Entities](https://app.transcend.io/data-map/data-inventory/business-entities) |
402
- | identifiers | The Privacy Request identifier configurations. | View Identity Verification Settings | false | [DSR Automation -> Identifiers](https://app.transcend.io/privacy-requests/identifiers) |
403
- | actions | The Privacy Request action settings. | View Data Subject Request Settings | false | [DSR Automation -> Request Settings](https://app.transcend.io/privacy-requests/settings) |
404
- | dataSubjects | The Privacy Request data subject settings. | View Data Subject Request Settings | false | [DSR Automation -> Request Settings](https://app.transcend.io/privacy-requests/settings) |
405
- | vendors | The vendors in the data inventory. | View Data Inventory | false | [Data Inventory -> Vendors](https://app.transcend.io/data-map/data-inventory/vendors) |
406
- | dataCategories | The data categories in the data inventory. | View Data Inventory | false | [Data Inventory -> Data Categories](https://app.transcend.io/data-map/data-inventory/data-categories) |
407
- | processingPurposes | The processing purposes in the data inventory. | View Data Inventory | false | [Data Inventory -> Processing Purposes](https://app.transcend.io/data-map/data-inventory/purposes) |
408
- | customFields | Custom field definitions that define extra metadata for each table in the Admin Dashboard. | View Global Attributes | false | [Custom Fields](https://app.transcend.io/infrastructure/attributes) |
409
- | dataFlows | Consent Manager Data Flow definitions. | View Data Flows | false | [Consent Management -> Data Flows](https://app.transcend.io/consent-manager/data-flows/approved) |
410
- | cookies | Consent Manager Cookie definitions. | View Data Flows | false | [Consent Management -> Cookies](https://app.transcend.io/consent-manager/cookies/approved) |
411
- | consentManager | Consent Manager general settings, including domain list. | View Consent Manager | false | [Consent Management -> Developer Settings](https://app.transcend.io/consent-manager/developer-settings) |
412
- | partitions | The partitions in the account (often representative of separate data controllers). | View Consent Manager | false | [Consent Management -> Developer Settings -> Advanced Settings](https://app.transcend.io/consent-manager/developer-settings/advanced-settings) |
413
- | prompts | The Transcend AI prompts | View Prompts | false | [Prompt Manager -> Browse](https://app.transcend.io/prompts/browse) |
414
- | promptPartials | The Transcend AI prompt partials | View Prompts | false | [Prompt Manager -> Partials](https://app.transcend.io/prompts/partialss) |
415
- | promptGroups | The Transcend AI prompt groups | View Prompts | false | [Prompt Manager -> Groups](https://app.transcend.io/prompts/groups) |
416
- | agents | The agents in the prompt manager. | View Prompts | false | [Prompt Manager -> Agents](https://app.transcend.io/prompts/agents) |
417
- | agentFunctions | The agent functions in the prompt manager. | View Prompts | false | [Prompt Manager -> Agent Functions](https://app.transcend.io/prompts/agent-functions) |
418
- | agentFiles | The agent files in the prompt manager. | View Prompts | false | [Prompt Manager -> Agent Files](https://app.transcend.io/prompts/agent-files) |
419
- | privacyCenters | The privacy center configurations. | View Privacy Center | false | [Privacy Center](https://app.transcend.io/privacy-center/general-settings) |
420
- | policies | The privacy center policies. | View Policies | false | [Privacy Center -> Policies](https://app.transcend.io/privacy-center/policies) |
421
- | messages | Message definitions used across consent, privacy center, email templates and more. | View Internationalization Messages | false | [Privacy Center -> Messages](https://app.transcend.io/privacy-center/messages-internationalization), [Consent Management -> Display Settings -> Messages](https://app.transcend.io/consent-manager/display-settings/messages) |
422
- | assessments | Assessment responses. | View Assessments | false | [Assessments -> Assessments](https://app.transcend.io/assessments/groups) |
423
- | assessmentTemplates | Assessment template configurations. | View Assessments | false | [Assessment -> Templates](https://app.transcend.io/assessments/form-templates) |
396
+ | Key | Description | Scope | Is Default | Link |
397
+ | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
398
+ | apiKeys | API Key definitions assigned to Data Silos. API keys cannot be created through the cli, but you can map API key usage to Data Silos. | View API Keys | true | [Developer Tools -> API keys](https://app.transcend.io/infrastructure/api-keys) |
399
+ | actionItems | Onboarding related action items | Read only | false | [Action Items](https://app.transcend.io/action-items/all) |
400
+ | actionItemCollections | Onboarding related action item group names | Read only | false | [Action Items](https://app.transcend.io/action-items/all) |
401
+ | templates | Email templates. Only template titles can be created and mapped to other resources. | View Email Templates | true | [DSR Automation -> Email Templates](https://app.transcend.io/privacy-requests/email-templates) |
402
+ | dataSilos | The Data Silo/Integration definitions. | View Data Map,View Data Subject Request Settings | true | [Data Inventory -> Data Silos](https://app.transcend.io/data-map/data-inventory/) and [Infrastucture -> Integrations](https://app.transcend.io/infrastructure/integrationsdata-silos) |
403
+ | enrichers | The Privacy Request enricher configurations. | View Identity Verification Settings | true | [DSR Automation -> Identifiers](https://app.transcend.io/privacy-requests/identifiers) |
404
+ | teams | Team definitions of users and scope groupings | View Scopes | false | [Administration -> Teams](https://app.transcend.io/admin/teams) |
405
+ | businessEntities | The business entities in the data inventory. | View Data Inventory | false | [Data Inventory -> Business Entities](https://app.transcend.io/data-map/data-inventory/business-entities) |
406
+ | identifiers | The Privacy Request identifier configurations. | View Identity Verification Settings | false | [DSR Automation -> Identifiers](https://app.transcend.io/privacy-requests/identifiers) |
407
+ | actions | The Privacy Request action settings. | View Data Subject Request Settings | false | [DSR Automation -> Request Settings](https://app.transcend.io/privacy-requests/settings) |
408
+ | dataSubjects | The Privacy Request data subject settings. | View Data Subject Request Settings | false | [DSR Automation -> Request Settings](https://app.transcend.io/privacy-requests/settings) |
409
+ | vendors | The vendors in the data inventory. | View Data Inventory | false | [Data Inventory -> Vendors](https://app.transcend.io/data-map/data-inventory/vendors) |
410
+ | dataCategories | The data categories in the data inventory. | View Data Inventory | false | [Data Inventory -> Data Categories](https://app.transcend.io/data-map/data-inventory/data-categories) |
411
+ | processingPurposes | The processing purposes in the data inventory. | View Data Inventory | false | [Data Inventory -> Processing Purposes](https://app.transcend.io/data-map/data-inventory/purposes) |
412
+ | customFields | Custom field definitions that define extra metadata for each table in the Admin Dashboard. | View Global Attributes | false | [Custom Fields](https://app.transcend.io/infrastructure/attributes) |
413
+ | dataFlows | Consent Manager Data Flow definitions. | View Data Flows | false | [Consent Management -> Data Flows](https://app.transcend.io/consent-manager/data-flows/approved) |
414
+ | cookies | Consent Manager Cookie definitions. | View Data Flows | false | [Consent Management -> Cookies](https://app.transcend.io/consent-manager/cookies/approved) |
415
+ | consentManager | Consent Manager general settings, including domain list. | View Consent Manager | false | [Consent Management -> Developer Settings](https://app.transcend.io/consent-manager/developer-settings) |
416
+ | purposes | Consent purposes and related preference management topics. | View Consent Manager,View Preference Store Settings | false | [Consent Management -> Regional Experiences -> Purposes](https://app.transcend.io/consent-manager/regional-experiences/purposes) |
417
+ | partitions | The partitions in the account (often representative of separate data controllers). | View Consent Manager | false | [Consent Management -> Developer Settings -> Advanced Settings](https://app.transcend.io/consent-manager/developer-settings/advanced-settings) |
418
+ | prompts | The Transcend AI prompts | View Prompts | false | [Prompt Manager -> Browse](https://app.transcend.io/prompts/browse) |
419
+ | promptPartials | The Transcend AI prompt partials | View Prompts | false | [Prompt Manager -> Partials](https://app.transcend.io/prompts/partialss) |
420
+ | promptGroups | The Transcend AI prompt groups | View Prompts | false | [Prompt Manager -> Groups](https://app.transcend.io/prompts/groups) |
421
+ | agents | The agents in the prompt manager. | View Prompts | false | [Prompt Manager -> Agents](https://app.transcend.io/prompts/agents) |
422
+ | agentFunctions | The agent functions in the prompt manager. | View Prompts | false | [Prompt Manager -> Agent Functions](https://app.transcend.io/prompts/agent-functions) |
423
+ | agentFiles | The agent files in the prompt manager. | View Prompts | false | [Prompt Manager -> Agent Files](https://app.transcend.io/prompts/agent-files) |
424
+ | privacyCenters | The privacy center configurations. | View Privacy Center | false | [Privacy Center](https://app.transcend.io/privacy-center/general-settings) |
425
+ | policies | The privacy center policies. | View Policies | false | [Privacy Center -> Policies](https://app.transcend.io/privacy-center/policies) |
426
+ | messages | Message definitions used across consent, privacy center, email templates and more. | View Internationalization Messages | false | [Privacy Center -> Messages](https://app.transcend.io/privacy-center/messages-internationalization), [Consent Management -> Display Settings -> Messages](https://app.transcend.io/consent-manager/display-settings/messages) |
427
+ | assessments | Assessment responses. | View Assessments | false | [Assessments -> Assessments](https://app.transcend.io/assessments/groups) |
428
+ | assessmentTemplates | Assessment template configurations. | View Assessments | false | [Assessment -> Templates](https://app.transcend.io/assessments/form-templates) |
424
429
 
425
430
  _Note: The scopes for tr-push are comprehensive of the scopes for tr-pull_
426
431
 
@@ -539,6 +544,12 @@ Pull in request actions configurations (see [this example](./examples/actions.ym
539
544
  tr-pull --auth=$TRANSCEND_API_KEY --resources=actions
540
545
  ```
541
546
 
547
+ Pull in consent manager purposes and preference management topics (see [this example](./examples/purposes.yml)):
548
+
549
+ ```sh
550
+ tr-pull --auth=$TRANSCEND_API_KEY --resources=purposes
551
+ ```
552
+
542
553
  Pull in request data subject configurations (see [this example](./examples/data-subjects.yml)):
543
554
 
544
555
  ```sh
@@ -1012,6 +1023,87 @@ Approve ERASURE requests created within a specific time frame
1012
1023
  yarn tr-request-approve --auth=$TRANSCEND_API_KEY --actions=SALE_OPT_OUT --createdAtBefore=05/03/2023 --createdAtAfter=04/03/2023
1013
1024
  ```
1014
1025
 
1026
+ ### tr-request-download-files
1027
+
1028
+ Download the files associated with a Data Subject Access Request (DSAR) from [DSR Automation -> Incoming Requests](https://app.transcend.io/privacy-requests/incoming-requests) tab.
1029
+
1030
+ <img width="213" alt="Screenshot 2025-06-03 at 3 32 00 PM" src="https://github.com/user-attachments/assets/9e5c3047-5092-454e-9d05-c68509ea3f77" />
1031
+
1032
+ #### Authentication
1033
+
1034
+ In order to use this cli, you will first need to generate an API key on the Transcend Admin Dashboard (https://app.transcend.io/infrastructure/api-keys).
1035
+
1036
+ The API key needs the following scopes:
1037
+
1038
+ - View the Request Compilation
1039
+ - View Incoming Requests
1040
+ - Request Approval and Communication
1041
+
1042
+ #### Arguments
1043
+
1044
+ | Argument | Description | Type | Default | Required |
1045
+ | -------------------- | -------------------------------------------------------------------------------------------------------------- | --------------- | ------------------------ | -------- |
1046
+ | auth | The Transcend API key with the scopes necessary for the command. | string | N/A | true |
1047
+ | sombraAuth | The sombra internal key, use for additional authentication when self-hosting sombra. | string | N/A | false |
1048
+ | concurrency | The concurrency to use when downloading requests in parallel. | number | 10 | false |
1049
+ | requestIds | Specify the specific request IDs to download | string[] | [] | false |
1050
+ | statuses | The [request statuses](https://docs.transcend.io/docs/privacy-requests/overview#request-statuses) to download. | RequestStatus[] | APPROVING,DOWNLOADABLE | false |
1051
+ | folderPath | The folder to download files to | string | ./dsr-files | false |
1052
+ | createdAtBefore | Download requests that were submitted before this time | Date | N/A | false |
1053
+ | createdAtAfter | Download requests that were submitted after this time | Date | N/A | false |
1054
+ | approveAfterDownload | If the request is in status=APPROVING, approve the request after its downloaded | boolean | false | false |
1055
+ | transcendUrl | URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. | string - URL | https://api.transcend.io | false |
1056
+
1057
+ #### Usage
1058
+
1059
+ Download all requests in status=APPROVING or status=DOWNLOADABLE
1060
+
1061
+ ```sh
1062
+ yarn tr-request-download-files --auth=$TRANSCEND_API_KEY
1063
+ ```
1064
+
1065
+ Specifying the backend URL, needed for US hosted backend infrastructure.
1066
+
1067
+ ```sh
1068
+ yarn tr-request-download-files --auth=$TRANSCEND_API_KEY --transcendUrl=https://api.us.transcend.io
1069
+ ```
1070
+
1071
+ Write files to a specific folder on disk
1072
+
1073
+ ```sh
1074
+ yarn tr-request-download-files --auth=$TRANSCEND_API_KEY --folderPath=./my-folder
1075
+ ```
1076
+
1077
+ Auto approve after download
1078
+
1079
+ ```sh
1080
+ yarn tr-request-download-files --auth=$TRANSCEND_API_KEY --approveAfterDownload=true
1081
+ ```
1082
+
1083
+ Download requests in APPROVING state only
1084
+
1085
+ ```sh
1086
+ yarn tr-request-download-files --auth=$TRANSCEND_API_KEY --statues=APPROVING
1087
+ ```
1088
+
1089
+ Increase the concurrency (defaults to 50)
1090
+
1091
+ ```sh
1092
+ yarn tr-request-download-files --auth=$TRANSCEND_API_KEY --concurrency=100
1093
+ ```
1094
+
1095
+ Approve requests in a timeframe
1096
+
1097
+ ```sh
1098
+ yarn tr-request-download-files --auth=$TRANSCEND_API_KEY --createdAtBefore=05/03/2023 --createdAtAfter=04/03/2023
1099
+ ```
1100
+
1101
+ Approve specific requests
1102
+
1103
+ ```sh
1104
+ yarn tr-request-download-files --auth=$TRANSCEND_API_KEY --requestIds=b8c2ce13-9e40-4104-af79-23c68f2a87ba,d5eedc52-0f85-4034-bc01-14951acad5aa
1105
+ ```
1106
+
1015
1107
  ### tr-request-cancel
1016
1108
 
1017
1109
  Bulk cancel a set of privacy requests from the [DSR Automation -> Incoming Requests](https://app.transcend.io/privacy-requests/incoming-requests) tab.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli-request-download-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-request-download-files.d.ts","sourceRoot":"","sources":["../src/cli-request-download-files.ts"],"names":[],"mappings":""}
@@ -0,0 +1,77 @@
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 yargs_parser_1 = __importDefault(require("yargs-parser"));
8
+ const colors_1 = __importDefault(require("colors"));
9
+ const logger_1 = require("./logger");
10
+ const privacy_types_1 = require("@transcend-io/privacy-types");
11
+ const requests_1 = require("./requests");
12
+ const constants_1 = require("./constants");
13
+ /**
14
+ * Download a set of data access requests to local machine.
15
+ *
16
+ * Requires scopes:
17
+ * - View Incoming Requests
18
+ * - View the Request Compilation
19
+ * - Request Approval and Communication (only if `approveAfterDownload` is true)
20
+ *
21
+ * Dev Usage:
22
+ * yarn ts-node ./src/cli-request-download-files.ts --auth=$TRANSCEND_API_KEY --statuses=APPROVING
23
+ *
24
+ * Standard usage:
25
+ * yarn tr-request-download-files --auth=$TRANSCEND_API_KEY --statuses=APPROVING
26
+ */
27
+ async function main() {
28
+ // Parse command line arguments
29
+ const {
30
+ /** Transcend Backend URL */
31
+ transcendUrl = constants_1.DEFAULT_TRANSCEND_API,
32
+ /** API key */
33
+ auth,
34
+ /** Download these specific request statuses */
35
+ statuses = `${privacy_types_1.RequestStatus.Approving},${privacy_types_1.RequestStatus.Downloadable}`,
36
+ /** Folder path to download files to */
37
+ folderPath = './dsr-files',
38
+ /** Concurrency to download requests at */
39
+ concurrency = '10',
40
+ /** Filter for requests created before this date */
41
+ createdAtBefore,
42
+ /** Filter for requests created after this date */
43
+ createdAtAfter,
44
+ /** List of request IDs to download */
45
+ requestIds = '',
46
+ /** Approve the requests after download */
47
+ approveAfterDownload = 'false', } = (0, yargs_parser_1.default)(process.argv.slice(2));
48
+ // Ensure auth is passed
49
+ if (!auth) {
50
+ logger_1.logger.error(colors_1.default.red('A Transcend API key must be provided. You can specify using --auth=$TRANSCEND_API_KEY'));
51
+ process.exit(1);
52
+ }
53
+ // Validate statuses
54
+ const parsedStatuses = (0, requests_1.splitCsvToList)(statuses);
55
+ const invalidStatues = parsedStatuses.filter(
56
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
+ (type) => !Object.values(privacy_types_1.RequestStatus).includes(type));
58
+ if (invalidStatues.length > 0) {
59
+ logger_1.logger.error(colors_1.default.red(`Failed to parse statuses:"${invalidStatues.join(',')}".\n` +
60
+ `Expected one of: \n${Object.values(privacy_types_1.RequestStatus).join('\n')}`));
61
+ process.exit(1);
62
+ }
63
+ // Download privacy request files
64
+ await (0, requests_1.downloadPrivacyRequestFiles)({
65
+ transcendUrl,
66
+ auth,
67
+ folderPath,
68
+ requestIds: requestIds ? (0, requests_1.splitCsvToList)(requestIds) : undefined,
69
+ statuses: parsedStatuses.length > 0 ? parsedStatuses : undefined,
70
+ concurrency: parseInt(concurrency, 10),
71
+ createdAtBefore: createdAtBefore ? new Date(createdAtBefore) : undefined,
72
+ createdAtAfter: createdAtAfter ? new Date(createdAtAfter) : undefined,
73
+ approveAfterDownload: approveAfterDownload === 'true',
74
+ });
75
+ }
76
+ main();
77
+ //# sourceMappingURL=cli-request-download-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-request-download-files.js","sourceRoot":"","sources":["../src/cli-request-download-files.ts"],"names":[],"mappings":";;;;;;AAEA,gEAAiC;AACjC,oDAA4B;AAE5B,qCAAkC;AAClC,+DAA4D;AAC5D,yCAAyE;AACzE,2CAAoD;AAEpD;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,IAAI;IACjB,+BAA+B;IAC/B,MAAM;IACJ,4BAA4B;IAC5B,YAAY,GAAG,iCAAqB;IACpC,cAAc;IACd,IAAI;IACJ,+CAA+C;IAC/C,QAAQ,GAAG,GAAG,6BAAa,CAAC,SAAS,IAAI,6BAAa,CAAC,YAAY,EAAE;IACrE,uCAAuC;IACvC,UAAU,GAAG,aAAa;IAC1B,0CAA0C;IAC1C,WAAW,GAAG,IAAI;IAClB,mDAAmD;IACnD,eAAe;IACf,kDAAkD;IAClD,cAAc;IACd,sCAAsC;IACtC,UAAU,GAAG,EAAE;IACf,0CAA0C;IAC1C,oBAAoB,GAAG,OAAO,GAC/B,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,oBAAoB;IACpB,MAAM,cAAc,GAAG,IAAA,yBAAc,EAAC,QAAQ,CAAoB,CAAC;IACnE,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM;IAC1C,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,6BAA6B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;YACzD,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,iCAAiC;IACjC,MAAM,IAAA,sCAA2B,EAAC;QAChC,YAAY;QACZ,IAAI;QACJ,UAAU;QACV,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,IAAA,yBAAc,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;QAC/D,QAAQ,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;QAChE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QACtC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;QACxE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;QACrE,oBAAoB,EAAE,oBAAoB,KAAK,MAAM;KACtD,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC"}