@salesforce/plugin-data 4.0.27 → 4.0.28

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 (3) hide show
  1. package/README.md +25 -25
  2. package/oclif.manifest.json +640 -640
  3. package/package.json +6 -6
@@ -442,83 +442,6 @@
442
442
  "search:data"
443
443
  ]
444
444
  },
445
- "data:bulk:results": {
446
- "aliases": [],
447
- "args": {},
448
- "description": "Use this command to get the complete results after running one of the CLI commands that uses Bulk API 2.0 to ingest (import, update, upsert, or delete) large datasets to your org, such as \"data import bulk\". The previously-run bulk command must have completed; if it's still processing, run the corresponding resume command first, such as \"data import resume.\" Make note of the job ID of the previous bulk command because you use it to run this command. \n\nYou can also use this command to get results from running a bulk ingest job with a different tool, such as Data Loader, as long as you have the job ID. For information on Data Loader, see https://developer.salesforce.com/docs/atlas.en-us.dataLoader.meta/dataLoader/data_loader_intro.htm. \n\nThis command first displays the status of the previous bulk job, the operation that was executed in the org (such as insert or hard delete), and the updated Salesforce object. The command then displays how many records were processed in total, and how many were successful or failed. Finally, the output displays the names of the generated CSV-formatted files that contain the specific results for each ingested record. Depending on the success or failure of the bulk command, the results files can include the IDs of inserted records or the specific errors. When possible, if the ingest job failed or was aborted, you also get a CSV file with the unprocessed results.",
449
- "examples": [
450
- "Get results from a bulk ingest job; use the org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --job-id 7507i000fake341G --target-org my-scratch"
451
- ],
452
- "flags": {
453
- "json": {
454
- "description": "Format output as json.",
455
- "helpGroup": "GLOBAL",
456
- "name": "json",
457
- "allowNo": false,
458
- "type": "boolean"
459
- },
460
- "flags-dir": {
461
- "helpGroup": "GLOBAL",
462
- "name": "flags-dir",
463
- "summary": "Import flag values from a directory.",
464
- "hasDynamicHelp": false,
465
- "multiple": false,
466
- "type": "option"
467
- },
468
- "job-id": {
469
- "char": "i",
470
- "name": "job-id",
471
- "required": true,
472
- "summary": "Job ID of the bulk job.",
473
- "hasDynamicHelp": false,
474
- "multiple": false,
475
- "type": "option"
476
- },
477
- "target-org": {
478
- "char": "o",
479
- "name": "target-org",
480
- "noCacheDefault": true,
481
- "required": true,
482
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
483
- "hasDynamicHelp": true,
484
- "multiple": false,
485
- "type": "option"
486
- },
487
- "api-version": {
488
- "description": "Override the api version used for api requests made by this command",
489
- "name": "api-version",
490
- "hasDynamicHelp": false,
491
- "multiple": false,
492
- "type": "option"
493
- }
494
- },
495
- "hasDynamicHelp": true,
496
- "hiddenAliases": [],
497
- "id": "data:bulk:results",
498
- "pluginAlias": "@salesforce/plugin-data",
499
- "pluginName": "@salesforce/plugin-data",
500
- "pluginType": "core",
501
- "strict": true,
502
- "summary": "Get the results of a bulk ingest job that you previously ran.",
503
- "enableJsonFlag": true,
504
- "isESM": true,
505
- "relativePath": [
506
- "lib",
507
- "commands",
508
- "data",
509
- "bulk",
510
- "results.js"
511
- ],
512
- "aliasPermutations": [],
513
- "permutations": [
514
- "data:bulk:results",
515
- "bulk:data:results",
516
- "bulk:results:data",
517
- "data:results:bulk",
518
- "results:data:bulk",
519
- "results:bulk:data"
520
- ]
521
- },
522
445
  "data:create:file": {
523
446
  "aliases": [],
524
447
  "args": {},
@@ -776,6 +699,83 @@
776
699
  "record:create:data"
777
700
  ]
778
701
  },
702
+ "data:bulk:results": {
703
+ "aliases": [],
704
+ "args": {},
705
+ "description": "Use this command to get the complete results after running one of the CLI commands that uses Bulk API 2.0 to ingest (import, update, upsert, or delete) large datasets to your org, such as \"data import bulk\". The previously-run bulk command must have completed; if it's still processing, run the corresponding resume command first, such as \"data import resume.\" Make note of the job ID of the previous bulk command because you use it to run this command. \n\nYou can also use this command to get results from running a bulk ingest job with a different tool, such as Data Loader, as long as you have the job ID. For information on Data Loader, see https://developer.salesforce.com/docs/atlas.en-us.dataLoader.meta/dataLoader/data_loader_intro.htm. \n\nThis command first displays the status of the previous bulk job, the operation that was executed in the org (such as insert or hard delete), and the updated Salesforce object. The command then displays how many records were processed in total, and how many were successful or failed. Finally, the output displays the names of the generated CSV-formatted files that contain the specific results for each ingested record. Depending on the success or failure of the bulk command, the results files can include the IDs of inserted records or the specific errors. When possible, if the ingest job failed or was aborted, you also get a CSV file with the unprocessed results.",
706
+ "examples": [
707
+ "Get results from a bulk ingest job; use the org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --job-id 7507i000fake341G --target-org my-scratch"
708
+ ],
709
+ "flags": {
710
+ "json": {
711
+ "description": "Format output as json.",
712
+ "helpGroup": "GLOBAL",
713
+ "name": "json",
714
+ "allowNo": false,
715
+ "type": "boolean"
716
+ },
717
+ "flags-dir": {
718
+ "helpGroup": "GLOBAL",
719
+ "name": "flags-dir",
720
+ "summary": "Import flag values from a directory.",
721
+ "hasDynamicHelp": false,
722
+ "multiple": false,
723
+ "type": "option"
724
+ },
725
+ "job-id": {
726
+ "char": "i",
727
+ "name": "job-id",
728
+ "required": true,
729
+ "summary": "Job ID of the bulk job.",
730
+ "hasDynamicHelp": false,
731
+ "multiple": false,
732
+ "type": "option"
733
+ },
734
+ "target-org": {
735
+ "char": "o",
736
+ "name": "target-org",
737
+ "noCacheDefault": true,
738
+ "required": true,
739
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
740
+ "hasDynamicHelp": true,
741
+ "multiple": false,
742
+ "type": "option"
743
+ },
744
+ "api-version": {
745
+ "description": "Override the api version used for api requests made by this command",
746
+ "name": "api-version",
747
+ "hasDynamicHelp": false,
748
+ "multiple": false,
749
+ "type": "option"
750
+ }
751
+ },
752
+ "hasDynamicHelp": true,
753
+ "hiddenAliases": [],
754
+ "id": "data:bulk:results",
755
+ "pluginAlias": "@salesforce/plugin-data",
756
+ "pluginName": "@salesforce/plugin-data",
757
+ "pluginType": "core",
758
+ "strict": true,
759
+ "summary": "Get the results of a bulk ingest job that you previously ran.",
760
+ "enableJsonFlag": true,
761
+ "isESM": true,
762
+ "relativePath": [
763
+ "lib",
764
+ "commands",
765
+ "data",
766
+ "bulk",
767
+ "results.js"
768
+ ],
769
+ "aliasPermutations": [],
770
+ "permutations": [
771
+ "data:bulk:results",
772
+ "bulk:data:results",
773
+ "bulk:results:data",
774
+ "data:results:bulk",
775
+ "results:data:bulk",
776
+ "results:bulk:data"
777
+ ]
778
+ },
779
779
  "data:delete:bulk": {
780
780
  "aliases": [],
781
781
  "args": {},
@@ -1806,13 +1806,18 @@
1806
1806
  "record:get:data"
1807
1807
  ]
1808
1808
  },
1809
- "data:import:bulk": {
1810
- "aliases": [],
1809
+ "data:query:resume": {
1810
+ "aliases": [
1811
+ "force:data:soql:bulk:report"
1812
+ ],
1811
1813
  "args": {},
1812
- "description": "You can use this command to import millions of records into the object from a file in comma-separated values (CSV) format.\n\nAll the records in the CSV file must be for the same Salesforce object. Specify the object with the `--sobject` flag.\n\nBulk imports can take a while, depending on how many records are in the CSV file. If the command times out, or you specified the --async flag, the command displays the job ID. To see the status and get the results of the job, run \"sf data import resume\" and pass the job ID to the --job-id flag.\n\nFor information and examples about how to prepare your CSV files, see \"Prepare Data to Ingest\" in the \"Bulk API 2.0 and Bulk API Developer Guide\" (https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_prepare_data.htm).",
1814
+ "deprecateAliases": true,
1815
+ "deprecationOptions": {
1816
+ "message": "Bulk mode for \"data query\" is deprecated, this command will be removed after April 2025.\nUse \"data export bulk | data export resume\" for bulk queries instead.\n"
1817
+ },
1818
+ "description": "Run this command using the job ID returned from the \"<%= config.bin %> data query --bulk\" command.",
1813
1819
  "examples": [
1814
- "Import Account records from a CSV-formatted file into an org with alias \"my-scratch\"; if the import doesn't complete in 10 minutes, the command ends and displays a job ID:\n<%= config.bin %> <%= command.id %> --file accounts.csv --sobject Account --wait 10 --target-org my-scratch",
1815
- "Import asynchronously and use the default org; the command immediately returns a job ID that you then pass to the \"sf data import resume\" command:\n<%= config.bin %> <%= command.id %> --file accounts.csv --sobject Account --async"
1820
+ "View the status of a bulk query with the specified ID:\n<%= config.bin %> <%= command.id %> --bulk-query-id 7500x000005BdFzXXX"
1816
1821
  ],
1817
1822
  "flags": {
1818
1823
  "json": {
@@ -1830,127 +1835,234 @@
1830
1835
  "multiple": false,
1831
1836
  "type": "option"
1832
1837
  },
1833
- "async": {
1834
- "char": "a",
1835
- "deprecated": true,
1836
- "exclusive": [
1837
- "wait"
1838
+ "target-org": {
1839
+ "aliases": [
1840
+ "targetusername",
1841
+ "u"
1838
1842
  ],
1839
- "name": "async",
1840
- "summary": "Don't wait for the command to complete.",
1841
- "allowNo": false,
1842
- "type": "boolean"
1843
- },
1844
- "file": {
1845
- "char": "f",
1846
- "name": "file",
1847
- "required": true,
1848
- "summary": "CSV file that contains the Salesforce object records you want to import.",
1849
- "hasDynamicHelp": false,
1850
- "multiple": false,
1851
- "type": "option"
1852
- },
1853
- "sobject": {
1854
- "char": "s",
1855
- "name": "sobject",
1856
- "required": true,
1857
- "summary": "API name of the Salesforce object, either standard or custom, into which you're importing records.",
1858
- "hasDynamicHelp": false,
1843
+ "char": "o",
1844
+ "deprecateAliases": true,
1845
+ "name": "target-org",
1846
+ "noCacheDefault": true,
1847
+ "summary": "Username or alias of the target org.",
1848
+ "hasDynamicHelp": true,
1859
1849
  "multiple": false,
1860
1850
  "type": "option"
1861
1851
  },
1862
1852
  "api-version": {
1853
+ "aliases": [
1854
+ "apiversion"
1855
+ ],
1856
+ "deprecateAliases": true,
1863
1857
  "description": "Override the api version used for api requests made by this command",
1864
1858
  "name": "api-version",
1865
1859
  "hasDynamicHelp": false,
1866
1860
  "multiple": false,
1867
1861
  "type": "option"
1868
1862
  },
1869
- "wait": {
1870
- "char": "w",
1871
- "exclusive": [
1872
- "async"
1873
- ],
1874
- "name": "wait",
1875
- "summary": "Time to wait for the command to finish, in minutes.",
1876
- "hasDynamicHelp": true,
1877
- "multiple": false,
1878
- "type": "option"
1879
- },
1880
- "target-org": {
1881
- "char": "o",
1882
- "name": "target-org",
1883
- "noCacheDefault": true,
1884
- "required": true,
1885
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
1886
- "hasDynamicHelp": true,
1863
+ "loglevel": {
1864
+ "deprecated": {
1865
+ "message": "The loglevel flag is no longer in use on this command. You may use it without error, but it will be ignored.\nSet the log level using the `SFDX_LOG_LEVEL` environment variable."
1866
+ },
1867
+ "hidden": true,
1868
+ "name": "loglevel",
1869
+ "hasDynamicHelp": false,
1887
1870
  "multiple": false,
1888
1871
  "type": "option"
1889
1872
  },
1890
- "line-ending": {
1891
- "dependsOn": [
1892
- "file"
1873
+ "result-format": {
1874
+ "aliases": [
1875
+ "resultformat"
1893
1876
  ],
1894
- "name": "line-ending",
1895
- "summary": "Line ending used in the CSV file. Default value on Windows is `CRLF`; on macOS and Linux it's `LF`.",
1877
+ "char": "r",
1878
+ "deprecateAliases": true,
1879
+ "name": "result-format",
1880
+ "summary": "Format to display the results; the --json flag overrides this flag.",
1881
+ "default": "human",
1896
1882
  "hasDynamicHelp": false,
1897
1883
  "multiple": false,
1898
1884
  "options": [
1899
- "CRLF",
1900
- "LF"
1885
+ "human",
1886
+ "csv",
1887
+ "json"
1901
1888
  ],
1902
1889
  "type": "option"
1903
1890
  },
1904
- "column-delimiter": {
1905
- "name": "column-delimiter",
1906
- "summary": "Column delimiter used in the CSV file.",
1907
- "hasDynamicHelp": false,
1908
- "multiple": false,
1909
- "options": [
1910
- "BACKQUOTE",
1911
- "CARET",
1912
- "COMMA",
1913
- "PIPE",
1914
- "SEMICOLON",
1915
- "TAB"
1891
+ "bulk-query-id": {
1892
+ "aliases": [
1893
+ "bulkqueryid"
1916
1894
  ],
1895
+ "char": "i",
1896
+ "deprecateAliases": true,
1897
+ "name": "bulk-query-id",
1898
+ "summary": "Job ID of the bulk query.",
1899
+ "hasDynamicHelp": false,
1900
+ "multiple": false,
1917
1901
  "type": "option"
1902
+ },
1903
+ "use-most-recent": {
1904
+ "name": "use-most-recent",
1905
+ "summary": "Use the most recent bulk query ID from cache.",
1906
+ "allowNo": false,
1907
+ "type": "boolean"
1918
1908
  }
1919
1909
  },
1920
1910
  "hasDynamicHelp": true,
1921
1911
  "hiddenAliases": [],
1922
- "id": "data:import:bulk",
1912
+ "id": "data:query:resume",
1923
1913
  "pluginAlias": "@salesforce/plugin-data",
1924
1914
  "pluginName": "@salesforce/plugin-data",
1925
1915
  "pluginType": "core",
1916
+ "state": "deprecated",
1926
1917
  "strict": true,
1927
- "summary": "Bulk import records into a Salesforce object from a CSV file. Uses Bulk API 2.0.",
1918
+ "summary": "View the status of a bulk query.",
1928
1919
  "enableJsonFlag": true,
1929
1920
  "isESM": true,
1930
1921
  "relativePath": [
1931
1922
  "lib",
1932
1923
  "commands",
1933
1924
  "data",
1934
- "import",
1935
- "bulk.js"
1925
+ "query",
1926
+ "resume.js"
1927
+ ],
1928
+ "aliasPermutations": [
1929
+ "force:data:soql:bulk:report",
1930
+ "data:force:soql:bulk:report",
1931
+ "data:soql:force:bulk:report",
1932
+ "data:soql:bulk:force:report",
1933
+ "data:soql:bulk:report:force",
1934
+ "force:soql:data:bulk:report",
1935
+ "soql:force:data:bulk:report",
1936
+ "soql:data:force:bulk:report",
1937
+ "soql:data:bulk:force:report",
1938
+ "soql:data:bulk:report:force",
1939
+ "force:soql:bulk:data:report",
1940
+ "soql:force:bulk:data:report",
1941
+ "soql:bulk:force:data:report",
1942
+ "soql:bulk:data:force:report",
1943
+ "soql:bulk:data:report:force",
1944
+ "force:soql:bulk:report:data",
1945
+ "soql:force:bulk:report:data",
1946
+ "soql:bulk:force:report:data",
1947
+ "soql:bulk:report:force:data",
1948
+ "soql:bulk:report:data:force",
1949
+ "force:data:bulk:soql:report",
1950
+ "data:force:bulk:soql:report",
1951
+ "data:bulk:force:soql:report",
1952
+ "data:bulk:soql:force:report",
1953
+ "data:bulk:soql:report:force",
1954
+ "force:bulk:data:soql:report",
1955
+ "bulk:force:data:soql:report",
1956
+ "bulk:data:force:soql:report",
1957
+ "bulk:data:soql:force:report",
1958
+ "bulk:data:soql:report:force",
1959
+ "force:bulk:soql:data:report",
1960
+ "bulk:force:soql:data:report",
1961
+ "bulk:soql:force:data:report",
1962
+ "bulk:soql:data:force:report",
1963
+ "bulk:soql:data:report:force",
1964
+ "force:bulk:soql:report:data",
1965
+ "bulk:force:soql:report:data",
1966
+ "bulk:soql:force:report:data",
1967
+ "bulk:soql:report:force:data",
1968
+ "bulk:soql:report:data:force",
1969
+ "force:data:bulk:report:soql",
1970
+ "data:force:bulk:report:soql",
1971
+ "data:bulk:force:report:soql",
1972
+ "data:bulk:report:force:soql",
1973
+ "data:bulk:report:soql:force",
1974
+ "force:bulk:data:report:soql",
1975
+ "bulk:force:data:report:soql",
1976
+ "bulk:data:force:report:soql",
1977
+ "bulk:data:report:force:soql",
1978
+ "bulk:data:report:soql:force",
1979
+ "force:bulk:report:data:soql",
1980
+ "bulk:force:report:data:soql",
1981
+ "bulk:report:force:data:soql",
1982
+ "bulk:report:data:force:soql",
1983
+ "bulk:report:data:soql:force",
1984
+ "force:bulk:report:soql:data",
1985
+ "bulk:force:report:soql:data",
1986
+ "bulk:report:force:soql:data",
1987
+ "bulk:report:soql:force:data",
1988
+ "bulk:report:soql:data:force",
1989
+ "force:data:soql:report:bulk",
1990
+ "data:force:soql:report:bulk",
1991
+ "data:soql:force:report:bulk",
1992
+ "data:soql:report:force:bulk",
1993
+ "data:soql:report:bulk:force",
1994
+ "force:soql:data:report:bulk",
1995
+ "soql:force:data:report:bulk",
1996
+ "soql:data:force:report:bulk",
1997
+ "soql:data:report:force:bulk",
1998
+ "soql:data:report:bulk:force",
1999
+ "force:soql:report:data:bulk",
2000
+ "soql:force:report:data:bulk",
2001
+ "soql:report:force:data:bulk",
2002
+ "soql:report:data:force:bulk",
2003
+ "soql:report:data:bulk:force",
2004
+ "force:soql:report:bulk:data",
2005
+ "soql:force:report:bulk:data",
2006
+ "soql:report:force:bulk:data",
2007
+ "soql:report:bulk:force:data",
2008
+ "soql:report:bulk:data:force",
2009
+ "force:data:report:soql:bulk",
2010
+ "data:force:report:soql:bulk",
2011
+ "data:report:force:soql:bulk",
2012
+ "data:report:soql:force:bulk",
2013
+ "data:report:soql:bulk:force",
2014
+ "force:report:data:soql:bulk",
2015
+ "report:force:data:soql:bulk",
2016
+ "report:data:force:soql:bulk",
2017
+ "report:data:soql:force:bulk",
2018
+ "report:data:soql:bulk:force",
2019
+ "force:report:soql:data:bulk",
2020
+ "report:force:soql:data:bulk",
2021
+ "report:soql:force:data:bulk",
2022
+ "report:soql:data:force:bulk",
2023
+ "report:soql:data:bulk:force",
2024
+ "force:report:soql:bulk:data",
2025
+ "report:force:soql:bulk:data",
2026
+ "report:soql:force:bulk:data",
2027
+ "report:soql:bulk:force:data",
2028
+ "report:soql:bulk:data:force",
2029
+ "force:data:report:bulk:soql",
2030
+ "data:force:report:bulk:soql",
2031
+ "data:report:force:bulk:soql",
2032
+ "data:report:bulk:force:soql",
2033
+ "data:report:bulk:soql:force",
2034
+ "force:report:data:bulk:soql",
2035
+ "report:force:data:bulk:soql",
2036
+ "report:data:force:bulk:soql",
2037
+ "report:data:bulk:force:soql",
2038
+ "report:data:bulk:soql:force",
2039
+ "force:report:bulk:data:soql",
2040
+ "report:force:bulk:data:soql",
2041
+ "report:bulk:force:data:soql",
2042
+ "report:bulk:data:force:soql",
2043
+ "report:bulk:data:soql:force",
2044
+ "force:report:bulk:soql:data",
2045
+ "report:force:bulk:soql:data",
2046
+ "report:bulk:force:soql:data",
2047
+ "report:bulk:soql:force:data",
2048
+ "report:bulk:soql:data:force"
1936
2049
  ],
1937
- "aliasPermutations": [],
1938
2050
  "permutations": [
1939
- "data:import:bulk",
1940
- "import:data:bulk",
1941
- "import:bulk:data",
1942
- "data:bulk:import",
1943
- "bulk:data:import",
1944
- "bulk:import:data"
2051
+ "data:query:resume",
2052
+ "query:data:resume",
2053
+ "query:resume:data",
2054
+ "data:resume:query",
2055
+ "resume:data:query",
2056
+ "resume:query:data"
1945
2057
  ]
1946
2058
  },
1947
- "data:import:resume": {
2059
+ "data:update:bulk": {
1948
2060
  "aliases": [],
1949
2061
  "args": {},
1950
- "description": "When the original \"sf data import bulk\" command either times out or is run with the --async flag, it displays a job ID. To see the status and get the results of the bulk import, run this command by either passing it the job ID or using the --use-most-recent flag to specify the most recent bulk import job.",
2062
+ "description": "You can use this command to update millions of Salesforce object records based on a file in comma-separated values (CSV) format.\n\nAll the records in the CSV file must be for the same Salesforce object. Specify the object with the `--sobject` flag. 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 contain only existing records; if a record in the file doesn't currently exist in the Salesforce object, the command fails. Consider using \"sf data upsert bulk\" if you also want to insert new records.\n\nBulk updates can take a while, depending on how many records are in the CSV file. If the command times out, or you specified the --async flag, the command displays the job ID. To see the status and get the results of the job, run \"sf data update resume\" and pass the job ID to the --job-id flag.\n\nFor information and examples about how to prepare your CSV files, see \"Prepare Data to Ingest\" in the \"Bulk API 2.0 and Bulk API Developer Guide\" (https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_prepare_data.htm).",
1951
2063
  "examples": [
1952
- "Resume a bulk import job to your default org using an ID:\n<%= config.bin %> <%= command.id %> --job-id 750xx000000005sAAA",
1953
- "Resume the most recently run bulk import job for an org with alias my-scratch:\n<%= config.bin %> <%= command.id %> --use-most-recent --target-org my-scratch"
2064
+ "Update Account records from a CSV-formatted file into an org with alias \"my-scratch\"; if the update doesn't complete in 10 minutes, the command ends and displays a job ID:\n<%= config.bin %> <%= command.id %> --file accounts.csv --sobject Account --wait 10 --target-org my-scratch",
2065
+ "Update asynchronously and use the default org; the command immediately returns a job ID that you then pass to the \"sf data update resume\" command:\n<%= config.bin %> <%= command.id %> --file accounts.csv --sobject Account --async"
1954
2066
  ],
1955
2067
  "flags": {
1956
2068
  "json": {
@@ -1968,67 +2080,126 @@
1968
2080
  "multiple": false,
1969
2081
  "type": "option"
1970
2082
  },
1971
- "use-most-recent": {
1972
- "name": "use-most-recent",
1973
- "summary": "Use the job ID of the bulk import job that was most recently run.",
2083
+ "async": {
2084
+ "char": "a",
2085
+ "deprecated": true,
2086
+ "name": "async",
2087
+ "summary": "Don't wait for the command to complete.",
1974
2088
  "allowNo": false,
1975
2089
  "type": "boolean"
1976
2090
  },
1977
- "job-id": {
1978
- "char": "i",
1979
- "name": "job-id",
1980
- "summary": "Job ID of the bulk import.",
1981
- "hasDynamicHelp": false,
1982
- "multiple": false,
1983
- "type": "option"
1984
- },
1985
2091
  "wait": {
1986
2092
  "char": "w",
1987
2093
  "name": "wait",
1988
2094
  "summary": "Time to wait for the command to finish, in minutes.",
1989
- "default": "5 minutes",
1990
2095
  "hasDynamicHelp": true,
1991
2096
  "multiple": false,
1992
2097
  "type": "option"
2098
+ },
2099
+ "file": {
2100
+ "char": "f",
2101
+ "name": "file",
2102
+ "required": true,
2103
+ "summary": "CSV file that contains the Salesforce object records you want to update.",
2104
+ "hasDynamicHelp": false,
2105
+ "multiple": false,
2106
+ "type": "option"
2107
+ },
2108
+ "sobject": {
2109
+ "char": "s",
2110
+ "name": "sobject",
2111
+ "required": true,
2112
+ "summary": "API name of the Salesforce object, either standard or custom, which you are updating.",
2113
+ "hasDynamicHelp": false,
2114
+ "multiple": false,
2115
+ "type": "option"
2116
+ },
2117
+ "api-version": {
2118
+ "description": "Override the api version used for api requests made by this command",
2119
+ "name": "api-version",
2120
+ "hasDynamicHelp": false,
2121
+ "multiple": false,
2122
+ "type": "option"
2123
+ },
2124
+ "target-org": {
2125
+ "char": "o",
2126
+ "name": "target-org",
2127
+ "noCacheDefault": true,
2128
+ "required": true,
2129
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
2130
+ "hasDynamicHelp": true,
2131
+ "multiple": false,
2132
+ "type": "option"
2133
+ },
2134
+ "line-ending": {
2135
+ "dependsOn": [
2136
+ "file"
2137
+ ],
2138
+ "name": "line-ending",
2139
+ "summary": "Line ending used in the CSV file. Default value on Windows is `CRLF`; on macOS and Linux it's `LF`.",
2140
+ "hasDynamicHelp": false,
2141
+ "multiple": false,
2142
+ "options": [
2143
+ "CRLF",
2144
+ "LF"
2145
+ ],
2146
+ "type": "option"
2147
+ },
2148
+ "column-delimiter": {
2149
+ "name": "column-delimiter",
2150
+ "summary": "Column delimiter used in the CSV file.",
2151
+ "hasDynamicHelp": false,
2152
+ "multiple": false,
2153
+ "options": [
2154
+ "BACKQUOTE",
2155
+ "CARET",
2156
+ "COMMA",
2157
+ "PIPE",
2158
+ "SEMICOLON",
2159
+ "TAB"
2160
+ ],
2161
+ "type": "option"
1993
2162
  }
1994
2163
  },
1995
2164
  "hasDynamicHelp": true,
1996
2165
  "hiddenAliases": [],
1997
- "id": "data:import:resume",
2166
+ "id": "data:update:bulk",
1998
2167
  "pluginAlias": "@salesforce/plugin-data",
1999
2168
  "pluginName": "@salesforce/plugin-data",
2000
2169
  "pluginType": "core",
2001
2170
  "strict": true,
2002
- "summary": "Resume a bulk import job that you previously started. Uses Bulk API 2.0.",
2171
+ "summary": "Bulk update records to an org from a CSV file. Uses Bulk API 2.0.",
2003
2172
  "enableJsonFlag": true,
2004
2173
  "isESM": true,
2005
2174
  "relativePath": [
2006
2175
  "lib",
2007
2176
  "commands",
2008
2177
  "data",
2009
- "import",
2010
- "resume.js"
2178
+ "update",
2179
+ "bulk.js"
2011
2180
  ],
2012
2181
  "aliasPermutations": [],
2013
2182
  "permutations": [
2014
- "data:import:resume",
2015
- "import:data:resume",
2016
- "import:resume:data",
2017
- "data:resume:import",
2018
- "resume:data:import",
2019
- "resume:import:data"
2183
+ "data:update:bulk",
2184
+ "update:data:bulk",
2185
+ "update:bulk:data",
2186
+ "data:bulk:update",
2187
+ "bulk:data:update",
2188
+ "bulk:update:data"
2020
2189
  ]
2021
2190
  },
2022
- "data:import:tree": {
2191
+ "data:update:record": {
2023
2192
  "aliases": [
2024
- "force:data:tree:import"
2193
+ "force:data:record:update"
2025
2194
  ],
2026
2195
  "args": {},
2027
2196
  "deprecateAliases": true,
2028
- "description": "The JSON files that contain the data are in sObject tree format, which is a collection of nested, parent-child records with a single root record. Use the \"<%= config.bin %> data export tree\" command to generate these JSON files.\n\nIf you used the --plan flag when exporting the data to generate a plan definition file, use the --plan flag to reference the file when you import. If you're not using a plan, use the --files flag to list the files. If you specify multiple JSON files that depend on each other in a parent-child relationship, be sure you list them in the correct order.",
2197
+ "description": "Specify the record you want to update with either its ID or with a list of field-value pairs that identify the record. If your list of fields identifies more than one record, the update fails; the error displays how many records were found.\n\nWhen using field-value pairs for both identifying the record and specifiyng the new field values, use the format <fieldName>=<value>. Enclose all field-value pairs in one set of double quotation marks, delimited by spaces. Enclose values that contain spaces in single quotes.\n\nThis command updates a record in Salesforce objects by default. Use the --use-tooling-api flag to update a Tooling API object.",
2029
2198
  "examples": [
2030
- "Import the records contained in two JSON files into the org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --files Contact.json,Account.json --target-org my-scratch",
2031
- "Import records using a plan definition file into your default org:\n<%= config.bin %> <%= command.id %> --plan Account-Contact-plan.json"
2199
+ "Update the Name field of an Account record with the specified (truncated) ID:\n<%= config.bin %> <%= command.id %> --sobject Account --record-id 001D0 --values \"Name=NewAcme\"",
2200
+ "Update the Name field of an Account record whose current name is 'Old Acme':\n<%= config.bin %> <%= command.id %> --sobject Account --where \"Name='Old Acme'\" --values \"Name='New Acme'\"",
2201
+ "Update the Name and Website fields of an Account record with the specified (truncated) ID:\n<%= config.bin %> <%= command.id %> --sobject Account --record-id 001D0 --values \"Name='Acme III' Website=www.example.com\"",
2202
+ "Update the ExpirationDate field of a record of the Tooling API object TraceFlag using the specified (truncated) ID:\n<%= config.bin %> <%= command.id %> -t --sobject TraceFlag --record-id 7tf170000009cUBAAY --values \"ExpirationDate=2017-12-01T00:58:04.000+0000\""
2032
2203
  ],
2033
2204
  "flags": {
2034
2205
  "json": {
@@ -2082,93 +2253,129 @@
2082
2253
  "multiple": false,
2083
2254
  "type": "option"
2084
2255
  },
2085
- "files": {
2256
+ "sobject": {
2086
2257
  "aliases": [
2087
- "sobjecttreefiles"
2258
+ "sobjecttype"
2088
2259
  ],
2089
- "char": "f",
2260
+ "char": "s",
2090
2261
  "deprecateAliases": true,
2091
- "name": "files",
2092
- "summary": "Comma-separated and in-order JSON files that contain the records, in sObject tree format, that you want to insert.",
2093
- "delimiter": ",",
2262
+ "name": "sobject",
2263
+ "required": true,
2264
+ "summary": "API name of the Salesforce or Tooling API object that contains the record you're updating.",
2094
2265
  "hasDynamicHelp": false,
2095
- "multiple": true,
2266
+ "multiple": false,
2096
2267
  "type": "option"
2097
2268
  },
2098
- "plan": {
2099
- "char": "p",
2100
- "description": "Unlike when you use the `--files` flag, the files listed in the plan definition file **can** contain more then 200 records. When the CLI executes the import, it automatically batches the records to comply with the 200 record limit set by the API.\n\nThe order in which you list the files in the plan definition file matters. Specifically, records with lookups to records in another file should be listed AFTER that file. For example, let's say you're loading Account and Contact records, and the contacts have references to those accounts. Be sure you list the Accounts file before the Contacts file.\n\nThe plan definition file has the following schema:\n\n- items(object) - SObject Type: Definition of records to be insert per SObject Type\n - sobject(string) - Name of SObject: Child file references must have SObject roots of this type\n - files(array) - Files: An array of files paths to load",
2101
- "name": "plan",
2102
- "summary": "Plan definition file to insert multiple data files.",
2269
+ "record-id": {
2270
+ "aliases": [
2271
+ "sobjectid"
2272
+ ],
2273
+ "char": "i",
2274
+ "deprecateAliases": true,
2275
+ "name": "record-id",
2276
+ "summary": "ID of the record you’re updating.",
2277
+ "hasDynamicHelp": false,
2278
+ "multiple": false,
2279
+ "type": "option"
2280
+ },
2281
+ "where": {
2282
+ "char": "w",
2283
+ "name": "where",
2284
+ "summary": "List of <fieldName>=<value> pairs that identify the record you want to update.",
2285
+ "hasDynamicHelp": false,
2286
+ "multiple": false,
2287
+ "type": "option"
2288
+ },
2289
+ "values": {
2290
+ "char": "v",
2291
+ "name": "values",
2292
+ "required": true,
2293
+ "summary": "Fields that you're updating, in the format of <fieldName>=<value> pairs.",
2103
2294
  "hasDynamicHelp": false,
2104
2295
  "multiple": false,
2105
2296
  "type": "option"
2297
+ },
2298
+ "use-tooling-api": {
2299
+ "aliases": [
2300
+ "usetoolingapi"
2301
+ ],
2302
+ "char": "t",
2303
+ "deprecateAliases": true,
2304
+ "name": "use-tooling-api",
2305
+ "summary": "Use Tooling API so you can update a record in a Tooling API object.",
2306
+ "allowNo": false,
2307
+ "type": "boolean"
2308
+ },
2309
+ "perflog": {
2310
+ "deprecated": {
2311
+ "version": "57"
2312
+ },
2313
+ "hidden": true,
2314
+ "name": "perflog",
2315
+ "summary": "Get API performance data.",
2316
+ "allowNo": false,
2317
+ "type": "boolean"
2106
2318
  }
2107
2319
  },
2108
2320
  "hasDynamicHelp": true,
2109
2321
  "hiddenAliases": [],
2110
- "id": "data:import:tree",
2322
+ "id": "data:update:record",
2111
2323
  "pluginAlias": "@salesforce/plugin-data",
2112
2324
  "pluginName": "@salesforce/plugin-data",
2113
2325
  "pluginType": "core",
2114
2326
  "strict": true,
2115
- "summary": "Import data from one or more JSON files into an org.",
2327
+ "summary": "Updates a single record of a Salesforce or Tooling API object.",
2116
2328
  "enableJsonFlag": true,
2117
2329
  "isESM": true,
2118
2330
  "relativePath": [
2119
2331
  "lib",
2120
2332
  "commands",
2121
2333
  "data",
2122
- "import",
2123
- "tree.js"
2334
+ "update",
2335
+ "record.js"
2124
2336
  ],
2125
2337
  "aliasPermutations": [
2126
- "force:data:tree:import",
2127
- "data:force:tree:import",
2128
- "data:tree:force:import",
2129
- "data:tree:import:force",
2130
- "force:tree:data:import",
2131
- "tree:force:data:import",
2132
- "tree:data:force:import",
2133
- "tree:data:import:force",
2134
- "force:tree:import:data",
2135
- "tree:force:import:data",
2136
- "tree:import:force:data",
2137
- "tree:import:data:force",
2138
- "force:data:import:tree",
2139
- "data:force:import:tree",
2140
- "data:import:force:tree",
2141
- "data:import:tree:force",
2142
- "force:import:data:tree",
2143
- "import:force:data:tree",
2144
- "import:data:force:tree",
2145
- "import:data:tree:force",
2146
- "force:import:tree:data",
2147
- "import:force:tree:data",
2148
- "import:tree:force:data",
2149
- "import:tree:data:force"
2338
+ "force:data:record:update",
2339
+ "data:force:record:update",
2340
+ "data:record:force:update",
2341
+ "data:record:update:force",
2342
+ "force:record:data:update",
2343
+ "record:force:data:update",
2344
+ "record:data:force:update",
2345
+ "record:data:update:force",
2346
+ "force:record:update:data",
2347
+ "record:force:update:data",
2348
+ "record:update:force:data",
2349
+ "record:update:data:force",
2350
+ "force:data:update:record",
2351
+ "data:force:update:record",
2352
+ "data:update:force:record",
2353
+ "data:update:record:force",
2354
+ "force:update:data:record",
2355
+ "update:force:data:record",
2356
+ "update:data:force:record",
2357
+ "update:data:record:force",
2358
+ "force:update:record:data",
2359
+ "update:force:record:data",
2360
+ "update:record:force:data",
2361
+ "update:record:data:force"
2150
2362
  ],
2151
2363
  "permutations": [
2152
- "data:import:tree",
2153
- "import:data:tree",
2154
- "import:tree:data",
2155
- "data:tree:import",
2156
- "tree:data:import",
2157
- "tree:import:data"
2364
+ "data:update:record",
2365
+ "update:data:record",
2366
+ "update:record:data",
2367
+ "data:record:update",
2368
+ "record:data:update",
2369
+ "record:update:data"
2158
2370
  ]
2159
2371
  },
2160
- "data:query:resume": {
2161
- "aliases": [
2162
- "force:data:soql:bulk:report"
2163
- ],
2372
+ "data:update:resume": {
2373
+ "aliases": [],
2164
2374
  "args": {},
2165
- "deprecateAliases": true,
2166
- "deprecationOptions": {
2167
- "message": "Bulk mode for \"data query\" is deprecated, this command will be removed after April 2025.\nUse \"data export bulk | data export resume\" for bulk queries instead.\n"
2168
- },
2169
- "description": "Run this command using the job ID returned from the \"<%= config.bin %> data query --bulk\" command.",
2375
+ "description": "When the original \"sf data update bulk\" command either times out or is run with the --async flag, it displays a job ID. To see the status and get the results of the bulk update, run this command by either passing it the job ID or using the --use-most-recent flag to specify the most recent bulk update job.",
2170
2376
  "examples": [
2171
- "View the status of a bulk query with the specified ID:\n<%= config.bin %> <%= command.id %> --bulk-query-id 7500x000005BdFzXXX"
2377
+ "Resume a bulk update job of your default org using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 750xx000000005sAAA",
2378
+ "Resume the most recently run bulk update job for an org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --use-most-recent --target-org my-scratch"
2172
2379
  ],
2173
2380
  "flags": {
2174
2381
  "json": {
@@ -2186,234 +2393,64 @@
2186
2393
  "multiple": false,
2187
2394
  "type": "option"
2188
2395
  },
2189
- "target-org": {
2190
- "aliases": [
2191
- "targetusername",
2192
- "u"
2193
- ],
2194
- "char": "o",
2195
- "deprecateAliases": true,
2196
- "name": "target-org",
2197
- "noCacheDefault": true,
2198
- "summary": "Username or alias of the target org.",
2199
- "hasDynamicHelp": true,
2200
- "multiple": false,
2201
- "type": "option"
2202
- },
2203
- "api-version": {
2204
- "aliases": [
2205
- "apiversion"
2206
- ],
2207
- "deprecateAliases": true,
2208
- "description": "Override the api version used for api requests made by this command",
2209
- "name": "api-version",
2210
- "hasDynamicHelp": false,
2211
- "multiple": false,
2212
- "type": "option"
2213
- },
2214
- "loglevel": {
2215
- "deprecated": {
2216
- "message": "The loglevel flag is no longer in use on this command. You may use it without error, but it will be ignored.\nSet the log level using the `SFDX_LOG_LEVEL` environment variable."
2217
- },
2218
- "hidden": true,
2219
- "name": "loglevel",
2220
- "hasDynamicHelp": false,
2221
- "multiple": false,
2222
- "type": "option"
2223
- },
2224
- "result-format": {
2225
- "aliases": [
2226
- "resultformat"
2227
- ],
2228
- "char": "r",
2229
- "deprecateAliases": true,
2230
- "name": "result-format",
2231
- "summary": "Format to display the results; the --json flag overrides this flag.",
2232
- "default": "human",
2233
- "hasDynamicHelp": false,
2234
- "multiple": false,
2235
- "options": [
2236
- "human",
2237
- "csv",
2238
- "json"
2239
- ],
2240
- "type": "option"
2396
+ "use-most-recent": {
2397
+ "name": "use-most-recent",
2398
+ "summary": "Use the job ID of the bulk update job that was most recently run.",
2399
+ "allowNo": false,
2400
+ "type": "boolean"
2241
2401
  },
2242
- "bulk-query-id": {
2243
- "aliases": [
2244
- "bulkqueryid"
2245
- ],
2402
+ "job-id": {
2246
2403
  "char": "i",
2247
- "deprecateAliases": true,
2248
- "name": "bulk-query-id",
2249
- "summary": "Job ID of the bulk query.",
2404
+ "name": "job-id",
2405
+ "summary": "Job ID of the bulk update.",
2250
2406
  "hasDynamicHelp": false,
2251
2407
  "multiple": false,
2252
2408
  "type": "option"
2253
2409
  },
2254
- "use-most-recent": {
2255
- "name": "use-most-recent",
2256
- "summary": "Use the most recent bulk query ID from cache.",
2257
- "allowNo": false,
2258
- "type": "boolean"
2410
+ "wait": {
2411
+ "char": "w",
2412
+ "name": "wait",
2413
+ "summary": "Time to wait for the command to finish, in minutes.",
2414
+ "default": "5 minutes",
2415
+ "hasDynamicHelp": true,
2416
+ "multiple": false,
2417
+ "type": "option"
2259
2418
  }
2260
2419
  },
2261
2420
  "hasDynamicHelp": true,
2262
2421
  "hiddenAliases": [],
2263
- "id": "data:query:resume",
2422
+ "id": "data:update:resume",
2264
2423
  "pluginAlias": "@salesforce/plugin-data",
2265
2424
  "pluginName": "@salesforce/plugin-data",
2266
2425
  "pluginType": "core",
2267
- "state": "deprecated",
2268
2426
  "strict": true,
2269
- "summary": "View the status of a bulk query.",
2427
+ "summary": "Resume a bulk update job that you previously started. Uses Bulk API 2.0.",
2270
2428
  "enableJsonFlag": true,
2271
2429
  "isESM": true,
2272
2430
  "relativePath": [
2273
2431
  "lib",
2274
2432
  "commands",
2275
2433
  "data",
2276
- "query",
2434
+ "update",
2277
2435
  "resume.js"
2278
2436
  ],
2279
- "aliasPermutations": [
2280
- "force:data:soql:bulk:report",
2281
- "data:force:soql:bulk:report",
2282
- "data:soql:force:bulk:report",
2283
- "data:soql:bulk:force:report",
2284
- "data:soql:bulk:report:force",
2285
- "force:soql:data:bulk:report",
2286
- "soql:force:data:bulk:report",
2287
- "soql:data:force:bulk:report",
2288
- "soql:data:bulk:force:report",
2289
- "soql:data:bulk:report:force",
2290
- "force:soql:bulk:data:report",
2291
- "soql:force:bulk:data:report",
2292
- "soql:bulk:force:data:report",
2293
- "soql:bulk:data:force:report",
2294
- "soql:bulk:data:report:force",
2295
- "force:soql:bulk:report:data",
2296
- "soql:force:bulk:report:data",
2297
- "soql:bulk:force:report:data",
2298
- "soql:bulk:report:force:data",
2299
- "soql:bulk:report:data:force",
2300
- "force:data:bulk:soql:report",
2301
- "data:force:bulk:soql:report",
2302
- "data:bulk:force:soql:report",
2303
- "data:bulk:soql:force:report",
2304
- "data:bulk:soql:report:force",
2305
- "force:bulk:data:soql:report",
2306
- "bulk:force:data:soql:report",
2307
- "bulk:data:force:soql:report",
2308
- "bulk:data:soql:force:report",
2309
- "bulk:data:soql:report:force",
2310
- "force:bulk:soql:data:report",
2311
- "bulk:force:soql:data:report",
2312
- "bulk:soql:force:data:report",
2313
- "bulk:soql:data:force:report",
2314
- "bulk:soql:data:report:force",
2315
- "force:bulk:soql:report:data",
2316
- "bulk:force:soql:report:data",
2317
- "bulk:soql:force:report:data",
2318
- "bulk:soql:report:force:data",
2319
- "bulk:soql:report:data:force",
2320
- "force:data:bulk:report:soql",
2321
- "data:force:bulk:report:soql",
2322
- "data:bulk:force:report:soql",
2323
- "data:bulk:report:force:soql",
2324
- "data:bulk:report:soql:force",
2325
- "force:bulk:data:report:soql",
2326
- "bulk:force:data:report:soql",
2327
- "bulk:data:force:report:soql",
2328
- "bulk:data:report:force:soql",
2329
- "bulk:data:report:soql:force",
2330
- "force:bulk:report:data:soql",
2331
- "bulk:force:report:data:soql",
2332
- "bulk:report:force:data:soql",
2333
- "bulk:report:data:force:soql",
2334
- "bulk:report:data:soql:force",
2335
- "force:bulk:report:soql:data",
2336
- "bulk:force:report:soql:data",
2337
- "bulk:report:force:soql:data",
2338
- "bulk:report:soql:force:data",
2339
- "bulk:report:soql:data:force",
2340
- "force:data:soql:report:bulk",
2341
- "data:force:soql:report:bulk",
2342
- "data:soql:force:report:bulk",
2343
- "data:soql:report:force:bulk",
2344
- "data:soql:report:bulk:force",
2345
- "force:soql:data:report:bulk",
2346
- "soql:force:data:report:bulk",
2347
- "soql:data:force:report:bulk",
2348
- "soql:data:report:force:bulk",
2349
- "soql:data:report:bulk:force",
2350
- "force:soql:report:data:bulk",
2351
- "soql:force:report:data:bulk",
2352
- "soql:report:force:data:bulk",
2353
- "soql:report:data:force:bulk",
2354
- "soql:report:data:bulk:force",
2355
- "force:soql:report:bulk:data",
2356
- "soql:force:report:bulk:data",
2357
- "soql:report:force:bulk:data",
2358
- "soql:report:bulk:force:data",
2359
- "soql:report:bulk:data:force",
2360
- "force:data:report:soql:bulk",
2361
- "data:force:report:soql:bulk",
2362
- "data:report:force:soql:bulk",
2363
- "data:report:soql:force:bulk",
2364
- "data:report:soql:bulk:force",
2365
- "force:report:data:soql:bulk",
2366
- "report:force:data:soql:bulk",
2367
- "report:data:force:soql:bulk",
2368
- "report:data:soql:force:bulk",
2369
- "report:data:soql:bulk:force",
2370
- "force:report:soql:data:bulk",
2371
- "report:force:soql:data:bulk",
2372
- "report:soql:force:data:bulk",
2373
- "report:soql:data:force:bulk",
2374
- "report:soql:data:bulk:force",
2375
- "force:report:soql:bulk:data",
2376
- "report:force:soql:bulk:data",
2377
- "report:soql:force:bulk:data",
2378
- "report:soql:bulk:force:data",
2379
- "report:soql:bulk:data:force",
2380
- "force:data:report:bulk:soql",
2381
- "data:force:report:bulk:soql",
2382
- "data:report:force:bulk:soql",
2383
- "data:report:bulk:force:soql",
2384
- "data:report:bulk:soql:force",
2385
- "force:report:data:bulk:soql",
2386
- "report:force:data:bulk:soql",
2387
- "report:data:force:bulk:soql",
2388
- "report:data:bulk:force:soql",
2389
- "report:data:bulk:soql:force",
2390
- "force:report:bulk:data:soql",
2391
- "report:force:bulk:data:soql",
2392
- "report:bulk:force:data:soql",
2393
- "report:bulk:data:force:soql",
2394
- "report:bulk:data:soql:force",
2395
- "force:report:bulk:soql:data",
2396
- "report:force:bulk:soql:data",
2397
- "report:bulk:force:soql:data",
2398
- "report:bulk:soql:force:data",
2399
- "report:bulk:soql:data:force"
2400
- ],
2437
+ "aliasPermutations": [],
2401
2438
  "permutations": [
2402
- "data:query:resume",
2403
- "query:data:resume",
2404
- "query:resume:data",
2405
- "data:resume:query",
2406
- "resume:data:query",
2407
- "resume:query:data"
2439
+ "data:update:resume",
2440
+ "update:data:resume",
2441
+ "update:resume:data",
2442
+ "data:resume:update",
2443
+ "resume:data:update",
2444
+ "resume:update:data"
2408
2445
  ]
2409
2446
  },
2410
- "data:update:bulk": {
2447
+ "data:import:bulk": {
2411
2448
  "aliases": [],
2412
2449
  "args": {},
2413
- "description": "You can use this command to update millions of Salesforce object records based on a file in comma-separated values (CSV) format.\n\nAll the records in the CSV file must be for the same Salesforce object. Specify the object with the `--sobject` flag. 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 contain only existing records; if a record in the file doesn't currently exist in the Salesforce object, the command fails. Consider using \"sf data upsert bulk\" if you also want to insert new records.\n\nBulk updates can take a while, depending on how many records are in the CSV file. If the command times out, or you specified the --async flag, the command displays the job ID. To see the status and get the results of the job, run \"sf data update resume\" and pass the job ID to the --job-id flag.\n\nFor information and examples about how to prepare your CSV files, see \"Prepare Data to Ingest\" in the \"Bulk API 2.0 and Bulk API Developer Guide\" (https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_prepare_data.htm).",
2450
+ "description": "You can use this command to import millions of records into the object from a file in comma-separated values (CSV) format.\n\nAll the records in the CSV file must be for the same Salesforce object. Specify the object with the `--sobject` flag.\n\nBulk imports can take a while, depending on how many records are in the CSV file. If the command times out, or you specified the --async flag, the command displays the job ID. To see the status and get the results of the job, run \"sf data import resume\" and pass the job ID to the --job-id flag.\n\nFor information and examples about how to prepare your CSV files, see \"Prepare Data to Ingest\" in the \"Bulk API 2.0 and Bulk API Developer Guide\" (https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_prepare_data.htm).",
2414
2451
  "examples": [
2415
- "Update Account records from a CSV-formatted file into an org with alias \"my-scratch\"; if the update doesn't complete in 10 minutes, the command ends and displays a job ID:\n<%= config.bin %> <%= command.id %> --file accounts.csv --sobject Account --wait 10 --target-org my-scratch",
2416
- "Update asynchronously and use the default org; the command immediately returns a job ID that you then pass to the \"sf data update resume\" command:\n<%= config.bin %> <%= command.id %> --file accounts.csv --sobject Account --async"
2452
+ "Import Account records from a CSV-formatted file into an org with alias \"my-scratch\"; if the import doesn't complete in 10 minutes, the command ends and displays a job ID:\n<%= config.bin %> <%= command.id %> --file accounts.csv --sobject Account --wait 10 --target-org my-scratch",
2453
+ "Import asynchronously and use the default org; the command immediately returns a job ID that you then pass to the \"sf data import resume\" command:\n<%= config.bin %> <%= command.id %> --file accounts.csv --sobject Account --async"
2417
2454
  ],
2418
2455
  "flags": {
2419
2456
  "json": {
@@ -2434,24 +2471,19 @@
2434
2471
  "async": {
2435
2472
  "char": "a",
2436
2473
  "deprecated": true,
2474
+ "exclusive": [
2475
+ "wait"
2476
+ ],
2437
2477
  "name": "async",
2438
2478
  "summary": "Don't wait for the command to complete.",
2439
2479
  "allowNo": false,
2440
2480
  "type": "boolean"
2441
2481
  },
2442
- "wait": {
2443
- "char": "w",
2444
- "name": "wait",
2445
- "summary": "Time to wait for the command to finish, in minutes.",
2446
- "hasDynamicHelp": true,
2447
- "multiple": false,
2448
- "type": "option"
2449
- },
2450
2482
  "file": {
2451
2483
  "char": "f",
2452
2484
  "name": "file",
2453
2485
  "required": true,
2454
- "summary": "CSV file that contains the Salesforce object records you want to update.",
2486
+ "summary": "CSV file that contains the Salesforce object records you want to import.",
2455
2487
  "hasDynamicHelp": false,
2456
2488
  "multiple": false,
2457
2489
  "type": "option"
@@ -2460,7 +2492,7 @@
2460
2492
  "char": "s",
2461
2493
  "name": "sobject",
2462
2494
  "required": true,
2463
- "summary": "API name of the Salesforce object, either standard or custom, which you are updating.",
2495
+ "summary": "API name of the Salesforce object, either standard or custom, into which you're importing records.",
2464
2496
  "hasDynamicHelp": false,
2465
2497
  "multiple": false,
2466
2498
  "type": "option"
@@ -2472,6 +2504,17 @@
2472
2504
  "multiple": false,
2473
2505
  "type": "option"
2474
2506
  },
2507
+ "wait": {
2508
+ "char": "w",
2509
+ "exclusive": [
2510
+ "async"
2511
+ ],
2512
+ "name": "wait",
2513
+ "summary": "Time to wait for the command to finish, in minutes.",
2514
+ "hasDynamicHelp": true,
2515
+ "multiple": false,
2516
+ "type": "option"
2517
+ },
2475
2518
  "target-org": {
2476
2519
  "char": "o",
2477
2520
  "name": "target-org",
@@ -2501,56 +2544,129 @@
2501
2544
  "summary": "Column delimiter used in the CSV file.",
2502
2545
  "hasDynamicHelp": false,
2503
2546
  "multiple": false,
2504
- "options": [
2505
- "BACKQUOTE",
2506
- "CARET",
2507
- "COMMA",
2508
- "PIPE",
2509
- "SEMICOLON",
2510
- "TAB"
2511
- ],
2547
+ "options": [
2548
+ "BACKQUOTE",
2549
+ "CARET",
2550
+ "COMMA",
2551
+ "PIPE",
2552
+ "SEMICOLON",
2553
+ "TAB"
2554
+ ],
2555
+ "type": "option"
2556
+ }
2557
+ },
2558
+ "hasDynamicHelp": true,
2559
+ "hiddenAliases": [],
2560
+ "id": "data:import:bulk",
2561
+ "pluginAlias": "@salesforce/plugin-data",
2562
+ "pluginName": "@salesforce/plugin-data",
2563
+ "pluginType": "core",
2564
+ "strict": true,
2565
+ "summary": "Bulk import records into a Salesforce object from a CSV file. Uses Bulk API 2.0.",
2566
+ "enableJsonFlag": true,
2567
+ "isESM": true,
2568
+ "relativePath": [
2569
+ "lib",
2570
+ "commands",
2571
+ "data",
2572
+ "import",
2573
+ "bulk.js"
2574
+ ],
2575
+ "aliasPermutations": [],
2576
+ "permutations": [
2577
+ "data:import:bulk",
2578
+ "import:data:bulk",
2579
+ "import:bulk:data",
2580
+ "data:bulk:import",
2581
+ "bulk:data:import",
2582
+ "bulk:import:data"
2583
+ ]
2584
+ },
2585
+ "data:import:resume": {
2586
+ "aliases": [],
2587
+ "args": {},
2588
+ "description": "When the original \"sf data import bulk\" command either times out or is run with the --async flag, it displays a job ID. To see the status and get the results of the bulk import, run this command by either passing it the job ID or using the --use-most-recent flag to specify the most recent bulk import job.",
2589
+ "examples": [
2590
+ "Resume a bulk import job to your default org using an ID:\n<%= config.bin %> <%= command.id %> --job-id 750xx000000005sAAA",
2591
+ "Resume the most recently run bulk import job for an org with alias my-scratch:\n<%= config.bin %> <%= command.id %> --use-most-recent --target-org my-scratch"
2592
+ ],
2593
+ "flags": {
2594
+ "json": {
2595
+ "description": "Format output as json.",
2596
+ "helpGroup": "GLOBAL",
2597
+ "name": "json",
2598
+ "allowNo": false,
2599
+ "type": "boolean"
2600
+ },
2601
+ "flags-dir": {
2602
+ "helpGroup": "GLOBAL",
2603
+ "name": "flags-dir",
2604
+ "summary": "Import flag values from a directory.",
2605
+ "hasDynamicHelp": false,
2606
+ "multiple": false,
2607
+ "type": "option"
2608
+ },
2609
+ "use-most-recent": {
2610
+ "name": "use-most-recent",
2611
+ "summary": "Use the job ID of the bulk import job that was most recently run.",
2612
+ "allowNo": false,
2613
+ "type": "boolean"
2614
+ },
2615
+ "job-id": {
2616
+ "char": "i",
2617
+ "name": "job-id",
2618
+ "summary": "Job ID of the bulk import.",
2619
+ "hasDynamicHelp": false,
2620
+ "multiple": false,
2621
+ "type": "option"
2622
+ },
2623
+ "wait": {
2624
+ "char": "w",
2625
+ "name": "wait",
2626
+ "summary": "Time to wait for the command to finish, in minutes.",
2627
+ "default": "5 minutes",
2628
+ "hasDynamicHelp": true,
2629
+ "multiple": false,
2512
2630
  "type": "option"
2513
2631
  }
2514
2632
  },
2515
2633
  "hasDynamicHelp": true,
2516
2634
  "hiddenAliases": [],
2517
- "id": "data:update:bulk",
2635
+ "id": "data:import:resume",
2518
2636
  "pluginAlias": "@salesforce/plugin-data",
2519
2637
  "pluginName": "@salesforce/plugin-data",
2520
2638
  "pluginType": "core",
2521
2639
  "strict": true,
2522
- "summary": "Bulk update records to an org from a CSV file. Uses Bulk API 2.0.",
2640
+ "summary": "Resume a bulk import job that you previously started. Uses Bulk API 2.0.",
2523
2641
  "enableJsonFlag": true,
2524
2642
  "isESM": true,
2525
2643
  "relativePath": [
2526
2644
  "lib",
2527
2645
  "commands",
2528
2646
  "data",
2529
- "update",
2530
- "bulk.js"
2647
+ "import",
2648
+ "resume.js"
2531
2649
  ],
2532
2650
  "aliasPermutations": [],
2533
2651
  "permutations": [
2534
- "data:update:bulk",
2535
- "update:data:bulk",
2536
- "update:bulk:data",
2537
- "data:bulk:update",
2538
- "bulk:data:update",
2539
- "bulk:update:data"
2652
+ "data:import:resume",
2653
+ "import:data:resume",
2654
+ "import:resume:data",
2655
+ "data:resume:import",
2656
+ "resume:data:import",
2657
+ "resume:import:data"
2540
2658
  ]
2541
2659
  },
2542
- "data:update:record": {
2660
+ "data:import:tree": {
2543
2661
  "aliases": [
2544
- "force:data:record:update"
2662
+ "force:data:tree:import"
2545
2663
  ],
2546
2664
  "args": {},
2547
2665
  "deprecateAliases": true,
2548
- "description": "Specify the record you want to update with either its ID or with a list of field-value pairs that identify the record. If your list of fields identifies more than one record, the update fails; the error displays how many records were found.\n\nWhen using field-value pairs for both identifying the record and specifiyng the new field values, use the format <fieldName>=<value>. Enclose all field-value pairs in one set of double quotation marks, delimited by spaces. Enclose values that contain spaces in single quotes.\n\nThis command updates a record in Salesforce objects by default. Use the --use-tooling-api flag to update a Tooling API object.",
2666
+ "description": "The JSON files that contain the data are in sObject tree format, which is a collection of nested, parent-child records with a single root record. Use the \"<%= config.bin %> data export tree\" command to generate these JSON files.\n\nIf you used the --plan flag when exporting the data to generate a plan definition file, use the --plan flag to reference the file when you import. If you're not using a plan, use the --files flag to list the files. If you specify multiple JSON files that depend on each other in a parent-child relationship, be sure you list them in the correct order.",
2549
2667
  "examples": [
2550
- "Update the Name field of an Account record with the specified (truncated) ID:\n<%= config.bin %> <%= command.id %> --sobject Account --record-id 001D0 --values \"Name=NewAcme\"",
2551
- "Update the Name field of an Account record whose current name is 'Old Acme':\n<%= config.bin %> <%= command.id %> --sobject Account --where \"Name='Old Acme'\" --values \"Name='New Acme'\"",
2552
- "Update the Name and Website fields of an Account record with the specified (truncated) ID:\n<%= config.bin %> <%= command.id %> --sobject Account --record-id 001D0 --values \"Name='Acme III' Website=www.example.com\"",
2553
- "Update the ExpirationDate field of a record of the Tooling API object TraceFlag using the specified (truncated) ID:\n<%= config.bin %> <%= command.id %> -t --sobject TraceFlag --record-id 7tf170000009cUBAAY --values \"ExpirationDate=2017-12-01T00:58:04.000+0000\""
2668
+ "Import the records contained in two JSON files into the org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --files Contact.json,Account.json --target-org my-scratch",
2669
+ "Import records using a plan definition file into your default org:\n<%= config.bin %> <%= command.id %> --plan Account-Contact-plan.json"
2554
2670
  ],
2555
2671
  "flags": {
2556
2672
  "json": {
@@ -2604,195 +2720,79 @@
2604
2720
  "multiple": false,
2605
2721
  "type": "option"
2606
2722
  },
2607
- "sobject": {
2608
- "aliases": [
2609
- "sobjecttype"
2610
- ],
2611
- "char": "s",
2612
- "deprecateAliases": true,
2613
- "name": "sobject",
2614
- "required": true,
2615
- "summary": "API name of the Salesforce or Tooling API object that contains the record you're updating.",
2616
- "hasDynamicHelp": false,
2617
- "multiple": false,
2618
- "type": "option"
2619
- },
2620
- "record-id": {
2723
+ "files": {
2621
2724
  "aliases": [
2622
- "sobjectid"
2725
+ "sobjecttreefiles"
2623
2726
  ],
2624
- "char": "i",
2727
+ "char": "f",
2625
2728
  "deprecateAliases": true,
2626
- "name": "record-id",
2627
- "summary": "ID of the record you’re updating.",
2628
- "hasDynamicHelp": false,
2629
- "multiple": false,
2630
- "type": "option"
2631
- },
2632
- "where": {
2633
- "char": "w",
2634
- "name": "where",
2635
- "summary": "List of <fieldName>=<value> pairs that identify the record you want to update.",
2729
+ "name": "files",
2730
+ "summary": "Comma-separated and in-order JSON files that contain the records, in sObject tree format, that you want to insert.",
2731
+ "delimiter": ",",
2636
2732
  "hasDynamicHelp": false,
2637
- "multiple": false,
2733
+ "multiple": true,
2638
2734
  "type": "option"
2639
2735
  },
2640
- "values": {
2641
- "char": "v",
2642
- "name": "values",
2643
- "required": true,
2644
- "summary": "Fields that you're updating, in the format of <fieldName>=<value> pairs.",
2736
+ "plan": {
2737
+ "char": "p",
2738
+ "description": "Unlike when you use the `--files` flag, the files listed in the plan definition file **can** contain more then 200 records. When the CLI executes the import, it automatically batches the records to comply with the 200 record limit set by the API.\n\nThe order in which you list the files in the plan definition file matters. Specifically, records with lookups to records in another file should be listed AFTER that file. For example, let's say you're loading Account and Contact records, and the contacts have references to those accounts. Be sure you list the Accounts file before the Contacts file.\n\nThe plan definition file has the following schema:\n\n- items(object) - SObject Type: Definition of records to be insert per SObject Type\n - sobject(string) - Name of SObject: Child file references must have SObject roots of this type\n - files(array) - Files: An array of files paths to load",
2739
+ "name": "plan",
2740
+ "summary": "Plan definition file to insert multiple data files.",
2645
2741
  "hasDynamicHelp": false,
2646
2742
  "multiple": false,
2647
2743
  "type": "option"
2648
- },
2649
- "use-tooling-api": {
2650
- "aliases": [
2651
- "usetoolingapi"
2652
- ],
2653
- "char": "t",
2654
- "deprecateAliases": true,
2655
- "name": "use-tooling-api",
2656
- "summary": "Use Tooling API so you can update a record in a Tooling API object.",
2657
- "allowNo": false,
2658
- "type": "boolean"
2659
- },
2660
- "perflog": {
2661
- "deprecated": {
2662
- "version": "57"
2663
- },
2664
- "hidden": true,
2665
- "name": "perflog",
2666
- "summary": "Get API performance data.",
2667
- "allowNo": false,
2668
- "type": "boolean"
2669
2744
  }
2670
2745
  },
2671
2746
  "hasDynamicHelp": true,
2672
2747
  "hiddenAliases": [],
2673
- "id": "data:update:record",
2748
+ "id": "data:import:tree",
2674
2749
  "pluginAlias": "@salesforce/plugin-data",
2675
2750
  "pluginName": "@salesforce/plugin-data",
2676
2751
  "pluginType": "core",
2677
2752
  "strict": true,
2678
- "summary": "Updates a single record of a Salesforce or Tooling API object.",
2753
+ "summary": "Import data from one or more JSON files into an org.",
2679
2754
  "enableJsonFlag": true,
2680
2755
  "isESM": true,
2681
2756
  "relativePath": [
2682
2757
  "lib",
2683
2758
  "commands",
2684
2759
  "data",
2685
- "update",
2686
- "record.js"
2760
+ "import",
2761
+ "tree.js"
2687
2762
  ],
2688
2763
  "aliasPermutations": [
2689
- "force:data:record:update",
2690
- "data:force:record:update",
2691
- "data:record:force:update",
2692
- "data:record:update:force",
2693
- "force:record:data:update",
2694
- "record:force:data:update",
2695
- "record:data:force:update",
2696
- "record:data:update:force",
2697
- "force:record:update:data",
2698
- "record:force:update:data",
2699
- "record:update:force:data",
2700
- "record:update:data:force",
2701
- "force:data:update:record",
2702
- "data:force:update:record",
2703
- "data:update:force:record",
2704
- "data:update:record:force",
2705
- "force:update:data:record",
2706
- "update:force:data:record",
2707
- "update:data:force:record",
2708
- "update:data:record:force",
2709
- "force:update:record:data",
2710
- "update:force:record:data",
2711
- "update:record:force:data",
2712
- "update:record:data:force"
2713
- ],
2714
- "permutations": [
2715
- "data:update:record",
2716
- "update:data:record",
2717
- "update:record:data",
2718
- "data:record:update",
2719
- "record:data:update",
2720
- "record:update:data"
2721
- ]
2722
- },
2723
- "data:update:resume": {
2724
- "aliases": [],
2725
- "args": {},
2726
- "description": "When the original \"sf data update bulk\" command either times out or is run with the --async flag, it displays a job ID. To see the status and get the results of the bulk update, run this command by either passing it the job ID or using the --use-most-recent flag to specify the most recent bulk update job.",
2727
- "examples": [
2728
- "Resume a bulk update job of your default org using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 750xx000000005sAAA",
2729
- "Resume the most recently run bulk update job for an org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --use-most-recent --target-org my-scratch"
2730
- ],
2731
- "flags": {
2732
- "json": {
2733
- "description": "Format output as json.",
2734
- "helpGroup": "GLOBAL",
2735
- "name": "json",
2736
- "allowNo": false,
2737
- "type": "boolean"
2738
- },
2739
- "flags-dir": {
2740
- "helpGroup": "GLOBAL",
2741
- "name": "flags-dir",
2742
- "summary": "Import flag values from a directory.",
2743
- "hasDynamicHelp": false,
2744
- "multiple": false,
2745
- "type": "option"
2746
- },
2747
- "use-most-recent": {
2748
- "name": "use-most-recent",
2749
- "summary": "Use the job ID of the bulk update job that was most recently run.",
2750
- "allowNo": false,
2751
- "type": "boolean"
2752
- },
2753
- "job-id": {
2754
- "char": "i",
2755
- "name": "job-id",
2756
- "summary": "Job ID of the bulk update.",
2757
- "hasDynamicHelp": false,
2758
- "multiple": false,
2759
- "type": "option"
2760
- },
2761
- "wait": {
2762
- "char": "w",
2763
- "name": "wait",
2764
- "summary": "Time to wait for the command to finish, in minutes.",
2765
- "default": "5 minutes",
2766
- "hasDynamicHelp": true,
2767
- "multiple": false,
2768
- "type": "option"
2769
- }
2770
- },
2771
- "hasDynamicHelp": true,
2772
- "hiddenAliases": [],
2773
- "id": "data:update:resume",
2774
- "pluginAlias": "@salesforce/plugin-data",
2775
- "pluginName": "@salesforce/plugin-data",
2776
- "pluginType": "core",
2777
- "strict": true,
2778
- "summary": "Resume a bulk update job that you previously started. Uses Bulk API 2.0.",
2779
- "enableJsonFlag": true,
2780
- "isESM": true,
2781
- "relativePath": [
2782
- "lib",
2783
- "commands",
2784
- "data",
2785
- "update",
2786
- "resume.js"
2764
+ "force:data:tree:import",
2765
+ "data:force:tree:import",
2766
+ "data:tree:force:import",
2767
+ "data:tree:import:force",
2768
+ "force:tree:data:import",
2769
+ "tree:force:data:import",
2770
+ "tree:data:force:import",
2771
+ "tree:data:import:force",
2772
+ "force:tree:import:data",
2773
+ "tree:force:import:data",
2774
+ "tree:import:force:data",
2775
+ "tree:import:data:force",
2776
+ "force:data:import:tree",
2777
+ "data:force:import:tree",
2778
+ "data:import:force:tree",
2779
+ "data:import:tree:force",
2780
+ "force:import:data:tree",
2781
+ "import:force:data:tree",
2782
+ "import:data:force:tree",
2783
+ "import:data:tree:force",
2784
+ "force:import:tree:data",
2785
+ "import:force:tree:data",
2786
+ "import:tree:force:data",
2787
+ "import:tree:data:force"
2787
2788
  ],
2788
- "aliasPermutations": [],
2789
2789
  "permutations": [
2790
- "data:update:resume",
2791
- "update:data:resume",
2792
- "update:resume:data",
2793
- "data:resume:update",
2794
- "resume:data:update",
2795
- "resume:update:data"
2790
+ "data:import:tree",
2791
+ "import:data:tree",
2792
+ "import:tree:data",
2793
+ "data:tree:import",
2794
+ "tree:data:import",
2795
+ "tree:import:data"
2796
2796
  ]
2797
2797
  },
2798
2798
  "data:upsert:bulk": {
@@ -3523,5 +3523,5 @@
3523
3523
  ]
3524
3524
  }
3525
3525
  },
3526
- "version": "4.0.27"
3526
+ "version": "4.0.28"
3527
3527
  }