@salesforce/plugin-data 3.8.2 → 3.10.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 (35) hide show
  1. package/README.md +137 -36
  2. package/lib/bulkDataRequestCache.js +63 -0
  3. package/lib/bulkDataRequestCache.js.map +1 -1
  4. package/lib/bulkIngest.js +184 -0
  5. package/lib/bulkIngest.js.map +1 -0
  6. package/lib/bulkOperationBase.js +6 -7
  7. package/lib/bulkOperationBase.js.map +1 -1
  8. package/lib/bulkUtils.js +59 -1
  9. package/lib/bulkUtils.js.map +1 -1
  10. package/lib/commands/data/import/bulk.js +18 -89
  11. package/lib/commands/data/import/bulk.js.map +1 -1
  12. package/lib/commands/data/import/legacy/tree.js +4 -5
  13. package/lib/commands/data/import/legacy/tree.js.map +1 -1
  14. package/lib/commands/data/import/resume.js +7 -55
  15. package/lib/commands/data/import/resume.js.map +1 -1
  16. package/lib/commands/data/import/tree.js +8 -5
  17. package/lib/commands/data/import/tree.js.map +1 -1
  18. package/lib/commands/data/update/bulk.js +68 -0
  19. package/lib/commands/data/update/bulk.js.map +1 -0
  20. package/lib/commands/data/update/resume.js +48 -0
  21. package/lib/commands/data/update/resume.js.map +1 -0
  22. package/lib/reporters/query/humanReporter.js +24 -19
  23. package/lib/reporters/query/humanReporter.js.map +1 -1
  24. package/lib/reporters/search/humanSearchReporter.js +3 -3
  25. package/lib/reporters/search/humanSearchReporter.js.map +1 -1
  26. package/lib/ux/{bulkImportStages.js → bulkIngestStages.js} +4 -4
  27. package/lib/ux/{bulkImportStages.js.map → bulkIngestStages.js.map} +1 -1
  28. package/messages/bulkIngest.md +39 -0
  29. package/messages/data.export.resume.md +1 -1
  30. package/messages/data.import.bulk.md +3 -35
  31. package/messages/data.import.resume.md +0 -32
  32. package/messages/data.update.bulk.md +47 -0
  33. package/messages/data.update.resume.md +29 -0
  34. package/oclif.manifest.json +504 -283
  35. package/package.json +19 -10
package/README.md CHANGED
@@ -92,7 +92,9 @@ sf plugins
92
92
  - [`sf data query resume`](#sf-data-query-resume)
93
93
  - [`sf data resume`](#sf-data-resume)
94
94
  - [`sf data search`](#sf-data-search)
95
+ - [`sf data update bulk`](#sf-data-update-bulk)
95
96
  - [`sf data update record`](#sf-data-update-record)
97
+ - [`sf data update resume`](#sf-data-update-resume)
96
98
  - [`sf data upsert bulk`](#sf-data-upsert-bulk)
97
99
  - [`sf data upsert resume`](#sf-data-upsert-resume)
98
100
  - [`sf force data bulk delete`](#sf-force-data-bulk-delete)
@@ -146,7 +148,7 @@ EXAMPLES
146
148
  $ sf data create file --file path/to/astro.png --parent-id a03fakeLoJWPIA3
147
149
  ```
148
150
 
149
- _See code: [src/commands/data/create/file.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/create/file.ts)_
151
+ _See code: [src/commands/data/create/file.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/create/file.ts)_
150
152
 
151
153
  ## `sf data create record`
152
154
 
@@ -202,7 +204,7 @@ EXAMPLES
202
204
  TracedEntityId=01p17000000R6bLAAS"
203
205
  ```
204
206
 
205
- _See code: [src/commands/data/create/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/create/record.ts)_
207
+ _See code: [src/commands/data/create/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/create/record.ts)_
206
208
 
207
209
  ## `sf data delete bulk`
208
210
 
@@ -260,7 +262,7 @@ FLAG DESCRIPTIONS
260
262
  and can be enabled only by a system administrator.
261
263
  ```
262
264
 
263
- _See code: [src/commands/data/delete/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/delete/bulk.ts)_
265
+ _See code: [src/commands/data/delete/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/delete/bulk.ts)_
264
266
 
265
267
  ## `sf data delete record`
266
268
 
@@ -321,7 +323,7 @@ EXAMPLES
321
323
  $ sf data delete record --use-tooling-api --sobject TraceFlag --record-id 7tf8c
322
324
  ```
323
325
 
324
- _See code: [src/commands/data/delete/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/delete/record.ts)_
326
+ _See code: [src/commands/data/delete/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/delete/record.ts)_
325
327
 
326
328
  ## `sf data delete resume`
327
329
 
@@ -360,7 +362,7 @@ EXAMPLES
360
362
  $ sf data delete resume --use-most-recent --target-org my-scratch
361
363
  ```
362
364
 
363
- _See code: [src/commands/data/delete/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/delete/resume.ts)_
365
+ _See code: [src/commands/data/delete/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/delete/resume.ts)_
364
366
 
365
367
  ## `sf data export bulk`
366
368
 
@@ -434,11 +436,11 @@ EXAMPLES
434
436
  --result-format json --async
435
437
  ```
436
438
 
437
- _See code: [src/commands/data/export/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/export/bulk.ts)_
439
+ _See code: [src/commands/data/export/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/export/bulk.ts)_
438
440
 
439
441
  ## `sf data export resume`
440
442
 
441
- Resume a bulk export job that you previously started.
443
+ Resume a bulk export job that you previously started. Uses Bulk API 2.0.
442
444
 
443
445
  ```
444
446
  USAGE
@@ -454,7 +456,7 @@ GLOBAL FLAGS
454
456
  --json Format output as json.
455
457
 
456
458
  DESCRIPTION
457
- Resume a bulk export job that you previously started.
459
+ Resume a bulk export job that you previously started. Uses Bulk API 2.0.
458
460
 
459
461
  When the original "data export bulk" command either times out or is run with the --async flag, it displays a job ID.
460
462
  To see the status and get the results of the bulk export, run this command by either passing it the job ID or using
@@ -470,7 +472,7 @@ EXAMPLES
470
472
  $ sf data export resume --use-most-recent --target-org my-scratch
471
473
  ```
472
474
 
473
- _See code: [src/commands/data/export/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/export/resume.ts)_
475
+ _See code: [src/commands/data/export/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/export/resume.ts)_
474
476
 
475
477
  ## `sf data export tree`
476
478
 
@@ -531,7 +533,7 @@ EXAMPLES
531
533
  my-scratch
532
534
  ```
533
535
 
534
- _See code: [src/commands/data/export/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/export/tree.ts)_
536
+ _See code: [src/commands/data/export/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/export/tree.ts)_
535
537
 
536
538
  ## `sf data get record`
537
539
 
@@ -595,7 +597,7 @@ EXAMPLES
595
597
  $ sf data get record --use-tooling-api --sobject TraceFlag --record-id 7tf8c
596
598
  ```
597
599
 
598
- _See code: [src/commands/data/get/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/get/record.ts)_
600
+ _See code: [src/commands/data/get/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/get/record.ts)_
599
601
 
600
602
  ## `sf data import bulk`
601
603
 
@@ -604,20 +606,22 @@ Bulk import records into a Salesforce object from a CSV file. Uses Bulk API 2.0.
604
606
  ```
605
607
  USAGE
606
608
  $ sf data import bulk -s <value> -o <value> [--json] [--flags-dir <value>] [-a | -w <value>] [--api-version <value>]
607
- (--line-ending CRLF|LF -f <value>)
609
+ (--line-ending CRLF|LF -f <value>) [--column-delimiter BACKQUOTE|CARET|COMMA|PIPE|SEMICOLON|TAB]
608
610
 
609
611
  FLAGS
610
- -a, --async Don't wait for the command to complete.
611
- -f, --file=<value> (required) CSV file that contains the Salesforce object records you want to import.
612
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
613
- configuration variable is already set.
614
- -s, --sobject=<value> (required) API name of the Salesforce object, either standard or custom, into which you're
615
- importing records.
616
- -w, --wait=<value> Time to wait for the command to finish, in minutes.
617
- --api-version=<value> Override the api version used for api requests made by this command
618
- --line-ending=<option> Line ending used in the CSV file. Default value on Windows is `CRLF`; on macOS and Linux
619
- it's `LR`.
620
- <options: CRLF|LF>
612
+ -a, --async Don't wait for the command to complete.
613
+ -f, --file=<value> (required) CSV file that contains the Salesforce object records you want to import.
614
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
615
+ configuration variable is already set.
616
+ -s, --sobject=<value> (required) API name of the Salesforce object, either standard or custom, into which
617
+ you're importing records.
618
+ -w, --wait=<value> Time to wait for the command to finish, in minutes.
619
+ --api-version=<value> Override the api version used for api requests made by this command
620
+ --column-delimiter=<option> Column delimiter used in the CSV file. Default is COMMA.
621
+ <options: BACKQUOTE|CARET|COMMA|PIPE|SEMICOLON|TAB>
622
+ --line-ending=<option> Line ending used in the CSV file. Default value on Windows is `CRLF`; on macOS and
623
+ Linux it's `LF`.
624
+ <options: CRLF|LF>
621
625
 
622
626
  GLOBAL FLAGS
623
627
  --flags-dir=<value> Import flag values from a directory.
@@ -651,7 +655,7 @@ EXAMPLES
651
655
  $ sf data import bulk --file accounts.csv --sobject Account --async
652
656
  ```
653
657
 
654
- _See code: [src/commands/data/import/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/import/bulk.ts)_
658
+ _See code: [src/commands/data/import/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/import/bulk.ts)_
655
659
 
656
660
  ## `sf data import resume`
657
661
 
@@ -687,7 +691,7 @@ EXAMPLES
687
691
  $ sf data import resume --use-most-recent --target-org my-scratch
688
692
  ```
689
693
 
690
- _See code: [src/commands/data/import/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/import/resume.ts)_
694
+ _See code: [src/commands/data/import/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/import/resume.ts)_
691
695
 
692
696
  ## `sf data import tree`
693
697
 
@@ -752,7 +756,7 @@ FLAG DESCRIPTIONS
752
756
  - files(array) - Files: An array of files paths to load
753
757
  ```
754
758
 
755
- _See code: [src/commands/data/import/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/import/tree.ts)_
759
+ _See code: [src/commands/data/import/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/import/tree.ts)_
756
760
 
757
761
  ## `sf data query`
758
762
 
@@ -816,7 +820,7 @@ EXAMPLES
816
820
  $ sf data query --query "SELECT Id FROM Contact" --bulk --wait 0
817
821
  ```
818
822
 
819
- _See code: [src/commands/data/query.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/query.ts)_
823
+ _See code: [src/commands/data/query.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/query.ts)_
820
824
 
821
825
  ## `sf data query resume`
822
826
 
@@ -854,7 +858,7 @@ EXAMPLES
854
858
  $ sf data query resume --bulk-query-id 7500x000005BdFzXXX
855
859
  ```
856
860
 
857
- _See code: [src/commands/data/query/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/query/resume.ts)_
861
+ _See code: [src/commands/data/query/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/query/resume.ts)_
858
862
 
859
863
  ## `sf data resume`
860
864
 
@@ -891,7 +895,7 @@ EXAMPLES
891
895
  $ sf data resume --job-id 750xx000000005sAAA --batch-id 751xx000000005nAAA
892
896
  ```
893
897
 
894
- _See code: [src/commands/data/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/resume.ts)_
898
+ _See code: [src/commands/data/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/resume.ts)_
895
899
 
896
900
  ## `sf data search`
897
901
 
@@ -941,7 +945,68 @@ EXAMPLES
941
945
  $ sf data search --file query.txt --target-org my-scratch --result-format csv
942
946
  ```
943
947
 
944
- _See code: [src/commands/data/search.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/search.ts)_
948
+ _See code: [src/commands/data/search.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/search.ts)_
949
+
950
+ ## `sf data update bulk`
951
+
952
+ Bulk update records to an org from a CSV file. Uses Bulk API 2.0.
953
+
954
+ ```
955
+ USAGE
956
+ $ sf data update bulk -s <value> -o <value> [--json] [--flags-dir <value>] [-a] [-w <value>] [--api-version <value>]
957
+ (--line-ending CRLF|LF -f <value>) [--column-delimiter BACKQUOTE|CARET|COMMA|PIPE|SEMICOLON|TAB]
958
+
959
+ FLAGS
960
+ -a, --async Don't wait for the command to complete.
961
+ -f, --file=<value> (required) CSV file that contains the Salesforce object records you want to update.
962
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
963
+ configuration variable is already set.
964
+ -s, --sobject=<value> (required) API name of the Salesforce object, either standard or custom, which you
965
+ are updating.
966
+ -w, --wait=<value> Time to wait for the command to finish, in minutes.
967
+ --api-version=<value> Override the api version used for api requests made by this command
968
+ --column-delimiter=<option> Column delimiter used in the CSV file. Default is COMMA.
969
+ <options: BACKQUOTE|CARET|COMMA|PIPE|SEMICOLON|TAB>
970
+ --line-ending=<option> Line ending used in the CSV file. Default value on Windows is `CRLF`; on macOS and
971
+ Linux it's `LF`.
972
+ <options: CRLF|LF>
973
+
974
+ GLOBAL FLAGS
975
+ --flags-dir=<value> Import flag values from a directory.
976
+ --json Format output as json.
977
+
978
+ DESCRIPTION
979
+ Bulk update records to an org from a CSV file. Uses Bulk API 2.0.
980
+
981
+ You can use this command to update millions of Salesforce object records based on a file in comma-separated values
982
+ (CSV) format.
983
+
984
+ All the records in the CSV file must be for the same Salesforce object. Specify the object with the `--sobject` flag.
985
+ The first column of every line in the CSV file must be an ID of the record you want to update. The CSV file can
986
+ contain only existing records; if a record in the file doesn't currently exist in the Salesforce object, the command
987
+ fails. Consider using "sf data upsert bulk" if you also want to insert new records.
988
+
989
+ Bulk updates can take a while, depending on how many records are in the CSV file. If the command times out, or you
990
+ specified the --async flag, the command displays the job ID. To see the status and get the results of the job, run "sf
991
+ data update resume" and pass the job ID to the --job-id flag.
992
+
993
+ For information and examples about how to prepare your CSV files, see "Prepare Data to Ingest" in the "Bulk API 2.0
994
+ and Bulk API Developer Guide"
995
+ (https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_prepare_data.htm).
996
+
997
+ EXAMPLES
998
+ Update Account records from a CSV-formatted file into an org with alias "my-scratch"; if the update doesn't complete
999
+ in 10 minutes, the command ends and displays a job ID:
1000
+
1001
+ $ sf data update bulk --file accounts.csv --sobject Account --wait 10 --target-org my-scratch
1002
+
1003
+ Update asynchronously and use the default org; the command immediately returns a job ID that you then pass to the
1004
+ "sf data update resume" command:
1005
+
1006
+ $ sf data update bulk --file accounts.csv --sobject Account --async
1007
+ ```
1008
+
1009
+ _See code: [src/commands/data/update/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/update/bulk.ts)_
945
1010
 
946
1011
  ## `sf data update record`
947
1012
 
@@ -1003,7 +1068,43 @@ EXAMPLES
1003
1068
  "ExpirationDate=2017-12-01T00:58:04.000+0000"
1004
1069
  ```
1005
1070
 
1006
- _See code: [src/commands/data/update/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/update/record.ts)_
1071
+ _See code: [src/commands/data/update/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/update/record.ts)_
1072
+
1073
+ ## `sf data update resume`
1074
+
1075
+ Resume a bulk update job that you previously started. Uses Bulk API 2.0.
1076
+
1077
+ ```
1078
+ USAGE
1079
+ $ sf data update resume [--json] [--flags-dir <value>] [--use-most-recent] [-i <value>] [-w <value>]
1080
+
1081
+ FLAGS
1082
+ -i, --job-id=<value> Job ID of the bulk update.
1083
+ -w, --wait=<value> [default: 5 minutes] Time to wait for the command to finish, in minutes.
1084
+ --use-most-recent Use the job ID of the bulk update job that was most recently run.
1085
+
1086
+ GLOBAL FLAGS
1087
+ --flags-dir=<value> Import flag values from a directory.
1088
+ --json Format output as json.
1089
+
1090
+ DESCRIPTION
1091
+ Resume a bulk update job that you previously started. Uses Bulk API 2.0.
1092
+
1093
+ When the original "sf data update bulk" command either times out or is run with the --async flag, it displays a job
1094
+ ID. To see the status and get the results of the bulk update, run this command by either passing it the job ID or
1095
+ using the --use-most-recent flag to specify the most recent bulk update job.
1096
+
1097
+ EXAMPLES
1098
+ Resume a bulk update job of your default org using a job ID:
1099
+
1100
+ $ sf data update resume --job-id 750xx000000005sAAA
1101
+
1102
+ Resume the most recently run bulk update job for an org with alias "my-scratch":
1103
+
1104
+ $ sf data update resume --use-most-recent --target-org my-scratch
1105
+ ```
1106
+
1107
+ _See code: [src/commands/data/update/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/update/resume.ts)_
1007
1108
 
1008
1109
  ## `sf data upsert bulk`
1009
1110
 
@@ -1056,7 +1157,7 @@ EXAMPLES
1056
1157
  my-scratch
1057
1158
  ```
1058
1159
 
1059
- _See code: [src/commands/data/upsert/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/upsert/bulk.ts)_
1160
+ _See code: [src/commands/data/upsert/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/upsert/bulk.ts)_
1060
1161
 
1061
1162
  ## `sf data upsert resume`
1062
1163
 
@@ -1095,7 +1196,7 @@ EXAMPLES
1095
1196
  $ sf data upsert resume --use-most-recent --target-org my-scratch
1096
1197
  ```
1097
1198
 
1098
- _See code: [src/commands/data/upsert/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/data/upsert/resume.ts)_
1199
+ _See code: [src/commands/data/upsert/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/upsert/resume.ts)_
1099
1200
 
1100
1201
  ## `sf force data bulk delete`
1101
1202
 
@@ -1142,7 +1243,7 @@ EXAMPLES
1142
1243
  $ sf force data bulk delete --sobject MyObject__c --file files/delete.csv --wait 5 --target-org my-scratch
1143
1244
  ```
1144
1245
 
1145
- _See code: [src/commands/force/data/bulk/delete.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/force/data/bulk/delete.ts)_
1246
+ _See code: [src/commands/force/data/bulk/delete.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/force/data/bulk/delete.ts)_
1146
1247
 
1147
1248
  ## `sf force data bulk status`
1148
1249
 
@@ -1179,7 +1280,7 @@ EXAMPLES
1179
1280
  $ sf force data bulk status --job-id 750xx000000005sAAA --batch-id 751xx000000005nAAA --target-org my-scratch
1180
1281
  ```
1181
1282
 
1182
- _See code: [src/commands/force/data/bulk/status.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/force/data/bulk/status.ts)_
1283
+ _See code: [src/commands/force/data/bulk/status.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/force/data/bulk/status.ts)_
1183
1284
 
1184
1285
  ## `sf force data bulk upsert`
1185
1286
 
@@ -1237,6 +1338,6 @@ EXAMPLES
1237
1338
  --target-org my-scratch
1238
1339
  ```
1239
1340
 
1240
- _See code: [src/commands/force/data/bulk/upsert.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.2/src/commands/force/data/bulk/upsert.ts)_
1341
+ _See code: [src/commands/force/data/bulk/upsert.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/force/data/bulk/upsert.ts)_
1241
1342
 
1242
1343
  <!-- commandsstop -->
@@ -211,6 +211,69 @@ export class BulkImportRequestCache extends TTLConfig {
211
211
  }
212
212
  }
213
213
  }
214
+ export class BulkUpdateRequestCache extends TTLConfig {
215
+ static getDefaultOptions() {
216
+ return {
217
+ isGlobal: true,
218
+ isState: true,
219
+ filename: BulkUpdateRequestCache.getFileName(),
220
+ stateFolder: Global.SF_STATE_FOLDER,
221
+ ttl: Duration.days(7),
222
+ };
223
+ }
224
+ static getFileName() {
225
+ return 'bulk-data-update-cache.json';
226
+ }
227
+ static async unset(key) {
228
+ const cache = await BulkImportRequestCache.create();
229
+ cache.unset(key);
230
+ await cache.write();
231
+ }
232
+ /**
233
+ * Creates a new bulk data import cache entry for the given bulk request id.
234
+ *
235
+ * @param bulkRequestId
236
+ * @param username
237
+ * @param apiVersion
238
+ */
239
+ async createCacheEntryForRequest(bulkRequestId, username, apiVersion) {
240
+ this.set(bulkRequestId, {
241
+ jobId: bulkRequestId,
242
+ username,
243
+ apiVersion,
244
+ });
245
+ await this.write();
246
+ Logger.childFromRoot('BulkUpdateCache').debug(`bulk cache saved for ${bulkRequestId}`);
247
+ }
248
+ async resolveResumeOptionsFromCache(jobIdOrMostRecent) {
249
+ if (typeof jobIdOrMostRecent === 'boolean') {
250
+ const key = this.getLatestKey();
251
+ if (!key) {
252
+ throw messages.createError('error.missingCacheEntryError');
253
+ }
254
+ // key definitely exists because it came from the cache
255
+ const entry = this.get(key);
256
+ return {
257
+ jobInfo: { id: entry.jobId },
258
+ options: {
259
+ connection: (await Org.create({ aliasOrUsername: entry.username })).getConnection(),
260
+ },
261
+ };
262
+ }
263
+ else {
264
+ const entry = this.get(jobIdOrMostRecent);
265
+ if (!entry) {
266
+ throw messages.createError('error.bulkRequestIdNotFound', [jobIdOrMostRecent]);
267
+ }
268
+ return {
269
+ jobInfo: { id: entry.jobId },
270
+ options: {
271
+ connection: (await Org.create({ aliasOrUsername: entry.username })).getConnection(),
272
+ },
273
+ };
274
+ }
275
+ }
276
+ }
214
277
  export class BulkExportRequestCache extends TTLConfig {
215
278
  static getDefaultOptions() {
216
279
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"bulkDataRequestCache.js","sourceRoot":"","sources":["../src/bulkDataRequestCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bulkDataRequestCache.js","sourceRoot":"","sources":["../src/bulkDataRequestCache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ /*
2
+ * Copyright (c) 2024, salesforce.com, inc.
3
+ * All rights reserved.
4
+ * Licensed under the BSD 3-Clause license.
5
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ import * as fs from 'node:fs';
8
+ import { platform } from 'node:os';
9
+ import { Flags } from '@salesforce/sf-plugins-core';
10
+ import { Messages } from '@salesforce/core';
11
+ import { Duration } from '@salesforce/kit';
12
+ import { ensureString } from '@salesforce/ts-types';
13
+ import { BulkIngestStages } from './ux/bulkIngestStages.js';
14
+ import { detectDelimiter } from './bulkUtils.js';
15
+ const messages = Messages.loadMessages('@salesforce/plugin-data', 'bulkIngest');
16
+ /**
17
+ * Bulk API 2.0 ingest handler for `sf` bulk commands
18
+ *
19
+ * This function should be used exclusively by `sf data bulk` commands that:
20
+ * - do a bulk ingest operation
21
+ * - have a `resume` command
22
+ *
23
+ * It will create the specified bulk ingest job, set up the oclif/MSO stages and return the job info.
24
+ * */
25
+ export async function bulkIngest(opts) {
26
+ const { conn, operation, object, lineEnding = platform() === 'win32' ? 'CRLF' : 'LF', columnDelimiter, file, logFn, } = opts;
27
+ const timeout = opts.async ? Duration.minutes(0) : opts.wait ?? Duration.minutes(0);
28
+ const async = timeout.milliseconds === 0;
29
+ const baseUrl = ensureString(opts.conn.getAuthInfoFields().instanceUrl);
30
+ const stages = new BulkIngestStages({
31
+ resume: false,
32
+ title: async ? `${opts.stageTitle} (async)` : opts.stageTitle,
33
+ baseUrl,
34
+ jsonEnabled: opts.jsonEnabled,
35
+ });
36
+ stages.start();
37
+ if (async) {
38
+ const job = await createIngestJob(conn, file, {
39
+ object,
40
+ operation,
41
+ lineEnding,
42
+ columnDelimiter: columnDelimiter ?? (await detectDelimiter(file)),
43
+ });
44
+ stages.update(job.getInfo());
45
+ stages.stop();
46
+ await opts.cache.createCacheEntryForRequest(job.id, ensureString(conn.getUsername()), conn.getApiVersion());
47
+ logFn(messages.getMessage('export.resume', [opts.resumeCmdId, job.id]));
48
+ return {
49
+ jobId: job.id,
50
+ };
51
+ }
52
+ // synchronous flow
53
+ const job = await createIngestJob(conn, file, {
54
+ object,
55
+ operation,
56
+ lineEnding,
57
+ columnDelimiter: columnDelimiter ?? (await detectDelimiter(file)),
58
+ });
59
+ stages.setupJobListeners(job);
60
+ stages.processingJob();
61
+ try {
62
+ await job.poll(5000, timeout.milliseconds);
63
+ const jobInfo = job.getInfo();
64
+ // send last data update so job status/num. of records processed/failed represent the last update
65
+ stages.update(jobInfo);
66
+ if (jobInfo.numberRecordsFailed) {
67
+ stages.error();
68
+ // TODO: replace this msg to point to `sf data bulk results` when it's added (W-12408034)
69
+ throw messages.createError('error.failedRecordDetails', [
70
+ jobInfo.numberRecordsFailed,
71
+ conn.getUsername(),
72
+ job.id,
73
+ ]);
74
+ }
75
+ stages.stop();
76
+ return {
77
+ jobId: jobInfo.id,
78
+ processedRecords: jobInfo.numberRecordsProcessed,
79
+ successfulRecords: jobInfo.numberRecordsProcessed - (jobInfo.numberRecordsFailed ?? 0),
80
+ failedRecords: jobInfo.numberRecordsFailed,
81
+ };
82
+ }
83
+ catch (err) {
84
+ const jobInfo = await job.check();
85
+ // send last data update so job status/num. of records processed/failed represent the last update
86
+ stages.update(jobInfo);
87
+ if (err instanceof Error && err.name === 'JobPollingTimeout') {
88
+ stages.stop();
89
+ throw messages.createError('error.timeout', [timeout.minutes, opts.resumeCmdId, job.id]);
90
+ }
91
+ if (jobInfo.state === 'Failed') {
92
+ stages.error();
93
+ throw messages.createError('error.jobFailed', [jobInfo.errorMessage, conn.getUsername(), job.id], [], err);
94
+ }
95
+ if (jobInfo.state === 'Aborted') {
96
+ stages.stop('aborted');
97
+ // TODO: replace this msg to point to `sf data bulk results` when it's added (W-12408034)
98
+ throw messages.createError('error.jobAborted', [conn.getUsername(), job.id], [], err);
99
+ }
100
+ throw err;
101
+ }
102
+ }
103
+ /**
104
+ * Bulk API 2.0 ingest resume handler for `sf` bulk commands
105
+ *
106
+ * This function should be used exclusively by `sf data bulk` commands that can resume a bulk ingest operation.
107
+ *
108
+ * It will set up the oclif/MSO stages, poll for the job status and return the job info.
109
+ * */
110
+ export async function bulkIngestResume(opts) {
111
+ const resumeOpts = await opts.cache.resolveResumeOptionsFromCache(opts.jobIdOrMostRecent);
112
+ const conn = resumeOpts.options.connection;
113
+ const stages = new BulkIngestStages({
114
+ resume: true,
115
+ title: opts.stageTitle,
116
+ baseUrl: ensureString(conn.getAuthInfoFields().instanceUrl),
117
+ jsonEnabled: opts.jsonEnabled,
118
+ });
119
+ stages.start();
120
+ const job = conn.bulk2.job('ingest', {
121
+ id: resumeOpts.jobInfo.id,
122
+ });
123
+ stages.setupJobListeners(job);
124
+ try {
125
+ await job.poll(5000, opts.wait.milliseconds);
126
+ const jobInfo = await job.check();
127
+ // send last data update so job status/num. of records processed/failed represent the last update
128
+ stages.update(jobInfo);
129
+ if (jobInfo.numberRecordsFailed) {
130
+ stages.error();
131
+ // TODO: replace this msg to point to `sf data bulk results` when it's added (W-12408034)
132
+ throw messages.createError('error.failedRecordDetails', [
133
+ jobInfo.numberRecordsFailed,
134
+ conn.getUsername(),
135
+ job.id,
136
+ ]);
137
+ }
138
+ stages.stop();
139
+ return {
140
+ jobId: jobInfo.id,
141
+ processedRecords: jobInfo.numberRecordsProcessed,
142
+ successfulRecords: jobInfo.numberRecordsProcessed - (jobInfo.numberRecordsFailed ?? 0),
143
+ failedRecords: jobInfo.numberRecordsFailed,
144
+ };
145
+ }
146
+ catch (err) {
147
+ const jobInfo = await job.check();
148
+ // send last data update so job status/num. of records processed/failed represent the last update
149
+ stages.update(jobInfo);
150
+ if (err instanceof Error && err.name === 'JobPollingTimeout') {
151
+ stages.error();
152
+ throw messages.createError('error.timeout', [opts.wait.minutes, opts.cmdId, job.id]);
153
+ }
154
+ if (jobInfo.state === 'Failed') {
155
+ stages.error();
156
+ throw messages.createError('error.jobFailed', [jobInfo.errorMessage, conn.getUsername(), job.id], [], err);
157
+ }
158
+ if (jobInfo.state === 'Aborted') {
159
+ stages.stop('aborted');
160
+ // TODO: replace this msg to point to `sf data bulk results` when it's added (W-12408034)
161
+ throw messages.createError('error.jobAborted', [conn.getUsername(), job.id], [], err);
162
+ }
163
+ throw err;
164
+ }
165
+ }
166
+ /**
167
+ * Create an ingest job, upload data and mark it as ready for processing
168
+ *
169
+ * */
170
+ export async function createIngestJob(conn, csvFile, jobOpts) {
171
+ const job = conn.bulk2.createJob(jobOpts);
172
+ // create the job in the org
173
+ await job.open();
174
+ // upload data
175
+ await job.uploadData(fs.createReadStream(csvFile));
176
+ // mark the job to be ready to be processed
177
+ await job.close();
178
+ return job;
179
+ }
180
+ export const columnDelimiterFlag = Flags.option({
181
+ summary: messages.getMessage('flags.column-delimiter.summary'),
182
+ options: ['BACKQUOTE', 'CARET', 'COMMA', 'PIPE', 'SEMICOLON', 'TAB'],
183
+ })();
184
+ //# sourceMappingURL=bulkIngest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulkIngest.js","sourceRoot":"","sources":["../src/bulkIngest.ts"],"names":[],"mappings":"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"}