@simplysf/simply 3.1.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/LICENSE.txt +205 -205
  2. package/README.md +3189 -1274
  3. package/package.json +13 -10
package/README.md CHANGED
@@ -1,1274 +1,3189 @@
1
- # simply
2
-
3
- [![NPM](https://img.shields.io/npm/v/@simplysf/simply.svg?label=@simplysf/simply)](https://www.npmjs.com/package/@simplysf/simply) [![Downloads/week](https://img.shields.io/npm/dw/@simplysf/simply.svg)](https://npmjs.org/package/@simplysf/simply) [![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://raw.githubusercontent.com/SimplySF/simply-node/main/LICENSE.txt)
4
-
5
- ## Install1
6
-
7
- ```bash
8
- sf plugins install @simplysf/simply
9
- ```
10
-
11
- ## Issues
12
-
13
- Please report any issues at https://github.com/SimplySF/simply-node/issues
14
-
15
- ## Contributing
16
-
17
- This package is part of the [`@simplysf/simply`](https://github.com/SimplySF/simply-node) monorepo. See [CONTRIBUTING.md](CONTRIBUTING.md) for what's specific to this package, and the repo's [root CONTRIBUTING.md](https://github.com/SimplySF/simply-node/blob/main/CONTRIBUTING.md) for repo structure, setup, commit conventions, and how to submit a pull request. Please also read our [Code of Conduct](https://github.com/SimplySF/simply-node/blob/main/CODE_OF_CONDUCT.md).
18
-
19
- ## Commands
20
-
21
- <!-- commands -->
22
-
23
- - [`sf simply apex execute`](#sf-simply-apex-execute)
24
- - [`sf simply apex logs purge`](#sf-simply-apex-logs-purge)
25
- - [`sf simply apex trace setup`](#sf-simply-apex-trace-setup)
26
- - [`sf simply apex trace silence`](#sf-simply-apex-trace-silence)
27
- - [`sf simply community publish`](#sf-simply-community-publish)
28
- - [`sf simply data file upload`](#sf-simply-data-file-upload)
29
- - [`sf simply data files download`](#sf-simply-data-files-download)
30
- - [`sf simply data files upload`](#sf-simply-data-files-upload)
31
- - [`sf simply document diff`](#sf-simply-document-diff)
32
- - [`sf simply document generate`](#sf-simply-document-generate)
33
- - [`sf simply package dependencies install`](#sf-simply-package-dependencies-install)
34
- - [`sf simply package dependencies manage`](#sf-simply-package-dependencies-manage)
35
- - [`sf simply package version cleanup`](#sf-simply-package-version-cleanup)
36
- - [`sf simply permissions analyze`](#sf-simply-permissions-analyze)
37
- - [`sf simply permissions build`](#sf-simply-permissions-build)
38
- - [`sf simply project update api-version`](#sf-simply-project-update-api-version)
39
- - [`sf simply schema generate`](#sf-simply-schema-generate)
40
- - [`sf simply schema visualize`](#sf-simply-schema-visualize)
41
- - [`sf simply sobject backup`](#sf-simply-sobject-backup)
42
- - [`sf simply sobject deduplicate`](#sf-simply-sobject-deduplicate)
43
- - [`sf simply sobject history export`](#sf-simply-sobject-history-export)
44
- - [`sf simply sobject history query`](#sf-simply-sobject-history-query)
45
- - [`sf simply sobject history schema`](#sf-simply-sobject-history-schema)
46
-
47
- ## `sf simply apex execute`
48
-
49
- Execute anonymous Apex code.
50
-
51
- ```
52
- USAGE
53
- $ sf simply apex execute -o <value> -f <value> [--json] [--flags-dir <value>] [--api-version <value>]
54
-
55
- FLAGS
56
- -f, --file=<value> (required) Path to Apex file
57
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
58
- configuration variable is already set.
59
- --api-version=<value> Override the api version used for api requests made by this command
60
-
61
- GLOBAL FLAGS
62
- --flags-dir=<value> Import flag values from a directory.
63
- --json Format output as json.
64
-
65
- DESCRIPTION
66
- Execute anonymous Apex code.
67
-
68
- Executes an anonymous block of Apex code from a local .apex file against a target org and reports the compile and
69
- execution results, including any debug logs produced.
70
-
71
- EXAMPLES
72
- $ sf simply apex execute --target-org myOrg --file scripts/apex/data-fix.apex
73
-
74
- FLAG DESCRIPTIONS
75
- -f, --file=<value> Path to Apex file
76
-
77
- The path to the local .apex file containing the anonymous Apex code to execute.
78
- ```
79
-
80
- _See code: [@simplysf/simply-apex](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-apex@1.6.2/packages/simply-apex/lib/commands/simply/apex/execute.js)_
81
-
82
- ## `sf simply apex logs purge`
83
-
84
- Purge Apex debug logs.
85
-
86
- ```
87
- USAGE
88
- $ sf simply apex logs purge -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-w <value>] [-b] [--wait
89
- <value>]
90
-
91
- FLAGS
92
- -b, --use-bulk-api Use Bulk API v2 to query and delete the logs.
93
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
94
- configuration variable is already set.
95
- -w, --where=<value> SOQL WHERE clause
96
- --api-version=<value> Override the api version used for api requests made by this command
97
- --wait=<value> Number of minutes to wait for the Bulk API jobs to finish.
98
-
99
- GLOBAL FLAGS
100
- --flags-dir=<value> Import flag values from a directory.
101
- --json Format output as json.
102
-
103
- DESCRIPTION
104
- Purge Apex debug logs.
105
-
106
- Deletes ApexLog records from the target org. By default all logs are purged; use --where to scope the deletion to a
107
- subset of logs.
108
-
109
- EXAMPLES
110
- $ sf simply apex logs purge --target-org myOrg
111
-
112
- $ sf simply apex logs purge --target-org myOrg --where "Status = 'Success'"
113
-
114
- $ sf simply apex logs purge --target-org myOrg --use-bulk-api
115
-
116
- $ sf simply apex logs purge --target-org myOrg --use-bulk-api --wait 60
117
-
118
- FLAG DESCRIPTIONS
119
- -b, --use-bulk-api Use Bulk API v2 to query and delete the logs.
120
-
121
- Runs the whole purge as two Bulk API v2 jobs instead of a Tooling API query followed by chunked REST deletes. Bulk
122
- API processes the deletion asynchronously and does not consume the org's REST API request limit, which suits purges
123
- of tens of thousands of logs. For small purges the default REST path is faster, since it avoids the overhead of
124
- creating, uploading, and polling a job.
125
-
126
- -w, --where=<value> SOQL WHERE clause
127
-
128
- A WHERE clause used to filter which ApexLog records are purged (e.g. "Status = 'Success'").
129
-
130
- --wait=<value> Number of minutes to wait for the Bulk API jobs to finish.
131
-
132
- Only applies with --use-bulk-api. The command polls the query and delete jobs until they complete or this timeout
133
- elapses, then throws.
134
- ```
135
-
136
- _See code: [@simplysf/simply-apex](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-apex@1.6.2/packages/simply-apex/lib/commands/simply/apex/logs/purge.js)_
137
-
138
- ## `sf simply apex trace setup`
139
-
140
- Configure a debug log trace flag for the current user, or another user.
141
-
142
- ```
143
- USAGE
144
- $ sf simply apex trace setup -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [--on-behalf-of <value>]
145
- [--log-level <value>] [--start-date <value>] [--end-date <value>]
146
-
147
- FLAGS
148
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
149
- configuration variable is already set.
150
- --api-version=<value> Override the api version used for api requests made by this command
151
- --end-date=<value> Expiration date/time of the trace flag, as an ISO 8601 date-time.
152
- --log-level=<value> Developer name of an existing debug level to use for the trace flag.
153
- --on-behalf-of=<value> Configure the trace flag for another user, identified by a "Field:Value" pair.
154
- --start-date=<value> Start date/time of the trace flag, as an ISO 8601 date-time.
155
-
156
- GLOBAL FLAGS
157
- --flags-dir=<value> Import flag values from a directory.
158
- --json Format output as json.
159
-
160
- DESCRIPTION
161
- Configure a debug log trace flag for the current user, or another user.
162
-
163
- Creates or updates a DEVELOPER_LOG trace flag for the target user, using the FINEST/FINER "ReplayDebuggerLevels" debug
164
- level suitable for the Apex Replay Debugger and running for 24 hours starting now, by default. Use --on-behalf-of to
165
- configure the trace flag for a different user instead; --log-level, --start-date, and --end-date override the other
166
- defaults.
167
-
168
- EXAMPLES
169
- $ sf simply apex trace setup --target-org myOrg
170
-
171
- $ sf simply apex trace setup --target-org myOrg --on-behalf-of Username:someuser@example.com
172
-
173
- $ sf simply apex trace setup --target-org myOrg --on-behalf-of FederationIdentifier:123456
174
-
175
- $ sf simply apex trace setup --target-org myOrg --log-level MyCustomDebugLevel --start-date 2026-08-18T09:00:00Z --end-date 2026-08-19T09:00:00Z
176
-
177
- FLAG DESCRIPTIONS
178
- --end-date=<value> Expiration date/time of the trace flag, as an ISO 8601 date-time.
179
-
180
- Defaults to 24 hours after the start date/time.
181
-
182
- --log-level=<value> Developer name of an existing debug level to use for the trace flag.
183
-
184
- Must already exist in the org; it's looked up but never created or modified. Defaults to the "ReplayDebuggerLevels"
185
- debug level, which is created automatically if it doesn't exist.
186
-
187
- --on-behalf-of=<value> Configure the trace flag for another user, identified by a "Field:Value" pair.
188
-
189
- Any unique User field can be used, for example "Username:someuser@example.com" or "FederationIdentifier:123456".
190
-
191
- --start-date=<value> Start date/time of the trace flag, as an ISO 8601 date-time.
192
-
193
- Defaults to the current date/time.
194
- ```
195
-
196
- _See code: [@simplysf/simply-apex](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-apex@1.6.2/packages/simply-apex/lib/commands/simply/apex/trace/setup.js)_
197
-
198
- ## `sf simply apex trace silence`
199
-
200
- Silence debug logs for specific Apex classes.
201
-
202
- ```
203
- USAGE
204
- $ sf simply apex trace silence -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-c <value> | --classes-file
205
- <value>] [--fflib] [--at4dx] [--force-di]
206
-
207
- FLAGS
208
- -c, --classes=<value> Comma-separated Apex class names
209
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
210
- configuration variable is already set.
211
- --api-version=<value> Override the api version used for api requests made by this command
212
- --at4dx Silence at4dx base classes
213
- --classes-file=<value> Path to a JSON file listing classes to silence
214
- --fflib Silence fflib base classes
215
- --force-di Silence force-di base classes
216
-
217
- GLOBAL FLAGS
218
- --flags-dir=<value> Import flag values from a directory.
219
- --json Format output as json.
220
-
221
- DESCRIPTION
222
- Silence debug logs for specific Apex classes.
223
-
224
- Creates or updates a 24-hour CLASS_TRACING trace flag with a fully suppressed (NONE) debug level for each specified
225
- Apex class, preventing those classes from generating debug log output. If a class already has a trace flag, its
226
- expiration is extended instead of creating a duplicate.
227
-
228
- EXAMPLES
229
- $ sf simply apex trace silence --target-org myOrg --classes NoisyClass,ChattyTrigger
230
-
231
- $ sf simply apex trace silence --target-org myOrg --classes-file classesToSilence.json
232
-
233
- $ sf simply apex trace silence --target-org myOrg --fflib --at4dx --force-di
234
-
235
- $ sf simply apex trace silence --target-org myOrg --classes NoisyClass --fflib
236
-
237
- FLAG DESCRIPTIONS
238
- -c, --classes=<value> Comma-separated Apex class names
239
-
240
- A comma-separated list of Apex class names to silence.
241
-
242
- --at4dx Silence at4dx base classes
243
-
244
- Adds ApplicationSObjectDomain to the classes to silence.
245
-
246
- --classes-file=<value> Path to a JSON file listing classes to silence
247
-
248
- The path to a JSON file with the shape { "classes": ["ClassOne", "ClassTwo"] } listing the Apex class names to
249
- silence.
250
-
251
- --fflib Silence fflib base classes
252
-
253
- Adds fflib_SObjectDescribe and fflib_SObjectDomain to the classes to silence.
254
-
255
- --force-di Silence force-di base classes
256
-
257
- Adds di_Binding, di_Module, di_PlatformCache, and di_Injector to the classes to silence.
258
- ```
259
-
260
- _See code: [@simplysf/simply-apex](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-apex@1.6.2/packages/simply-apex/lib/commands/simply/apex/trace/silence.js)_
261
-
262
- ## `sf simply community publish`
263
-
264
- Publish a Salesforce Community (Experience Cloud site), waiting until the publish completes.
265
-
266
- ```
267
- USAGE
268
- $ sf simply community publish -o <value> --name <value> [--json] [--flags-dir <value>] [--api-version <value>] [--wait
269
- <value>] [--retry-attempts <value>] [--retry-backoff <value>] [--ignore-errors]
270
-
271
- FLAGS
272
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
273
- configuration variable is already set.
274
- --api-version=<value> Override the api version used for api requests made by this command
275
- --ignore-errors Log a warning and exit successfully if the publish fails, instead of throwing an error.
276
- --name=<value> (required) Name of the community (Experience Cloud site) to publish.
277
- --retry-attempts=<value> Number of additional attempts to make if the initial publish request fails, before
278
- giving up. Defaults to 0 (no retries). Does not apply to polling for the publish job's
279
- completion, which already retries until --wait elapses.
280
- --retry-backoff=<value> [default: 2] Factor the delay between publish request retries grows by after each failed
281
- attempt (e.g. 2 doubles the delay each time). Only relevant when --retry-attempts is
282
- greater than 0.
283
- --wait=<value> [default: 15] Minutes to wait for the publish to complete before giving up. Salesforce's
284
- own publish jobs time out after 15 minutes server-side, so waiting longer than that has
285
- no effect.
286
-
287
- GLOBAL FLAGS
288
- --flags-dir=<value> Import flag values from a directory.
289
- --json Format output as json.
290
-
291
- DESCRIPTION
292
- Publish a Salesforce Community (Experience Cloud site), waiting until the publish completes.
293
-
294
- Looks up the community by `--name`, triggers a publish via the Connect REST API, then polls until the publish job
295
- reaches a terminal state — throwing an error if it fails, rather than returning as soon as the publish request is
296
- accepted. The Salesforce CLI's own `sf community publish` command does not wait for completion; this command exists to
297
- fill that gap for pipelines that need to know publishing actually succeeded before continuing.
298
-
299
- EXAMPLES
300
- $ sf simply community publish --target-org my-org --name "My Community"
301
-
302
- $ sf simply community publish --target-org my-org --name "My Community" --wait 20
303
-
304
- $ sf simply community publish --target-org my-org --name "My Community" --retry-attempts 3 --retry-backoff 2
305
-
306
- $ sf simply community publish --target-org my-org --name "My Community" --ignore-errors
307
- ```
308
-
309
- _See code: [@simplysf/simply-community](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-community@0.1.0/packages/simply-community/lib/commands/simply/community/publish.js)_
310
-
311
- ## `sf simply data file upload`
312
-
313
- Upload a file to a Salesforce org.
314
-
315
- ```
316
- USAGE
317
- $ sf simply data file upload -o <value> --file-path <value> [--json] [--flags-dir <value>] [--api-version <value>]
318
- [--first-publish-location-id <value>] [--title <value>]
319
-
320
- FLAGS
321
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the
322
- `target-org` configuration variable is already set.
323
- --api-version=<value> Override the api version used for api requests made by this command
324
- --file-path=<value> (required) Path to the file to upload.
325
- --first-publish-location-id=<value> Specify a record Id that the file should be linked to.
326
- --title=<value> Specify the title for the file being uploaded.
327
-
328
- GLOBAL FLAGS
329
- --flags-dir=<value> Import flag values from a directory.
330
- --json Format output as json.
331
-
332
- DESCRIPTION
333
- Upload a file to a Salesforce org.
334
-
335
- Uploads a file to a Salesforce org.
336
-
337
- EXAMPLES
338
- $ sf simply data file upload --file-path fileToUpload.txt --target-org myTargetOrg
339
-
340
- $ sf simply data file upload --file-path fileToUpload.txt --first-publish-location-id 0019000000DmehK --target-org myTargetOrg
341
- ```
342
-
343
- _See code: [@simplysf/simply-data](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-data@2.3.23/packages/simply-data/lib/commands/simply/data/file/upload.js)_
344
-
345
- ## `sf simply data files download`
346
-
347
- Download files from a Salesforce org.
348
-
349
- ```
350
- USAGE
351
- $ sf simply data files download -o <value> --where-content-version <value> [--json] [--flags-dir <value>] [--api-version
352
- <value>] [--max-parallel-jobs <value>]
353
-
354
- FLAGS
355
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
356
- configuration variable is already set.
357
- --api-version=<value> Override the api version used for api requests made by this command
358
- --max-parallel-jobs=<value> [default: 1] Maximum number of parallel jobs.
359
- --where-content-version=<value> (required) WHERE clause for ContentVersion query.
360
-
361
- GLOBAL FLAGS
362
- --flags-dir=<value> Import flag values from a directory.
363
- --json Format output as json.
364
-
365
- DESCRIPTION
366
- Download files from a Salesforce org.
367
-
368
- Downloads files specified by a where clause for a ContentVersion query from a Salesforce org. By default, the plugin
369
- uses the REST API for the download as to allow for the streaming of large files without issue. This means that each
370
- file will use one REST API request.
371
-
372
- EXAMPLES
373
- $ sf simply data files download --where-content-version "IsLatest=true" --target-org myTargetOrg
374
-
375
- $ sf simply data files download --where-content-version "IsLatest=true" --max-parallel-jobs 5 --target-org myTargetOrg
376
-
377
- FLAG DESCRIPTIONS
378
- --max-parallel-jobs=<value> Maximum number of parallel jobs.
379
-
380
- By default the plugin will only process a single file download at a time. You can increase this value to allow for
381
- quasi concurrent downloads. Please note that setting this value too high can cause performance issues.
382
-
383
- --where-content-version=<value> WHERE clause for ContentVersion query.
384
-
385
- Provide a WHERE clause to allow the plugin to specify which ContentVersion records should be downloaded.
386
- ```
387
-
388
- _See code: [@simplysf/simply-data](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-data@2.3.23/packages/simply-data/lib/commands/simply/data/files/download.js)_
389
-
390
- ## `sf simply data files upload`
391
-
392
- Upload files to a Salesforce org.
393
-
394
- ```
395
- USAGE
396
- $ sf simply data files upload -o <value> --file-path <value> [--json] [--flags-dir <value>] [--api-version <value>]
397
- [--max-parallel-jobs <value>]
398
-
399
- FLAGS
400
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
401
- configuration variable is already set.
402
- --api-version=<value> Override the api version used for api requests made by this command
403
- --file-path=<value> (required) Path to the csv file that specifies the upload.
404
- --max-parallel-jobs=<value> [default: 1] Maximum number of parallel jobs.
405
-
406
- GLOBAL FLAGS
407
- --flags-dir=<value> Import flag values from a directory.
408
- --json Format output as json.
409
-
410
- DESCRIPTION
411
- Upload files to a Salesforce org.
412
-
413
- Uploads files specified by a csv to a Salesforce org. By default, the plugin uses the REST API for the upload as the
414
- Bulk API is limited in its payload size. This means that each file will use one REST API request.
415
-
416
- EXAMPLES
417
- $ sf simply data files upload --file-path filesToUpload.csv --target-org myTargetOrg
418
-
419
- $ sf simply data files upload --file-path filesToUpload.csv --max-parallel-jobs 5 --target-org myTargetOrg
420
-
421
- FLAG DESCRIPTIONS
422
- --file-path=<value> Path to the csv file that specifies the upload.
423
-
424
- The csv file must specify the columns PathOnClient and Title. Optionally, a FirstPublishLocationId can be specified
425
- to have it linked directly to a Salesforce record after upload.
426
-
427
- --max-parallel-jobs=<value> Maximum number of parallel jobs.
428
-
429
- By default the plugin will only process a single file upload at a time. You can increase this value to allow for
430
- quasi concurrent uploads. Please note that setting this value too high can cause performance issues.
431
- ```
432
-
433
- _See code: [@simplysf/simply-data](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-data@2.3.23/packages/simply-data/lib/commands/simply/data/files/upload.js)_
434
-
435
- ## `sf simply document diff`
436
-
437
- Generate a change report between two git refs.
438
-
439
- ```
440
- USAGE
441
- $ sf simply document diff --from-tag <value> --to-tag <value> [--json] [--flags-dir <value>] [--output-file <value>]
442
- [--template-file <value>] [--output-format html]
443
-
444
- FLAGS
445
- --from-tag=<value> (required) The starting git ref for the diff report.
446
- --output-file=<value> Path to write the generated report to.
447
- --output-format=<option> [default: html] Output format to render the report in.
448
- <options: html>
449
- --template-file=<value> Path to a custom Handlebars template to render instead of the built-in one.
450
- --to-tag=<value> (required) The ending git ref for the diff report.
451
-
452
- GLOBAL FLAGS
453
- --flags-dir=<value> Import flag values from a directory.
454
- --json Format output as json.
455
-
456
- DESCRIPTION
457
- Generate a change report between two git refs.
458
-
459
- Runs `git diff --name-status` between two git refs (tags, branches, or commits) in the current working directory,
460
- groups the changed files by Salesforce metadata component type, and renders a Confluence-storage-format change report
461
- suitable for pasting into a release or change-management page.
462
-
463
- EXAMPLES
464
- $ sf simply document diff --from-tag v1.0.0 --to-tag v1.1.0
465
-
466
- $ sf simply document diff --from-tag v1.0.0 --to-tag v1.1.0 --output-file change-report.html
467
-
468
- $ sf simply document diff --from-tag v1.0.0 --to-tag v1.1.0 --template-file my-change-report.hbs
469
-
470
- FLAG DESCRIPTIONS
471
- --output-file=<value> Path to write the generated report to.
472
-
473
- When specified, the generated report is written to this path instead of being printed to the terminal.
474
-
475
- --output-format=html Output format to render the report in.
476
-
477
- Currently only `html` is supported. Reserved for future formats (e.g. Markdown).
478
-
479
- --template-file=<value> Path to a custom Handlebars template to render instead of the built-in one.
480
-
481
- When specified, this template is rendered with the same data the built-in report template receives, and can reuse
482
- the built-in `changeTable` partial. See this package's README "Custom Templates" section for the data shape and
483
- available partials.
484
- ```
485
-
486
- _See code: [@simplysf/simply-document](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-document@0.3.6/packages/simply-document/lib/commands/simply/document/diff.js)_
487
-
488
- ## `sf simply document generate`
489
-
490
- Generate a technical design document for a Salesforce project.
491
-
492
- ```
493
- USAGE
494
- $ sf simply document generate -d <value> --output-file <value> [--json] [--flags-dir <value>] [--template-file <value>]
495
- [--output-format html]
496
-
497
- FLAGS
498
- -d, --directory=<value> (required) Salesforce project source directory to scan.
499
- --output-file=<value> (required) Path to write the generated document to.
500
- --output-format=<option> [default: html] Output format to render the document in.
501
- <options: html>
502
- --template-file=<value> Path to a custom Handlebars template to render instead of the built-in one.
503
-
504
- GLOBAL FLAGS
505
- --flags-dir=<value> Import flag values from a directory.
506
- --json Format output as json.
507
-
508
- DESCRIPTION
509
- Generate a technical design document for a Salesforce project.
510
-
511
- Scans a Salesforce DX project's source directory for metadata (objects, fields, Apex, Lightning components, flows,
512
- permissions, and more) and renders a Confluence-storage-format technical design document covering the data model,
513
- security model, groups/queues/permissions, solution inventory, and custom code inventory.
514
-
515
- EXAMPLES
516
- $ sf simply document generate --directory force-app --output-file technical-design-document.html
517
-
518
- $ sf simply document generate --directory force-app --output-file technical-design-document.html --template-file my-tdd-template.hbs
519
-
520
- FLAG DESCRIPTIONS
521
- --output-format=html Output format to render the document in.
522
-
523
- Currently only `html` is supported. Reserved for future formats (e.g. Markdown).
524
-
525
- --template-file=<value> Path to a custom Handlebars template to render instead of the built-in one.
526
-
527
- When specified, this template is rendered with the same scanned project data the built-in technical design document
528
- template receives, and can reuse the built-in `loud` helper. See this package's README "Custom Templates" section
529
- for the data shape.
530
- ```
531
-
532
- _See code: [@simplysf/simply-document](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-document@0.3.6/packages/simply-document/lib/commands/simply/document/generate.js)_
533
-
534
- ## `sf simply package dependencies install`
535
-
536
- Install package dependencies for a Salesforce project.
537
-
538
- ```
539
- USAGE
540
- $ sf simply package dependencies install -o <value> [--json] [--flags-dir <value>] [-a all|package] [--api-version <value>] [-z
541
- <value>] [-i All|Delta|Upgrade] [-k <value>...] [-r] [--output-file <value>] [-b <value>] [-s AllUsers|AdminsOnly]
542
- [-v <value>] [-t DeprecateOnly|Mixed|Delete] [-w <value>]
543
-
544
- FLAGS
545
- -a, --apex-compile=<option> Compile all Apex in the org and package, or only Apex in the package; unlocked
546
- packages only.
547
- <options: all|package>
548
- -b, --publish-wait=<value> Maximum number of minutes to wait for the Subscriber Package Version ID to become
549
- available in the target org before canceling the install request.
550
- -i, --install-type=<option> [default: Upgrade] Install all packages, only deltas, or only newer versions.
551
- <options: All|Delta|Upgrade>
552
- -k, --installation-key=<value>... Installation key for key-protected packages
553
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
554
- configuration variable is already set.
555
- -r, --no-prompt Don't prompt for confirmation.
556
- -s, --security-type=<option> [default: AdminsOnly] Security access type for the installed package. (deprecation
557
- notice: The default --security-type value will change from AllUsers to AdminsOnly
558
- in v47.0 or later.)
559
- <options: AllUsers|AdminsOnly>
560
- -t, --upgrade-type=<option> [default: Mixed] Upgrade type for the package installation; available only for
561
- unlocked packages.
562
- <options: DeprecateOnly|Mixed|Delete>
563
- -v, --target-dev-hub=<value> Username or alias of the Dev Hub org.
564
- -w, --wait=<value> Number of minutes to wait for installation status.
565
- -z, --branch=<value> Package branch to consider when specifiying a Package/VersionNumber combination
566
- --api-version=<value> Override the api version used for api requests made by this command
567
- --output-file=<value> Path to write a JSON install report to.
568
-
569
- GLOBAL FLAGS
570
- --flags-dir=<value> Import flag values from a directory.
571
- --json Format output as json.
572
-
573
- DESCRIPTION
574
- Install package dependencies for a Salesforce project.
575
-
576
- Installs all specified package dependencies in a Salesforce DX project using the sfdx-project.json definition.
577
-
578
- EXAMPLES
579
- $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub
580
-
581
- $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub --installation-key "MyPackage1Alias:MyPackage1Key"
582
-
583
- $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub --installation-key "MyPackage1Alias:MyPackage1Key" --installation-key "MyPackage2Alias:MyPackage2Key"
584
-
585
- $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub --output-file install-report.json
586
-
587
- FLAG DESCRIPTIONS
588
- -a, --apex-compile=all|package
589
-
590
- Compile all Apex in the org and package, or only Apex in the package; unlocked packages only.
591
-
592
- Applies to unlocked packages only. Specifies whether to compile all Apex in the org and package, or only the Apex in
593
- the package.
594
-
595
- For package installs into production orgs, or any org that has Apex Compile on Deploy enabled, the platform compiles
596
- all Apex in the org after the package install or upgrade operation completes.
597
-
598
- This approach assures that package installs and upgrades don’t impact the performance of an org, and is done even if
599
- --apex-compile package is specified.
600
-
601
- -i, --install-type=All|Delta|Upgrade Install all packages, only deltas, or only newer versions.
602
-
603
- If 'All' is specified, then all packages specified in package dependencies are installed, regardless of if the
604
- version already is installed in the org. If 'Delta' is specified, then only packages that differ from what is
605
- installed in the org will be installed. If 'Upgrade' is specified, then a package is installed only if it isn't
606
- already installed, or if its semantic version (major.minor.patch.build) is newer than the version currently
607
- installed in the org; packages with an installed version that is the same as or newer than the target version are
608
- skipped.
609
-
610
- -k, --installation-key=<value>... Installation key for key-protected packages
611
-
612
- Installation key for key-protected packages in the key:value format of SubscriberPackageVersionId:Key
613
-
614
- -r, --no-prompt Don't prompt for confirmation.
615
-
616
- Allows the following without an explicit confirmation response: 1) Remote Site Settings and Content Security Policy
617
- websites to send or receive data, and 2) --upgrade-type Delete to proceed.
618
-
619
- -t, --upgrade-type=DeprecateOnly|Mixed|Delete
620
-
621
- Upgrade type for the package installation; available only for unlocked packages.
622
-
623
- For package upgrades, specifies whether to mark all removed components as deprecated (DeprecateOnly), to delete
624
- removed components that can be safely deleted and deprecate the others (Mixed), or to delete all removed components,
625
- except for custom objects and custom fields, that don't have dependencies (Delete). The default is Mixed. Can
626
- specify DeprecateOnly or Delete only for unlocked package upgrades.
627
-
628
- -z, --branch=<value> Package branch to consider when specifiying a Package/VersionNumber combination
629
-
630
- For dependencies specified by Package/VersionNumber combination, you can specify the branch group of builds to work
631
- from by entering the branch build name. If not specified, the builds from NULL branch will be considered.
632
-
633
- --output-file=<value> Path to write a JSON install report to.
634
-
635
- When specified, a JSON report of the install outcome for every resolved dependency is written to this path, in
636
- addition to the normal terminal output you can continue to monitor as the command runs. Each entry includes the
637
- package name, the SubscriberPackageVersionId already installed in the org (if any), the SubscriberPackageVersionId
638
- that was attempted, and the decision made (Skipped, Installed, Installing, or Failed).
639
- ```
640
-
641
- _See code: [@simplysf/simply-package](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-package@2.8.13/packages/simply-package/lib/commands/simply/package/dependencies/install.js)_
642
-
643
- ## `sf simply package dependencies manage`
644
-
645
- Manage package dependency versions for a Salesforce project.
646
-
647
- ```
648
- USAGE
649
- $ sf simply package dependencies manage -v <value> [--json] [--flags-dir <value>] [-b <value>] [--update-to-released |
650
- --update-to-latest] [--api-version <value>]
651
-
652
- FLAGS
653
- -b, --branch=<value> Package branch to consider when evaluating version options.
654
- -v, --target-dev-hub=<value> (required) Username or alias of the Dev Hub org. Not required if the `target-dev-hub`
655
- configuration variable is already set.
656
- --api-version=<value> Override the api version used for api requests made by this command
657
- --update-to-latest Automatically set all dependencies to the latest non-pinned build.
658
- --update-to-released Automatically update all dependencies to the latest released version.
659
-
660
- GLOBAL FLAGS
661
- --flags-dir=<value> Import flag values from a directory.
662
- --json Format output as json.
663
-
664
- DESCRIPTION
665
- Manage package dependency versions for a Salesforce project.
666
-
667
- Interactively updates package dependency versions in sfdx-project.json by querying the Dev Hub for available versions.
668
- Supports interactive selection or automatic update to the latest released or latest build version.
669
-
670
- Project-level configuration (in sfdx-project.json) is read from the following keys:
671
-
672
- - plugins.simply.dependencies.ignore — array of Package2Ids or aliases to leave unchanged
673
- - plugins.simply.package.brancheswithreleasedversions — array of branch names that contain released versions
674
-
675
- EXAMPLES
676
- $ sf simply package dependencies manage --target-dev-hub myDevHub
677
-
678
- $ sf simply package dependencies manage --target-dev-hub myDevHub --branch my-feature-branch
679
-
680
- $ sf simply package dependencies manage --target-dev-hub myDevHub --update-to-released
681
-
682
- $ sf simply package dependencies manage --target-dev-hub myDevHub --update-to-latest
683
-
684
- FLAG DESCRIPTIONS
685
- -b, --branch=<value> Package branch to consider when evaluating version options.
686
-
687
- When specified, the command will include the latest build on this branch as a selectable option for each dependency.
688
-
689
- --update-to-latest Automatically set all dependencies to the latest non-pinned build.
690
-
691
- When specified, all dependencies managed by the Dev Hub are automatically set to a non-pinned X.Y.Z.LATEST version
692
- number without interactive prompts. Mutually exclusive with --update-to-released.
693
-
694
- --update-to-released Automatically update all dependencies to the latest released version.
695
-
696
- When specified, all dependencies managed by the Dev Hub are automatically updated to the latest released package
697
- version without interactive prompts. Mutually exclusive with --update-to-latest.
698
- ```
699
-
700
- _See code: [@simplysf/simply-package](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-package@2.8.13/packages/simply-package/lib/commands/simply/package/dependencies/manage.js)_
701
-
702
- ## `sf simply package version cleanup`
703
-
704
- Cleanup package versions.
705
-
706
- ```
707
- USAGE
708
- $ sf simply package version cleanup -p <value> -v <value> [--json] [--flags-dir <value>] [--api-version <value>] [-s <value> | -x
709
- <value>]
710
-
711
- FLAGS
712
- -p, --package=<value> (required) Package Id
713
- -s, --matcher=<value> MAJOR.MINOR.PATCH to select on
714
- -v, --target-dev-hub=<value> (required) Username or alias of the Dev Hub org. Not required if the `target-dev-hub`
715
- configuration variable is already set.
716
- -x, --exclude-matcher=<value> MAJOR.MINOR.PATCH to exclude on
717
- --api-version=<value> Override the api version used for api requests made by this command
718
-
719
- GLOBAL FLAGS
720
- --flags-dir=<value> Import flag values from a directory.
721
- --json Format output as json.
722
-
723
- DESCRIPTION
724
- Cleanup package versions.
725
-
726
- Delete package versions for a given package provided a MAJOR.MINOR.PATCH matcher, either to select on or to exclude
727
- on. Does not delete released package versions.
728
-
729
- If --matcher is provided, only the unreleased versions matching MAJOR.MINOR.PATCH are deleted. If --exclude-matcher is
730
- provided instead, every unreleased version that does _not_ match MAJOR.MINOR.PATCH is deleted. Exactly one of
731
- --matcher or --exclude-matcher must be specified.
732
-
733
- EXAMPLES
734
- $ sf simply package version cleanup --package 0Hoxx00000000CqCAI --matcher 2.10.0 --target-dev-hub myDevHub
735
-
736
- $ sf simply package version cleanup --package 0Hoxx00000000CqCAI --exclude-matcher 2.10.0 --target-dev-hub myDevHub
737
-
738
- FLAG DESCRIPTIONS
739
- -p, --package=<value> Package Id
740
-
741
- The 0Ht Package Id that you wish to cleanup versions for.
742
-
743
- -s, --matcher=<value> MAJOR.MINOR.PATCH to select on
744
-
745
- The MAJOR.MINOR.PATCH matcher that should be used to find package versions to delete. Only versions matching this
746
- matcher are deleted. Mutually exclusive with --exclude-matcher.
747
-
748
- -x, --exclude-matcher=<value> MAJOR.MINOR.PATCH to exclude on
749
-
750
- The MAJOR.MINOR.PATCH matcher that should be used to find package versions to keep. Every unreleased version that
751
- does not match this matcher is deleted. Mutually exclusive with --matcher.
752
- ```
753
-
754
- _See code: [@simplysf/simply-package](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-package@2.8.13/packages/simply-package/lib/commands/simply/package/version/cleanup.js)_
755
-
756
- ## `sf simply permissions analyze`
757
-
758
- Analyze permission sets and permission set groups in an org.
759
-
760
- ```
761
- USAGE
762
- $ sf simply permissions analyze -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-f <value>...] [--output
763
- <value>]
764
-
765
- FLAGS
766
- -f, --filter=<value>... Permission set or group names to include
767
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
768
- configuration variable is already set.
769
- --api-version=<value> Override the api version used for api requests made by this command
770
- --output=<value> [default: permissions_report.html] Output HTML file path
771
-
772
- GLOBAL FLAGS
773
- --flags-dir=<value> Import flag values from a directory.
774
- --json Format output as json.
775
-
776
- DESCRIPTION
777
- Analyze permission sets and permission set groups in an org.
778
-
779
- Generates an HTML report of every permission set and permission set group in the target org, grouped by installed
780
- package, including their object and field permissions.
781
-
782
- EXAMPLES
783
- $ sf simply permissions analyze --target-org myOrg
784
-
785
- $ sf simply permissions analyze --target-org myOrg --output reports/permissions.html --filter My_Permission_Set --filter Another_Set
786
-
787
- FLAG DESCRIPTIONS
788
- -f, --filter=<value>... Permission set or group names to include
789
-
790
- One or more PermissionSet (Name) or PermissionSetGroup (DeveloperName) API names to restrict the report to. If
791
- omitted, all permission sets and groups are included.
792
-
793
- --output=<value> Output HTML file path
794
-
795
- The path to write the generated HTML report to.
796
- ```
797
-
798
- _See code: [@simplysf/simply-permissions](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-permissions@1.2.28/packages/simply-permissions/lib/commands/simply/permissions/analyze.js)_
799
-
800
- ## `sf simply permissions build`
801
-
802
- Generate a permission set from Salesforce source metadata.
803
-
804
- ```
805
- USAGE
806
- $ sf simply permissions build --type read-only|view-all|modify-all -n <value> -d <value> --output <value> [--json]
807
- [--flags-dir <value>] [-c <value>] [--include-record-types] [--label <value>] [--description <value>]
808
-
809
- FLAGS
810
- -c, --config=<value> Path to a permission set configuration file
811
- -d, --directory=<value> (required) Path to the Salesforce project directory
812
- -n, --name=<value> (required) API name for the permission set
813
- --description=<value> Description for the permission set
814
- --include-record-types Include record type visibilities
815
- --label=<value> Label for the permission set
816
- --output=<value> (required) Output directory
817
- --type=<option> (required) Baseline permission type
818
- <options: read-only|view-all|modify-all>
819
-
820
- GLOBAL FLAGS
821
- --flags-dir=<value> Import flag values from a directory.
822
- --json Format output as json.
823
-
824
- DESCRIPTION
825
- Generate a permission set from Salesforce source metadata.
826
-
827
- Scans a Salesforce project directory for custom objects, fields, tabs, and (optionally) record types, then generates a
828
- permission set XML file with a baseline of permissions determined by --type. An optional JSON --config file can
829
- override individual object, field, tab, record type, and user permission settings, as well as whether the permission
830
- set requires activation.
831
-
832
- EXAMPLES
833
- $ sf simply permissions build --type read-only --name My_Read_Only_Access --directory force-app --output force-app/main/default/permissionsets
834
-
835
- $ sf simply permissions build --type modify-all --name My_Admin_Access --directory force-app --config config/permission-overrides.json --output force-app/main/default/permissionsets --include-record-types
836
-
837
- FLAG DESCRIPTIONS
838
- -c, --config=<value> Path to a permission set configuration file
839
-
840
- The path to a JSON file that overrides individual object, field, tab, record type, and user permission settings, as
841
- well as whether the permission set requires activation, on top of the --type baseline.
842
-
843
- -d, --directory=<value> Path to the Salesforce project directory
844
-
845
- The path to the Salesforce source directory to scan for custom objects, fields, tabs, and record types.
846
-
847
- -n, --name=<value> API name for the permission set
848
-
849
- The API name for the generated permission set; also used to derive the output filename.
850
-
851
- --include-record-types Include record type visibilities
852
-
853
- Automatically include record type visibilities discovered from the source metadata, marked as visible by default.
854
-
855
- --output=<value> Output directory
856
-
857
- The directory to write the generated permission set XML file to.
858
-
859
- --type=read-only|view-all|modify-all Baseline permission type
860
-
861
- The baseline permission level to generate: 'read-only' grants read access to all discovered objects and fields,
862
- 'view-all' additionally grants view-all-records, and 'modify-all' grants full CRUD and modify-all-records access.
863
- ```
864
-
865
- _See code: [@simplysf/simply-permissions](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-permissions@1.2.28/packages/simply-permissions/lib/commands/simply/permissions/build.js)_
866
-
867
- ## `sf simply project update api-version`
868
-
869
- Update the Salesforce API version across a project's metadata.
870
-
871
- ```
872
- USAGE
873
- $ sf simply project update api-version -d <value> -a <value> [--json] [--flags-dir <value>]
874
-
875
- FLAGS
876
- -a, --api-version=<value> (required) Target Salesforce API version
877
- -d, --directory=<value> (required) Path to the Salesforce project directory
878
-
879
- GLOBAL FLAGS
880
- --flags-dir=<value> Import flag values from a directory.
881
- --json Format output as json.
882
-
883
- DESCRIPTION
884
- Update the Salesforce API version across a project's metadata.
885
-
886
- Recursively scans a directory for `-meta.xml` files and updates every `<apiVersion>` tag to the target version. If the
887
- directory contains an `sfdx-project.json` file, its `sourceApiVersion` property is updated to match.
888
-
889
- EXAMPLES
890
- $ sf simply project update api-version --directory force-app --api-version 62.0
891
-
892
- $ sf simply project update api-version --directory . --api-version 63.0
893
-
894
- FLAG DESCRIPTIONS
895
- -a, --api-version=<value> Target Salesforce API version
896
-
897
- The Salesforce API version to set on all metadata files and, if present, sfdx-project.json.
898
-
899
- -d, --directory=<value> Path to the Salesforce project directory
900
-
901
- The path to the Salesforce project directory to scan for metadata files.
902
- ```
903
-
904
- _See code: [@simplysf/simply-project](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-project@1.2.17/packages/simply-project/lib/commands/simply/project/update/api-version.js)_
905
-
906
- ## `sf simply schema generate`
907
-
908
- Generate Salesforce CustomObject/CustomField/RecordType metadata from a CSV or Excel schema definition file.
909
-
910
- ```
911
- USAGE
912
- $ sf simply schema generate -f <value> -d <value> [--json] [--flags-dir <value>]
913
-
914
- FLAGS
915
- -d, --output-dir=<value> (required) The output directory to write the generated metadata into.
916
- -f, --file=<value> (required) Path to the CSV or Excel (.xlsx/.xls) schema definition file.
917
-
918
- GLOBAL FLAGS
919
- --flags-dir=<value> Import flag values from a directory.
920
- --json Format output as json.
921
-
922
- DESCRIPTION
923
- Generate Salesforce CustomObject/CustomField/RecordType metadata from a CSV or Excel schema definition file.
924
-
925
- Reads a flat CSV or an Excel workbook describing one or more custom objects, their fields, and (CSV only) their record
926
- types, and writes Salesforce DX source-format metadata (`.object-meta.xml`, `.field-meta.xml`, `.recordType-meta.xml`)
927
- into `--output-dir`.
928
-
929
- For CSV input, each row's `Type` column (`CustomObject`, `CustomField`, or `RecordType`) and `ObjectName` column group
930
- the rows by object. For Excel input (`.xlsx`/`.xls`), the workbook must contain an `object` worksheet (a two-column
931
- key/value sheet describing the sObject) and a `fields` worksheet (one row per field); picklist fields may reference an
932
- additional values worksheet by name.
933
-
934
- EXAMPLES
935
- $ sf simply schema generate --file schema.csv --output-dir force-app/main/default/objects
936
-
937
- $ sf simply schema generate --file MyObject__c.xlsx --output-dir force-app/main/default/objects
938
-
939
- FLAG DESCRIPTIONS
940
- -f, --file=<value> Path to the CSV or Excel (.xlsx/.xls) schema definition file.
941
-
942
- A `.csv` file processed as the flat CSV flow, or a `.xlsx`/`.xls` file processed as the Excel flow.
943
- ```
944
-
945
- _See code: [@simplysf/simply-schema](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-schema@0.3.14/packages/simply-schema/lib/commands/simply/schema/generate.js)_
946
-
947
- ## `sf simply schema visualize`
948
-
949
- Generate visualizations of Salesforce schema from a live org or local source files.
950
-
951
- ```
952
- USAGE
953
- $ sf simply schema visualize [--json] [--flags-dir <value>] [-o <value>] [--api-version <value>] [-d <value>...]
954
- [--source-objects <value>] [--related-objects <value>] [--object-type custom|standard|all] [--field-type
955
- custom|standard|all] [--output-type html|md|csv...] [--output-dir <value>]
956
-
957
- FLAGS
958
- -d, --source-dir=<value>... One or more paths to directories containing Salesforce DX source. Use this for
959
- local-source generation.
960
- -o, --target-org=<value> Username or alias of the org to visualize. Use this for live-org generation.
961
- --api-version=<value> Override the api version used for api requests made by this command
962
- --field-type=<option> [default: custom] Scope of relationship fields to include: custom, standard, or all.
963
- <options: custom|standard|all>
964
- --object-type=<option> [default: custom] Scope of objects to include: custom, standard, or all.
965
- <options: custom|standard|all>
966
- --output-dir=<value> The output directory for the generated files.
967
- --output-type=<option>... [default: html,md] Output format(s) to generate.
968
- <options: html|md|csv>
969
- --related-objects=<value> Comma-separated list of related objects to filter the visualization to, or `all`.
970
- --source-objects=<value> Comma-separated list of source objects to start from, or `all`.
971
-
972
- GLOBAL FLAGS
973
- --flags-dir=<value> Import flag values from a directory.
974
- --json Format output as json.
975
-
976
- DESCRIPTION
977
- Generate visualizations of Salesforce schema from a live org or local source files.
978
-
979
- Builds an object-relationship diagram (interactive HTML), a Mermaid entity-relationship diagram (Markdown), and/or a
980
- relationship CSV, either from a live org's Tooling API or from local Salesforce DX source directories. Exactly one of
981
- `--target-org` or `--source-dir` must be specified.
982
-
983
- EXAMPLES
984
- $ sf simply schema visualize --target-org myTargetOrg
985
-
986
- $ sf simply schema visualize --target-org myTargetOrg --source-objects Account,Contact --related-objects all
987
-
988
- $ sf simply schema visualize --source-dir force-app --output-type html,md
989
-
990
- FLAG DESCRIPTIONS
991
- --output-type=html|md|csv... Output format(s) to generate.
992
-
993
- One or more of `html` (interactive diagram), `md` (Mermaid entity-relationship diagram), or `csv` (relationship
994
- data).
995
-
996
- --related-objects=<value> Comma-separated list of related objects to filter the visualization to, or `all`.
997
-
998
- Comma-separated API names of related objects to include in the visualization. If `all` is specified, every related
999
- object is included regardless of `--object-type`. If not specified, related objects aren't filtered.
1000
-
1001
- --source-objects=<value> Comma-separated list of source objects to start from, or `all`.
1002
-
1003
- Comma-separated API names of the objects to start the visualization from (e.g. `Account,MyObject__c`). If `all` is
1004
- specified, every discovered object is included. If not specified, every object matching `--object-type` is included.
1005
- ```
1006
-
1007
- _See code: [@simplysf/simply-schema](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-schema@0.3.14/packages/simply-schema/lib/commands/simply/schema/visualize.js)_
1008
-
1009
- ## `sf simply sobject backup`
1010
-
1011
- Back up SObject data to a CSV file.
1012
-
1013
- ```
1014
- USAGE
1015
- $ sf simply sobject backup -o <value> -s <value> [--json] [--flags-dir <value>] [--api-version <value>] [-d <value>]
1016
- [--include-relationship-fields] [-f <value>...]
1017
-
1018
- FLAGS
1019
- -d, --output-dir=<value> Output directory
1020
- -f, --additional-fields=<value>... Additional fields to include
1021
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
1022
- configuration variable is already set.
1023
- -s, --sobject=<value> (required) SObject API name
1024
- --api-version=<value> Override the api version used for api requests made by this command
1025
- --include-relationship-fields Include parent relationship fields
1026
-
1027
- GLOBAL FLAGS
1028
- --flags-dir=<value> Import flag values from a directory.
1029
- --json Format output as json.
1030
-
1031
- DESCRIPTION
1032
- Back up SObject data to a CSV file.
1033
-
1034
- Describes the given SObject, queries every field via the Bulk API, and writes the results to a timestamped CSV file.
1035
-
1036
- EXAMPLES
1037
- $ sf simply sobject backup --target-org myOrg --sobject Account
1038
-
1039
- $ sf simply sobject backup --target-org myOrg --sobject Custom_Object__c --output-dir backups
1040
-
1041
- $ sf simply sobject backup --target-org myOrg --sobject Account --include-relationship-fields
1042
-
1043
- $ sf simply sobject backup --target-org myOrg --sobject Account --additional-fields Owner.Manager.Name --additional-fields Parent.Owner.Email
1044
-
1045
- FLAG DESCRIPTIONS
1046
- -d, --output-dir=<value> Output directory
1047
-
1048
- The directory to save the backup CSV file to. Defaults to the current directory.
1049
-
1050
- -f, --additional-fields=<value>... Additional fields to include
1051
-
1052
- Extra field API names to include in the query, on top of the SObject's own fields and any fields discovered via
1053
- --include-relationship-fields. Useful for fields --include-relationship-fields won't discover, such as multi-hop
1054
- relationship paths (e.g. Owner.Manager.Name) or fields through a polymorphic relationship. Fields already included
1055
- are not duplicated.
1056
-
1057
- -s, --sobject=<value> SObject API name
1058
-
1059
- The API name of the SObject to back up.
1060
-
1061
- --include-relationship-fields Include parent relationship fields
1062
-
1063
- For every lookup/master-detail field, describe its parent SObject and include its identifying fields (e.g.
1064
- RecordTypeId includes RecordType.Name and RecordType.DeveloperName). Polymorphic relationship fields, such as
1065
- OwnerId, are skipped.
1066
- ```
1067
-
1068
- _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.2/packages/simply-sobject/lib/commands/simply/sobject/backup.js)_
1069
-
1070
- ## `sf simply sobject deduplicate`
1071
-
1072
- Identify and prepare deduplication of an SObject's records.
1073
-
1074
- ```
1075
- USAGE
1076
- $ sf simply sobject deduplicate -o <value> -c <value> [--json] [--flags-dir <value>] [--api-version <value>] [--dry-run]
1077
- [--output-dir <value>]
1078
-
1079
- FLAGS
1080
- -c, --config=<value> (required) Path to a deduplication configuration file
1081
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
1082
- configuration variable is already set.
1083
- --api-version=<value> Override the api version used for api requests made by this command
1084
- --dry-run Skip calculating associated object lookup replacements
1085
- --output-dir=<value> Output directory
1086
-
1087
- GLOBAL FLAGS
1088
- --flags-dir=<value> Import flag values from a directory.
1089
- --json Format output as json.
1090
-
1091
- DESCRIPTION
1092
- Identify and prepare deduplication of an SObject's records.
1093
-
1094
- Queries an SObject, groups records by a composite key built from configured fields, and writes CSV files listing which
1095
- records are unique and which are duplicates that should be deleted. For each associated object with lookups to the
1096
- primary object, also writes a CSV of the lookup field updates needed to re-point duplicate references at the surviving
1097
- unique record. This command does not perform any deletes or updates in the org; it only prepares the CSV files for a
1098
- subsequent data load.
1099
-
1100
- EXAMPLES
1101
- $ sf simply sobject deduplicate --target-org myOrg --config config/deduplicate-account.json
1102
-
1103
- $ sf simply sobject deduplicate --target-org myOrg --config config/deduplicate-account.json --dry-run
1104
-
1105
- FLAG DESCRIPTIONS
1106
- -c, --config=<value> Path to a deduplication configuration file
1107
-
1108
- The path to a JSON file describing the primary object, its composite key fields, and any associated objects with
1109
- lookups to it.
1110
-
1111
- --dry-run Skip calculating associated object lookup replacements
1112
-
1113
- When set, only the primary object's unique/duplicate CSV files are generated; associated object lookup replacement
1114
- files are not calculated.
1115
-
1116
- --output-dir=<value> Output directory
1117
-
1118
- The directory to write the generated CSV files to. Defaults to ./temp/<primaryObjectApiName>.
1119
- ```
1120
-
1121
- _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.2/packages/simply-sobject/lib/commands/simply/sobject/deduplicate.js)_
1122
-
1123
- ## `sf simply sobject history export`
1124
-
1125
- Export field history for an SObject within a date range to a CSV file.
1126
-
1127
- ```
1128
- USAGE
1129
- $ sf simply sobject history export -o <value> -s <value> --start-date <value> --end-date <value> [--json] [--flags-dir <value>]
1130
- [--api-version <value>] [-d <value>]
1131
-
1132
- FLAGS
1133
- -d, --output-dir=<value> Output directory
1134
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
1135
- configuration variable is already set.
1136
- -s, --sobject=<value> (required) SObject API name
1137
- --api-version=<value> Override the api version used for api requests made by this command
1138
- --end-date=<value> (required) End date (YYYY-MM-DD)
1139
- --start-date=<value> (required) Start date (YYYY-MM-DD)
1140
-
1141
- GLOBAL FLAGS
1142
- --flags-dir=<value> Import flag values from a directory.
1143
- --json Format output as json.
1144
-
1145
- DESCRIPTION
1146
- Export field history for an SObject within a date range to a CSV file.
1147
-
1148
- Queries the field history object for the given SObject (e.g. `AccountHistory`, `Custom_Object__History`, or
1149
- `OpportunityFieldHistory`) for changes created within the given date range, and writes the results to a timestamped
1150
- CSV file.
1151
-
1152
- EXAMPLES
1153
- $ sf simply sobject history export --target-org myOrg --sobject Account --start-date 2026-01-01 --end-date 2026-01-31
1154
-
1155
- $ sf simply sobject history export --target-org myOrg --sobject Custom_Object__c --start-date 2026-01-01 --end-date 2026-01-31 --output-dir exports
1156
-
1157
- FLAG DESCRIPTIONS
1158
- -d, --output-dir=<value> Output directory
1159
-
1160
- The directory to save the exported CSV file to. Defaults to the current directory.
1161
-
1162
- -s, --sobject=<value> SObject API name
1163
-
1164
- The API name of the SObject to export field history for (e.g. Account or Custom_Object__c).
1165
-
1166
- --end-date=<value> End date (YYYY-MM-DD)
1167
-
1168
- The end of the date range to export history for, inclusive.
1169
-
1170
- --start-date=<value> Start date (YYYY-MM-DD)
1171
-
1172
- The start of the date range to export history for, inclusive.
1173
- ```
1174
-
1175
- _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.2/packages/simply-sobject/lib/commands/simply/sobject/history/export.js)_
1176
-
1177
- ## `sf simply sobject history query`
1178
-
1179
- Query the field history of an SObject, with optional filtering.
1180
-
1181
- ```
1182
- USAGE
1183
- $ sf simply sobject history query -o <value> --object <value> [--json] [--flags-dir <value>] [--api-version <value>] [--filters
1184
- <value>] [-d <value>]
1185
-
1186
- FLAGS
1187
- -d, --output-dir=<value> Output directory
1188
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
1189
- configuration variable is already set.
1190
- --api-version=<value> Override the api version used for api requests made by this command
1191
- --filters=<value> Path to a filter configuration file, or a raw JSON filter string
1192
- --object=<value> (required) SObject API name
1193
-
1194
- GLOBAL FLAGS
1195
- --flags-dir=<value> Import flag values from a directory.
1196
- --json Format output as json.
1197
-
1198
- DESCRIPTION
1199
- Query the field history of an SObject, with optional filtering.
1200
-
1201
- Queries the field history object for the given SObject (e.g. `AccountHistory`, `Custom_Object__History`, or
1202
- `OpportunityFieldHistory`) and writes the results to a timestamped CSV file. An optional filter tree can be supplied
1203
- to narrow the results: conditions on Field, CreatedById, CreatedDate, or the parent lookup field are pushed into the
1204
- SOQL WHERE clause; conditions on any other field (e.g. OldValue or NewValue) are applied client-side after the query
1205
- runs.
1206
-
1207
- EXAMPLES
1208
- $ sf simply sobject history query --target-org myOrg --object Account
1209
-
1210
- $ sf simply sobject history query --target-org myOrg --object Custom_Object__c --filters config/history-filters.json
1211
-
1212
- $ sf simply sobject history query --target-org myOrg --object Account --filters '{"logic":"AND","filters":[{"field":"Field","operator":"=","value":"Name"}]}'
1213
-
1214
- FLAG DESCRIPTIONS
1215
- -d, --output-dir=<value> Output directory
1216
-
1217
- The directory to save the query results CSV file to. Defaults to the current directory.
1218
-
1219
- --filters=<value> Path to a filter configuration file, or a raw JSON filter string
1220
-
1221
- A JSON object describing a tree of filter conditions: `{ "logic": "AND", "filters": [ { "field": "Field",
1222
- "operator": "=", "value": "Status__c" } ] }`. Each entry in `filters` is either a condition (`field`, `operator`,
1223
- `value`) or another nested group with its own `logic`/`filters`. Supported operators are =, !=, >, <, >=, <=, IN,
1224
- NOT IN, and LIKE (using `%` as a wildcard).
1225
-
1226
- --object=<value> SObject API name
1227
-
1228
- The API name of the SObject to query field history for (e.g. Account or Custom_Object__c).
1229
- ```
1230
-
1231
- _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.2/packages/simply-sobject/lib/commands/simply/sobject/history/query.js)_
1232
-
1233
- ## `sf simply sobject history schema`
1234
-
1235
- Report on which objects and fields have field history tracking enabled.
1236
-
1237
- ```
1238
- USAGE
1239
- $ sf simply sobject history schema -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-d <value>]
1240
-
1241
- FLAGS
1242
- -d, --output-dir=<value> Output directory
1243
- -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
1244
- configuration variable is already set.
1245
- --api-version=<value> Override the api version used for api requests made by this command
1246
-
1247
- GLOBAL FLAGS
1248
- --flags-dir=<value> Import flag values from a directory.
1249
- --json Format output as json.
1250
-
1251
- DESCRIPTION
1252
- Report on which objects and fields have field history tracking enabled.
1253
-
1254
- Identifies every object with field history tracking enabled, and every tracked field on each, resolving the
1255
- managed/unlocked package each field belongs to, and writes the results to a timestamped CSV file and a browsable HTML
1256
- report.
1257
-
1258
- EXAMPLES
1259
- $ sf simply sobject history schema --target-org myOrg
1260
-
1261
- $ sf simply sobject history schema --target-org myOrg --output-dir reports
1262
-
1263
- FLAG DESCRIPTIONS
1264
- -d, --output-dir=<value> Output directory
1265
-
1266
- The directory to save the generated CSV and HTML report files to. Defaults to the current directory.
1267
- ```
1268
-
1269
- _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.2/packages/simply-sobject/lib/commands/simply/sobject/history/schema.js)_
1270
- <!-- commandsstop -->
1271
-
1272
- ## License
1273
-
1274
- Licensed under the [Apache-2.0](https://raw.githubusercontent.com/SimplySF/simply-node/main/LICENSE.txt) license.
1
+ # simply
2
+
3
+ [![NPM](https://img.shields.io/npm/v/@simplysf/simply.svg?label=@simplysf/simply)](https://www.npmjs.com/package/@simplysf/simply) [![Downloads/week](https://img.shields.io/npm/dw/@simplysf/simply.svg)](https://npmjs.org/package/@simplysf/simply) [![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://raw.githubusercontent.com/SimplySF/simply-node/main/LICENSE.txt)
4
+
5
+ ## Install1
6
+
7
+ ```bash
8
+ sf plugins install @simplysf/simply
9
+ ```
10
+
11
+ ## Issues
12
+
13
+ Please report any issues at https://github.com/SimplySF/simply-node/issues
14
+
15
+ ## Contributing
16
+
17
+ This package is part of the [`@simplysf/simply`](https://github.com/SimplySF/simply-node) monorepo. See [CONTRIBUTING.md](CONTRIBUTING.md) for what's specific to this package, and the repo's [root CONTRIBUTING.md](https://github.com/SimplySF/simply-node/blob/main/CONTRIBUTING.md) for repo structure, setup, commit conventions, and how to submit a pull request. Please also read our [Code of Conduct](https://github.com/SimplySF/simply-node/blob/main/CODE_OF_CONDUCT.md).
18
+
19
+ ## Commands
20
+
21
+ <!-- commands -->
22
+
23
+ - [`sf simply aep at4dx binding list`](#sf-simply-aep-at4dx-binding-list)
24
+ - [`sf simply aep at4dx domain-process-binding create`](#sf-simply-aep-at4dx-domain-process-binding-create)
25
+ - [`sf simply aep at4dx domain-process-binding list`](#sf-simply-aep-at4dx-domain-process-binding-list)
26
+ - [`sf simply aep at4dx domain-process-binding set`](#sf-simply-aep-at4dx-domain-process-binding-set)
27
+ - [`sf simply aep at4dx domain-process-binding validate`](#sf-simply-aep-at4dx-domain-process-binding-validate)
28
+ - [`sf simply apex execute`](#sf-simply-apex-execute)
29
+ - [`sf simply apex logs purge`](#sf-simply-apex-logs-purge)
30
+ - [`sf simply apex trace setup`](#sf-simply-apex-trace-setup)
31
+ - [`sf simply apex trace silence`](#sf-simply-apex-trace-silence)
32
+ - [`sf simply community publish`](#sf-simply-community-publish)
33
+ - [`sf simply community url set`](#sf-simply-community-url-set)
34
+ - [`sf simply data file upload`](#sf-simply-data-file-upload)
35
+ - [`sf simply data files download`](#sf-simply-data-files-download)
36
+ - [`sf simply data files upload`](#sf-simply-data-files-upload)
37
+ - [`sf simply document diff`](#sf-simply-document-diff)
38
+ - [`sf simply document generate`](#sf-simply-document-generate)
39
+ - [`sf simply flow delete`](#sf-simply-flow-delete)
40
+ - [`sf simply flow version prune`](#sf-simply-flow-version-prune)
41
+ - [`sf simply package dependencies install`](#sf-simply-package-dependencies-install)
42
+ - [`sf simply package dependencies manage`](#sf-simply-package-dependencies-manage)
43
+ - [`sf simply package version cleanup`](#sf-simply-package-version-cleanup)
44
+ - [`sf simply package version get`](#sf-simply-package-version-get)
45
+ - [`sf simply permissions analyze`](#sf-simply-permissions-analyze)
46
+ - [`sf simply permissions assignment delete`](#sf-simply-permissions-assignment-delete)
47
+ - [`sf simply permissions build`](#sf-simply-permissions-build)
48
+ - [`sf simply project update api-version`](#sf-simply-project-update-api-version)
49
+ - [`sf simply schema generate`](#sf-simply-schema-generate)
50
+ - [`sf simply schema visualize`](#sf-simply-schema-visualize)
51
+ - [`sf simply sobject backup`](#sf-simply-sobject-backup)
52
+ - [`sf simply sobject deduplicate`](#sf-simply-sobject-deduplicate)
53
+ - [`sf simply sobject history export`](#sf-simply-sobject-history-export)
54
+ - [`sf simply sobject history query`](#sf-simply-sobject-history-query)
55
+ - [`sf simply sobject history schema`](#sf-simply-sobject-history-schema)
56
+
57
+ ## `sf simply aep at4dx binding list`
58
+
59
+ List the AT4DX Application Factory bindings configured in an org or local source, resolved to show which record wins for each binding key.
60
+
61
+ ```
62
+ USAGE
63
+ $ sf simply aep at4dx binding list [--json] [--flags-dir <value>] [-o <value>] [--api-version <value>] [-d <value>...] [-t
64
+ service|selector|domain|unit-of-work...] [--effective-only]
65
+
66
+ FLAGS
67
+ -d, --source-dir=<value>... One or more paths to directories containing Salesforce DX source. Use this for
68
+ local-source discovery.
69
+ -o, --target-org=<value> Username or alias of the org to read bindings from. Use this for live-org discovery.
70
+ -t, --type=<option>... Binding type(s) to include: service, selector, domain, unit-of-work.
71
+ <options: service|selector|domain|unit-of-work>
72
+ --api-version=<value> Override the api version used for api requests made by this command
73
+ --effective-only Only show the bindings that actually win for their key; hide shadowed/non-winning
74
+ records.
75
+
76
+ GLOBAL FLAGS
77
+ --flags-dir=<value> Import flag values from a directory.
78
+ --json Format output as json.
79
+
80
+ DESCRIPTION
81
+ List the AT4DX Application Factory bindings configured in an org or local source, resolved to show which record wins
82
+ for each binding key.
83
+
84
+ Reads the four AT4DX Application Factory Custom Metadata Types — `ApplicationFactory_ServiceBinding__mdt`,
85
+ `ApplicationFactory_SelectorBinding__mdt`, `ApplicationFactory_DomainBinding__mdt`, and
86
+ `ApplicationFactory_UnitOfWorkBinding__mdt` — either from a live org or from local Salesforce DX source, and
87
+ reproduces the resolution rules AT4DX applies at runtime so you can see which record actually wins for a given
88
+ interface or SObject, and which ones are shadowed. Exactly one of `--target-org` or `--source-dir` must be specified.
89
+
90
+ Service and Selector bindings resolve deterministically on `Priority__c` (highest wins). Domain bindings have no
91
+ priority field, so a duplicated key is flagged `ambiguous` rather than reporting a guessed winner. UnitOfWork bindings
92
+ have no winner concept at all — every record contributes to one ordered registration list.
93
+
94
+ EXAMPLES
95
+ $ sf simply aep at4dx binding list --target-org myOrg
96
+
97
+ $ sf simply aep at4dx binding list --source-dir sfdx-source/core --source-dir sfdx-source/app
98
+
99
+ $ sf simply aep at4dx binding list --target-org myOrg --type service,selector
100
+
101
+ $ sf simply aep at4dx binding list --target-org myOrg --effective-only --json
102
+
103
+ FLAG DESCRIPTIONS
104
+ -t, --type=service|selector|domain|unit-of-work...
105
+
106
+ Binding type(s) to include: service, selector, domain, unit-of-work.
107
+
108
+ Comma-separated list of binding types to include. If not specified, all four are included.
109
+ ```
110
+
111
+ _See code: [@simplysf/simply-aep](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-aep@0.6.1/packages/simply-aep/lib/commands/simply/aep/at4dx/binding/list.js)_
112
+
113
+ ## `sf simply aep at4dx domain-process-binding create`
114
+
115
+ Create a new AT4DX Trigger Action Framework binding (DomainProcessBinding__mdt) in local source and/or a connected org.
116
+
117
+ ```
118
+ USAGE
119
+ $ sf simply aep at4dx domain-process-binding create -n <value> -s <value> --process-context TriggerExecution|DomainMethodExecution -t
120
+ Action|Criteria -c <value> --order <value> [--json] [--flags-dir <value>] [-d <value>] [-o <value>] [--api-version
121
+ <value>] [--wait <value>] [--label <value>] [--sobject-alternate] [--trigger-operation
122
+ Before_Insert|After_Insert|Before_Update|After_Update|Before_Delete|After_Delete|After_Undelete]
123
+ [--domain-method-token <value>] [--active] [--execute-asynchronous] [--logical-inverse] [--prevent-recursive]
124
+ [--description <value>] [--force]
125
+
126
+ FLAGS
127
+ -c, --class-to-inject=<value> (required) The Apex class this binding wires in.
128
+ -d, --source-dir=<value> The package directory to create
129
+ customMetadata/DomainProcessBinding.<name>.md-meta.xml under. Created if the
130
+ customMetadata folder doesn't exist yet.
131
+ -n, --developer-name=<value> (required) The binding's DeveloperName. Must start with a letter, contain only
132
+ letters, numbers, and single underscores, not end with an underscore, and be 40
133
+ characters or fewer.
134
+ -o, --target-org=<value> Deploy the generated binding to this org after writing it.
135
+ -s, --sobject=<value> (required) The SObject API name to bind against.
136
+ -t, --type=<option> (required) Whether this binding contributes a Criteria filter or an Action.
137
+ <options: Action|Criteria>
138
+ --[no-]active IsActive__c.
139
+ --api-version=<value> Override the api version used for api requests made by this command
140
+ --description=<value> Description__c.
141
+ --domain-method-token=<value> The domain method's process token this binding matches. Required, and only allowed,
142
+ when --process-context is DomainMethodExecution.
143
+ --execute-asynchronous ExecuteAsynchronous__c.
144
+ --force Write (and deploy) even if validation finds an error-severity issue. Validation
145
+ still runs and its issues are still printed and returned.
146
+ --label=<value> The binding's label. Defaults to --developer-name. Must be 40 characters or fewer.
147
+ --logical-inverse LogicalInverse__c.
148
+ --order=<value> (required) OrderOfExecution__c. Numeric; decimals are allowed.
149
+ --prevent-recursive PreventRecursive__c.
150
+ --process-context=<option> (required) What kind of process invokes this binding: TriggerExecution or
151
+ DomainMethodExecution.
152
+ <options: TriggerExecution|DomainMethodExecution>
153
+ --[no-]sobject-alternate Write --sobject to RelatedDomainBindingSObjectAlternate__c instead of
154
+ RelatedDomainBindingSObject__c. Use this for a SObject that can't be referenced
155
+ through an EntityDefinition field at all (for example ServiceResource and other
156
+ Setup objects).
157
+ --trigger-operation=<option> The trigger event this binding fires on. Required, and only allowed, when
158
+ --process-context is TriggerExecution.
159
+ <options: Before_Insert|After_Insert|Before_Update|After_Update|Before_Delete|After
160
+ _Delete|After_Undelete>
161
+ --wait=<value> [default: 33] Deploy poll timeout, in minutes. Only meaningful with --target-org.
162
+
163
+ GLOBAL FLAGS
164
+ --flags-dir=<value> Import flag values from a directory.
165
+ --json Format output as json.
166
+
167
+ DESCRIPTION
168
+ Create a new AT4DX Trigger Action Framework binding (DomainProcessBinding__mdt) in local source and/or a connected
169
+ org.
170
+
171
+ Generates a `DomainProcessBinding.<DeveloperName>.md-meta.xml` file from the given flags and writes it under
172
+ --source-dir, deploys it to --target-org, or both. Validates the resulting binding — alongside everything else already
173
+ in scope — with the same rules `simply aep at4dx domain-process-binding validate` uses, and refuses to write if that
174
+ introduces an error-severity issue unless --force is passed. At least one of --source-dir/--target-org is required;
175
+ unlike `list`/`validate`, both may be given at once (write to source and deploy it live in the same run). Given
176
+ --target-org alone, the file is written to a temporary directory, deployed, and discarded — no working-tree footprint.
177
+
178
+ Writes RelatedDomainBindingSObject__c by default. Pass --sobject-alternate to write
179
+ RelatedDomainBindingSObjectAlternate__c instead, for a SObject (such as ServiceResource and other Setup objects) that
180
+ can't be referenced through an EntityDefinition field at all.
181
+
182
+ EXAMPLES
183
+ $ sf simply aep at4dx domain-process-binding create --source-dir sfdx-source/core --developer-name Account_Before_Insert_Assign_Owner --sobject Account --process-context TriggerExecution --trigger-operation Before_Insert --type Action --class-to-inject AccountAssignOwnerAction --order 10
184
+
185
+ $ sf simply aep at4dx domain-process-binding create --target-org myOrg --developer-name Account_Before_Insert_Assign_Owner --sobject Account --process-context TriggerExecution --trigger-operation Before_Insert --type Action --class-to-inject AccountAssignOwnerAction --order 10
186
+
187
+ $ sf simply aep at4dx domain-process-binding create --source-dir sfdx-source/core --target-org myOrg --developer-name Account_Before_Insert_Assign_Owner --sobject Account --process-context TriggerExecution --trigger-operation Before_Insert --type Action --class-to-inject AccountAssignOwnerAction --order 10
188
+
189
+ $ sf simply aep at4dx domain-process-binding create --source-dir sfdx-source/core --developer-name ServiceResource_Before_Update_Sync --sobject ServiceResource --sobject-alternate --process-context TriggerExecution --trigger-operation Before_Update --type Action --class-to-inject ServiceResourceSyncAction --order 10
190
+ ```
191
+
192
+ _See code: [@simplysf/simply-aep](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-aep@0.6.1/packages/simply-aep/lib/commands/simply/aep/at4dx/domain-process-binding/create.js)_
193
+
194
+ ## `sf simply aep at4dx domain-process-binding list`
195
+
196
+ List the AT4DX Trigger Action Framework bindings configured in an org or local source, in execution order.
197
+
198
+ ```
199
+ USAGE
200
+ $ sf simply aep at4dx domain-process-binding list [--json] [--flags-dir <value>] [-o <value>] [--api-version <value>] [-d <value>...] [-s
201
+ <value>...] [--active-only]
202
+
203
+ FLAGS
204
+ -d, --source-dir=<value>... One or more paths to directories containing Salesforce DX source. Use this for
205
+ local-source discovery.
206
+ -o, --target-org=<value> Username or alias of the org to read bindings from. Use this for live-org discovery.
207
+ -s, --sobject=<value>... SObject API name(s) to filter to. If not specified, bindings for every SObject are
208
+ included.
209
+ --active-only Only show active bindings; hide inactive records.
210
+ --api-version=<value> Override the api version used for api requests made by this command
211
+
212
+ GLOBAL FLAGS
213
+ --flags-dir=<value> Import flag values from a directory.
214
+ --json Format output as json.
215
+
216
+ DESCRIPTION
217
+ List the AT4DX Trigger Action Framework bindings configured in an org or local source, in execution order.
218
+
219
+ Reads AT4DX's Trigger Action Framework Custom Metadata Type — `DomainProcessBinding__mdt` — either from a live org or
220
+ from local Salesforce DX source, showing which criteria/action classes are bound to each SObject's trigger events (or
221
+ domain method tokens), and the order they run in. Exactly one of `--target-org` or `--source-dir` must be specified.
222
+
223
+ Unlike `simply aep at4dx binding list`, there's no "winner" here — every active record in a group (same SObject,
224
+ process context, and trigger operation or domain method token) runs, in `OrderOfExecution__c` order. Two active
225
+ records sharing the same order within a group are flagged as a collision, since AT4DX doesn't guarantee which one runs
226
+ first in that case.
227
+
228
+ EXAMPLES
229
+ $ sf simply aep at4dx domain-process-binding list --target-org myOrg
230
+
231
+ $ sf simply aep at4dx domain-process-binding list --source-dir sfdx-source/core --source-dir sfdx-source/app
232
+
233
+ $ sf simply aep at4dx domain-process-binding list --target-org myOrg --sobject Account
234
+
235
+ $ sf simply aep at4dx domain-process-binding list --target-org myOrg --active-only --json
236
+ ```
237
+
238
+ _See code: [@simplysf/simply-aep](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-aep@0.6.1/packages/simply-aep/lib/commands/simply/aep/at4dx/domain-process-binding/list.js)_
239
+
240
+ ## `sf simply aep at4dx domain-process-binding set`
241
+
242
+ Update an existing AT4DX Trigger Action Framework binding (DomainProcessBinding__mdt) in local source and/or a connected org.
243
+
244
+ ```
245
+ USAGE
246
+ $ sf simply aep at4dx domain-process-binding set -n <value> [--json] [--flags-dir <value>] [-d <value>...] [-o <value>] [--api-version <value>]
247
+ [--wait <value>] [--label <value>] [-s <value>] [--sobject-alternate] [--process-context
248
+ TriggerExecution|DomainMethodExecution] [--trigger-operation
249
+ Before_Insert|After_Insert|Before_Update|After_Update|Before_Delete|After_Delete|After_Undelete]
250
+ [--domain-method-token <value>] [-t Action|Criteria] [-c <value>] [--order <value>] [--active]
251
+ [--execute-asynchronous] [--logical-inverse] [--prevent-recursive] [--description <value>] [--force]
252
+
253
+ FLAGS
254
+ -c, --class-to-inject=<value> The Apex class this binding wires in. If not given, the existing value is kept.
255
+ -d, --source-dir=<value>... One or more paths to directories containing Salesforce DX source, searched for the
256
+ binding to update.
257
+ -n, --developer-name=<value> (required) The DeveloperName of the binding to update.
258
+ -o, --target-org=<value> Locate (when --source-dir isn't given) and/or deploy the binding to this org.
259
+ -s, --sobject=<value> The SObject API name to bind against. If not given, the existing value is kept.
260
+ -t, --type=<option> Whether this binding contributes a Criteria filter or an Action. If not given, the
261
+ existing value is kept.
262
+ <options: Action|Criteria>
263
+ --[no-]active IsActive__c. If not given, the existing value is kept.
264
+ --api-version=<value> Override the api version used for api requests made by this command
265
+ --description=<value> Description__c. If not given, the existing value is kept.
266
+ --domain-method-token=<value> The domain method's process token this binding matches. If you change
267
+ --process-context to DomainMethodExecution, pass this too.
268
+ --[no-]execute-asynchronous ExecuteAsynchronous__c. If not given, the existing value is kept.
269
+ --force Write (and deploy) even if validation finds an error-severity issue. Validation
270
+ still runs and its issues are still printed and returned.
271
+ --label=<value> The binding's label. If not given, the existing label is kept.
272
+ --[no-]logical-inverse LogicalInverse__c. If not given, the existing value is kept.
273
+ --order=<value> OrderOfExecution__c. Numeric; decimals are allowed. If not given, the existing
274
+ value is kept.
275
+ --[no-]prevent-recursive PreventRecursive__c. If not given, the existing value is kept.
276
+ --process-context=<option> What kind of process invokes this binding: TriggerExecution or
277
+ DomainMethodExecution. If not given, the existing value is kept.
278
+ <options: TriggerExecution|DomainMethodExecution>
279
+ --[no-]sobject-alternate Write --sobject to RelatedDomainBindingSObjectAlternate__c instead of
280
+ RelatedDomainBindingSObject__c, for a SObject that can't be referenced through an
281
+ EntityDefinition field at all (for example ServiceResource and other Setup
282
+ objects). If not given, the binding keeps whichever field it already uses — this
283
+ flag only needs to be passed to change it.
284
+ --trigger-operation=<option> The trigger event this binding fires on. If you change --process-context to
285
+ TriggerExecution, pass this too.
286
+ <options: Before_Insert|After_Insert|Before_Update|After_Update|Before_Delete|After
287
+ _Delete|After_Undelete>
288
+ --wait=<value> [default: 33] Deploy poll timeout, in minutes. Only meaningful with --target-org.
289
+
290
+ GLOBAL FLAGS
291
+ --flags-dir=<value> Import flag values from a directory.
292
+ --json Format output as json.
293
+
294
+ DESCRIPTION
295
+ Update an existing AT4DX Trigger Action Framework binding (DomainProcessBinding__mdt) in local source and/or a
296
+ connected org.
297
+
298
+ Finds the binding named --developer-name in local source and/or a connected org, applies only the fields given as
299
+ flags — everything else, including which SObject reference field the binding uses, is preserved from the found record
300
+ — and rewrites the `DomainProcessBinding.<DeveloperName>.md-meta.xml` file. Validates the resulting binding —
301
+ alongside everything else already in scope — with the same rules `simply aep at4dx domain-process-binding validate`
302
+ uses, and refuses to write if that introduces an error-severity issue unless --force is passed.
303
+
304
+ When --source-dir is given, the binding is located there (searched across every directory given, same as
305
+ `list`/`validate`) and that exact file is rewritten; the found file is also deployed if --target-org is given. When
306
+ only --target-org is given, the binding is located and updated directly in the org via a temporary file, deployed,
307
+ then discarded — no working-tree footprint.
308
+
309
+ --developer-name identifies the binding to update and can't itself be changed by this command.
310
+
311
+ EXAMPLES
312
+ $ sf simply aep at4dx domain-process-binding set --source-dir sfdx-source/core --source-dir sfdx-source/app --developer-name Account_Before_Insert_Assign_Owner --order 20 --no-active
313
+
314
+ $ sf simply aep at4dx domain-process-binding set --target-org myOrg --developer-name Account_Before_Insert_Assign_Owner --class-to-inject AccountAssignOwnerActionV2
315
+ ```
316
+
317
+ _See code: [@simplysf/simply-aep](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-aep@0.6.1/packages/simply-aep/lib/commands/simply/aep/at4dx/domain-process-binding/set.js)_
318
+
319
+ ## `sf simply aep at4dx domain-process-binding validate`
320
+
321
+ Validate the AT4DX Trigger Action Framework bindings configured in an org or local source, failing when a wiring problem is found.
322
+
323
+ ```
324
+ USAGE
325
+ $ sf simply aep at4dx domain-process-binding validate [--json] [--flags-dir <value>] [-o <value>] [--api-version <value>] [-d <value>...] [-s
326
+ <value>...]
327
+
328
+ FLAGS
329
+ -d, --source-dir=<value>... One or more paths to directories containing Salesforce DX source. Use this for
330
+ local-source discovery.
331
+ -o, --target-org=<value> Username or alias of the org to read bindings from. Use this for live-org discovery.
332
+ -s, --sobject=<value>... SObject API name(s) to filter to. Applies only to issues that name an SObject; issues
333
+ that span the whole scan (a duplicate DeveloperName, or a binding with no resolvable
334
+ SObject) are always reported, since filtering could hide the exact conflict they exist to
335
+ catch. If not specified, every issue is included.
336
+ --api-version=<value> Override the api version used for api requests made by this command
337
+
338
+ GLOBAL FLAGS
339
+ --flags-dir=<value> Import flag values from a directory.
340
+ --json Format output as json.
341
+
342
+ DESCRIPTION
343
+ Validate the AT4DX Trigger Action Framework bindings configured in an org or local source, failing when a wiring
344
+ problem is found.
345
+
346
+ Reads AT4DX's Trigger Action Framework Custom Metadata Type — `DomainProcessBinding__mdt` — either from a live org or
347
+ from local Salesforce DX source, and checks it for problems `simply aep at4dx domain-process-binding list` doesn't
348
+ fail on: two active records silently fighting over the same execution slot, a binding with no resolvable SObject, a
349
+ binding whose declared process context doesn't match the field that's actually populated (so it never runs), the same
350
+ DeveloperName defined more than once, and an ambiguous SObject reference. Exactly one of `--target-org` or
351
+ `--source-dir` must be specified.
352
+
353
+ Prints a table of every issue found. When --sobject is specified, scan-wide issues (a duplicate DeveloperName, or a
354
+ binding with no resolvable SObject) print in their own section below the filtered table, since they can't be
355
+ attributed to one SObject. Exits non-zero when any issue is an error (a warning alone doesn't fail the command) — use
356
+ this in CI to gate on AT4DX wiring problems before they reach an org.
357
+
358
+ EXAMPLES
359
+ $ sf simply aep at4dx domain-process-binding validate --target-org myOrg
360
+
361
+ $ sf simply aep at4dx domain-process-binding validate --source-dir sfdx-source/core --source-dir sfdx-source/app
362
+
363
+ $ sf simply aep at4dx domain-process-binding validate --target-org myOrg --sobject Account
364
+
365
+ $ sf simply aep at4dx domain-process-binding validate --target-org myOrg --json
366
+ ```
367
+
368
+ _See code: [@simplysf/simply-aep](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-aep@0.6.1/packages/simply-aep/lib/commands/simply/aep/at4dx/domain-process-binding/validate.js)_
369
+
370
+ ## `sf simply apex execute`
371
+
372
+ Execute anonymous Apex code.
373
+
374
+ ```
375
+ USAGE
376
+ $ sf simply apex execute -o <value> -f <value> [--json] [--flags-dir <value>] [--api-version <value>]
377
+
378
+ FLAGS
379
+ -f, --file=<value> (required) Path to Apex file
380
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
381
+ configuration variable is already set.
382
+ --api-version=<value> Override the api version used for api requests made by this command
383
+
384
+ GLOBAL FLAGS
385
+ --flags-dir=<value> Import flag values from a directory.
386
+ --json Format output as json.
387
+
388
+ DESCRIPTION
389
+ Execute anonymous Apex code.
390
+
391
+ Executes an anonymous block of Apex code from a local .apex file against a target org and reports the compile and
392
+ execution results, including any debug logs produced.
393
+
394
+ EXAMPLES
395
+ $ sf simply apex execute --target-org myOrg --file scripts/apex/data-fix.apex
396
+
397
+ FLAG DESCRIPTIONS
398
+ -f, --file=<value> Path to Apex file
399
+
400
+ The path to the local .apex file containing the anonymous Apex code to execute.
401
+ ```
402
+
403
+ _See code: [@simplysf/simply-apex](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-apex@1.6.6/packages/simply-apex/lib/commands/simply/apex/execute.js)_
404
+
405
+ ## `sf simply apex logs purge`
406
+
407
+ Purge Apex debug logs.
408
+
409
+ ```
410
+ USAGE
411
+ $ sf simply apex logs purge -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-w <value>] [-b] [--wait
412
+ <value>]
413
+
414
+ FLAGS
415
+ -b, --use-bulk-api Use Bulk API v2 to query and delete the logs.
416
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
417
+ configuration variable is already set.
418
+ -w, --where=<value> SOQL WHERE clause
419
+ --api-version=<value> Override the api version used for api requests made by this command
420
+ --wait=<value> Number of minutes to wait for the Bulk API jobs to finish.
421
+
422
+ GLOBAL FLAGS
423
+ --flags-dir=<value> Import flag values from a directory.
424
+ --json Format output as json.
425
+
426
+ DESCRIPTION
427
+ Purge Apex debug logs.
428
+
429
+ Deletes ApexLog records from the target org. By default all logs are purged; use --where to scope the deletion to a
430
+ subset of logs.
431
+
432
+ EXAMPLES
433
+ $ sf simply apex logs purge --target-org myOrg
434
+
435
+ $ sf simply apex logs purge --target-org myOrg --where "Status = 'Success'"
436
+
437
+ $ sf simply apex logs purge --target-org myOrg --use-bulk-api
438
+
439
+ $ sf simply apex logs purge --target-org myOrg --use-bulk-api --wait 60
440
+
441
+ FLAG DESCRIPTIONS
442
+ -b, --use-bulk-api Use Bulk API v2 to query and delete the logs.
443
+
444
+ Runs the whole purge as two Bulk API v2 jobs instead of a Tooling API query followed by chunked REST deletes. Bulk
445
+ API processes the deletion asynchronously and does not consume the org's REST API request limit, which suits purges
446
+ of tens of thousands of logs. For small purges the default REST path is faster, since it avoids the overhead of
447
+ creating, uploading, and polling a job.
448
+
449
+ -w, --where=<value> SOQL WHERE clause
450
+
451
+ A WHERE clause used to filter which ApexLog records are purged (e.g. "Status = 'Success'").
452
+
453
+ --wait=<value> Number of minutes to wait for the Bulk API jobs to finish.
454
+
455
+ Only applies with --use-bulk-api. The command polls the query and delete jobs until they complete or this timeout
456
+ elapses, then throws.
457
+ ```
458
+
459
+ _See code: [@simplysf/simply-apex](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-apex@1.6.6/packages/simply-apex/lib/commands/simply/apex/logs/purge.js)_
460
+
461
+ ## `sf simply apex trace setup`
462
+
463
+ Configure a debug log trace flag for the current user, or another user.
464
+
465
+ ```
466
+ USAGE
467
+ $ sf simply apex trace setup -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [--on-behalf-of <value>]
468
+ [--log-level <value>] [--start-date <value>] [--end-date <value>]
469
+
470
+ FLAGS
471
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
472
+ configuration variable is already set.
473
+ --api-version=<value> Override the api version used for api requests made by this command
474
+ --end-date=<value> Expiration date/time of the trace flag, as an ISO 8601 date-time.
475
+ --log-level=<value> Developer name of an existing debug level to use for the trace flag.
476
+ --on-behalf-of=<value> Configure the trace flag for another user, identified by a "Field:Value" pair.
477
+ --start-date=<value> Start date/time of the trace flag, as an ISO 8601 date-time.
478
+
479
+ GLOBAL FLAGS
480
+ --flags-dir=<value> Import flag values from a directory.
481
+ --json Format output as json.
482
+
483
+ DESCRIPTION
484
+ Configure a debug log trace flag for the current user, or another user.
485
+
486
+ Creates or updates a DEVELOPER_LOG trace flag for the target user, using the FINEST/FINER "ReplayDebuggerLevels" debug
487
+ level suitable for the Apex Replay Debugger and running for 24 hours starting now, by default. Use --on-behalf-of to
488
+ configure the trace flag for a different user instead; --log-level, --start-date, and --end-date override the other
489
+ defaults.
490
+
491
+ EXAMPLES
492
+ $ sf simply apex trace setup --target-org myOrg
493
+
494
+ $ sf simply apex trace setup --target-org myOrg --on-behalf-of Username:someuser@example.com
495
+
496
+ $ sf simply apex trace setup --target-org myOrg --on-behalf-of FederationIdentifier:123456
497
+
498
+ $ sf simply apex trace setup --target-org myOrg --log-level MyCustomDebugLevel --start-date 2026-08-18T09:00:00Z --end-date 2026-08-19T09:00:00Z
499
+
500
+ FLAG DESCRIPTIONS
501
+ --end-date=<value> Expiration date/time of the trace flag, as an ISO 8601 date-time.
502
+
503
+ Defaults to 24 hours after the start date/time.
504
+
505
+ --log-level=<value> Developer name of an existing debug level to use for the trace flag.
506
+
507
+ Must already exist in the org; it's looked up but never created or modified. Defaults to the "ReplayDebuggerLevels"
508
+ debug level, which is created automatically if it doesn't exist.
509
+
510
+ --on-behalf-of=<value> Configure the trace flag for another user, identified by a "Field:Value" pair.
511
+
512
+ Any unique User field can be used, for example "Username:someuser@example.com" or "FederationIdentifier:123456".
513
+
514
+ --start-date=<value> Start date/time of the trace flag, as an ISO 8601 date-time.
515
+
516
+ Defaults to the current date/time.
517
+ ```
518
+
519
+ _See code: [@simplysf/simply-apex](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-apex@1.6.6/packages/simply-apex/lib/commands/simply/apex/trace/setup.js)_
520
+
521
+ ## `sf simply apex trace silence`
522
+
523
+ Silence debug logs for specific Apex classes.
524
+
525
+ ```
526
+ USAGE
527
+ $ sf simply apex trace silence -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-c <value> | --classes-file
528
+ <value>] [--fflib] [--at4dx] [--force-di]
529
+
530
+ FLAGS
531
+ -c, --classes=<value> Comma-separated Apex class names
532
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
533
+ configuration variable is already set.
534
+ --api-version=<value> Override the api version used for api requests made by this command
535
+ --at4dx Silence at4dx base classes
536
+ --classes-file=<value> Path to a JSON file listing classes to silence
537
+ --fflib Silence fflib base classes
538
+ --force-di Silence force-di base classes
539
+
540
+ GLOBAL FLAGS
541
+ --flags-dir=<value> Import flag values from a directory.
542
+ --json Format output as json.
543
+
544
+ DESCRIPTION
545
+ Silence debug logs for specific Apex classes.
546
+
547
+ Creates or updates a 24-hour CLASS_TRACING trace flag with a fully suppressed (NONE) debug level for each specified
548
+ Apex class, preventing those classes from generating debug log output. If a class already has a trace flag, its
549
+ expiration is extended instead of creating a duplicate.
550
+
551
+ EXAMPLES
552
+ $ sf simply apex trace silence --target-org myOrg --classes NoisyClass,ChattyTrigger
553
+
554
+ $ sf simply apex trace silence --target-org myOrg --classes-file classesToSilence.json
555
+
556
+ $ sf simply apex trace silence --target-org myOrg --fflib --at4dx --force-di
557
+
558
+ $ sf simply apex trace silence --target-org myOrg --classes NoisyClass --fflib
559
+
560
+ FLAG DESCRIPTIONS
561
+ -c, --classes=<value> Comma-separated Apex class names
562
+
563
+ A comma-separated list of Apex class names to silence.
564
+
565
+ --at4dx Silence at4dx base classes
566
+
567
+ Adds ApplicationSObjectDomain to the classes to silence.
568
+
569
+ --classes-file=<value> Path to a JSON file listing classes to silence
570
+
571
+ The path to a JSON file with the shape { "classes": ["ClassOne", "ClassTwo"] } listing the Apex class names to
572
+ silence.
573
+
574
+ --fflib Silence fflib base classes
575
+
576
+ Adds fflib_SObjectDescribe and fflib_SObjectDomain to the classes to silence.
577
+
578
+ --force-di Silence force-di base classes
579
+
580
+ Adds di_Binding, di_Module, di_PlatformCache, and di_Injector to the classes to silence.
581
+ ```
582
+
583
+ _See code: [@simplysf/simply-apex](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-apex@1.6.6/packages/simply-apex/lib/commands/simply/apex/trace/silence.js)_
584
+
585
+ ## `sf simply community publish`
586
+
587
+ Publish a Salesforce Community (Experience Cloud site), waiting until the publish completes.
588
+
589
+ ```
590
+ USAGE
591
+ $ sf simply community publish -o <value> --name <value> [--json] [--flags-dir <value>] [--api-version <value>] [--wait
592
+ <value>] [--retry-attempts <value>] [--retry-backoff <value>] [--ignore-errors]
593
+
594
+ FLAGS
595
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
596
+ configuration variable is already set.
597
+ --api-version=<value> Override the api version used for api requests made by this command
598
+ --ignore-errors Log a warning and exit successfully if the publish fails, instead of throwing an error.
599
+ --name=<value> (required) Name of the community (Experience Cloud site) to publish.
600
+ --retry-attempts=<value> Number of additional attempts to make if the initial publish request fails, before
601
+ giving up. Defaults to 0 (no retries). Does not apply to polling for the publish job's
602
+ completion, which already retries until --wait elapses.
603
+ --retry-backoff=<value> [default: 2] Factor the delay between publish request retries grows by after each failed
604
+ attempt (e.g. 2 doubles the delay each time). Only relevant when --retry-attempts is
605
+ greater than 0.
606
+ --wait=<value> [default: 15] Minutes to wait for the publish to complete before giving up. Salesforce's
607
+ own publish jobs time out after 15 minutes server-side, so waiting longer than that has
608
+ no effect.
609
+
610
+ GLOBAL FLAGS
611
+ --flags-dir=<value> Import flag values from a directory.
612
+ --json Format output as json.
613
+
614
+ DESCRIPTION
615
+ Publish a Salesforce Community (Experience Cloud site), waiting until the publish completes.
616
+
617
+ Looks up the community by `--name`, triggers a publish via the Connect REST API, then polls until the publish job
618
+ reaches a terminal state — throwing an error if it fails, rather than returning as soon as the publish request is
619
+ accepted. The Salesforce CLI's own `sf community publish` command does not wait for completion; this command exists to
620
+ fill that gap for pipelines that need to know publishing actually succeeded before continuing.
621
+
622
+ EXAMPLES
623
+ $ sf simply community publish --target-org my-org --name "My Community"
624
+
625
+ $ sf simply community publish --target-org my-org --name "My Community" --wait 20
626
+
627
+ $ sf simply community publish --target-org my-org --name "My Community" --retry-attempts 3 --retry-backoff 2
628
+
629
+ $ sf simply community publish --target-org my-org --name "My Community" --ignore-errors
630
+ ```
631
+
632
+ _See code: [@simplysf/simply-community](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-community@0.6.2/packages/simply-community/lib/commands/simply/community/publish.js)_
633
+
634
+ ## `sf simply community url set`
635
+
636
+ Set an Experience Cloud site's custom domain (and optionally its URL path prefix) by patching the site's metadata in place.
637
+
638
+ ```
639
+ USAGE
640
+ $ sf simply community url set -s <value> -d <value> [--json] [--flags-dir <value>] [-p <value>] [--primary] [--directory
641
+ <value>] [--deploy] [--publish] [-o <value>] [--api-version <value>] [-w <value>] [--ignore-missing-domain]
642
+
643
+ FLAGS
644
+ -d, --domain=<value> (required) Fully qualified custom domain to set, e.g. `partners.acme.com`. Must already
645
+ be registered in the target org (Setup → Custom URLs); this command cannot register one.
646
+ -o, --target-org=<value> Username or alias of the target org.
647
+ -p, --path-prefix=<value> URL path prefix. When given, written to both the site file and the `Network` metadata
648
+ file that references the site.
649
+ -s, --site=<value> (required) CustomSite API name — the basename of `sites/<name>.site-meta.xml`.
650
+ -w, --wait=<value> [default: 33] Minutes to wait for the deploy to complete before giving up. Matches `sf
651
+ project deploy start`'s default of 33. Only relevant with --deploy.
652
+ --api-version=<value> Override the api version used for api requests made by this command
653
+ --deploy Deploy the files this command changed, then restore their original contents so the
654
+ working tree ends up unmodified. Requires --target-org.
655
+ --directory=<value> Root directory to search for the site (and, if needed, network) metadata files. Defaults
656
+ to searching every package directory listed in sfdx-project.json. Also used as the
657
+ destination if the site file needs to be retrieved from --target-org, defaulting in that
658
+ case to the project's default package directory.
659
+ --ignore-missing-domain Downgrade "domain is not registered in this org" from an error to a warning, and proceed
660
+ anyway. Has no effect without --target-org, since there's no check to ignore.
661
+ --[no-]primary Whether the custom domain entry is the site's primary URL. Pass --no-primary to set it
662
+ false. Defaults to true.
663
+ --publish After a successful deploy, publish the site and wait for the publish to complete.
664
+ Requires --deploy.
665
+
666
+ GLOBAL FLAGS
667
+ --flags-dir=<value> Import flag values from a directory.
668
+ --json Format output as json.
669
+
670
+ DESCRIPTION
671
+ Set an Experience Cloud site's custom domain (and optionally its URL path prefix) by patching the site's metadata in
672
+ place.
673
+
674
+ Patches `sites/<Site>.site-meta.xml` — replacing its `customWebAddresses` with a single entry for `--domain` — and,
675
+ when `--path-prefix` is given, also patches `urlPathPrefix` on both that file and the `Network` metadata file that
676
+ references the site. It does not touch anything else, and by default it does not deploy: this is a pre-deploy step
677
+ meant to run right before whatever deploy command the pipeline already runs.
678
+
679
+ Pass `--deploy` to also deploy just the files this command changed and restore their original contents afterwards, so
680
+ the working tree is left exactly as it found it — the only lasting change is in the org. Add `--publish` to publish
681
+ the site after a successful deploy.
682
+
683
+ A domain must already be registered in the target org (Setup → Custom URLs) before a site can be pointed at it; this
684
+ command cannot register one. When `--target-org` is given, it checks the domain is registered before writing anything,
685
+ so a typo surfaces immediately instead of as an opaque deploy failure.
686
+
687
+ If the site file isn't found locally and `--target-org` is given, it's retrieved from the org instead of erroring — a
688
+ warning says so, since a `--site` typo now triggers a retrieve rather than a fast local error. This only applies to
689
+ the site file; a missing `Network` metadata file (needed for `--path-prefix` or `--publish`) still errors even with
690
+ `--target-org`.
691
+
692
+ EXAMPLES
693
+ $ sf simply community url set --site Partner_Portal --domain partners.acme.com
694
+
695
+ $ sf simply community url set --site Partner_Portal --domain partners.acme.com --path-prefix partners
696
+
697
+ $ sf simply community url set --site Partner_Portal --domain partners.acme.com --target-org my-org --ignore-missing-domain
698
+
699
+ $ sf simply community url set --site Partner_Portal --domain partners.acme.com --deploy --target-org my-org
700
+
701
+ $ sf simply community url set --site Partner_Portal --domain partners.acme.com --path-prefix partners --deploy --publish --target-org my-org
702
+
703
+ $ sf simply community url set --site Partner_Portal --domain partners.acme.com --deploy --target-org my-org # retrieves the site file first if it isn't found locally
704
+ ```
705
+
706
+ _See code: [@simplysf/simply-community](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-community@0.6.2/packages/simply-community/lib/commands/simply/community/url/set.js)_
707
+
708
+ ## `sf simply data file upload`
709
+
710
+ Upload a file to a Salesforce org.
711
+
712
+ ```
713
+ USAGE
714
+ $ sf simply data file upload -o <value> --file-path <value> [--json] [--flags-dir <value>] [--api-version <value>]
715
+ [--max-api-usage <value>] [--first-publish-location-id <value>] [--title <value>]
716
+
717
+ FLAGS
718
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the
719
+ `target-org` configuration variable is already set.
720
+ --api-version=<value> Override the api version used for api requests made by this command
721
+ --file-path=<value> (required) Path to the file to upload. May be relative or absolute; only the
722
+ file's name is sent to the org.
723
+ --first-publish-location-id=<value> Specify a record Id that the file should be linked to.
724
+ --max-api-usage=<value> [default: 20] Maximum percentage of the org's remaining API requests this run
725
+ may consume.
726
+ --title=<value> Specify the title for the file being uploaded.
727
+
728
+ GLOBAL FLAGS
729
+ --flags-dir=<value> Import flag values from a directory.
730
+ --json Format output as json.
731
+
732
+ DESCRIPTION
733
+ Upload a file to a Salesforce org.
734
+
735
+ Uploads a file to a Salesforce org.
736
+
737
+ Only the file's name is sent to the org — Salesforce stores it as the ContentVersion's PathOnClient and derives
738
+ FileExtension and FileType from it — so the local directory the file came from is never uploaded.
739
+
740
+ EXAMPLES
741
+ $ sf simply data file upload --file-path fileToUpload.txt --target-org myTargetOrg
742
+
743
+ $ sf simply data file upload --file-path fileToUpload.txt --first-publish-location-id 0019000000DmehK --target-org myTargetOrg
744
+
745
+ FLAG DESCRIPTIONS
746
+ --max-api-usage=<value> Maximum percentage of the org's remaining API requests this run may consume.
747
+
748
+ Checked before any request is made, so a run that would exceed its budget stops without doing partial work. The
749
+ percentage applies to the requests the org has left today, not to its daily maximum — an org that has already used
750
+ most of its allocation gets a proportionally smaller budget.
751
+
752
+ Note that uploading a file costs two API requests, not one: the upload itself, and a follow-up query for the
753
+ resulting ContentDocumentId.
754
+
755
+ A run that cannot finish within the org's remaining requests is refused regardless of this value. To allow a larger
756
+ share, raise it; to allow the maximum, pass 100.
757
+
758
+ If the org's remaining allocation can't be read — reading it falls back to the limits API, which needs the "View
759
+ Setup and Configuration" permission — the command warns and proceeds rather than failing.
760
+ ```
761
+
762
+ _See code: [@simplysf/simply-data](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-data@2.4.1/packages/simply-data/lib/commands/simply/data/file/upload.js)_
763
+
764
+ ## `sf simply data files download`
765
+
766
+ Download files from a Salesforce org.
767
+
768
+ ```
769
+ USAGE
770
+ $ sf simply data files download -o <value> --where-content-version <value> [--json] [--flags-dir <value>] [--api-version
771
+ <value>] [--max-api-usage <value>] [--max-parallel-jobs <value>]
772
+
773
+ FLAGS
774
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
775
+ configuration variable is already set.
776
+ --api-version=<value> Override the api version used for api requests made by this command
777
+ --max-api-usage=<value> [default: 20] Maximum percentage of the org's remaining API requests this run may
778
+ consume.
779
+ --max-parallel-jobs=<value> [default: 1] Maximum number of parallel jobs.
780
+ --where-content-version=<value> (required) WHERE clause for ContentVersion query.
781
+
782
+ GLOBAL FLAGS
783
+ --flags-dir=<value> Import flag values from a directory.
784
+ --json Format output as json.
785
+
786
+ DESCRIPTION
787
+ Download files from a Salesforce org.
788
+
789
+ Downloads files specified by a where clause for a ContentVersion query from a Salesforce org. By default, the plugin
790
+ uses the REST API for the download as to allow for the streaming of large files without issue. This means that each
791
+ file will use one REST API request.
792
+
793
+ EXAMPLES
794
+ $ sf simply data files download --where-content-version "IsLatest=true" --target-org myTargetOrg
795
+
796
+ $ sf simply data files download --where-content-version "IsLatest=true" --max-parallel-jobs 5 --target-org myTargetOrg
797
+
798
+ FLAG DESCRIPTIONS
799
+ --max-api-usage=<value> Maximum percentage of the org's remaining API requests this run may consume.
800
+
801
+ Checked before any request is made, so a run that would exceed its budget stops without doing partial work. The
802
+ percentage applies to the requests the org has left today, not to its daily maximum — an org that has already used
803
+ most of its allocation gets a proportionally smaller budget.
804
+
805
+ Note that uploading a file costs two API requests, not one: the upload itself, and a follow-up query for the
806
+ resulting ContentDocumentId.
807
+
808
+ A run that cannot finish within the org's remaining requests is refused regardless of this value. To allow a larger
809
+ share, raise it; to allow the maximum, pass 100.
810
+
811
+ If the org's remaining allocation can't be read — reading it falls back to the limits API, which needs the "View
812
+ Setup and Configuration" permission — the command warns and proceeds rather than failing.
813
+
814
+ --max-parallel-jobs=<value> Maximum number of parallel jobs.
815
+
816
+ By default the plugin will only process a single file download at a time. You can increase this value to allow for
817
+ quasi concurrent downloads. Please note that setting this value too high can cause performance issues.
818
+
819
+ --where-content-version=<value> WHERE clause for ContentVersion query.
820
+
821
+ Provide a WHERE clause to allow the plugin to specify which ContentVersion records should be downloaded.
822
+ ```
823
+
824
+ _See code: [@simplysf/simply-data](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-data@2.4.1/packages/simply-data/lib/commands/simply/data/files/download.js)_
825
+
826
+ ## `sf simply data files upload`
827
+
828
+ Upload files to a Salesforce org.
829
+
830
+ ```
831
+ USAGE
832
+ $ sf simply data files upload -o <value> --file-path <value> [--json] [--flags-dir <value>] [--api-version <value>]
833
+ [--max-api-usage <value>] [--max-parallel-jobs <value>]
834
+
835
+ FLAGS
836
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
837
+ configuration variable is already set.
838
+ --api-version=<value> Override the api version used for api requests made by this command
839
+ --file-path=<value> (required) Path to the csv file that specifies the upload.
840
+ --max-api-usage=<value> [default: 20] Maximum percentage of the org's remaining API requests this run may
841
+ consume.
842
+ --max-parallel-jobs=<value> [default: 1] Maximum number of parallel jobs.
843
+
844
+ GLOBAL FLAGS
845
+ --flags-dir=<value> Import flag values from a directory.
846
+ --json Format output as json.
847
+
848
+ DESCRIPTION
849
+ Upload files to a Salesforce org.
850
+
851
+ Uploads files specified by a csv to a Salesforce org. By default, the plugin uses the REST API for the upload as the
852
+ Bulk API is limited in its payload size. This means that each file will use one REST API request.
853
+
854
+ EXAMPLES
855
+ $ sf simply data files upload --file-path filesToUpload.csv --target-org myTargetOrg
856
+
857
+ $ sf simply data files upload --file-path filesToUpload.csv --max-parallel-jobs 5 --target-org myTargetOrg
858
+
859
+ FLAG DESCRIPTIONS
860
+ --file-path=<value> Path to the csv file that specifies the upload.
861
+
862
+ The csv file must specify the columns PathOnClient and Title. Optionally, a FirstPublishLocationId can be specified
863
+ to have it linked directly to a Salesforce record after upload.
864
+
865
+ PathOnClient is the local path each file is read from, and may be relative or absolute. Only the file's name is sent
866
+ to the org — Salesforce stores it as the ContentVersion's PathOnClient and derives FileExtension and FileType from
867
+ it — so the local directory the file came from is never uploaded.
868
+
869
+ --max-api-usage=<value> Maximum percentage of the org's remaining API requests this run may consume.
870
+
871
+ Checked before any request is made, so a run that would exceed its budget stops without doing partial work. The
872
+ percentage applies to the requests the org has left today, not to its daily maximum — an org that has already used
873
+ most of its allocation gets a proportionally smaller budget.
874
+
875
+ Note that uploading a file costs two API requests, not one: the upload itself, and a follow-up query for the
876
+ resulting ContentDocumentId.
877
+
878
+ A run that cannot finish within the org's remaining requests is refused regardless of this value. To allow a larger
879
+ share, raise it; to allow the maximum, pass 100.
880
+
881
+ If the org's remaining allocation can't be read — reading it falls back to the limits API, which needs the "View
882
+ Setup and Configuration" permission — the command warns and proceeds rather than failing.
883
+
884
+ --max-parallel-jobs=<value> Maximum number of parallel jobs.
885
+
886
+ By default the plugin will only process a single file upload at a time. You can increase this value to allow for
887
+ quasi concurrent uploads. Please note that setting this value too high can cause performance issues.
888
+ ```
889
+
890
+ _See code: [@simplysf/simply-data](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-data@2.4.1/packages/simply-data/lib/commands/simply/data/files/upload.js)_
891
+
892
+ ## `sf simply document diff`
893
+
894
+ Generate a change report between two git refs.
895
+
896
+ ```
897
+ USAGE
898
+ $ sf simply document diff --from-tag <value> --to-tag <value> [--json] [--flags-dir <value>] [--output-file <value>]
899
+ [--template-file <value>] [--output-format html]
900
+
901
+ FLAGS
902
+ --from-tag=<value> (required) The starting git ref for the diff report.
903
+ --output-file=<value> Path to write the generated report to.
904
+ --output-format=<option> [default: html] Output format to render the report in.
905
+ <options: html>
906
+ --template-file=<value> Path to a custom Handlebars template to render instead of the built-in one.
907
+ --to-tag=<value> (required) The ending git ref for the diff report.
908
+
909
+ GLOBAL FLAGS
910
+ --flags-dir=<value> Import flag values from a directory.
911
+ --json Format output as json.
912
+
913
+ DESCRIPTION
914
+ Generate a change report between two git refs.
915
+
916
+ Runs `git diff --name-status` between two git refs (tags, branches, or commits) in the current working directory,
917
+ groups the changed files by Salesforce metadata component type, and renders a Confluence-storage-format change report
918
+ suitable for pasting into a release or change-management page.
919
+
920
+ EXAMPLES
921
+ $ sf simply document diff --from-tag v1.0.0 --to-tag v1.1.0
922
+
923
+ $ sf simply document diff --from-tag v1.0.0 --to-tag v1.1.0 --output-file change-report.html
924
+
925
+ $ sf simply document diff --from-tag v1.0.0 --to-tag v1.1.0 --template-file my-change-report.hbs
926
+
927
+ FLAG DESCRIPTIONS
928
+ --output-file=<value> Path to write the generated report to.
929
+
930
+ When specified, the generated report is written to this path instead of being printed to the terminal.
931
+
932
+ --output-format=html Output format to render the report in.
933
+
934
+ Currently only `html` is supported. Reserved for future formats (e.g. Markdown).
935
+
936
+ --template-file=<value> Path to a custom Handlebars template to render instead of the built-in one.
937
+
938
+ When specified, this template is rendered with the same data the built-in report template receives, and can reuse
939
+ the built-in `changeTable` partial. See this package's README "Custom Templates" section for the data shape and
940
+ available partials.
941
+ ```
942
+
943
+ _See code: [@simplysf/simply-document](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-document@0.3.6/packages/simply-document/lib/commands/simply/document/diff.js)_
944
+
945
+ ## `sf simply document generate`
946
+
947
+ Generate a technical design document for a Salesforce project.
948
+
949
+ ```
950
+ USAGE
951
+ $ sf simply document generate -d <value> --output-file <value> [--json] [--flags-dir <value>] [--template-file <value>]
952
+ [--output-format html]
953
+
954
+ FLAGS
955
+ -d, --directory=<value> (required) Salesforce project source directory to scan.
956
+ --output-file=<value> (required) Path to write the generated document to.
957
+ --output-format=<option> [default: html] Output format to render the document in.
958
+ <options: html>
959
+ --template-file=<value> Path to a custom Handlebars template to render instead of the built-in one.
960
+
961
+ GLOBAL FLAGS
962
+ --flags-dir=<value> Import flag values from a directory.
963
+ --json Format output as json.
964
+
965
+ DESCRIPTION
966
+ Generate a technical design document for a Salesforce project.
967
+
968
+ Scans a Salesforce DX project's source directory for metadata (objects, fields, Apex, Lightning components, flows,
969
+ permissions, and more) and renders a Confluence-storage-format technical design document covering the data model,
970
+ security model, groups/queues/permissions, solution inventory, and custom code inventory.
971
+
972
+ EXAMPLES
973
+ $ sf simply document generate --directory force-app --output-file technical-design-document.html
974
+
975
+ $ sf simply document generate --directory force-app --output-file technical-design-document.html --template-file my-tdd-template.hbs
976
+
977
+ FLAG DESCRIPTIONS
978
+ --output-format=html Output format to render the document in.
979
+
980
+ Currently only `html` is supported. Reserved for future formats (e.g. Markdown).
981
+
982
+ --template-file=<value> Path to a custom Handlebars template to render instead of the built-in one.
983
+
984
+ When specified, this template is rendered with the same scanned project data the built-in technical design document
985
+ template receives, and can reuse the built-in `loud` helper. See this package's README "Custom Templates" section
986
+ for the data shape.
987
+ ```
988
+
989
+ _See code: [@simplysf/simply-document](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-document@0.3.6/packages/simply-document/lib/commands/simply/document/generate.js)_
990
+
991
+ ## `sf simply flow delete`
992
+
993
+ Deactivate and delete every version of one or more Flows.
994
+
995
+ ```
996
+ USAGE
997
+ $ sf simply flow delete -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-f <value>] [-n <value>...]
998
+
999
+ FLAGS
1000
+ -f, --file=<value> Path to a destructiveChanges.xml/package.xml-shaped file
1001
+ -n, --flow-name=<value>... Flow DeveloperName(s) to delete
1002
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
1003
+ configuration variable is already set.
1004
+ --api-version=<value> Override the api version used for api requests made by this command
1005
+
1006
+ GLOBAL FLAGS
1007
+ --flags-dir=<value> Import flag values from a directory.
1008
+ --json Format output as json.
1009
+
1010
+ DESCRIPTION
1011
+ Deactivate and delete every version of one or more Flows.
1012
+
1013
+ Deactivates every active version of each named Flow (so it no longer counts as "active" against Salesforce's
1014
+ restriction on deleting a Flow that still has one), then hard-deletes every version of it via the Tooling API. This is
1015
+ the pre-step a destructive metadata deploy needs before it can remove a Flow.
1016
+
1017
+ Flows can be named either via `--file`, pointing at a `destructiveChanges.xml`/`package.xml`-shaped file whose `Flow`
1018
+ type members are the flows to delete, or via one or more `--flow-name` flags for scripted or one-off use. Exactly one
1019
+ of the two must be given.
1020
+
1021
+ A failure deactivating or deleting one flow doesn't stop the others from being attempted — every failure is collected
1022
+ and reported, and the command exits non-zero if any occurred.
1023
+
1024
+ EXAMPLES
1025
+ $ sf simply flow delete --file destructive/pre/destructiveChanges.xml --target-org myOrg
1026
+
1027
+ $ sf simply flow delete --flow-name My_Flow --flow-name Another_Flow --target-org myOrg
1028
+
1029
+ $ sf simply flow delete --file destructive/pre/destructiveChanges.xml --target-org myOrg --json
1030
+ ```
1031
+
1032
+ _See code: [@simplysf/simply-flow](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-flow@0.2.0/packages/simply-flow/lib/commands/simply/flow/delete.js)_
1033
+
1034
+ ## `sf simply flow version prune`
1035
+
1036
+ Delete obsolete versions of Flows found in local source.
1037
+
1038
+ ```
1039
+ USAGE
1040
+ $ sf simply flow version prune -o <value> -d <value>... [--json] [--flags-dir <value>] [--api-version <value>]
1041
+ [--dry-run]
1042
+
1043
+ FLAGS
1044
+ -d, --source-dir=<value>... (required) Directories to scan for *.flow-meta.xml files
1045
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
1046
+ configuration variable is already set.
1047
+ --api-version=<value> Override the api version used for api requests made by this command
1048
+ --dry-run List obsolete versions without deleting them
1049
+
1050
+ GLOBAL FLAGS
1051
+ --flags-dir=<value> Import flag values from a directory.
1052
+ --json Format output as json.
1053
+
1054
+ DESCRIPTION
1055
+ Delete obsolete versions of Flows found in local source.
1056
+
1057
+ Scans one or more source directories for `*.flow-meta.xml` files, then deletes any Tooling API Flow version already
1058
+ `Status = 'Obsolete'` for those flows — keeping an org's Flow version history from accumulating indefinitely. Unlike
1059
+ `simply flow delete`, this never touches an active Flow; it only removes versions the org itself already marked
1060
+ obsolete.
1061
+
1062
+ Use `--dry-run` to see what would be deleted without deleting anything.
1063
+
1064
+ EXAMPLES
1065
+ $ sf simply flow version prune --target-org myOrg --source-dir sfdx-source/core
1066
+
1067
+ $ sf simply flow version prune --target-org myOrg --source-dir sfdx-source/core --dry-run
1068
+ ```
1069
+
1070
+ _See code: [@simplysf/simply-flow](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-flow@0.2.0/packages/simply-flow/lib/commands/simply/flow/version/prune.js)_
1071
+
1072
+ ## `sf simply package dependencies install`
1073
+
1074
+ Install package dependencies for a Salesforce project.
1075
+
1076
+ ```
1077
+ USAGE
1078
+ $ sf simply package dependencies install -o <value> [--json] [--flags-dir <value>] [-a all|package] [--api-version <value>] [-z
1079
+ <value>] [-i All|Delta|Upgrade] [-k <value>...] [-r] [--output-file <value>] [--package-retry-attempts <value>...]
1080
+ [-b <value>] [--retry-attempts <value>] [--retry-backoff <value>] [-s AllUsers|AdminsOnly] [-v <value>] [-t
1081
+ DeprecateOnly|Mixed|Delete] [-w <value>]
1082
+
1083
+ FLAGS
1084
+ -a, --apex-compile=<option> Compile all Apex in the org and package, or only Apex in the package;
1085
+ unlocked packages only.
1086
+ <options: all|package>
1087
+ -b, --publish-wait=<value> Maximum number of minutes to wait for the Subscriber Package Version ID to
1088
+ become available in the target org before canceling the install request.
1089
+ -i, --install-type=<option> [default: Upgrade] Install all packages, only deltas, or only newer versions.
1090
+ <options: All|Delta|Upgrade>
1091
+ -k, --installation-key=<value>... Installation key for key-protected packages
1092
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the
1093
+ `target-org` configuration variable is already set.
1094
+ -r, --no-prompt Don't prompt for confirmation.
1095
+ -s, --security-type=<option> [default: AdminsOnly] Security access type for the installed package.
1096
+ (deprecation notice: The default --security-type value will change from
1097
+ AllUsers to AdminsOnly in v47.0 or later.)
1098
+ <options: AllUsers|AdminsOnly>
1099
+ -t, --upgrade-type=<option> [default: Mixed] Upgrade type for the package installation; available only
1100
+ for unlocked packages.
1101
+ <options: DeprecateOnly|Mixed|Delete>
1102
+ -v, --target-dev-hub=<value> Username or alias of the Dev Hub org.
1103
+ -w, --wait=<value> Number of minutes to wait for installation status.
1104
+ -z, --branch=<value> Package branch to consider when specifiying a Package/VersionNumber
1105
+ combination
1106
+ --api-version=<value> Override the api version used for api requests made by this command
1107
+ --output-file=<value> Path to write a JSON install report to.
1108
+ --package-retry-attempts=<value>... Number of retry attempts for a specific package, overriding --retry-attempts
1109
+ for that package only.
1110
+ --retry-attempts=<value> Number of additional attempts to make if a package install fails, before
1111
+ giving up on that package. Defaults to 0 (no retries). Does not apply when
1112
+ the install is still In-Progress when polling times out, since retrying could
1113
+ race or duplicate an install that may still complete server-side. Overridden
1114
+ per-package by --package-retry-attempts.
1115
+ --retry-backoff=<value> [default: 2] Factor the delay between install retries grows by after each
1116
+ failed attempt (e.g. 2 doubles the delay each time). Only relevant when a
1117
+ package has retries enabled via --retry-attempts or --package-retry-attempts.
1118
+ Applies to every package's retries; there is no per-package override.
1119
+
1120
+ GLOBAL FLAGS
1121
+ --flags-dir=<value> Import flag values from a directory.
1122
+ --json Format output as json.
1123
+
1124
+ DESCRIPTION
1125
+ Install package dependencies for a Salesforce project.
1126
+
1127
+ Installs all specified package dependencies in a Salesforce DX project using the sfdx-project.json definition.
1128
+
1129
+ EXAMPLES
1130
+ $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub
1131
+
1132
+ $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub --installation-key "MyPackage1Alias:MyPackage1Key"
1133
+
1134
+ $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub --installation-key "MyPackage1Alias:MyPackage1Key" --installation-key "MyPackage2Alias:MyPackage2Key"
1135
+
1136
+ $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub --output-file install-report.json
1137
+
1138
+ $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub --retry-attempts 3 --retry-backoff 2
1139
+
1140
+ $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub --retry-attempts 1 --package-retry-attempts "MyPackage1Alias:5"
1141
+
1142
+ FLAG DESCRIPTIONS
1143
+ -a, --apex-compile=all|package
1144
+
1145
+ Compile all Apex in the org and package, or only Apex in the package; unlocked packages only.
1146
+
1147
+ Applies to unlocked packages only. Specifies whether to compile all Apex in the org and package, or only the Apex in
1148
+ the package.
1149
+
1150
+ For package installs into production orgs, or any org that has Apex Compile on Deploy enabled, the platform compiles
1151
+ all Apex in the org after the package install or upgrade operation completes.
1152
+
1153
+ This approach assures that package installs and upgrades don’t impact the performance of an org, and is done even if
1154
+ --apex-compile package is specified.
1155
+
1156
+ -i, --install-type=All|Delta|Upgrade Install all packages, only deltas, or only newer versions.
1157
+
1158
+ If 'All' is specified, then all packages specified in package dependencies are installed, regardless of if the
1159
+ version already is installed in the org. If 'Delta' is specified, then only packages that differ from what is
1160
+ installed in the org will be installed. If 'Upgrade' is specified, then a package is installed only if it isn't
1161
+ already installed, or if its semantic version (major.minor.patch.build) is newer than the version currently
1162
+ installed in the org; packages with an installed version that is the same as or newer than the target version are
1163
+ skipped.
1164
+
1165
+ -k, --installation-key=<value>... Installation key for key-protected packages
1166
+
1167
+ Installation key for key-protected packages in the key:value format of SubscriberPackageVersionId:Key
1168
+
1169
+ -r, --no-prompt Don't prompt for confirmation.
1170
+
1171
+ Allows the following without an explicit confirmation response: 1) Remote Site Settings and Content Security Policy
1172
+ websites to send or receive data, and 2) --upgrade-type Delete to proceed.
1173
+
1174
+ -t, --upgrade-type=DeprecateOnly|Mixed|Delete
1175
+
1176
+ Upgrade type for the package installation; available only for unlocked packages.
1177
+
1178
+ For package upgrades, specifies whether to mark all removed components as deprecated (DeprecateOnly), to delete
1179
+ removed components that can be safely deleted and deprecate the others (Mixed), or to delete all removed components,
1180
+ except for custom objects and custom fields, that don't have dependencies (Delete). The default is Mixed. Can
1181
+ specify DeprecateOnly or Delete only for unlocked package upgrades.
1182
+
1183
+ -z, --branch=<value> Package branch to consider when specifiying a Package/VersionNumber combination
1184
+
1185
+ For dependencies specified by Package/VersionNumber combination, you can specify the branch group of builds to work
1186
+ from by entering the branch build name. If not specified, the builds from NULL branch will be considered.
1187
+
1188
+ --output-file=<value> Path to write a JSON install report to.
1189
+
1190
+ When specified, a JSON report of the install outcome for every resolved dependency is written to this path, in
1191
+ addition to the normal terminal output you can continue to monitor as the command runs. Each entry includes the
1192
+ package name, the SubscriberPackageVersionId already installed in the org (if any), the SubscriberPackageVersionId
1193
+ that was attempted, and the decision made (Skipped, Installed, Installing, or Failed).
1194
+
1195
+ --package-retry-attempts=<value>...
1196
+
1197
+ Number of retry attempts for a specific package, overriding --retry-attempts for that package only.
1198
+
1199
+ Retry attempts for a specific package in the key:value format of SubscriberPackageVersionId:RetryAttempts. You can
1200
+ use an alias in place of the SubscriberPackageVersionId. Repeat this flag to set overrides for multiple packages.
1201
+ Packages not listed here use --retry-attempts.
1202
+ ```
1203
+
1204
+ _See code: [@simplysf/simply-package](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-package@2.10.2/packages/simply-package/lib/commands/simply/package/dependencies/install.js)_
1205
+
1206
+ ## `sf simply package dependencies manage`
1207
+
1208
+ Manage package dependency versions for a Salesforce project.
1209
+
1210
+ ```
1211
+ USAGE
1212
+ $ sf simply package dependencies manage -v <value> [--json] [--flags-dir <value>] [-b <value>] [--update-to-released |
1213
+ --update-to-latest] [--api-version <value>]
1214
+
1215
+ FLAGS
1216
+ -b, --branch=<value> Package branch to consider when evaluating version options.
1217
+ -v, --target-dev-hub=<value> (required) Username or alias of the Dev Hub org. Not required if the `target-dev-hub`
1218
+ configuration variable is already set.
1219
+ --api-version=<value> Override the api version used for api requests made by this command
1220
+ --update-to-latest Automatically set all dependencies to the latest non-pinned build.
1221
+ --update-to-released Automatically update all dependencies to the latest released version.
1222
+
1223
+ GLOBAL FLAGS
1224
+ --flags-dir=<value> Import flag values from a directory.
1225
+ --json Format output as json.
1226
+
1227
+ DESCRIPTION
1228
+ Manage package dependency versions for a Salesforce project.
1229
+
1230
+ Interactively updates package dependency versions in sfdx-project.json by querying the Dev Hub for available versions.
1231
+ Supports interactive selection or automatic update to the latest released or latest build version.
1232
+
1233
+ Project-level configuration (in sfdx-project.json) is read from the following keys:
1234
+
1235
+ - plugins.simply.dependencies.ignore — array of Package2Ids or aliases to leave unchanged
1236
+ - plugins.simply.package.brancheswithreleasedversions — array of branch names that contain released versions
1237
+
1238
+ EXAMPLES
1239
+ $ sf simply package dependencies manage --target-dev-hub myDevHub
1240
+
1241
+ $ sf simply package dependencies manage --target-dev-hub myDevHub --branch my-feature-branch
1242
+
1243
+ $ sf simply package dependencies manage --target-dev-hub myDevHub --update-to-released
1244
+
1245
+ $ sf simply package dependencies manage --target-dev-hub myDevHub --update-to-latest
1246
+
1247
+ FLAG DESCRIPTIONS
1248
+ -b, --branch=<value> Package branch to consider when evaluating version options.
1249
+
1250
+ When specified, the command will include the latest build on this branch as a selectable option for each dependency.
1251
+
1252
+ --update-to-latest Automatically set all dependencies to the latest non-pinned build.
1253
+
1254
+ When specified, all dependencies managed by the Dev Hub are automatically set to a non-pinned X.Y.Z.LATEST version
1255
+ number without interactive prompts. Mutually exclusive with --update-to-released.
1256
+
1257
+ --update-to-released Automatically update all dependencies to the latest released version.
1258
+
1259
+ When specified, all dependencies managed by the Dev Hub are automatically updated to the latest released package
1260
+ version without interactive prompts. Mutually exclusive with --update-to-latest.
1261
+ ```
1262
+
1263
+ _See code: [@simplysf/simply-package](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-package@2.10.2/packages/simply-package/lib/commands/simply/package/dependencies/manage.js)_
1264
+
1265
+ ## `sf simply package version cleanup`
1266
+
1267
+ Cleanup package versions.
1268
+
1269
+ ```
1270
+ USAGE
1271
+ $ sf simply package version cleanup -p <value> -v <value> [--json] [--flags-dir <value>] [--api-version <value>] [-s <value> | -x
1272
+ <value>]
1273
+
1274
+ FLAGS
1275
+ -p, --package=<value> (required) Package Id
1276
+ -s, --matcher=<value> MAJOR.MINOR.PATCH to select on
1277
+ -v, --target-dev-hub=<value> (required) Username or alias of the Dev Hub org. Not required if the `target-dev-hub`
1278
+ configuration variable is already set.
1279
+ -x, --exclude-matcher=<value> MAJOR.MINOR.PATCH to exclude on
1280
+ --api-version=<value> Override the api version used for api requests made by this command
1281
+
1282
+ GLOBAL FLAGS
1283
+ --flags-dir=<value> Import flag values from a directory.
1284
+ --json Format output as json.
1285
+
1286
+ DESCRIPTION
1287
+ Cleanup package versions.
1288
+
1289
+ Delete package versions for a given package provided a MAJOR.MINOR.PATCH matcher, either to select on or to exclude
1290
+ on. Does not delete released package versions.
1291
+
1292
+ If --matcher is provided, only the unreleased versions matching MAJOR.MINOR.PATCH are deleted. If --exclude-matcher is
1293
+ provided instead, every unreleased version that does _not_ match MAJOR.MINOR.PATCH is deleted. Exactly one of
1294
+ --matcher or --exclude-matcher must be specified.
1295
+
1296
+ EXAMPLES
1297
+ $ sf simply package version cleanup --package 0Hoxx00000000CqCAI --matcher 2.10.0 --target-dev-hub myDevHub
1298
+
1299
+ $ sf simply package version cleanup --package 0Hoxx00000000CqCAI --exclude-matcher 2.10.0 --target-dev-hub myDevHub
1300
+
1301
+ FLAG DESCRIPTIONS
1302
+ -p, --package=<value> Package Id
1303
+
1304
+ The 0Ht Package Id that you wish to cleanup versions for.
1305
+
1306
+ -s, --matcher=<value> MAJOR.MINOR.PATCH to select on
1307
+
1308
+ The MAJOR.MINOR.PATCH matcher that should be used to find package versions to delete. Only versions matching this
1309
+ matcher are deleted. Mutually exclusive with --exclude-matcher.
1310
+
1311
+ -x, --exclude-matcher=<value> MAJOR.MINOR.PATCH to exclude on
1312
+
1313
+ The MAJOR.MINOR.PATCH matcher that should be used to find package versions to keep. Every unreleased version that
1314
+ does not match this matcher is deleted. Mutually exclusive with --matcher.
1315
+ ```
1316
+
1317
+ _See code: [@simplysf/simply-package](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-package@2.10.2/packages/simply-package/lib/commands/simply/package/version/cleanup.js)_
1318
+
1319
+ ## `sf simply package version get`
1320
+
1321
+ Get a package version from sfdx-project.json.
1322
+
1323
+ ```
1324
+ USAGE
1325
+ $ sf simply package version get -p <value> [--json] [--flags-dir <value>] [-d <value>]
1326
+
1327
+ FLAGS
1328
+ -d, --directory=<value> Package directory to search.
1329
+ -p, --package=<value> (required) Package name or alias to look up.
1330
+
1331
+ GLOBAL FLAGS
1332
+ --flags-dir=<value> Import flag values from a directory.
1333
+ --json Format output as json.
1334
+
1335
+ DESCRIPTION
1336
+ Get a package version from sfdx-project.json.
1337
+
1338
+ Reads the version a package is declared at in your project's sfdx-project.json and prints it, so a script doesn't have
1339
+ to parse the project file itself.
1340
+
1341
+ Both dependencies and the project's own package are searched. A dependency declared as an alias (test-package@0.1.0+2)
1342
+ resolves to the version portion of the alias; a dependency declared as a package name plus a versionNumber resolves to
1343
+ that versionNumber; a dependency declared as a raw ID resolves through packageAliases. A package directory that builds
1344
+ the package resolves to that directory's versionNumber.
1345
+
1346
+ The version is returned exactly as it appears in the project file — no normalizing between the 0.1.0+2, 57.0.0-3, and
1347
+ 1.2.3.LATEST forms, since each means something to the tool that consumes it.
1348
+
1349
+ This command reads the project file only. It never contacts an org or a Dev Hub, so it can run in a pipeline before
1350
+ any authentication step.
1351
+
1352
+ EXAMPLES
1353
+ Get the version of a dependency:
1354
+
1355
+ $ sf simply package version get --package test-package
1356
+
1357
+ Get the version of the package the project itself builds:
1358
+
1359
+ $ sf simply package version get --package my-package
1360
+
1361
+ Get a dependency's version from one package directory:
1362
+
1363
+ $ sf simply package version get --package test-package --directory force-app
1364
+
1365
+ FLAG DESCRIPTIONS
1366
+ -d, --directory=<value> Package directory to search.
1367
+
1368
+ The path of a single package directory to search, matching a "path" value in packageDirectories. Use this when the
1369
+ same package is declared at different versions in more than one package directory.
1370
+
1371
+ -p, --package=<value> Package name or alias to look up.
1372
+
1373
+ The package name as it appears in sfdx-project.json, without a version suffix. For a dependency declared as
1374
+ "test-package@0.1.0+2", pass "test-package".
1375
+ ```
1376
+
1377
+ _See code: [@simplysf/simply-package](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-package@2.10.2/packages/simply-package/lib/commands/simply/package/version/get.js)_
1378
+
1379
+ ## `sf simply permissions analyze`
1380
+
1381
+ Analyze permission sets and permission set groups in an org.
1382
+
1383
+ ```
1384
+ USAGE
1385
+ $ sf simply permissions analyze -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-f <value>...] [--output
1386
+ <value>]
1387
+
1388
+ FLAGS
1389
+ -f, --filter=<value>... Permission set or group names to include
1390
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
1391
+ configuration variable is already set.
1392
+ --api-version=<value> Override the api version used for api requests made by this command
1393
+ --output=<value> [default: permissions_report.html] Output HTML file path
1394
+
1395
+ GLOBAL FLAGS
1396
+ --flags-dir=<value> Import flag values from a directory.
1397
+ --json Format output as json.
1398
+
1399
+ DESCRIPTION
1400
+ Analyze permission sets and permission set groups in an org.
1401
+
1402
+ Generates an HTML report of every permission set and permission set group in the target org, grouped by installed
1403
+ package, including their object and field permissions.
1404
+
1405
+ EXAMPLES
1406
+ $ sf simply permissions analyze --target-org myOrg
1407
+
1408
+ $ sf simply permissions analyze --target-org myOrg --output reports/permissions.html --filter My_Permission_Set --filter Another_Set
1409
+
1410
+ FLAG DESCRIPTIONS
1411
+ -f, --filter=<value>... Permission set or group names to include
1412
+
1413
+ One or more PermissionSet (Name) or PermissionSetGroup (DeveloperName) API names to restrict the report to. If
1414
+ omitted, all permission sets and groups are included.
1415
+
1416
+ --output=<value> Output HTML file path
1417
+
1418
+ The path to write the generated HTML report to.
1419
+ ```
1420
+
1421
+ _See code: [@simplysf/simply-permissions](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-permissions@1.3.0/packages/simply-permissions/lib/commands/simply/permissions/analyze.js)_
1422
+
1423
+ ## `sf simply permissions assignment delete`
1424
+
1425
+ Delete PermissionSetAssignments for one or more PermissionSets/PermissionSetGroups.
1426
+
1427
+ ```
1428
+ USAGE
1429
+ $ sf simply permissions assignment delete -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-f <value>]
1430
+ [--permission-set-name <value>...] [--permission-set-group-name <value>...]
1431
+
1432
+ FLAGS
1433
+ -f, --file=<value> Path to a destructiveChanges.xml/package.xml-shaped file
1434
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the
1435
+ `target-org` configuration variable is already set.
1436
+ --api-version=<value> Override the api version used for api requests made by this command
1437
+ --permission-set-group-name=<value>... PermissionSetGroup DeveloperName(s) to delete assignments for
1438
+ --permission-set-name=<value>... PermissionSet Name(s) to delete assignments for
1439
+
1440
+ GLOBAL FLAGS
1441
+ --flags-dir=<value> Import flag values from a directory.
1442
+ --json Format output as json.
1443
+
1444
+ DESCRIPTION
1445
+ Delete PermissionSetAssignments for one or more PermissionSets/PermissionSetGroups.
1446
+
1447
+ Deletes every `PermissionSetAssignment` against the named `PermissionSet`s and/or `PermissionSetGroup`s — the pre-step
1448
+ a destructive metadata deploy of the permission set/group itself needs, so it doesn't fail or leave orphaned
1449
+ assignments behind.
1450
+
1451
+ Targets can be named either via `--file`, pointing at a `destructiveChanges.xml`/`package.xml`-shaped file whose
1452
+ `PermissionSet`/`PermissionSetGroup` type members are the targets, or via
1453
+ `--permission-set-name`/`--permission-set-group-name` flags (which may be combined with each other) for scripted or
1454
+ one-off use. `--file` is mutually exclusive with the two explicit-name flags.
1455
+
1456
+ EXAMPLES
1457
+ $ sf simply permissions assignment delete --file destructive/pre/destructiveChanges.xml --target-org myOrg
1458
+
1459
+ $ sf simply permissions assignment delete --permission-set-name My_Permission_Set --target-org myOrg
1460
+
1461
+ $ sf simply permissions assignment delete --permission-set-group-name My_Permission_Set_Group --target-org myOrg
1462
+ ```
1463
+
1464
+ _See code: [@simplysf/simply-permissions](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-permissions@1.3.0/packages/simply-permissions/lib/commands/simply/permissions/assignment/delete.js)_
1465
+
1466
+ ## `sf simply permissions build`
1467
+
1468
+ Generate a permission set from Salesforce source metadata.
1469
+
1470
+ ```
1471
+ USAGE
1472
+ $ sf simply permissions build --type read-only|view-all|modify-all -n <value> -d <value> --output <value> [--json]
1473
+ [--flags-dir <value>] [-c <value>] [--include-record-types] [--label <value>] [--description <value>]
1474
+
1475
+ FLAGS
1476
+ -c, --config=<value> Path to a permission set configuration file
1477
+ -d, --directory=<value> (required) Path to the Salesforce project directory
1478
+ -n, --name=<value> (required) API name for the permission set
1479
+ --description=<value> Description for the permission set
1480
+ --include-record-types Include record type visibilities
1481
+ --label=<value> Label for the permission set
1482
+ --output=<value> (required) Output directory
1483
+ --type=<option> (required) Baseline permission type
1484
+ <options: read-only|view-all|modify-all>
1485
+
1486
+ GLOBAL FLAGS
1487
+ --flags-dir=<value> Import flag values from a directory.
1488
+ --json Format output as json.
1489
+
1490
+ DESCRIPTION
1491
+ Generate a permission set from Salesforce source metadata.
1492
+
1493
+ Scans a Salesforce project directory for custom objects, fields, tabs, and (optionally) record types, then generates a
1494
+ permission set XML file with a baseline of permissions determined by --type. An optional JSON --config file can
1495
+ override individual object, field, tab, record type, and user permission settings, as well as whether the permission
1496
+ set requires activation.
1497
+
1498
+ EXAMPLES
1499
+ $ sf simply permissions build --type read-only --name My_Read_Only_Access --directory force-app --output force-app/main/default/permissionsets
1500
+
1501
+ $ sf simply permissions build --type modify-all --name My_Admin_Access --directory force-app --config config/permission-overrides.json --output force-app/main/default/permissionsets --include-record-types
1502
+
1503
+ FLAG DESCRIPTIONS
1504
+ -c, --config=<value> Path to a permission set configuration file
1505
+
1506
+ The path to a JSON file that overrides individual object, field, tab, record type, and user permission settings, as
1507
+ well as whether the permission set requires activation, on top of the --type baseline.
1508
+
1509
+ -d, --directory=<value> Path to the Salesforce project directory
1510
+
1511
+ The path to the Salesforce source directory to scan for custom objects, fields, tabs, and record types.
1512
+
1513
+ -n, --name=<value> API name for the permission set
1514
+
1515
+ The API name for the generated permission set; also used to derive the output filename.
1516
+
1517
+ --include-record-types Include record type visibilities
1518
+
1519
+ Automatically include record type visibilities discovered from the source metadata, marked as visible by default.
1520
+
1521
+ --output=<value> Output directory
1522
+
1523
+ The directory to write the generated permission set XML file to.
1524
+
1525
+ --type=read-only|view-all|modify-all Baseline permission type
1526
+
1527
+ The baseline permission level to generate: 'read-only' grants read access to all discovered objects and fields,
1528
+ 'view-all' additionally grants view-all-records, and 'modify-all' grants full CRUD and modify-all-records access.
1529
+ ```
1530
+
1531
+ _See code: [@simplysf/simply-permissions](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-permissions@1.3.0/packages/simply-permissions/lib/commands/simply/permissions/build.js)_
1532
+
1533
+ ## `sf simply project update api-version`
1534
+
1535
+ Update the Salesforce API version across a project's metadata.
1536
+
1537
+ ```
1538
+ USAGE
1539
+ $ sf simply project update api-version -d <value> -a <value> [--json] [--flags-dir <value>]
1540
+
1541
+ FLAGS
1542
+ -a, --api-version=<value> (required) Target Salesforce API version
1543
+ -d, --directory=<value> (required) Path to the Salesforce project directory
1544
+
1545
+ GLOBAL FLAGS
1546
+ --flags-dir=<value> Import flag values from a directory.
1547
+ --json Format output as json.
1548
+
1549
+ DESCRIPTION
1550
+ Update the Salesforce API version across a project's metadata.
1551
+
1552
+ Recursively scans a directory for `-meta.xml` files and updates every `<apiVersion>` tag to the target version. If the
1553
+ directory contains an `sfdx-project.json` file, its `sourceApiVersion` property is updated to match.
1554
+
1555
+ EXAMPLES
1556
+ $ sf simply project update api-version --directory force-app --api-version 62.0
1557
+
1558
+ $ sf simply project update api-version --directory . --api-version 63.0
1559
+
1560
+ FLAG DESCRIPTIONS
1561
+ -a, --api-version=<value> Target Salesforce API version
1562
+
1563
+ The Salesforce API version to set on all metadata files and, if present, sfdx-project.json.
1564
+
1565
+ -d, --directory=<value> Path to the Salesforce project directory
1566
+
1567
+ The path to the Salesforce project directory to scan for metadata files.
1568
+ ```
1569
+
1570
+ _See code: [@simplysf/simply-project](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-project@1.2.17/packages/simply-project/lib/commands/simply/project/update/api-version.js)_
1571
+
1572
+ ## `sf simply schema generate`
1573
+
1574
+ Generate Salesforce CustomObject/CustomField/RecordType metadata from a CSV or Excel schema definition file.
1575
+
1576
+ ```
1577
+ USAGE
1578
+ $ sf simply schema generate -f <value> -d <value> [--json] [--flags-dir <value>]
1579
+
1580
+ FLAGS
1581
+ -d, --output-dir=<value> (required) The output directory to write the generated metadata into.
1582
+ -f, --file=<value> (required) Path to the CSV or Excel (.xlsx/.xls) schema definition file.
1583
+
1584
+ GLOBAL FLAGS
1585
+ --flags-dir=<value> Import flag values from a directory.
1586
+ --json Format output as json.
1587
+
1588
+ DESCRIPTION
1589
+ Generate Salesforce CustomObject/CustomField/RecordType metadata from a CSV or Excel schema definition file.
1590
+
1591
+ Reads a flat CSV or an Excel workbook describing one or more custom objects, their fields, and (CSV only) their record
1592
+ types, and writes Salesforce DX source-format metadata (`.object-meta.xml`, `.field-meta.xml`, `.recordType-meta.xml`)
1593
+ into `--output-dir`.
1594
+
1595
+ For CSV input, each row's `Type` column (`CustomObject`, `CustomField`, or `RecordType`) and `ObjectName` column group
1596
+ the rows by object. For Excel input (`.xlsx`/`.xls`), the workbook must contain an `object` worksheet (a two-column
1597
+ key/value sheet describing the sObject) and a `fields` worksheet (one row per field); picklist fields may reference an
1598
+ additional values worksheet by name.
1599
+
1600
+ EXAMPLES
1601
+ $ sf simply schema generate --file schema.csv --output-dir force-app/main/default/objects
1602
+
1603
+ $ sf simply schema generate --file MyObject__c.xlsx --output-dir force-app/main/default/objects
1604
+
1605
+ FLAG DESCRIPTIONS
1606
+ -f, --file=<value> Path to the CSV or Excel (.xlsx/.xls) schema definition file.
1607
+
1608
+ A `.csv` file processed as the flat CSV flow, or a `.xlsx`/`.xls` file processed as the Excel flow.
1609
+ ```
1610
+
1611
+ _See code: [@simplysf/simply-schema](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-schema@0.3.18/packages/simply-schema/lib/commands/simply/schema/generate.js)_
1612
+
1613
+ ## `sf simply schema visualize`
1614
+
1615
+ Generate visualizations of Salesforce schema from a live org or local source files.
1616
+
1617
+ ```
1618
+ USAGE
1619
+ $ sf simply schema visualize [--json] [--flags-dir <value>] [-o <value>] [--api-version <value>] [-d <value>...]
1620
+ [--source-objects <value>] [--related-objects <value>] [--object-type custom|standard|all] [--field-type
1621
+ custom|standard|all] [--output-type html|md|csv...] [--output-dir <value>]
1622
+
1623
+ FLAGS
1624
+ -d, --source-dir=<value>... One or more paths to directories containing Salesforce DX source. Use this for
1625
+ local-source generation.
1626
+ -o, --target-org=<value> Username or alias of the org to visualize. Use this for live-org generation.
1627
+ --api-version=<value> Override the api version used for api requests made by this command
1628
+ --field-type=<option> [default: custom] Scope of relationship fields to include: custom, standard, or all.
1629
+ <options: custom|standard|all>
1630
+ --object-type=<option> [default: custom] Scope of objects to include: custom, standard, or all.
1631
+ <options: custom|standard|all>
1632
+ --output-dir=<value> The output directory for the generated files.
1633
+ --output-type=<option>... [default: html,md] Output format(s) to generate.
1634
+ <options: html|md|csv>
1635
+ --related-objects=<value> Comma-separated list of related objects to filter the visualization to, or `all`.
1636
+ --source-objects=<value> Comma-separated list of source objects to start from, or `all`.
1637
+
1638
+ GLOBAL FLAGS
1639
+ --flags-dir=<value> Import flag values from a directory.
1640
+ --json Format output as json.
1641
+
1642
+ DESCRIPTION
1643
+ Generate visualizations of Salesforce schema from a live org or local source files.
1644
+
1645
+ Builds an object-relationship diagram (interactive HTML), a Mermaid entity-relationship diagram (Markdown), and/or a
1646
+ relationship CSV, either from a live org's Tooling API or from local Salesforce DX source directories. Exactly one of
1647
+ `--target-org` or `--source-dir` must be specified.
1648
+
1649
+ EXAMPLES
1650
+ $ sf simply schema visualize --target-org myTargetOrg
1651
+
1652
+ $ sf simply schema visualize --target-org myTargetOrg --source-objects Account,Contact --related-objects all
1653
+
1654
+ $ sf simply schema visualize --source-dir force-app --output-type html,md
1655
+
1656
+ FLAG DESCRIPTIONS
1657
+ --output-type=html|md|csv... Output format(s) to generate.
1658
+
1659
+ One or more of `html` (interactive diagram), `md` (Mermaid entity-relationship diagram), or `csv` (relationship
1660
+ data).
1661
+
1662
+ --related-objects=<value> Comma-separated list of related objects to filter the visualization to, or `all`.
1663
+
1664
+ Comma-separated API names of related objects to include in the visualization. If `all` is specified, every related
1665
+ object is included regardless of `--object-type`. If not specified, related objects aren't filtered.
1666
+
1667
+ --source-objects=<value> Comma-separated list of source objects to start from, or `all`.
1668
+
1669
+ Comma-separated API names of the objects to start the visualization from (e.g. `Account,MyObject__c`). If `all` is
1670
+ specified, every discovered object is included. If not specified, every object matching `--object-type` is included.
1671
+ ```
1672
+
1673
+ _See code: [@simplysf/simply-schema](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-schema@0.3.18/packages/simply-schema/lib/commands/simply/schema/visualize.js)_
1674
+
1675
+ ## `sf simply sobject backup`
1676
+
1677
+ Back up SObject data to a CSV file.
1678
+
1679
+ ```
1680
+ USAGE
1681
+ $ sf simply sobject backup -o <value> -s <value> [--json] [--flags-dir <value>] [--api-version <value>] [-d <value>]
1682
+ [--include-relationship-fields] [-f <value>...]
1683
+
1684
+ FLAGS
1685
+ -d, --output-dir=<value> Output directory
1686
+ -f, --additional-fields=<value>... Additional fields to include
1687
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
1688
+ configuration variable is already set.
1689
+ -s, --sobject=<value> (required) SObject API name
1690
+ --api-version=<value> Override the api version used for api requests made by this command
1691
+ --include-relationship-fields Include parent relationship fields
1692
+
1693
+ GLOBAL FLAGS
1694
+ --flags-dir=<value> Import flag values from a directory.
1695
+ --json Format output as json.
1696
+
1697
+ DESCRIPTION
1698
+ Back up SObject data to a CSV file.
1699
+
1700
+ Describes the given SObject, queries every field via the Bulk API, and writes the results to a timestamped CSV file.
1701
+
1702
+ EXAMPLES
1703
+ $ sf simply sobject backup --target-org myOrg --sobject Account
1704
+
1705
+ $ sf simply sobject backup --target-org myOrg --sobject Custom_Object__c --output-dir backups
1706
+
1707
+ $ sf simply sobject backup --target-org myOrg --sobject Account --include-relationship-fields
1708
+
1709
+ $ sf simply sobject backup --target-org myOrg --sobject Account --additional-fields Owner.Manager.Name --additional-fields Parent.Owner.Email
1710
+
1711
+ FLAG DESCRIPTIONS
1712
+ -d, --output-dir=<value> Output directory
1713
+
1714
+ The directory to save the backup CSV file to. Defaults to the current directory.
1715
+
1716
+ -f, --additional-fields=<value>... Additional fields to include
1717
+
1718
+ Extra field API names to include in the query, on top of the SObject's own fields and any fields discovered via
1719
+ --include-relationship-fields. Useful for fields --include-relationship-fields won't discover, such as multi-hop
1720
+ relationship paths (e.g. Owner.Manager.Name) or fields through a polymorphic relationship. Fields already included
1721
+ are not duplicated.
1722
+
1723
+ -s, --sobject=<value> SObject API name
1724
+
1725
+ The API name of the SObject to back up.
1726
+
1727
+ --include-relationship-fields Include parent relationship fields
1728
+
1729
+ For every lookup/master-detail field, describe its parent SObject and include its identifying fields (e.g.
1730
+ RecordTypeId includes RecordType.Name and RecordType.DeveloperName). Polymorphic relationship fields, such as
1731
+ OwnerId, are skipped.
1732
+ ```
1733
+
1734
+ _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.6/packages/simply-sobject/lib/commands/simply/sobject/backup.js)_
1735
+
1736
+ ## `sf simply sobject deduplicate`
1737
+
1738
+ Identify and prepare deduplication of an SObject's records.
1739
+
1740
+ ```
1741
+ USAGE
1742
+ $ sf simply sobject deduplicate -o <value> -c <value> [--json] [--flags-dir <value>] [--api-version <value>] [--dry-run]
1743
+ [--output-dir <value>]
1744
+
1745
+ FLAGS
1746
+ -c, --config=<value> (required) Path to a deduplication configuration file
1747
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
1748
+ configuration variable is already set.
1749
+ --api-version=<value> Override the api version used for api requests made by this command
1750
+ --dry-run Skip calculating associated object lookup replacements
1751
+ --output-dir=<value> Output directory
1752
+
1753
+ GLOBAL FLAGS
1754
+ --flags-dir=<value> Import flag values from a directory.
1755
+ --json Format output as json.
1756
+
1757
+ DESCRIPTION
1758
+ Identify and prepare deduplication of an SObject's records.
1759
+
1760
+ Queries an SObject, groups records by a composite key built from configured fields, and writes CSV files listing which
1761
+ records are unique and which are duplicates that should be deleted. For each associated object with lookups to the
1762
+ primary object, also writes a CSV of the lookup field updates needed to re-point duplicate references at the surviving
1763
+ unique record. This command does not perform any deletes or updates in the org; it only prepares the CSV files for a
1764
+ subsequent data load.
1765
+
1766
+ EXAMPLES
1767
+ $ sf simply sobject deduplicate --target-org myOrg --config config/deduplicate-account.json
1768
+
1769
+ $ sf simply sobject deduplicate --target-org myOrg --config config/deduplicate-account.json --dry-run
1770
+
1771
+ FLAG DESCRIPTIONS
1772
+ -c, --config=<value> Path to a deduplication configuration file
1773
+
1774
+ The path to a JSON file describing the primary object, its composite key fields, and any associated objects with
1775
+ lookups to it.
1776
+
1777
+ --dry-run Skip calculating associated object lookup replacements
1778
+
1779
+ When set, only the primary object's unique/duplicate CSV files are generated; associated object lookup replacement
1780
+ files are not calculated.
1781
+
1782
+ --output-dir=<value> Output directory
1783
+
1784
+ The directory to write the generated CSV files to. Defaults to ./temp/<primaryObjectApiName>.
1785
+ ```
1786
+
1787
+ _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.6/packages/simply-sobject/lib/commands/simply/sobject/deduplicate.js)_
1788
+
1789
+ ## `sf simply sobject history export`
1790
+
1791
+ Export field history for an SObject within a date range to a CSV file.
1792
+
1793
+ ```
1794
+ USAGE
1795
+ $ sf simply sobject history export -o <value> -s <value> --start-date <value> --end-date <value> [--json] [--flags-dir <value>]
1796
+ [--api-version <value>] [-d <value>]
1797
+
1798
+ FLAGS
1799
+ -d, --output-dir=<value> Output directory
1800
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
1801
+ configuration variable is already set.
1802
+ -s, --sobject=<value> (required) SObject API name
1803
+ --api-version=<value> Override the api version used for api requests made by this command
1804
+ --end-date=<value> (required) End date (YYYY-MM-DD)
1805
+ --start-date=<value> (required) Start date (YYYY-MM-DD)
1806
+
1807
+ GLOBAL FLAGS
1808
+ --flags-dir=<value> Import flag values from a directory.
1809
+ --json Format output as json.
1810
+
1811
+ DESCRIPTION
1812
+ Export field history for an SObject within a date range to a CSV file.
1813
+
1814
+ Queries the field history object for the given SObject (e.g. `AccountHistory`, `Custom_Object__History`, or
1815
+ `OpportunityFieldHistory`) for changes created within the given date range, and writes the results to a timestamped
1816
+ CSV file.
1817
+
1818
+ EXAMPLES
1819
+ $ sf simply sobject history export --target-org myOrg --sobject Account --start-date 2026-01-01 --end-date 2026-01-31
1820
+
1821
+ $ sf simply sobject history export --target-org myOrg --sobject Custom_Object__c --start-date 2026-01-01 --end-date 2026-01-31 --output-dir exports
1822
+
1823
+ FLAG DESCRIPTIONS
1824
+ -d, --output-dir=<value> Output directory
1825
+
1826
+ The directory to save the exported CSV file to. Defaults to the current directory.
1827
+
1828
+ -s, --sobject=<value> SObject API name
1829
+
1830
+ The API name of the SObject to export field history for (e.g. Account or Custom_Object__c).
1831
+
1832
+ --end-date=<value> End date (YYYY-MM-DD)
1833
+
1834
+ The end of the date range to export history for, inclusive.
1835
+
1836
+ --start-date=<value> Start date (YYYY-MM-DD)
1837
+
1838
+ The start of the date range to export history for, inclusive.
1839
+ ```
1840
+
1841
+ _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.6/packages/simply-sobject/lib/commands/simply/sobject/history/export.js)_
1842
+
1843
+ ## `sf simply sobject history query`
1844
+
1845
+ Query the field history of an SObject, with optional filtering.
1846
+
1847
+ ```
1848
+ USAGE
1849
+ $ sf simply sobject history query -o <value> --object <value> [--json] [--flags-dir <value>] [--api-version <value>] [--filters
1850
+ <value>] [-d <value>]
1851
+
1852
+ FLAGS
1853
+ -d, --output-dir=<value> Output directory
1854
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
1855
+ configuration variable is already set.
1856
+ --api-version=<value> Override the api version used for api requests made by this command
1857
+ --filters=<value> Path to a filter configuration file, or a raw JSON filter string
1858
+ --object=<value> (required) SObject API name
1859
+
1860
+ GLOBAL FLAGS
1861
+ --flags-dir=<value> Import flag values from a directory.
1862
+ --json Format output as json.
1863
+
1864
+ DESCRIPTION
1865
+ Query the field history of an SObject, with optional filtering.
1866
+
1867
+ Queries the field history object for the given SObject (e.g. `AccountHistory`, `Custom_Object__History`, or
1868
+ `OpportunityFieldHistory`) and writes the results to a timestamped CSV file. An optional filter tree can be supplied
1869
+ to narrow the results: conditions on Field, CreatedById, CreatedDate, or the parent lookup field are pushed into the
1870
+ SOQL WHERE clause; conditions on any other field (e.g. OldValue or NewValue) are applied client-side after the query
1871
+ runs.
1872
+
1873
+ EXAMPLES
1874
+ $ sf simply sobject history query --target-org myOrg --object Account
1875
+
1876
+ $ sf simply sobject history query --target-org myOrg --object Custom_Object__c --filters config/history-filters.json
1877
+
1878
+ $ sf simply sobject history query --target-org myOrg --object Account --filters '{"logic":"AND","filters":[{"field":"Field","operator":"=","value":"Name"}]}'
1879
+
1880
+ FLAG DESCRIPTIONS
1881
+ -d, --output-dir=<value> Output directory
1882
+
1883
+ The directory to save the query results CSV file to. Defaults to the current directory.
1884
+
1885
+ --filters=<value> Path to a filter configuration file, or a raw JSON filter string
1886
+
1887
+ A JSON object describing a tree of filter conditions: `{ "logic": "AND", "filters": [ { "field": "Field",
1888
+ "operator": "=", "value": "Status__c" } ] }`. Each entry in `filters` is either a condition (`field`, `operator`,
1889
+ `value`) or another nested group with its own `logic`/`filters`. Supported operators are =, !=, >, <, >=, <=, IN,
1890
+ NOT IN, and LIKE (using `%` as a wildcard).
1891
+
1892
+ --object=<value> SObject API name
1893
+
1894
+ The API name of the SObject to query field history for (e.g. Account or Custom_Object__c).
1895
+ ```
1896
+
1897
+ _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.6/packages/simply-sobject/lib/commands/simply/sobject/history/query.js)_
1898
+
1899
+ ## `sf simply sobject history schema`
1900
+
1901
+ Report on which objects and fields have field history tracking enabled.
1902
+
1903
+ ```
1904
+ USAGE
1905
+ $ sf simply sobject history schema -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-d <value>]
1906
+
1907
+ FLAGS
1908
+ -d, --output-dir=<value> Output directory
1909
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
1910
+ configuration variable is already set.
1911
+ --api-version=<value> Override the api version used for api requests made by this command
1912
+
1913
+ GLOBAL FLAGS
1914
+ --flags-dir=<value> Import flag values from a directory.
1915
+ --json Format output as json.
1916
+
1917
+ DESCRIPTION
1918
+ Report on which objects and fields have field history tracking enabled.
1919
+
1920
+ Identifies every object with field history tracking enabled, and every tracked field on each, resolving the
1921
+ managed/unlocked package each field belongs to, and writes the results to a timestamped CSV file and a browsable HTML
1922
+ report.
1923
+
1924
+ EXAMPLES
1925
+ $ sf simply sobject history schema --target-org myOrg
1926
+
1927
+ $ sf simply sobject history schema --target-org myOrg --output-dir reports
1928
+
1929
+ FLAG DESCRIPTIONS
1930
+ -d, --output-dir=<value> Output directory
1931
+
1932
+ The directory to save the generated CSV and HTML report files to. Defaults to the current directory.
1933
+ ```
1934
+
1935
+ _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.6/packages/simply-sobject/lib/commands/simply/sobject/history/schema.js)_
1936
+ <!-- commandsstop -->
1937
+
1938
+ - [`sf simply apex execute`](#sf-simply-apex-execute)
1939
+ - [`sf simply apex logs purge`](#sf-simply-apex-logs-purge)
1940
+ - [`sf simply apex trace setup`](#sf-simply-apex-trace-setup)
1941
+ - [`sf simply apex trace silence`](#sf-simply-apex-trace-silence)
1942
+ - [`sf simply community publish`](#sf-simply-community-publish)
1943
+ - [`sf simply data file upload`](#sf-simply-data-file-upload)
1944
+ - [`sf simply data files download`](#sf-simply-data-files-download)
1945
+ - [`sf simply data files upload`](#sf-simply-data-files-upload)
1946
+ - [`sf simply document diff`](#sf-simply-document-diff)
1947
+ - [`sf simply document generate`](#sf-simply-document-generate)
1948
+ - [`sf simply package dependencies install`](#sf-simply-package-dependencies-install)
1949
+ - [`sf simply package dependencies manage`](#sf-simply-package-dependencies-manage)
1950
+ - [`sf simply package version cleanup`](#sf-simply-package-version-cleanup)
1951
+ - [`sf simply permissions analyze`](#sf-simply-permissions-analyze)
1952
+ - [`sf simply permissions build`](#sf-simply-permissions-build)
1953
+ - [`sf simply project update api-version`](#sf-simply-project-update-api-version)
1954
+ - [`sf simply schema generate`](#sf-simply-schema-generate)
1955
+ - [`sf simply schema visualize`](#sf-simply-schema-visualize)
1956
+ - [`sf simply sobject backup`](#sf-simply-sobject-backup)
1957
+ - [`sf simply sobject deduplicate`](#sf-simply-sobject-deduplicate)
1958
+ - [`sf simply sobject history export`](#sf-simply-sobject-history-export)
1959
+ - [`sf simply sobject history query`](#sf-simply-sobject-history-query)
1960
+ - [`sf simply sobject history schema`](#sf-simply-sobject-history-schema)
1961
+
1962
+ ## `sf simply apex execute`
1963
+
1964
+ Execute anonymous Apex code.
1965
+
1966
+ ```
1967
+ USAGE
1968
+ $ sf simply apex execute -o <value> -f <value> [--json] [--flags-dir <value>] [--api-version <value>]
1969
+
1970
+ FLAGS
1971
+ -f, --file=<value> (required) Path to Apex file
1972
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
1973
+ configuration variable is already set.
1974
+ --api-version=<value> Override the api version used for api requests made by this command
1975
+
1976
+ GLOBAL FLAGS
1977
+ --flags-dir=<value> Import flag values from a directory.
1978
+ --json Format output as json.
1979
+
1980
+ DESCRIPTION
1981
+ Execute anonymous Apex code.
1982
+
1983
+ Executes an anonymous block of Apex code from a local .apex file against a target org and reports the compile and
1984
+ execution results, including any debug logs produced.
1985
+
1986
+ EXAMPLES
1987
+ $ sf simply apex execute --target-org myOrg --file scripts/apex/data-fix.apex
1988
+
1989
+ FLAG DESCRIPTIONS
1990
+ -f, --file=<value> Path to Apex file
1991
+
1992
+ The path to the local .apex file containing the anonymous Apex code to execute.
1993
+ ```
1994
+
1995
+ _See code: [@simplysf/simply-apex](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-apex@1.6.2/packages/simply-apex/lib/commands/simply/apex/execute.js)_
1996
+
1997
+ ## `sf simply apex logs purge`
1998
+
1999
+ Purge Apex debug logs.
2000
+
2001
+ ```
2002
+ USAGE
2003
+ $ sf simply apex logs purge -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-w <value>] [-b] [--wait
2004
+ <value>]
2005
+
2006
+ FLAGS
2007
+ -b, --use-bulk-api Use Bulk API v2 to query and delete the logs.
2008
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
2009
+ configuration variable is already set.
2010
+ -w, --where=<value> SOQL WHERE clause
2011
+ --api-version=<value> Override the api version used for api requests made by this command
2012
+ --wait=<value> Number of minutes to wait for the Bulk API jobs to finish.
2013
+
2014
+ GLOBAL FLAGS
2015
+ --flags-dir=<value> Import flag values from a directory.
2016
+ --json Format output as json.
2017
+
2018
+ DESCRIPTION
2019
+ Purge Apex debug logs.
2020
+
2021
+ Deletes ApexLog records from the target org. By default all logs are purged; use --where to scope the deletion to a
2022
+ subset of logs.
2023
+
2024
+ EXAMPLES
2025
+ $ sf simply apex logs purge --target-org myOrg
2026
+
2027
+ $ sf simply apex logs purge --target-org myOrg --where "Status = 'Success'"
2028
+
2029
+ $ sf simply apex logs purge --target-org myOrg --use-bulk-api
2030
+
2031
+ $ sf simply apex logs purge --target-org myOrg --use-bulk-api --wait 60
2032
+
2033
+ FLAG DESCRIPTIONS
2034
+ -b, --use-bulk-api Use Bulk API v2 to query and delete the logs.
2035
+
2036
+ Runs the whole purge as two Bulk API v2 jobs instead of a Tooling API query followed by chunked REST deletes. Bulk
2037
+ API processes the deletion asynchronously and does not consume the org's REST API request limit, which suits purges
2038
+ of tens of thousands of logs. For small purges the default REST path is faster, since it avoids the overhead of
2039
+ creating, uploading, and polling a job.
2040
+
2041
+ -w, --where=<value> SOQL WHERE clause
2042
+
2043
+ A WHERE clause used to filter which ApexLog records are purged (e.g. "Status = 'Success'").
2044
+
2045
+ --wait=<value> Number of minutes to wait for the Bulk API jobs to finish.
2046
+
2047
+ Only applies with --use-bulk-api. The command polls the query and delete jobs until they complete or this timeout
2048
+ elapses, then throws.
2049
+ ```
2050
+
2051
+ _See code: [@simplysf/simply-apex](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-apex@1.6.2/packages/simply-apex/lib/commands/simply/apex/logs/purge.js)_
2052
+
2053
+ ## `sf simply apex trace setup`
2054
+
2055
+ Configure a debug log trace flag for the current user, or another user.
2056
+
2057
+ ```
2058
+ USAGE
2059
+ $ sf simply apex trace setup -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [--on-behalf-of <value>]
2060
+ [--log-level <value>] [--start-date <value>] [--end-date <value>]
2061
+
2062
+ FLAGS
2063
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
2064
+ configuration variable is already set.
2065
+ --api-version=<value> Override the api version used for api requests made by this command
2066
+ --end-date=<value> Expiration date/time of the trace flag, as an ISO 8601 date-time.
2067
+ --log-level=<value> Developer name of an existing debug level to use for the trace flag.
2068
+ --on-behalf-of=<value> Configure the trace flag for another user, identified by a "Field:Value" pair.
2069
+ --start-date=<value> Start date/time of the trace flag, as an ISO 8601 date-time.
2070
+
2071
+ GLOBAL FLAGS
2072
+ --flags-dir=<value> Import flag values from a directory.
2073
+ --json Format output as json.
2074
+
2075
+ DESCRIPTION
2076
+ Configure a debug log trace flag for the current user, or another user.
2077
+
2078
+ Creates or updates a DEVELOPER_LOG trace flag for the target user, using the FINEST/FINER "ReplayDebuggerLevels" debug
2079
+ level suitable for the Apex Replay Debugger and running for 24 hours starting now, by default. Use --on-behalf-of to
2080
+ configure the trace flag for a different user instead; --log-level, --start-date, and --end-date override the other
2081
+ defaults.
2082
+
2083
+ EXAMPLES
2084
+ $ sf simply apex trace setup --target-org myOrg
2085
+
2086
+ $ sf simply apex trace setup --target-org myOrg --on-behalf-of Username:someuser@example.com
2087
+
2088
+ $ sf simply apex trace setup --target-org myOrg --on-behalf-of FederationIdentifier:123456
2089
+
2090
+ $ sf simply apex trace setup --target-org myOrg --log-level MyCustomDebugLevel --start-date 2026-08-18T09:00:00Z --end-date 2026-08-19T09:00:00Z
2091
+
2092
+ FLAG DESCRIPTIONS
2093
+ --end-date=<value> Expiration date/time of the trace flag, as an ISO 8601 date-time.
2094
+
2095
+ Defaults to 24 hours after the start date/time.
2096
+
2097
+ --log-level=<value> Developer name of an existing debug level to use for the trace flag.
2098
+
2099
+ Must already exist in the org; it's looked up but never created or modified. Defaults to the "ReplayDebuggerLevels"
2100
+ debug level, which is created automatically if it doesn't exist.
2101
+
2102
+ --on-behalf-of=<value> Configure the trace flag for another user, identified by a "Field:Value" pair.
2103
+
2104
+ Any unique User field can be used, for example "Username:someuser@example.com" or "FederationIdentifier:123456".
2105
+
2106
+ --start-date=<value> Start date/time of the trace flag, as an ISO 8601 date-time.
2107
+
2108
+ Defaults to the current date/time.
2109
+ ```
2110
+
2111
+ _See code: [@simplysf/simply-apex](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-apex@1.6.2/packages/simply-apex/lib/commands/simply/apex/trace/setup.js)_
2112
+
2113
+ ## `sf simply apex trace silence`
2114
+
2115
+ Silence debug logs for specific Apex classes.
2116
+
2117
+ ```
2118
+ USAGE
2119
+ $ sf simply apex trace silence -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-c <value> | --classes-file
2120
+ <value>] [--fflib] [--at4dx] [--force-di]
2121
+
2122
+ FLAGS
2123
+ -c, --classes=<value> Comma-separated Apex class names
2124
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
2125
+ configuration variable is already set.
2126
+ --api-version=<value> Override the api version used for api requests made by this command
2127
+ --at4dx Silence at4dx base classes
2128
+ --classes-file=<value> Path to a JSON file listing classes to silence
2129
+ --fflib Silence fflib base classes
2130
+ --force-di Silence force-di base classes
2131
+
2132
+ GLOBAL FLAGS
2133
+ --flags-dir=<value> Import flag values from a directory.
2134
+ --json Format output as json.
2135
+
2136
+ DESCRIPTION
2137
+ Silence debug logs for specific Apex classes.
2138
+
2139
+ Creates or updates a 24-hour CLASS_TRACING trace flag with a fully suppressed (NONE) debug level for each specified
2140
+ Apex class, preventing those classes from generating debug log output. If a class already has a trace flag, its
2141
+ expiration is extended instead of creating a duplicate.
2142
+
2143
+ EXAMPLES
2144
+ $ sf simply apex trace silence --target-org myOrg --classes NoisyClass,ChattyTrigger
2145
+
2146
+ $ sf simply apex trace silence --target-org myOrg --classes-file classesToSilence.json
2147
+
2148
+ $ sf simply apex trace silence --target-org myOrg --fflib --at4dx --force-di
2149
+
2150
+ $ sf simply apex trace silence --target-org myOrg --classes NoisyClass --fflib
2151
+
2152
+ FLAG DESCRIPTIONS
2153
+ -c, --classes=<value> Comma-separated Apex class names
2154
+
2155
+ A comma-separated list of Apex class names to silence.
2156
+
2157
+ --at4dx Silence at4dx base classes
2158
+
2159
+ Adds ApplicationSObjectDomain to the classes to silence.
2160
+
2161
+ --classes-file=<value> Path to a JSON file listing classes to silence
2162
+
2163
+ The path to a JSON file with the shape { "classes": ["ClassOne", "ClassTwo"] } listing the Apex class names to
2164
+ silence.
2165
+
2166
+ --fflib Silence fflib base classes
2167
+
2168
+ Adds fflib_SObjectDescribe and fflib_SObjectDomain to the classes to silence.
2169
+
2170
+ --force-di Silence force-di base classes
2171
+
2172
+ Adds di_Binding, di_Module, di_PlatformCache, and di_Injector to the classes to silence.
2173
+ ```
2174
+
2175
+ _See code: [@simplysf/simply-apex](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-apex@1.6.2/packages/simply-apex/lib/commands/simply/apex/trace/silence.js)_
2176
+
2177
+ ## `sf simply community publish`
2178
+
2179
+ Publish a Salesforce Community (Experience Cloud site), waiting until the publish completes.
2180
+
2181
+ ```
2182
+ USAGE
2183
+ $ sf simply community publish -o <value> --name <value> [--json] [--flags-dir <value>] [--api-version <value>] [--wait
2184
+ <value>] [--retry-attempts <value>] [--retry-backoff <value>] [--ignore-errors]
2185
+
2186
+ FLAGS
2187
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
2188
+ configuration variable is already set.
2189
+ --api-version=<value> Override the api version used for api requests made by this command
2190
+ --ignore-errors Log a warning and exit successfully if the publish fails, instead of throwing an error.
2191
+ --name=<value> (required) Name of the community (Experience Cloud site) to publish.
2192
+ --retry-attempts=<value> Number of additional attempts to make if the initial publish request fails, before
2193
+ giving up. Defaults to 0 (no retries). Does not apply to polling for the publish job's
2194
+ completion, which already retries until --wait elapses.
2195
+ --retry-backoff=<value> [default: 2] Factor the delay between publish request retries grows by after each failed
2196
+ attempt (e.g. 2 doubles the delay each time). Only relevant when --retry-attempts is
2197
+ greater than 0.
2198
+ --wait=<value> [default: 15] Minutes to wait for the publish to complete before giving up. Salesforce's
2199
+ own publish jobs time out after 15 minutes server-side, so waiting longer than that has
2200
+ no effect.
2201
+
2202
+ GLOBAL FLAGS
2203
+ --flags-dir=<value> Import flag values from a directory.
2204
+ --json Format output as json.
2205
+
2206
+ DESCRIPTION
2207
+ Publish a Salesforce Community (Experience Cloud site), waiting until the publish completes.
2208
+
2209
+ Looks up the community by `--name`, triggers a publish via the Connect REST API, then polls until the publish job
2210
+ reaches a terminal state — throwing an error if it fails, rather than returning as soon as the publish request is
2211
+ accepted. The Salesforce CLI's own `sf community publish` command does not wait for completion; this command exists to
2212
+ fill that gap for pipelines that need to know publishing actually succeeded before continuing.
2213
+
2214
+ EXAMPLES
2215
+ $ sf simply community publish --target-org my-org --name "My Community"
2216
+
2217
+ $ sf simply community publish --target-org my-org --name "My Community" --wait 20
2218
+
2219
+ $ sf simply community publish --target-org my-org --name "My Community" --retry-attempts 3 --retry-backoff 2
2220
+
2221
+ $ sf simply community publish --target-org my-org --name "My Community" --ignore-errors
2222
+ ```
2223
+
2224
+ _See code: [@simplysf/simply-community](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-community@0.1.0/packages/simply-community/lib/commands/simply/community/publish.js)_
2225
+
2226
+ ## `sf simply data file upload`
2227
+
2228
+ Upload a file to a Salesforce org.
2229
+
2230
+ ```
2231
+ USAGE
2232
+ $ sf simply data file upload -o <value> --file-path <value> [--json] [--flags-dir <value>] [--api-version <value>]
2233
+ [--first-publish-location-id <value>] [--title <value>]
2234
+
2235
+ FLAGS
2236
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the
2237
+ `target-org` configuration variable is already set.
2238
+ --api-version=<value> Override the api version used for api requests made by this command
2239
+ --file-path=<value> (required) Path to the file to upload.
2240
+ --first-publish-location-id=<value> Specify a record Id that the file should be linked to.
2241
+ --title=<value> Specify the title for the file being uploaded.
2242
+
2243
+ GLOBAL FLAGS
2244
+ --flags-dir=<value> Import flag values from a directory.
2245
+ --json Format output as json.
2246
+
2247
+ DESCRIPTION
2248
+ Upload a file to a Salesforce org.
2249
+
2250
+ Uploads a file to a Salesforce org.
2251
+
2252
+ EXAMPLES
2253
+ $ sf simply data file upload --file-path fileToUpload.txt --target-org myTargetOrg
2254
+
2255
+ $ sf simply data file upload --file-path fileToUpload.txt --first-publish-location-id 0019000000DmehK --target-org myTargetOrg
2256
+ ```
2257
+
2258
+ _See code: [@simplysf/simply-data](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-data@2.3.23/packages/simply-data/lib/commands/simply/data/file/upload.js)_
2259
+
2260
+ ## `sf simply data files download`
2261
+
2262
+ Download files from a Salesforce org.
2263
+
2264
+ ```
2265
+ USAGE
2266
+ $ sf simply data files download -o <value> --where-content-version <value> [--json] [--flags-dir <value>] [--api-version
2267
+ <value>] [--max-parallel-jobs <value>]
2268
+
2269
+ FLAGS
2270
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
2271
+ configuration variable is already set.
2272
+ --api-version=<value> Override the api version used for api requests made by this command
2273
+ --max-parallel-jobs=<value> [default: 1] Maximum number of parallel jobs.
2274
+ --where-content-version=<value> (required) WHERE clause for ContentVersion query.
2275
+
2276
+ GLOBAL FLAGS
2277
+ --flags-dir=<value> Import flag values from a directory.
2278
+ --json Format output as json.
2279
+
2280
+ DESCRIPTION
2281
+ Download files from a Salesforce org.
2282
+
2283
+ Downloads files specified by a where clause for a ContentVersion query from a Salesforce org. By default, the plugin
2284
+ uses the REST API for the download as to allow for the streaming of large files without issue. This means that each
2285
+ file will use one REST API request.
2286
+
2287
+ EXAMPLES
2288
+ $ sf simply data files download --where-content-version "IsLatest=true" --target-org myTargetOrg
2289
+
2290
+ $ sf simply data files download --where-content-version "IsLatest=true" --max-parallel-jobs 5 --target-org myTargetOrg
2291
+
2292
+ FLAG DESCRIPTIONS
2293
+ --max-parallel-jobs=<value> Maximum number of parallel jobs.
2294
+
2295
+ By default the plugin will only process a single file download at a time. You can increase this value to allow for
2296
+ quasi concurrent downloads. Please note that setting this value too high can cause performance issues.
2297
+
2298
+ --where-content-version=<value> WHERE clause for ContentVersion query.
2299
+
2300
+ Provide a WHERE clause to allow the plugin to specify which ContentVersion records should be downloaded.
2301
+ ```
2302
+
2303
+ _See code: [@simplysf/simply-data](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-data@2.3.23/packages/simply-data/lib/commands/simply/data/files/download.js)_
2304
+
2305
+ ## `sf simply data files upload`
2306
+
2307
+ Upload files to a Salesforce org.
2308
+
2309
+ ```
2310
+ USAGE
2311
+ $ sf simply data files upload -o <value> --file-path <value> [--json] [--flags-dir <value>] [--api-version <value>]
2312
+ [--max-parallel-jobs <value>]
2313
+
2314
+ FLAGS
2315
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
2316
+ configuration variable is already set.
2317
+ --api-version=<value> Override the api version used for api requests made by this command
2318
+ --file-path=<value> (required) Path to the csv file that specifies the upload.
2319
+ --max-parallel-jobs=<value> [default: 1] Maximum number of parallel jobs.
2320
+
2321
+ GLOBAL FLAGS
2322
+ --flags-dir=<value> Import flag values from a directory.
2323
+ --json Format output as json.
2324
+
2325
+ DESCRIPTION
2326
+ Upload files to a Salesforce org.
2327
+
2328
+ Uploads files specified by a csv to a Salesforce org. By default, the plugin uses the REST API for the upload as the
2329
+ Bulk API is limited in its payload size. This means that each file will use one REST API request.
2330
+
2331
+ EXAMPLES
2332
+ $ sf simply data files upload --file-path filesToUpload.csv --target-org myTargetOrg
2333
+
2334
+ $ sf simply data files upload --file-path filesToUpload.csv --max-parallel-jobs 5 --target-org myTargetOrg
2335
+
2336
+ FLAG DESCRIPTIONS
2337
+ --file-path=<value> Path to the csv file that specifies the upload.
2338
+
2339
+ The csv file must specify the columns PathOnClient and Title. Optionally, a FirstPublishLocationId can be specified
2340
+ to have it linked directly to a Salesforce record after upload.
2341
+
2342
+ --max-parallel-jobs=<value> Maximum number of parallel jobs.
2343
+
2344
+ By default the plugin will only process a single file upload at a time. You can increase this value to allow for
2345
+ quasi concurrent uploads. Please note that setting this value too high can cause performance issues.
2346
+ ```
2347
+
2348
+ _See code: [@simplysf/simply-data](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-data@2.3.23/packages/simply-data/lib/commands/simply/data/files/upload.js)_
2349
+
2350
+ ## `sf simply document diff`
2351
+
2352
+ Generate a change report between two git refs.
2353
+
2354
+ ```
2355
+ USAGE
2356
+ $ sf simply document diff --from-tag <value> --to-tag <value> [--json] [--flags-dir <value>] [--output-file <value>]
2357
+ [--template-file <value>] [--output-format html]
2358
+
2359
+ FLAGS
2360
+ --from-tag=<value> (required) The starting git ref for the diff report.
2361
+ --output-file=<value> Path to write the generated report to.
2362
+ --output-format=<option> [default: html] Output format to render the report in.
2363
+ <options: html>
2364
+ --template-file=<value> Path to a custom Handlebars template to render instead of the built-in one.
2365
+ --to-tag=<value> (required) The ending git ref for the diff report.
2366
+
2367
+ GLOBAL FLAGS
2368
+ --flags-dir=<value> Import flag values from a directory.
2369
+ --json Format output as json.
2370
+
2371
+ DESCRIPTION
2372
+ Generate a change report between two git refs.
2373
+
2374
+ Runs `git diff --name-status` between two git refs (tags, branches, or commits) in the current working directory,
2375
+ groups the changed files by Salesforce metadata component type, and renders a Confluence-storage-format change report
2376
+ suitable for pasting into a release or change-management page.
2377
+
2378
+ EXAMPLES
2379
+ $ sf simply document diff --from-tag v1.0.0 --to-tag v1.1.0
2380
+
2381
+ $ sf simply document diff --from-tag v1.0.0 --to-tag v1.1.0 --output-file change-report.html
2382
+
2383
+ $ sf simply document diff --from-tag v1.0.0 --to-tag v1.1.0 --template-file my-change-report.hbs
2384
+
2385
+ FLAG DESCRIPTIONS
2386
+ --output-file=<value> Path to write the generated report to.
2387
+
2388
+ When specified, the generated report is written to this path instead of being printed to the terminal.
2389
+
2390
+ --output-format=html Output format to render the report in.
2391
+
2392
+ Currently only `html` is supported. Reserved for future formats (e.g. Markdown).
2393
+
2394
+ --template-file=<value> Path to a custom Handlebars template to render instead of the built-in one.
2395
+
2396
+ When specified, this template is rendered with the same data the built-in report template receives, and can reuse
2397
+ the built-in `changeTable` partial. See this package's README "Custom Templates" section for the data shape and
2398
+ available partials.
2399
+ ```
2400
+
2401
+ _See code: [@simplysf/simply-document](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-document@0.3.6/packages/simply-document/lib/commands/simply/document/diff.js)_
2402
+
2403
+ ## `sf simply document generate`
2404
+
2405
+ Generate a technical design document for a Salesforce project.
2406
+
2407
+ ```
2408
+ USAGE
2409
+ $ sf simply document generate -d <value> --output-file <value> [--json] [--flags-dir <value>] [--template-file <value>]
2410
+ [--output-format html]
2411
+
2412
+ FLAGS
2413
+ -d, --directory=<value> (required) Salesforce project source directory to scan.
2414
+ --output-file=<value> (required) Path to write the generated document to.
2415
+ --output-format=<option> [default: html] Output format to render the document in.
2416
+ <options: html>
2417
+ --template-file=<value> Path to a custom Handlebars template to render instead of the built-in one.
2418
+
2419
+ GLOBAL FLAGS
2420
+ --flags-dir=<value> Import flag values from a directory.
2421
+ --json Format output as json.
2422
+
2423
+ DESCRIPTION
2424
+ Generate a technical design document for a Salesforce project.
2425
+
2426
+ Scans a Salesforce DX project's source directory for metadata (objects, fields, Apex, Lightning components, flows,
2427
+ permissions, and more) and renders a Confluence-storage-format technical design document covering the data model,
2428
+ security model, groups/queues/permissions, solution inventory, and custom code inventory.
2429
+
2430
+ EXAMPLES
2431
+ $ sf simply document generate --directory force-app --output-file technical-design-document.html
2432
+
2433
+ $ sf simply document generate --directory force-app --output-file technical-design-document.html --template-file my-tdd-template.hbs
2434
+
2435
+ FLAG DESCRIPTIONS
2436
+ --output-format=html Output format to render the document in.
2437
+
2438
+ Currently only `html` is supported. Reserved for future formats (e.g. Markdown).
2439
+
2440
+ --template-file=<value> Path to a custom Handlebars template to render instead of the built-in one.
2441
+
2442
+ When specified, this template is rendered with the same scanned project data the built-in technical design document
2443
+ template receives, and can reuse the built-in `loud` helper. See this package's README "Custom Templates" section
2444
+ for the data shape.
2445
+ ```
2446
+
2447
+ _See code: [@simplysf/simply-document](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-document@0.3.6/packages/simply-document/lib/commands/simply/document/generate.js)_
2448
+
2449
+ ## `sf simply package dependencies install`
2450
+
2451
+ Install package dependencies for a Salesforce project.
2452
+
2453
+ ```
2454
+ USAGE
2455
+ $ sf simply package dependencies install -o <value> [--json] [--flags-dir <value>] [-a all|package] [--api-version <value>] [-z
2456
+ <value>] [-i All|Delta|Upgrade] [-k <value>...] [-r] [--output-file <value>] [-b <value>] [-s AllUsers|AdminsOnly]
2457
+ [-v <value>] [-t DeprecateOnly|Mixed|Delete] [-w <value>]
2458
+
2459
+ FLAGS
2460
+ -a, --apex-compile=<option> Compile all Apex in the org and package, or only Apex in the package; unlocked
2461
+ packages only.
2462
+ <options: all|package>
2463
+ -b, --publish-wait=<value> Maximum number of minutes to wait for the Subscriber Package Version ID to become
2464
+ available in the target org before canceling the install request.
2465
+ -i, --install-type=<option> [default: Upgrade] Install all packages, only deltas, or only newer versions.
2466
+ <options: All|Delta|Upgrade>
2467
+ -k, --installation-key=<value>... Installation key for key-protected packages
2468
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
2469
+ configuration variable is already set.
2470
+ -r, --no-prompt Don't prompt for confirmation.
2471
+ -s, --security-type=<option> [default: AdminsOnly] Security access type for the installed package. (deprecation
2472
+ notice: The default --security-type value will change from AllUsers to AdminsOnly
2473
+ in v47.0 or later.)
2474
+ <options: AllUsers|AdminsOnly>
2475
+ -t, --upgrade-type=<option> [default: Mixed] Upgrade type for the package installation; available only for
2476
+ unlocked packages.
2477
+ <options: DeprecateOnly|Mixed|Delete>
2478
+ -v, --target-dev-hub=<value> Username or alias of the Dev Hub org.
2479
+ -w, --wait=<value> Number of minutes to wait for installation status.
2480
+ -z, --branch=<value> Package branch to consider when specifiying a Package/VersionNumber combination
2481
+ --api-version=<value> Override the api version used for api requests made by this command
2482
+ --output-file=<value> Path to write a JSON install report to.
2483
+
2484
+ GLOBAL FLAGS
2485
+ --flags-dir=<value> Import flag values from a directory.
2486
+ --json Format output as json.
2487
+
2488
+ DESCRIPTION
2489
+ Install package dependencies for a Salesforce project.
2490
+
2491
+ Installs all specified package dependencies in a Salesforce DX project using the sfdx-project.json definition.
2492
+
2493
+ EXAMPLES
2494
+ $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub
2495
+
2496
+ $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub --installation-key "MyPackage1Alias:MyPackage1Key"
2497
+
2498
+ $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub --installation-key "MyPackage1Alias:MyPackage1Key" --installation-key "MyPackage2Alias:MyPackage2Key"
2499
+
2500
+ $ sf simply package dependencies install --target-org myTargetOrg --target-dev-hub myTargetDevHub --output-file install-report.json
2501
+
2502
+ FLAG DESCRIPTIONS
2503
+ -a, --apex-compile=all|package
2504
+
2505
+ Compile all Apex in the org and package, or only Apex in the package; unlocked packages only.
2506
+
2507
+ Applies to unlocked packages only. Specifies whether to compile all Apex in the org and package, or only the Apex in
2508
+ the package.
2509
+
2510
+ For package installs into production orgs, or any org that has Apex Compile on Deploy enabled, the platform compiles
2511
+ all Apex in the org after the package install or upgrade operation completes.
2512
+
2513
+ This approach assures that package installs and upgrades don’t impact the performance of an org, and is done even if
2514
+ --apex-compile package is specified.
2515
+
2516
+ -i, --install-type=All|Delta|Upgrade Install all packages, only deltas, or only newer versions.
2517
+
2518
+ If 'All' is specified, then all packages specified in package dependencies are installed, regardless of if the
2519
+ version already is installed in the org. If 'Delta' is specified, then only packages that differ from what is
2520
+ installed in the org will be installed. If 'Upgrade' is specified, then a package is installed only if it isn't
2521
+ already installed, or if its semantic version (major.minor.patch.build) is newer than the version currently
2522
+ installed in the org; packages with an installed version that is the same as or newer than the target version are
2523
+ skipped.
2524
+
2525
+ -k, --installation-key=<value>... Installation key for key-protected packages
2526
+
2527
+ Installation key for key-protected packages in the key:value format of SubscriberPackageVersionId:Key
2528
+
2529
+ -r, --no-prompt Don't prompt for confirmation.
2530
+
2531
+ Allows the following without an explicit confirmation response: 1) Remote Site Settings and Content Security Policy
2532
+ websites to send or receive data, and 2) --upgrade-type Delete to proceed.
2533
+
2534
+ -t, --upgrade-type=DeprecateOnly|Mixed|Delete
2535
+
2536
+ Upgrade type for the package installation; available only for unlocked packages.
2537
+
2538
+ For package upgrades, specifies whether to mark all removed components as deprecated (DeprecateOnly), to delete
2539
+ removed components that can be safely deleted and deprecate the others (Mixed), or to delete all removed components,
2540
+ except for custom objects and custom fields, that don't have dependencies (Delete). The default is Mixed. Can
2541
+ specify DeprecateOnly or Delete only for unlocked package upgrades.
2542
+
2543
+ -z, --branch=<value> Package branch to consider when specifiying a Package/VersionNumber combination
2544
+
2545
+ For dependencies specified by Package/VersionNumber combination, you can specify the branch group of builds to work
2546
+ from by entering the branch build name. If not specified, the builds from NULL branch will be considered.
2547
+
2548
+ --output-file=<value> Path to write a JSON install report to.
2549
+
2550
+ When specified, a JSON report of the install outcome for every resolved dependency is written to this path, in
2551
+ addition to the normal terminal output you can continue to monitor as the command runs. Each entry includes the
2552
+ package name, the SubscriberPackageVersionId already installed in the org (if any), the SubscriberPackageVersionId
2553
+ that was attempted, and the decision made (Skipped, Installed, Installing, or Failed).
2554
+ ```
2555
+
2556
+ _See code: [@simplysf/simply-package](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-package@2.8.13/packages/simply-package/lib/commands/simply/package/dependencies/install.js)_
2557
+
2558
+ ## `sf simply package dependencies manage`
2559
+
2560
+ Manage package dependency versions for a Salesforce project.
2561
+
2562
+ ```
2563
+ USAGE
2564
+ $ sf simply package dependencies manage -v <value> [--json] [--flags-dir <value>] [-b <value>] [--update-to-released |
2565
+ --update-to-latest] [--api-version <value>]
2566
+
2567
+ FLAGS
2568
+ -b, --branch=<value> Package branch to consider when evaluating version options.
2569
+ -v, --target-dev-hub=<value> (required) Username or alias of the Dev Hub org. Not required if the `target-dev-hub`
2570
+ configuration variable is already set.
2571
+ --api-version=<value> Override the api version used for api requests made by this command
2572
+ --update-to-latest Automatically set all dependencies to the latest non-pinned build.
2573
+ --update-to-released Automatically update all dependencies to the latest released version.
2574
+
2575
+ GLOBAL FLAGS
2576
+ --flags-dir=<value> Import flag values from a directory.
2577
+ --json Format output as json.
2578
+
2579
+ DESCRIPTION
2580
+ Manage package dependency versions for a Salesforce project.
2581
+
2582
+ Interactively updates package dependency versions in sfdx-project.json by querying the Dev Hub for available versions.
2583
+ Supports interactive selection or automatic update to the latest released or latest build version.
2584
+
2585
+ Project-level configuration (in sfdx-project.json) is read from the following keys:
2586
+
2587
+ - plugins.simply.dependencies.ignore — array of Package2Ids or aliases to leave unchanged
2588
+ - plugins.simply.package.brancheswithreleasedversions — array of branch names that contain released versions
2589
+
2590
+ EXAMPLES
2591
+ $ sf simply package dependencies manage --target-dev-hub myDevHub
2592
+
2593
+ $ sf simply package dependencies manage --target-dev-hub myDevHub --branch my-feature-branch
2594
+
2595
+ $ sf simply package dependencies manage --target-dev-hub myDevHub --update-to-released
2596
+
2597
+ $ sf simply package dependencies manage --target-dev-hub myDevHub --update-to-latest
2598
+
2599
+ FLAG DESCRIPTIONS
2600
+ -b, --branch=<value> Package branch to consider when evaluating version options.
2601
+
2602
+ When specified, the command will include the latest build on this branch as a selectable option for each dependency.
2603
+
2604
+ --update-to-latest Automatically set all dependencies to the latest non-pinned build.
2605
+
2606
+ When specified, all dependencies managed by the Dev Hub are automatically set to a non-pinned X.Y.Z.LATEST version
2607
+ number without interactive prompts. Mutually exclusive with --update-to-released.
2608
+
2609
+ --update-to-released Automatically update all dependencies to the latest released version.
2610
+
2611
+ When specified, all dependencies managed by the Dev Hub are automatically updated to the latest released package
2612
+ version without interactive prompts. Mutually exclusive with --update-to-latest.
2613
+ ```
2614
+
2615
+ _See code: [@simplysf/simply-package](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-package@2.8.13/packages/simply-package/lib/commands/simply/package/dependencies/manage.js)_
2616
+
2617
+ ## `sf simply package version cleanup`
2618
+
2619
+ Cleanup package versions.
2620
+
2621
+ ```
2622
+ USAGE
2623
+ $ sf simply package version cleanup -p <value> -v <value> [--json] [--flags-dir <value>] [--api-version <value>] [-s <value> | -x
2624
+ <value>]
2625
+
2626
+ FLAGS
2627
+ -p, --package=<value> (required) Package Id
2628
+ -s, --matcher=<value> MAJOR.MINOR.PATCH to select on
2629
+ -v, --target-dev-hub=<value> (required) Username or alias of the Dev Hub org. Not required if the `target-dev-hub`
2630
+ configuration variable is already set.
2631
+ -x, --exclude-matcher=<value> MAJOR.MINOR.PATCH to exclude on
2632
+ --api-version=<value> Override the api version used for api requests made by this command
2633
+
2634
+ GLOBAL FLAGS
2635
+ --flags-dir=<value> Import flag values from a directory.
2636
+ --json Format output as json.
2637
+
2638
+ DESCRIPTION
2639
+ Cleanup package versions.
2640
+
2641
+ Delete package versions for a given package provided a MAJOR.MINOR.PATCH matcher, either to select on or to exclude
2642
+ on. Does not delete released package versions.
2643
+
2644
+ If --matcher is provided, only the unreleased versions matching MAJOR.MINOR.PATCH are deleted. If --exclude-matcher is
2645
+ provided instead, every unreleased version that does _not_ match MAJOR.MINOR.PATCH is deleted. Exactly one of
2646
+ --matcher or --exclude-matcher must be specified.
2647
+
2648
+ EXAMPLES
2649
+ $ sf simply package version cleanup --package 0Hoxx00000000CqCAI --matcher 2.10.0 --target-dev-hub myDevHub
2650
+
2651
+ $ sf simply package version cleanup --package 0Hoxx00000000CqCAI --exclude-matcher 2.10.0 --target-dev-hub myDevHub
2652
+
2653
+ FLAG DESCRIPTIONS
2654
+ -p, --package=<value> Package Id
2655
+
2656
+ The 0Ht Package Id that you wish to cleanup versions for.
2657
+
2658
+ -s, --matcher=<value> MAJOR.MINOR.PATCH to select on
2659
+
2660
+ The MAJOR.MINOR.PATCH matcher that should be used to find package versions to delete. Only versions matching this
2661
+ matcher are deleted. Mutually exclusive with --exclude-matcher.
2662
+
2663
+ -x, --exclude-matcher=<value> MAJOR.MINOR.PATCH to exclude on
2664
+
2665
+ The MAJOR.MINOR.PATCH matcher that should be used to find package versions to keep. Every unreleased version that
2666
+ does not match this matcher is deleted. Mutually exclusive with --matcher.
2667
+ ```
2668
+
2669
+ _See code: [@simplysf/simply-package](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-package@2.8.13/packages/simply-package/lib/commands/simply/package/version/cleanup.js)_
2670
+
2671
+ ## `sf simply permissions analyze`
2672
+
2673
+ Analyze permission sets and permission set groups in an org.
2674
+
2675
+ ```
2676
+ USAGE
2677
+ $ sf simply permissions analyze -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-f <value>...] [--output
2678
+ <value>]
2679
+
2680
+ FLAGS
2681
+ -f, --filter=<value>... Permission set or group names to include
2682
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
2683
+ configuration variable is already set.
2684
+ --api-version=<value> Override the api version used for api requests made by this command
2685
+ --output=<value> [default: permissions_report.html] Output HTML file path
2686
+
2687
+ GLOBAL FLAGS
2688
+ --flags-dir=<value> Import flag values from a directory.
2689
+ --json Format output as json.
2690
+
2691
+ DESCRIPTION
2692
+ Analyze permission sets and permission set groups in an org.
2693
+
2694
+ Generates an HTML report of every permission set and permission set group in the target org, grouped by installed
2695
+ package, including their object and field permissions.
2696
+
2697
+ EXAMPLES
2698
+ $ sf simply permissions analyze --target-org myOrg
2699
+
2700
+ $ sf simply permissions analyze --target-org myOrg --output reports/permissions.html --filter My_Permission_Set --filter Another_Set
2701
+
2702
+ FLAG DESCRIPTIONS
2703
+ -f, --filter=<value>... Permission set or group names to include
2704
+
2705
+ One or more PermissionSet (Name) or PermissionSetGroup (DeveloperName) API names to restrict the report to. If
2706
+ omitted, all permission sets and groups are included.
2707
+
2708
+ --output=<value> Output HTML file path
2709
+
2710
+ The path to write the generated HTML report to.
2711
+ ```
2712
+
2713
+ _See code: [@simplysf/simply-permissions](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-permissions@1.2.28/packages/simply-permissions/lib/commands/simply/permissions/analyze.js)_
2714
+
2715
+ ## `sf simply permissions build`
2716
+
2717
+ Generate a permission set from Salesforce source metadata.
2718
+
2719
+ ```
2720
+ USAGE
2721
+ $ sf simply permissions build --type read-only|view-all|modify-all -n <value> -d <value> --output <value> [--json]
2722
+ [--flags-dir <value>] [-c <value>] [--include-record-types] [--label <value>] [--description <value>]
2723
+
2724
+ FLAGS
2725
+ -c, --config=<value> Path to a permission set configuration file
2726
+ -d, --directory=<value> (required) Path to the Salesforce project directory
2727
+ -n, --name=<value> (required) API name for the permission set
2728
+ --description=<value> Description for the permission set
2729
+ --include-record-types Include record type visibilities
2730
+ --label=<value> Label for the permission set
2731
+ --output=<value> (required) Output directory
2732
+ --type=<option> (required) Baseline permission type
2733
+ <options: read-only|view-all|modify-all>
2734
+
2735
+ GLOBAL FLAGS
2736
+ --flags-dir=<value> Import flag values from a directory.
2737
+ --json Format output as json.
2738
+
2739
+ DESCRIPTION
2740
+ Generate a permission set from Salesforce source metadata.
2741
+
2742
+ Scans a Salesforce project directory for custom objects, fields, tabs, and (optionally) record types, then generates a
2743
+ permission set XML file with a baseline of permissions determined by --type. An optional JSON --config file can
2744
+ override individual object, field, tab, record type, and user permission settings, as well as whether the permission
2745
+ set requires activation.
2746
+
2747
+ EXAMPLES
2748
+ $ sf simply permissions build --type read-only --name My_Read_Only_Access --directory force-app --output force-app/main/default/permissionsets
2749
+
2750
+ $ sf simply permissions build --type modify-all --name My_Admin_Access --directory force-app --config config/permission-overrides.json --output force-app/main/default/permissionsets --include-record-types
2751
+
2752
+ FLAG DESCRIPTIONS
2753
+ -c, --config=<value> Path to a permission set configuration file
2754
+
2755
+ The path to a JSON file that overrides individual object, field, tab, record type, and user permission settings, as
2756
+ well as whether the permission set requires activation, on top of the --type baseline.
2757
+
2758
+ -d, --directory=<value> Path to the Salesforce project directory
2759
+
2760
+ The path to the Salesforce source directory to scan for custom objects, fields, tabs, and record types.
2761
+
2762
+ -n, --name=<value> API name for the permission set
2763
+
2764
+ The API name for the generated permission set; also used to derive the output filename.
2765
+
2766
+ --include-record-types Include record type visibilities
2767
+
2768
+ Automatically include record type visibilities discovered from the source metadata, marked as visible by default.
2769
+
2770
+ --output=<value> Output directory
2771
+
2772
+ The directory to write the generated permission set XML file to.
2773
+
2774
+ --type=read-only|view-all|modify-all Baseline permission type
2775
+
2776
+ The baseline permission level to generate: 'read-only' grants read access to all discovered objects and fields,
2777
+ 'view-all' additionally grants view-all-records, and 'modify-all' grants full CRUD and modify-all-records access.
2778
+ ```
2779
+
2780
+ _See code: [@simplysf/simply-permissions](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-permissions@1.2.28/packages/simply-permissions/lib/commands/simply/permissions/build.js)_
2781
+
2782
+ ## `sf simply project update api-version`
2783
+
2784
+ Update the Salesforce API version across a project's metadata.
2785
+
2786
+ ```
2787
+ USAGE
2788
+ $ sf simply project update api-version -d <value> -a <value> [--json] [--flags-dir <value>]
2789
+
2790
+ FLAGS
2791
+ -a, --api-version=<value> (required) Target Salesforce API version
2792
+ -d, --directory=<value> (required) Path to the Salesforce project directory
2793
+
2794
+ GLOBAL FLAGS
2795
+ --flags-dir=<value> Import flag values from a directory.
2796
+ --json Format output as json.
2797
+
2798
+ DESCRIPTION
2799
+ Update the Salesforce API version across a project's metadata.
2800
+
2801
+ Recursively scans a directory for `-meta.xml` files and updates every `<apiVersion>` tag to the target version. If the
2802
+ directory contains an `sfdx-project.json` file, its `sourceApiVersion` property is updated to match.
2803
+
2804
+ EXAMPLES
2805
+ $ sf simply project update api-version --directory force-app --api-version 62.0
2806
+
2807
+ $ sf simply project update api-version --directory . --api-version 63.0
2808
+
2809
+ FLAG DESCRIPTIONS
2810
+ -a, --api-version=<value> Target Salesforce API version
2811
+
2812
+ The Salesforce API version to set on all metadata files and, if present, sfdx-project.json.
2813
+
2814
+ -d, --directory=<value> Path to the Salesforce project directory
2815
+
2816
+ The path to the Salesforce project directory to scan for metadata files.
2817
+ ```
2818
+
2819
+ _See code: [@simplysf/simply-project](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-project@1.2.17/packages/simply-project/lib/commands/simply/project/update/api-version.js)_
2820
+
2821
+ ## `sf simply schema generate`
2822
+
2823
+ Generate Salesforce CustomObject/CustomField/RecordType metadata from a CSV or Excel schema definition file.
2824
+
2825
+ ```
2826
+ USAGE
2827
+ $ sf simply schema generate -f <value> -d <value> [--json] [--flags-dir <value>]
2828
+
2829
+ FLAGS
2830
+ -d, --output-dir=<value> (required) The output directory to write the generated metadata into.
2831
+ -f, --file=<value> (required) Path to the CSV or Excel (.xlsx/.xls) schema definition file.
2832
+
2833
+ GLOBAL FLAGS
2834
+ --flags-dir=<value> Import flag values from a directory.
2835
+ --json Format output as json.
2836
+
2837
+ DESCRIPTION
2838
+ Generate Salesforce CustomObject/CustomField/RecordType metadata from a CSV or Excel schema definition file.
2839
+
2840
+ Reads a flat CSV or an Excel workbook describing one or more custom objects, their fields, and (CSV only) their record
2841
+ types, and writes Salesforce DX source-format metadata (`.object-meta.xml`, `.field-meta.xml`, `.recordType-meta.xml`)
2842
+ into `--output-dir`.
2843
+
2844
+ For CSV input, each row's `Type` column (`CustomObject`, `CustomField`, or `RecordType`) and `ObjectName` column group
2845
+ the rows by object. For Excel input (`.xlsx`/`.xls`), the workbook must contain an `object` worksheet (a two-column
2846
+ key/value sheet describing the sObject) and a `fields` worksheet (one row per field); picklist fields may reference an
2847
+ additional values worksheet by name.
2848
+
2849
+ EXAMPLES
2850
+ $ sf simply schema generate --file schema.csv --output-dir force-app/main/default/objects
2851
+
2852
+ $ sf simply schema generate --file MyObject__c.xlsx --output-dir force-app/main/default/objects
2853
+
2854
+ FLAG DESCRIPTIONS
2855
+ -f, --file=<value> Path to the CSV or Excel (.xlsx/.xls) schema definition file.
2856
+
2857
+ A `.csv` file processed as the flat CSV flow, or a `.xlsx`/`.xls` file processed as the Excel flow.
2858
+ ```
2859
+
2860
+ _See code: [@simplysf/simply-schema](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-schema@0.3.14/packages/simply-schema/lib/commands/simply/schema/generate.js)_
2861
+
2862
+ ## `sf simply schema visualize`
2863
+
2864
+ Generate visualizations of Salesforce schema from a live org or local source files.
2865
+
2866
+ ```
2867
+ USAGE
2868
+ $ sf simply schema visualize [--json] [--flags-dir <value>] [-o <value>] [--api-version <value>] [-d <value>...]
2869
+ [--source-objects <value>] [--related-objects <value>] [--object-type custom|standard|all] [--field-type
2870
+ custom|standard|all] [--output-type html|md|csv...] [--output-dir <value>]
2871
+
2872
+ FLAGS
2873
+ -d, --source-dir=<value>... One or more paths to directories containing Salesforce DX source. Use this for
2874
+ local-source generation.
2875
+ -o, --target-org=<value> Username or alias of the org to visualize. Use this for live-org generation.
2876
+ --api-version=<value> Override the api version used for api requests made by this command
2877
+ --field-type=<option> [default: custom] Scope of relationship fields to include: custom, standard, or all.
2878
+ <options: custom|standard|all>
2879
+ --object-type=<option> [default: custom] Scope of objects to include: custom, standard, or all.
2880
+ <options: custom|standard|all>
2881
+ --output-dir=<value> The output directory for the generated files.
2882
+ --output-type=<option>... [default: html,md] Output format(s) to generate.
2883
+ <options: html|md|csv>
2884
+ --related-objects=<value> Comma-separated list of related objects to filter the visualization to, or `all`.
2885
+ --source-objects=<value> Comma-separated list of source objects to start from, or `all`.
2886
+
2887
+ GLOBAL FLAGS
2888
+ --flags-dir=<value> Import flag values from a directory.
2889
+ --json Format output as json.
2890
+
2891
+ DESCRIPTION
2892
+ Generate visualizations of Salesforce schema from a live org or local source files.
2893
+
2894
+ Builds an object-relationship diagram (interactive HTML), a Mermaid entity-relationship diagram (Markdown), and/or a
2895
+ relationship CSV, either from a live org's Tooling API or from local Salesforce DX source directories. Exactly one of
2896
+ `--target-org` or `--source-dir` must be specified.
2897
+
2898
+ EXAMPLES
2899
+ $ sf simply schema visualize --target-org myTargetOrg
2900
+
2901
+ $ sf simply schema visualize --target-org myTargetOrg --source-objects Account,Contact --related-objects all
2902
+
2903
+ $ sf simply schema visualize --source-dir force-app --output-type html,md
2904
+
2905
+ FLAG DESCRIPTIONS
2906
+ --output-type=html|md|csv... Output format(s) to generate.
2907
+
2908
+ One or more of `html` (interactive diagram), `md` (Mermaid entity-relationship diagram), or `csv` (relationship
2909
+ data).
2910
+
2911
+ --related-objects=<value> Comma-separated list of related objects to filter the visualization to, or `all`.
2912
+
2913
+ Comma-separated API names of related objects to include in the visualization. If `all` is specified, every related
2914
+ object is included regardless of `--object-type`. If not specified, related objects aren't filtered.
2915
+
2916
+ --source-objects=<value> Comma-separated list of source objects to start from, or `all`.
2917
+
2918
+ Comma-separated API names of the objects to start the visualization from (e.g. `Account,MyObject__c`). If `all` is
2919
+ specified, every discovered object is included. If not specified, every object matching `--object-type` is included.
2920
+ ```
2921
+
2922
+ _See code: [@simplysf/simply-schema](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-schema@0.3.14/packages/simply-schema/lib/commands/simply/schema/visualize.js)_
2923
+
2924
+ ## `sf simply sobject backup`
2925
+
2926
+ Back up SObject data to a CSV file.
2927
+
2928
+ ```
2929
+ USAGE
2930
+ $ sf simply sobject backup -o <value> -s <value> [--json] [--flags-dir <value>] [--api-version <value>] [-d <value>]
2931
+ [--include-relationship-fields] [-f <value>...]
2932
+
2933
+ FLAGS
2934
+ -d, --output-dir=<value> Output directory
2935
+ -f, --additional-fields=<value>... Additional fields to include
2936
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
2937
+ configuration variable is already set.
2938
+ -s, --sobject=<value> (required) SObject API name
2939
+ --api-version=<value> Override the api version used for api requests made by this command
2940
+ --include-relationship-fields Include parent relationship fields
2941
+
2942
+ GLOBAL FLAGS
2943
+ --flags-dir=<value> Import flag values from a directory.
2944
+ --json Format output as json.
2945
+
2946
+ DESCRIPTION
2947
+ Back up SObject data to a CSV file.
2948
+
2949
+ Describes the given SObject, queries every field via the Bulk API, and writes the results to a timestamped CSV file.
2950
+
2951
+ EXAMPLES
2952
+ $ sf simply sobject backup --target-org myOrg --sobject Account
2953
+
2954
+ $ sf simply sobject backup --target-org myOrg --sobject Custom_Object__c --output-dir backups
2955
+
2956
+ $ sf simply sobject backup --target-org myOrg --sobject Account --include-relationship-fields
2957
+
2958
+ $ sf simply sobject backup --target-org myOrg --sobject Account --additional-fields Owner.Manager.Name --additional-fields Parent.Owner.Email
2959
+
2960
+ FLAG DESCRIPTIONS
2961
+ -d, --output-dir=<value> Output directory
2962
+
2963
+ The directory to save the backup CSV file to. Defaults to the current directory.
2964
+
2965
+ -f, --additional-fields=<value>... Additional fields to include
2966
+
2967
+ Extra field API names to include in the query, on top of the SObject's own fields and any fields discovered via
2968
+ --include-relationship-fields. Useful for fields --include-relationship-fields won't discover, such as multi-hop
2969
+ relationship paths (e.g. Owner.Manager.Name) or fields through a polymorphic relationship. Fields already included
2970
+ are not duplicated.
2971
+
2972
+ -s, --sobject=<value> SObject API name
2973
+
2974
+ The API name of the SObject to back up.
2975
+
2976
+ --include-relationship-fields Include parent relationship fields
2977
+
2978
+ For every lookup/master-detail field, describe its parent SObject and include its identifying fields (e.g.
2979
+ RecordTypeId includes RecordType.Name and RecordType.DeveloperName). Polymorphic relationship fields, such as
2980
+ OwnerId, are skipped.
2981
+ ```
2982
+
2983
+ _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.2/packages/simply-sobject/lib/commands/simply/sobject/backup.js)_
2984
+
2985
+ ## `sf simply sobject deduplicate`
2986
+
2987
+ Identify and prepare deduplication of an SObject's records.
2988
+
2989
+ ```
2990
+ USAGE
2991
+ $ sf simply sobject deduplicate -o <value> -c <value> [--json] [--flags-dir <value>] [--api-version <value>] [--dry-run]
2992
+ [--output-dir <value>]
2993
+
2994
+ FLAGS
2995
+ -c, --config=<value> (required) Path to a deduplication configuration file
2996
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
2997
+ configuration variable is already set.
2998
+ --api-version=<value> Override the api version used for api requests made by this command
2999
+ --dry-run Skip calculating associated object lookup replacements
3000
+ --output-dir=<value> Output directory
3001
+
3002
+ GLOBAL FLAGS
3003
+ --flags-dir=<value> Import flag values from a directory.
3004
+ --json Format output as json.
3005
+
3006
+ DESCRIPTION
3007
+ Identify and prepare deduplication of an SObject's records.
3008
+
3009
+ Queries an SObject, groups records by a composite key built from configured fields, and writes CSV files listing which
3010
+ records are unique and which are duplicates that should be deleted. For each associated object with lookups to the
3011
+ primary object, also writes a CSV of the lookup field updates needed to re-point duplicate references at the surviving
3012
+ unique record. This command does not perform any deletes or updates in the org; it only prepares the CSV files for a
3013
+ subsequent data load.
3014
+
3015
+ EXAMPLES
3016
+ $ sf simply sobject deduplicate --target-org myOrg --config config/deduplicate-account.json
3017
+
3018
+ $ sf simply sobject deduplicate --target-org myOrg --config config/deduplicate-account.json --dry-run
3019
+
3020
+ FLAG DESCRIPTIONS
3021
+ -c, --config=<value> Path to a deduplication configuration file
3022
+
3023
+ The path to a JSON file describing the primary object, its composite key fields, and any associated objects with
3024
+ lookups to it.
3025
+
3026
+ --dry-run Skip calculating associated object lookup replacements
3027
+
3028
+ When set, only the primary object's unique/duplicate CSV files are generated; associated object lookup replacement
3029
+ files are not calculated.
3030
+
3031
+ --output-dir=<value> Output directory
3032
+
3033
+ The directory to write the generated CSV files to. Defaults to ./temp/<primaryObjectApiName>.
3034
+ ```
3035
+
3036
+ _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.2/packages/simply-sobject/lib/commands/simply/sobject/deduplicate.js)_
3037
+
3038
+ ## `sf simply sobject history export`
3039
+
3040
+ Export field history for an SObject within a date range to a CSV file.
3041
+
3042
+ ```
3043
+ USAGE
3044
+ $ sf simply sobject history export -o <value> -s <value> --start-date <value> --end-date <value> [--json] [--flags-dir <value>]
3045
+ [--api-version <value>] [-d <value>]
3046
+
3047
+ FLAGS
3048
+ -d, --output-dir=<value> Output directory
3049
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
3050
+ configuration variable is already set.
3051
+ -s, --sobject=<value> (required) SObject API name
3052
+ --api-version=<value> Override the api version used for api requests made by this command
3053
+ --end-date=<value> (required) End date (YYYY-MM-DD)
3054
+ --start-date=<value> (required) Start date (YYYY-MM-DD)
3055
+
3056
+ GLOBAL FLAGS
3057
+ --flags-dir=<value> Import flag values from a directory.
3058
+ --json Format output as json.
3059
+
3060
+ DESCRIPTION
3061
+ Export field history for an SObject within a date range to a CSV file.
3062
+
3063
+ Queries the field history object for the given SObject (e.g. `AccountHistory`, `Custom_Object__History`, or
3064
+ `OpportunityFieldHistory`) for changes created within the given date range, and writes the results to a timestamped
3065
+ CSV file.
3066
+
3067
+ EXAMPLES
3068
+ $ sf simply sobject history export --target-org myOrg --sobject Account --start-date 2026-01-01 --end-date 2026-01-31
3069
+
3070
+ $ sf simply sobject history export --target-org myOrg --sobject Custom_Object__c --start-date 2026-01-01 --end-date 2026-01-31 --output-dir exports
3071
+
3072
+ FLAG DESCRIPTIONS
3073
+ -d, --output-dir=<value> Output directory
3074
+
3075
+ The directory to save the exported CSV file to. Defaults to the current directory.
3076
+
3077
+ -s, --sobject=<value> SObject API name
3078
+
3079
+ The API name of the SObject to export field history for (e.g. Account or Custom_Object__c).
3080
+
3081
+ --end-date=<value> End date (YYYY-MM-DD)
3082
+
3083
+ The end of the date range to export history for, inclusive.
3084
+
3085
+ --start-date=<value> Start date (YYYY-MM-DD)
3086
+
3087
+ The start of the date range to export history for, inclusive.
3088
+ ```
3089
+
3090
+ _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.2/packages/simply-sobject/lib/commands/simply/sobject/history/export.js)_
3091
+
3092
+ ## `sf simply sobject history query`
3093
+
3094
+ Query the field history of an SObject, with optional filtering.
3095
+
3096
+ ```
3097
+ USAGE
3098
+ $ sf simply sobject history query -o <value> --object <value> [--json] [--flags-dir <value>] [--api-version <value>] [--filters
3099
+ <value>] [-d <value>]
3100
+
3101
+ FLAGS
3102
+ -d, --output-dir=<value> Output directory
3103
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
3104
+ configuration variable is already set.
3105
+ --api-version=<value> Override the api version used for api requests made by this command
3106
+ --filters=<value> Path to a filter configuration file, or a raw JSON filter string
3107
+ --object=<value> (required) SObject API name
3108
+
3109
+ GLOBAL FLAGS
3110
+ --flags-dir=<value> Import flag values from a directory.
3111
+ --json Format output as json.
3112
+
3113
+ DESCRIPTION
3114
+ Query the field history of an SObject, with optional filtering.
3115
+
3116
+ Queries the field history object for the given SObject (e.g. `AccountHistory`, `Custom_Object__History`, or
3117
+ `OpportunityFieldHistory`) and writes the results to a timestamped CSV file. An optional filter tree can be supplied
3118
+ to narrow the results: conditions on Field, CreatedById, CreatedDate, or the parent lookup field are pushed into the
3119
+ SOQL WHERE clause; conditions on any other field (e.g. OldValue or NewValue) are applied client-side after the query
3120
+ runs.
3121
+
3122
+ EXAMPLES
3123
+ $ sf simply sobject history query --target-org myOrg --object Account
3124
+
3125
+ $ sf simply sobject history query --target-org myOrg --object Custom_Object__c --filters config/history-filters.json
3126
+
3127
+ $ sf simply sobject history query --target-org myOrg --object Account --filters '{"logic":"AND","filters":[{"field":"Field","operator":"=","value":"Name"}]}'
3128
+
3129
+ FLAG DESCRIPTIONS
3130
+ -d, --output-dir=<value> Output directory
3131
+
3132
+ The directory to save the query results CSV file to. Defaults to the current directory.
3133
+
3134
+ --filters=<value> Path to a filter configuration file, or a raw JSON filter string
3135
+
3136
+ A JSON object describing a tree of filter conditions: `{ "logic": "AND", "filters": [ { "field": "Field",
3137
+ "operator": "=", "value": "Status__c" } ] }`. Each entry in `filters` is either a condition (`field`, `operator`,
3138
+ `value`) or another nested group with its own `logic`/`filters`. Supported operators are =, !=, >, <, >=, <=, IN,
3139
+ NOT IN, and LIKE (using `%` as a wildcard).
3140
+
3141
+ --object=<value> SObject API name
3142
+
3143
+ The API name of the SObject to query field history for (e.g. Account or Custom_Object__c).
3144
+ ```
3145
+
3146
+ _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.2/packages/simply-sobject/lib/commands/simply/sobject/history/query.js)_
3147
+
3148
+ ## `sf simply sobject history schema`
3149
+
3150
+ Report on which objects and fields have field history tracking enabled.
3151
+
3152
+ ```
3153
+ USAGE
3154
+ $ sf simply sobject history schema -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [-d <value>]
3155
+
3156
+ FLAGS
3157
+ -d, --output-dir=<value> Output directory
3158
+ -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
3159
+ configuration variable is already set.
3160
+ --api-version=<value> Override the api version used for api requests made by this command
3161
+
3162
+ GLOBAL FLAGS
3163
+ --flags-dir=<value> Import flag values from a directory.
3164
+ --json Format output as json.
3165
+
3166
+ DESCRIPTION
3167
+ Report on which objects and fields have field history tracking enabled.
3168
+
3169
+ Identifies every object with field history tracking enabled, and every tracked field on each, resolving the
3170
+ managed/unlocked package each field belongs to, and writes the results to a timestamped CSV file and a browsable HTML
3171
+ report.
3172
+
3173
+ EXAMPLES
3174
+ $ sf simply sobject history schema --target-org myOrg
3175
+
3176
+ $ sf simply sobject history schema --target-org myOrg --output-dir reports
3177
+
3178
+ FLAG DESCRIPTIONS
3179
+ -d, --output-dir=<value> Output directory
3180
+
3181
+ The directory to save the generated CSV and HTML report files to. Defaults to the current directory.
3182
+ ```
3183
+
3184
+ _See code: [@simplysf/simply-sobject](https://github.com/SimplySF/simply-node/blob/@simplysf/simply-sobject@1.6.2/packages/simply-sobject/lib/commands/simply/sobject/history/schema.js)_
3185
+ <!-- commandsstop -->
3186
+
3187
+ ## License
3188
+
3189
+ Licensed under the [Apache-2.0](https://raw.githubusercontent.com/SimplySF/simply-node/main/LICENSE.txt) license.