sfdx-hardis 5.43.3 → 5.43.4

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.
@@ -57,101 +57,6 @@
57
57
  "world:hello"
58
58
  ]
59
59
  },
60
- "hardis:auth:login": {
61
- "aliases": [],
62
- "args": {},
63
- "description": "\nLogins to a Salesforce org from CI/CD workflows.\n\nWill use the variables and files defined by configuration commands:\n\n- CI/CD repos: [Configure Org CI Authentication](https://sfdx-hardis.cloudity.com/hardis/project/configure/auth/)\n- Monitoring repos: [Configure Org Monitoring](https://sfdx-hardis.cloudity.com/hardis/org/configure/monitoring/)\n\nIf you have a technical org (for example to call Agentforce from another org, you can define variable SFDX_AUTH_URL_TECHNICAL_ORG and it will authenticate it with alias TECHNICAL_ORG)\n\nYou can get SFDX_AUTH_URL_TECHNICAL_ORG value by running the command: `sf org display --verbose --json` and copy the value of the field `sfdxAuthUrl` in the output.\n",
64
- "examples": [
65
- "$ sf hardis:auth:login",
66
- "CI=true sf hardis:auth:login"
67
- ],
68
- "flags": {
69
- "json": {
70
- "description": "Format output as json.",
71
- "helpGroup": "GLOBAL",
72
- "name": "json",
73
- "allowNo": false,
74
- "type": "boolean"
75
- },
76
- "flags-dir": {
77
- "helpGroup": "GLOBAL",
78
- "name": "flags-dir",
79
- "summary": "Import flag values from a directory.",
80
- "hasDynamicHelp": false,
81
- "multiple": false,
82
- "type": "option"
83
- },
84
- "instanceurl": {
85
- "char": "r",
86
- "description": "URL of org instance",
87
- "name": "instanceurl",
88
- "hasDynamicHelp": false,
89
- "multiple": false,
90
- "type": "option"
91
- },
92
- "devhub": {
93
- "char": "h",
94
- "description": "Also connect associated DevHub",
95
- "name": "devhub",
96
- "allowNo": false,
97
- "type": "boolean"
98
- },
99
- "scratchorg": {
100
- "char": "s",
101
- "description": "Scratch org",
102
- "name": "scratchorg",
103
- "allowNo": false,
104
- "type": "boolean"
105
- },
106
- "debug": {
107
- "char": "d",
108
- "description": "Activate debug mode (more logs)",
109
- "name": "debug",
110
- "allowNo": false,
111
- "type": "boolean"
112
- },
113
- "websocket": {
114
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
115
- "name": "websocket",
116
- "hasDynamicHelp": false,
117
- "multiple": false,
118
- "type": "option"
119
- },
120
- "skipauth": {
121
- "description": "Skip authentication check when a default username is required",
122
- "name": "skipauth",
123
- "allowNo": false,
124
- "type": "boolean"
125
- }
126
- },
127
- "hasDynamicHelp": false,
128
- "hiddenAliases": [],
129
- "id": "hardis:auth:login",
130
- "pluginAlias": "sfdx-hardis",
131
- "pluginName": "sfdx-hardis",
132
- "pluginType": "core",
133
- "strict": true,
134
- "enableJsonFlag": true,
135
- "title": "Login",
136
- "requiresProject": false,
137
- "isESM": true,
138
- "relativePath": [
139
- "lib",
140
- "commands",
141
- "hardis",
142
- "auth",
143
- "login.js"
144
- ],
145
- "aliasPermutations": [],
146
- "permutations": [
147
- "hardis:auth:login",
148
- "auth:hardis:login",
149
- "auth:login:hardis",
150
- "hardis:login:auth",
151
- "login:hardis:auth",
152
- "login:auth:hardis"
153
- ]
154
- },
155
60
  "hardis:cache:clear": {
156
61
  "aliases": [],
157
62
  "args": {},
@@ -310,14 +215,13 @@
310
215
  "get:config:hardis"
311
216
  ]
312
217
  },
313
- "hardis:lint:access": {
218
+ "hardis:auth:login": {
314
219
  "aliases": [],
315
220
  "args": {},
316
- "description": "Check if elements(apex class and field) are at least in one permission set\n \nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-missing-access/) and can output Grafana, Slack and MsTeams Notifications.\n",
221
+ "description": "\nLogins to a Salesforce org from CI/CD workflows.\n\nWill use the variables and files defined by configuration commands:\n\n- CI/CD repos: [Configure Org CI Authentication](https://sfdx-hardis.cloudity.com/hardis/project/configure/auth/)\n- Monitoring repos: [Configure Org Monitoring](https://sfdx-hardis.cloudity.com/hardis/org/configure/monitoring/)\n\nIf you have a technical org (for example to call Agentforce from another org, you can define variable SFDX_AUTH_URL_TECHNICAL_ORG and it will authenticate it with alias TECHNICAL_ORG)\n\nYou can get SFDX_AUTH_URL_TECHNICAL_ORG value by running the command: `sf org display --verbose --json` and copy the value of the field `sfdxAuthUrl` in the output.\n",
317
222
  "examples": [
318
- "$ sf hardis:lint:access",
319
- "$ sf hardis:lint:access -e \"ApexClass:ClassA, CustomField:Account.CustomField\"",
320
- "$ sf hardis:lint:access -i \"PermissionSet:permissionSetA, Profile\""
223
+ "$ sf hardis:auth:login",
224
+ "CI=true sf hardis:auth:login"
321
225
  ],
322
226
  "flags": {
323
227
  "json": {
@@ -335,40 +239,27 @@
335
239
  "multiple": false,
336
240
  "type": "option"
337
241
  },
338
- "elementsignored": {
339
- "char": "e",
340
- "description": "Ignore specific elements separated by commas",
341
- "name": "elementsignored",
342
- "default": "",
343
- "hasDynamicHelp": false,
344
- "multiple": false,
345
- "type": "option"
346
- },
347
- "ignorerights": {
348
- "char": "i",
349
- "description": "Ignore permission sets or profiles",
350
- "name": "ignorerights",
351
- "default": "",
242
+ "instanceurl": {
243
+ "char": "r",
244
+ "description": "URL of org instance",
245
+ "name": "instanceurl",
352
246
  "hasDynamicHelp": false,
353
247
  "multiple": false,
354
248
  "type": "option"
355
249
  },
356
- "folder": {
357
- "char": "f",
358
- "description": "Root folder",
359
- "name": "folder",
360
- "default": "force-app",
361
- "hasDynamicHelp": false,
362
- "multiple": false,
363
- "type": "option"
250
+ "devhub": {
251
+ "char": "h",
252
+ "description": "Also connect associated DevHub",
253
+ "name": "devhub",
254
+ "allowNo": false,
255
+ "type": "boolean"
364
256
  },
365
- "outputfile": {
366
- "char": "x",
367
- "description": "Force the path and name of output report file. Must end with .csv",
368
- "name": "outputfile",
369
- "hasDynamicHelp": false,
370
- "multiple": false,
371
- "type": "option"
257
+ "scratchorg": {
258
+ "char": "s",
259
+ "description": "Scratch org",
260
+ "name": "scratchorg",
261
+ "allowNo": false,
262
+ "type": "boolean"
372
263
  },
373
264
  "debug": {
374
265
  "char": "d",
@@ -389,86 +280,44 @@
389
280
  "name": "skipauth",
390
281
  "allowNo": false,
391
282
  "type": "boolean"
392
- },
393
- "target-org": {
394
- "aliases": [
395
- "targetusername",
396
- "u"
397
- ],
398
- "char": "o",
399
- "deprecateAliases": true,
400
- "name": "target-org",
401
- "noCacheDefault": true,
402
- "summary": "Username or alias of the target org.",
403
- "hasDynamicHelp": true,
404
- "multiple": false,
405
- "type": "option"
406
283
  }
407
284
  },
408
- "hasDynamicHelp": true,
285
+ "hasDynamicHelp": false,
409
286
  "hiddenAliases": [],
410
- "id": "hardis:lint:access",
287
+ "id": "hardis:auth:login",
411
288
  "pluginAlias": "sfdx-hardis",
412
289
  "pluginName": "sfdx-hardis",
413
290
  "pluginType": "core",
414
291
  "strict": true,
415
292
  "enableJsonFlag": true,
416
- "title": "check permission access",
417
- "supportsDevhubUsername": false,
418
- "requiresProject": true,
419
- "sourceElements": [
420
- {
421
- "regex": "/**/*.cls",
422
- "type": "ApexClass",
423
- "xmlField": "apexClass",
424
- "xmlChildren": "classAccesses",
425
- "xmlAccessField": "enabled",
426
- "ignore": {
427
- "all": false,
428
- "elements": []
429
- }
430
- },
431
- {
432
- "regex": "/**/objects/**/fields/*__c.field-meta.xml",
433
- "type": "CustomField",
434
- "xmlField": "field",
435
- "xmlChildren": "fieldPermissions",
436
- "xmlAccessField": "readable",
437
- "ignore": {
438
- "all": false,
439
- "elements": []
440
- }
441
- }
442
- ],
443
- "messages": {
444
- "header": "Check if elements(apex class and field) are at least in one permission set",
445
- "allElementsHaveRights": "All elements are included in at least one Permission set or Profile",
446
- "someElementsDontHaveRights": "Some elements are not included in at least one Permission set or Profile"
447
- },
293
+ "title": "Login",
294
+ "requiresProject": false,
448
295
  "isESM": true,
449
296
  "relativePath": [
450
297
  "lib",
451
298
  "commands",
452
299
  "hardis",
453
- "lint",
454
- "access.js"
300
+ "auth",
301
+ "login.js"
455
302
  ],
456
303
  "aliasPermutations": [],
457
304
  "permutations": [
458
- "hardis:lint:access",
459
- "lint:hardis:access",
460
- "lint:access:hardis",
461
- "hardis:access:lint",
462
- "access:hardis:lint",
463
- "access:lint:hardis"
305
+ "hardis:auth:login",
306
+ "auth:hardis:login",
307
+ "auth:login:hardis",
308
+ "hardis:login:auth",
309
+ "login:hardis:auth",
310
+ "login:auth:hardis"
464
311
  ]
465
312
  },
466
- "hardis:lint:metadatastatus": {
313
+ "hardis:doc:fieldusage": {
467
314
  "aliases": [],
468
315
  "args": {},
469
- "description": "Check if elements are inactive in the project:\n\n- Approval Processes\n- Assignment Rules\n- Auto Response Rules\n- Escalation Rules\n- Flows\n- Forecasting Types\n- Record Types\n- Validation Rules\n- Workflow Rules\n\n![](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/detect-inactive-metadata.gif)\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-inactive-metadata/) and can output Grafana, Slack and MsTeams Notifications.\n",
316
+ "description": "\n Retrieves custom field usage from metadata dependencies for specified sObjects.\n ![\"Find custom fields usage\"](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/doc-fieldusage.png)\n ",
470
317
  "examples": [
471
- "$ sf hardis:lint:metadatastatus"
318
+ "$ sf hardis:doc:fieldusage",
319
+ "$ sf hardis:doc:fieldusage --sObjects Account,Contact,Opportunity",
320
+ "$ sf hardis:doc:fieldusage --target-org myOrgAlias --sObjects CustomObject__c"
472
321
  ],
473
322
  "flags": {
474
323
  "json": {
@@ -486,34 +335,6 @@
486
335
  "multiple": false,
487
336
  "type": "option"
488
337
  },
489
- "debug": {
490
- "char": "d",
491
- "description": "Activate debug mode (more logs)",
492
- "name": "debug",
493
- "allowNo": false,
494
- "type": "boolean"
495
- },
496
- "outputfile": {
497
- "char": "f",
498
- "description": "Force the path and name of output report file. Must end with .csv",
499
- "name": "outputfile",
500
- "hasDynamicHelp": false,
501
- "multiple": false,
502
- "type": "option"
503
- },
504
- "websocket": {
505
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
506
- "name": "websocket",
507
- "hasDynamicHelp": false,
508
- "multiple": false,
509
- "type": "option"
510
- },
511
- "skipauth": {
512
- "description": "Skip authentication check when a default username is required",
513
- "name": "skipauth",
514
- "allowNo": false,
515
- "type": "boolean"
516
- },
517
338
  "target-org": {
518
339
  "aliases": [
519
340
  "targetusername",
@@ -523,47 +344,57 @@
523
344
  "deprecateAliases": true,
524
345
  "name": "target-org",
525
346
  "noCacheDefault": true,
526
- "summary": "Username or alias of the target org.",
347
+ "required": true,
348
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
527
349
  "hasDynamicHelp": true,
528
350
  "multiple": false,
529
351
  "type": "option"
352
+ },
353
+ "sObjects": {
354
+ "char": "s",
355
+ "description": "Comma-separated list of sObjects to filter",
356
+ "name": "sObjects",
357
+ "required": false,
358
+ "hasDynamicHelp": false,
359
+ "multiple": false,
360
+ "type": "option"
530
361
  }
531
362
  },
532
363
  "hasDynamicHelp": true,
533
364
  "hiddenAliases": [],
534
- "id": "hardis:lint:metadatastatus",
365
+ "id": "hardis:doc:fieldusage",
535
366
  "pluginAlias": "sfdx-hardis",
536
367
  "pluginName": "sfdx-hardis",
537
368
  "pluginType": "core",
538
369
  "strict": true,
539
370
  "enableJsonFlag": true,
540
- "title": "check inactive metadatas",
541
- "supportsDevhubUsername": false,
542
- "requiresProject": true,
543
371
  "isESM": true,
544
372
  "relativePath": [
545
373
  "lib",
546
374
  "commands",
547
375
  "hardis",
548
- "lint",
549
- "metadatastatus.js"
376
+ "doc",
377
+ "fieldusage.js"
550
378
  ],
551
379
  "aliasPermutations": [],
552
380
  "permutations": [
553
- "hardis:lint:metadatastatus",
554
- "lint:hardis:metadatastatus",
555
- "lint:metadatastatus:hardis",
556
- "hardis:metadatastatus:lint",
557
- "metadatastatus:hardis:lint",
558
- "metadatastatus:lint:hardis"
381
+ "hardis:doc:fieldusage",
382
+ "doc:hardis:fieldusage",
383
+ "doc:fieldusage:hardis",
384
+ "hardis:fieldusage:doc",
385
+ "fieldusage:hardis:doc",
386
+ "fieldusage:doc:hardis"
559
387
  ]
560
388
  },
561
- "hardis:lint:missingattributes": {
389
+ "hardis:doc:flow2markdown": {
562
390
  "aliases": [],
563
391
  "args": {},
564
- "description": "Check if elements(custom fields) aren't description",
392
+ "description": "Generates a markdown documentation from a Flow file\n \nIf [AI integration](https://sfdx-hardis.cloudity.com/salesforce-ai-setup/) is configured, documentation will contain a summary of the Flow. \n ",
565
393
  "examples": [
566
- "$ sf hardis:lint:missingattributes"
394
+ "$ sf hardis:doc:flow2markdown",
395
+ "$ sf hardis:doc:flow2markdown --inputfile force-app/main/default/flows/MyFlow.flow-meta.xml",
396
+ "$ sf hardis:doc:flow2markdown --pdf",
397
+ "$ sf hardis:doc:flow2markdown --inputfile force-app/main/default/flows/MyFlow.flow-meta.xml --pdf"
567
398
  ],
568
399
  "flags": {
569
400
  "json": {
@@ -581,21 +412,41 @@
581
412
  "multiple": false,
582
413
  "type": "option"
583
414
  },
584
- "debug": {
585
- "char": "d",
586
- "description": "Activate debug mode (more logs)",
587
- "name": "debug",
588
- "allowNo": false,
589
- "type": "boolean"
415
+ "inputfile": {
416
+ "char": "x",
417
+ "description": "Path to Flow metadata file. If not specified, the command will prompt the user",
418
+ "name": "inputfile",
419
+ "hasDynamicHelp": false,
420
+ "multiple": false,
421
+ "type": "option"
590
422
  },
591
423
  "outputfile": {
592
424
  "char": "f",
593
- "description": "Force the path and name of output report file. Must end with .csv",
425
+ "description": "Force the path and name of output markdown file. Must end with .md",
594
426
  "name": "outputfile",
595
427
  "hasDynamicHelp": false,
596
428
  "multiple": false,
597
429
  "type": "option"
598
430
  },
431
+ "with-history": {
432
+ "description": "Generate a markdown file with the history diff of the Flow",
433
+ "name": "with-history",
434
+ "allowNo": false,
435
+ "type": "boolean"
436
+ },
437
+ "pdf": {
438
+ "description": "Also generate the documentation in PDF format",
439
+ "name": "pdf",
440
+ "allowNo": false,
441
+ "type": "boolean"
442
+ },
443
+ "debug": {
444
+ "char": "d",
445
+ "description": "Activate debug mode (more logs)",
446
+ "name": "debug",
447
+ "allowNo": false,
448
+ "type": "boolean"
449
+ },
599
450
  "websocket": {
600
451
  "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
601
452
  "name": "websocket",
@@ -626,39 +477,38 @@
626
477
  },
627
478
  "hasDynamicHelp": true,
628
479
  "hiddenAliases": [],
629
- "id": "hardis:lint:missingattributes",
480
+ "id": "hardis:doc:flow2markdown",
630
481
  "pluginAlias": "sfdx-hardis",
631
482
  "pluginName": "sfdx-hardis",
632
483
  "pluginType": "core",
633
484
  "strict": true,
634
485
  "enableJsonFlag": true,
635
- "title": "check missing description on custom fields",
636
- "supportsDevhubUsername": false,
637
- "requiresProject": true,
486
+ "title": "Flow to Markdown",
487
+ "requiresProject": false,
638
488
  "isESM": true,
639
489
  "relativePath": [
640
490
  "lib",
641
491
  "commands",
642
492
  "hardis",
643
- "lint",
644
- "missingattributes.js"
493
+ "doc",
494
+ "flow2markdown.js"
645
495
  ],
646
496
  "aliasPermutations": [],
647
497
  "permutations": [
648
- "hardis:lint:missingattributes",
649
- "lint:hardis:missingattributes",
650
- "lint:missingattributes:hardis",
651
- "hardis:missingattributes:lint",
652
- "missingattributes:hardis:lint",
653
- "missingattributes:lint:hardis"
498
+ "hardis:doc:flow2markdown",
499
+ "doc:hardis:flow2markdown",
500
+ "doc:flow2markdown:hardis",
501
+ "hardis:flow2markdown:doc",
502
+ "flow2markdown:hardis:doc",
503
+ "flow2markdown:doc:hardis"
654
504
  ]
655
505
  },
656
- "hardis:lint:unusedmetadatas": {
506
+ "hardis:doc:mkdocs-to-cf": {
657
507
  "aliases": [],
658
508
  "args": {},
659
- "description": "Check if elements (custom labels and custom permissions) are used in the project\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-unused-metadata/) and can output Grafana, Slack and MsTeams Notifications.\n ",
509
+ "description": "Generates MkDocs HTML pages and upload them to Cloudflare as a static pages\n\nThis command performs the following operations:\n\n- Generates MkDocs HTML pages (using locally installed mkdocs-material, or using mkdocs docker image)\n- Creates a Cloudflare pages app\n- Assigns a policy restricting access to the application\n- Opens the new WebSite in the default browser (only if not in CI context)\n\nNote: the documentation must have been previously generated using \"sf hardis:doc:project2markdown --with-history\"\n\nYou can:\n\n- Override default styles by customizing mkdocs.yml\n\nMore info on [Documentation section](https://sfdx-hardis.cloudity.com/salesforce-project-documentation/)\n\n\n| Variable | Description | Default |\n| :----------------------------------------- | :---------- | :-----: |\n| `CLOUDFLARE_EMAIL` | Cloudflare account email | <!--- Required --> |\n| `CLOUDFLARE_API_TOKEN` | Cloudflare API token | <!--- Required --> |\n| `CLOUDFLARE_ACCOUNT_ID` | Cloudflare account | <!--- Required --> |\n| `CLOUDFLARE_PROJECT_NAME` | Project name, that will also be used for site URL | Built from git branch name |\n| `CLOUDFLARE_DEFAULT_LOGIN_METHOD_TYPE` | Cloudflare default login method type | `onetimepin` |\n| `CLOUDFLARE_DEFAULT_ACCESS_EMAIL_DOMAIN` | Cloudflare default access email domain | `@cloudity.com` |\n| `CLOUDFLARE_EXTRA_ACCESS_POLICY_ID_LIST` | Policies to assign to every application access | <!--- Optional --> |\n\n",
660
510
  "examples": [
661
- "$ sf hardis:lint:unusedmetadatas"
511
+ "$ sf hardis:doc:mkdocs-to-cf"
662
512
  ],
663
513
  "flags": {
664
514
  "json": {
@@ -683,14 +533,91 @@
683
533
  "allowNo": false,
684
534
  "type": "boolean"
685
535
  },
686
- "outputfile": {
687
- "char": "f",
688
- "description": "Force the path and name of output report file. Must end with .csv",
689
- "name": "outputfile",
536
+ "websocket": {
537
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
538
+ "name": "websocket",
690
539
  "hasDynamicHelp": false,
691
540
  "multiple": false,
692
541
  "type": "option"
693
542
  },
543
+ "skipauth": {
544
+ "description": "Skip authentication check when a default username is required",
545
+ "name": "skipauth",
546
+ "allowNo": false,
547
+ "type": "boolean"
548
+ }
549
+ },
550
+ "hasDynamicHelp": false,
551
+ "hiddenAliases": [],
552
+ "id": "hardis:doc:mkdocs-to-cf",
553
+ "pluginAlias": "sfdx-hardis",
554
+ "pluginName": "sfdx-hardis",
555
+ "pluginType": "core",
556
+ "strict": true,
557
+ "enableJsonFlag": true,
558
+ "title": "MkDocs to Cloudflare",
559
+ "requiresProject": true,
560
+ "isESM": true,
561
+ "relativePath": [
562
+ "lib",
563
+ "commands",
564
+ "hardis",
565
+ "doc",
566
+ "mkdocs-to-cf.js"
567
+ ],
568
+ "aliasPermutations": [],
569
+ "permutations": [
570
+ "hardis:doc:mkdocs-to-cf",
571
+ "doc:hardis:mkdocs-to-cf",
572
+ "doc:mkdocs-to-cf:hardis",
573
+ "hardis:mkdocs-to-cf:doc",
574
+ "mkdocs-to-cf:hardis:doc",
575
+ "mkdocs-to-cf:doc:hardis"
576
+ ]
577
+ },
578
+ "hardis:doc:mkdocs-to-salesforce": {
579
+ "aliases": [],
580
+ "args": {},
581
+ "description": "Generates MkDocs HTML pages and upload them to Salesforce as a static resource\n\nThis command performs the following operations:\n\n- Generates MkDocs HTML pages (using locally installed mkdocs-material, or using mkdocs docker image)\n- Creates a Static Resource, a VisualForce page and a Custom Tab metadata\n- Upload the metadatas to the default org\n- Opens the Custom Tab in the default browser (only if not in CI context)\n\nNote: the documentation must have been previously generated using \"sf hardis:doc:project2markdown --with-history\"\n\nYou can:\n\n- Specify the type of documentation to generate (CICD or Monitoring) using the --type flag. Default is CICD.\n- Override default styles by customizing mkdocs.yml\n\nMore info on [Documentation section](https://sfdx-hardis.cloudity.com/salesforce-project-documentation/)\n",
582
+ "examples": [
583
+ "$ sf hardis:doc:mkdocs-to-salesforce"
584
+ ],
585
+ "flags": {
586
+ "json": {
587
+ "description": "Format output as json.",
588
+ "helpGroup": "GLOBAL",
589
+ "name": "json",
590
+ "allowNo": false,
591
+ "type": "boolean"
592
+ },
593
+ "flags-dir": {
594
+ "helpGroup": "GLOBAL",
595
+ "name": "flags-dir",
596
+ "summary": "Import flag values from a directory.",
597
+ "hasDynamicHelp": false,
598
+ "multiple": false,
599
+ "type": "option"
600
+ },
601
+ "type": {
602
+ "char": "t",
603
+ "description": "Type of the documentation to generate. Default is \"all\"",
604
+ "name": "type",
605
+ "default": "CICD",
606
+ "hasDynamicHelp": false,
607
+ "multiple": false,
608
+ "options": [
609
+ "CICD",
610
+ "Monitoring"
611
+ ],
612
+ "type": "option"
613
+ },
614
+ "debug": {
615
+ "char": "d",
616
+ "description": "Activate debug mode (more logs)",
617
+ "name": "debug",
618
+ "allowNo": false,
619
+ "type": "boolean"
620
+ },
694
621
  "websocket": {
695
622
  "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
696
623
  "name": "websocket",
@@ -713,7 +640,8 @@
713
640
  "deprecateAliases": true,
714
641
  "name": "target-org",
715
642
  "noCacheDefault": true,
716
- "summary": "Username or alias of the target org.",
643
+ "required": true,
644
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
717
645
  "hasDynamicHelp": true,
718
646
  "multiple": false,
719
647
  "type": "option"
@@ -721,41 +649,39 @@
721
649
  },
722
650
  "hasDynamicHelp": true,
723
651
  "hiddenAliases": [],
724
- "id": "hardis:lint:unusedmetadatas",
652
+ "id": "hardis:doc:mkdocs-to-salesforce",
725
653
  "pluginAlias": "sfdx-hardis",
726
654
  "pluginName": "sfdx-hardis",
727
655
  "pluginType": "core",
728
656
  "strict": true,
729
657
  "enableJsonFlag": true,
730
- "title": "check unused labels and custom permissions",
731
- "supportsDevhubUsername": false,
658
+ "title": "MkDocs to Salesforce",
732
659
  "requiresProject": true,
733
660
  "isESM": true,
734
661
  "relativePath": [
735
662
  "lib",
736
663
  "commands",
737
664
  "hardis",
738
- "lint",
739
- "unusedmetadatas.js"
665
+ "doc",
666
+ "mkdocs-to-salesforce.js"
740
667
  ],
741
668
  "aliasPermutations": [],
742
669
  "permutations": [
743
- "hardis:lint:unusedmetadatas",
744
- "lint:hardis:unusedmetadatas",
745
- "lint:unusedmetadatas:hardis",
746
- "hardis:unusedmetadatas:lint",
747
- "unusedmetadatas:hardis:lint",
748
- "unusedmetadatas:lint:hardis"
670
+ "hardis:doc:mkdocs-to-salesforce",
671
+ "doc:hardis:mkdocs-to-salesforce",
672
+ "doc:mkdocs-to-salesforce:hardis",
673
+ "hardis:mkdocs-to-salesforce:doc",
674
+ "mkdocs-to-salesforce:hardis:doc",
675
+ "mkdocs-to-salesforce:doc:hardis"
749
676
  ]
750
677
  },
751
- "hardis:doc:fieldusage": {
678
+ "hardis:doc:override-prompts": {
752
679
  "aliases": [],
753
680
  "args": {},
754
- "description": "\n Retrieves custom field usage from metadata dependencies for specified sObjects.\n ![\"Find custom fields usage\"](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/doc-fieldusage.png)\n ",
681
+ "description": "Create local override files for AI prompt templates and variables\n\nThis command creates a folder config/prompt-templates/ and copies all the default AI prompt templates and variables as .txt files that can be customized.\n\nThe templates are used by sfdx-hardis for:\n- Generating documentation with AI\n- Solving deployment errors\n- Describing Salesforce metadata\n\nThe variables contain common instruction patterns that are reused across multiple templates, such as:\n- Role definitions (business analyst, developer, etc.)\n- Formatting requirements for markdown output\n- Security caution instructions\n- Output format specifications\n\nYou can customize these prompts and variables to match your organization's specific needs and terminology.\n\nAfter running this command, you can modify any of the .txt files in config/prompt-templates/ to override the default prompts and variables.\n\n**Important**: Once created, existing template and variable files will never be overwritten with newer versions from sfdx-hardis updates, unless you explicitly use the --overwrite flag. This ensures your customizations are preserved.\n\nAvailable templates:\n- PROMPT_SOLVE_DEPLOYMENT_ERROR\n- PROMPT_DESCRIBE_FLOW\n- PROMPT_DESCRIBE_FLOW_DIFF\n- PROMPT_DESCRIBE_OBJECT\n- PROMPT_COMPLETE_OBJECT_ATTRIBUTES_MD\n- PROMPT_DESCRIBE_APEX\n- PROMPT_DESCRIBE_PAGE\n- PROMPT_DESCRIBE_PACKAGE\n- PROMPT_DESCRIBE_PROFILE\n- PROMPT_DESCRIBE_PERMISSION_SET\n- PROMPT_DESCRIBE_PERMISSION_SET_GROUP\n- PROMPT_DESCRIBE_ASSIGNMENT_RULES\n- PROMPT_DESCRIBE_APPROVAL_PROCESS\n- PROMPT_DESCRIBE_LWC\n- PROMPT_DESCRIBE_AUTORESPONSE_RULES\n- PROMPT_DESCRIBE_ESCALATION_RULES\n- PROMPT_DESCRIBE_ROLES\n\nAvailable variables:\n- VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC\n- VARIABLE_FORMATTING_REQUIREMENTS\n- VARIABLE_ADDITIONAL_INSTRUCTIONS\n\nMore info on [AI Prompts documentation](https://sfdx-hardis.cloudity.com/salesforce-ai-prompts/)\n",
755
682
  "examples": [
756
- "$ sf hardis:doc:fieldusage",
757
- "$ sf hardis:doc:fieldusage --sObjects Account,Contact,Opportunity",
758
- "$ sf hardis:doc:fieldusage --target-org myOrgAlias --sObjects CustomObject__c"
683
+ "$ sf hardis:doc:override-prompts",
684
+ "$ sf hardis:doc:override-prompts --overwrite"
759
685
  ],
760
686
  "flags": {
761
687
  "json": {
@@ -773,66 +699,68 @@
773
699
  "multiple": false,
774
700
  "type": "option"
775
701
  },
776
- "target-org": {
777
- "aliases": [
778
- "targetusername",
779
- "u"
780
- ],
781
- "char": "o",
782
- "deprecateAliases": true,
783
- "name": "target-org",
784
- "noCacheDefault": true,
785
- "required": true,
786
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
787
- "hasDynamicHelp": true,
788
- "multiple": false,
789
- "type": "option"
702
+ "overwrite": {
703
+ "description": "Overwrite existing template files if they already exist",
704
+ "name": "overwrite",
705
+ "allowNo": false,
706
+ "type": "boolean"
790
707
  },
791
- "sObjects": {
792
- "char": "s",
793
- "description": "Comma-separated list of sObjects to filter",
794
- "name": "sObjects",
795
- "required": false,
708
+ "debug": {
709
+ "char": "d",
710
+ "description": "Activate debug mode (more logs)",
711
+ "name": "debug",
712
+ "allowNo": false,
713
+ "type": "boolean"
714
+ },
715
+ "websocket": {
716
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
717
+ "name": "websocket",
796
718
  "hasDynamicHelp": false,
797
719
  "multiple": false,
798
720
  "type": "option"
721
+ },
722
+ "skipauth": {
723
+ "description": "Skip authentication check when a default username is required",
724
+ "name": "skipauth",
725
+ "allowNo": false,
726
+ "type": "boolean"
799
727
  }
800
728
  },
801
- "hasDynamicHelp": true,
729
+ "hasDynamicHelp": false,
802
730
  "hiddenAliases": [],
803
- "id": "hardis:doc:fieldusage",
731
+ "id": "hardis:doc:override-prompts",
804
732
  "pluginAlias": "sfdx-hardis",
805
733
  "pluginName": "sfdx-hardis",
806
734
  "pluginType": "core",
807
735
  "strict": true,
808
736
  "enableJsonFlag": true,
737
+ "title": "Override AI Prompt Templates",
738
+ "requiresProject": false,
809
739
  "isESM": true,
810
740
  "relativePath": [
811
741
  "lib",
812
742
  "commands",
813
743
  "hardis",
814
744
  "doc",
815
- "fieldusage.js"
745
+ "override-prompts.js"
816
746
  ],
817
747
  "aliasPermutations": [],
818
748
  "permutations": [
819
- "hardis:doc:fieldusage",
820
- "doc:hardis:fieldusage",
821
- "doc:fieldusage:hardis",
822
- "hardis:fieldusage:doc",
823
- "fieldusage:hardis:doc",
824
- "fieldusage:doc:hardis"
749
+ "hardis:doc:override-prompts",
750
+ "doc:hardis:override-prompts",
751
+ "doc:override-prompts:hardis",
752
+ "hardis:override-prompts:doc",
753
+ "override-prompts:hardis:doc",
754
+ "override-prompts:doc:hardis"
825
755
  ]
826
756
  },
827
- "hardis:doc:flow2markdown": {
757
+ "hardis:doc:packagexml2markdown": {
828
758
  "aliases": [],
829
759
  "args": {},
830
- "description": "Generates a markdown documentation from a Flow file\n \nIf [AI integration](https://sfdx-hardis.cloudity.com/salesforce-ai-setup/) is configured, documentation will contain a summary of the Flow. \n ",
760
+ "description": "Generates a markdown documentation from a package.xml file",
831
761
  "examples": [
832
- "$ sf hardis:doc:flow2markdown",
833
- "$ sf hardis:doc:flow2markdown --inputfile force-app/main/default/flows/MyFlow.flow-meta.xml",
834
- "$ sf hardis:doc:flow2markdown --pdf",
835
- "$ sf hardis:doc:flow2markdown --inputfile force-app/main/default/flows/MyFlow.flow-meta.xml --pdf"
762
+ "$ sf hardis:doc:packagexml2markdown",
763
+ "$ sf hardis:doc:packagexml2markdown --inputfile manifest/package-all.xml"
836
764
  ],
837
765
  "flags": {
838
766
  "json": {
@@ -852,7 +780,7 @@
852
780
  },
853
781
  "inputfile": {
854
782
  "char": "x",
855
- "description": "Path to Flow metadata file. If not specified, the command will prompt the user",
783
+ "description": "Path to package.xml file. If not specified, the command will look in manifest folder",
856
784
  "name": "inputfile",
857
785
  "hasDynamicHelp": false,
858
786
  "multiple": false,
@@ -860,24 +788,12 @@
860
788
  },
861
789
  "outputfile": {
862
790
  "char": "f",
863
- "description": "Force the path and name of output markdown file. Must end with .md",
791
+ "description": "Force the path and name of output report file. Must end with .md",
864
792
  "name": "outputfile",
865
793
  "hasDynamicHelp": false,
866
794
  "multiple": false,
867
795
  "type": "option"
868
796
  },
869
- "with-history": {
870
- "description": "Generate a markdown file with the history diff of the Flow",
871
- "name": "with-history",
872
- "allowNo": false,
873
- "type": "boolean"
874
- },
875
- "pdf": {
876
- "description": "Also generate the documentation in PDF format",
877
- "name": "pdf",
878
- "allowNo": false,
879
- "type": "boolean"
880
- },
881
797
  "debug": {
882
798
  "char": "d",
883
799
  "description": "Activate debug mode (more logs)",
@@ -915,13 +831,13 @@
915
831
  },
916
832
  "hasDynamicHelp": true,
917
833
  "hiddenAliases": [],
918
- "id": "hardis:doc:flow2markdown",
834
+ "id": "hardis:doc:packagexml2markdown",
919
835
  "pluginAlias": "sfdx-hardis",
920
836
  "pluginName": "sfdx-hardis",
921
837
  "pluginType": "core",
922
838
  "strict": true,
923
839
  "enableJsonFlag": true,
924
- "title": "Flow to Markdown",
840
+ "title": "PackageXml to Markdown",
925
841
  "requiresProject": false,
926
842
  "isESM": true,
927
843
  "relativePath": [
@@ -929,24 +845,26 @@
929
845
  "commands",
930
846
  "hardis",
931
847
  "doc",
932
- "flow2markdown.js"
848
+ "packagexml2markdown.js"
933
849
  ],
934
850
  "aliasPermutations": [],
935
851
  "permutations": [
936
- "hardis:doc:flow2markdown",
937
- "doc:hardis:flow2markdown",
938
- "doc:flow2markdown:hardis",
939
- "hardis:flow2markdown:doc",
940
- "flow2markdown:hardis:doc",
941
- "flow2markdown:doc:hardis"
852
+ "hardis:doc:packagexml2markdown",
853
+ "doc:hardis:packagexml2markdown",
854
+ "doc:packagexml2markdown:hardis",
855
+ "hardis:packagexml2markdown:doc",
856
+ "packagexml2markdown:hardis:doc",
857
+ "packagexml2markdown:doc:hardis"
942
858
  ]
943
859
  },
944
- "hardis:doc:mkdocs-to-cf": {
860
+ "hardis:doc:project2markdown": {
945
861
  "aliases": [],
946
862
  "args": {},
947
- "description": "Generates MkDocs HTML pages and upload them to Cloudflare as a static pages\n\nThis command performs the following operations:\n\n- Generates MkDocs HTML pages (using locally installed mkdocs-material, or using mkdocs docker image)\n- Creates a Cloudflare pages app\n- Assigns a policy restricting access to the application\n- Opens the new WebSite in the default browser (only if not in CI context)\n\nNote: the documentation must have been previously generated using \"sf hardis:doc:project2markdown --with-history\"\n\nYou can:\n\n- Override default styles by customizing mkdocs.yml\n\nMore info on [Documentation section](https://sfdx-hardis.cloudity.com/salesforce-project-documentation/)\n\n\n| Variable | Description | Default |\n| :----------------------------------------- | :---------- | :-----: |\n| `CLOUDFLARE_EMAIL` | Cloudflare account email | <!--- Required --> |\n| `CLOUDFLARE_API_TOKEN` | Cloudflare API token | <!--- Required --> |\n| `CLOUDFLARE_ACCOUNT_ID` | Cloudflare account | <!--- Required --> |\n| `CLOUDFLARE_PROJECT_NAME` | Project name, that will also be used for site URL | Built from git branch name |\n| `CLOUDFLARE_DEFAULT_LOGIN_METHOD_TYPE` | Cloudflare default login method type | `onetimepin` |\n| `CLOUDFLARE_DEFAULT_ACCESS_EMAIL_DOMAIN` | Cloudflare default access email domain | `@cloudity.com` |\n| `CLOUDFLARE_EXTRA_ACCESS_POLICY_ID_LIST` | Policies to assign to every application access | <!--- Optional --> |\n\n",
863
+ "description": "Generates a markdown documentation from a SFDX project\n\n- Objects (with fields, validation rules, relationships and dependencies)\n- Automations\n - Approval Processes\n - Assignment Rules\n - AutoResponse Rules\n - Escalation Rules\n - Flows\n- Authorizations\n - Profiles\n - Permission Set Groups\n - Permission Sets\n- Code\n - Apex\n - Lightning Web Components\n- Lightning Pages\n- Packages\n- SFDX-Hardis Config\n- Branches & Orgs\n- Manifests\n\nCan work on any sfdx project, no need for it to be a sfdx-hardis flavored one.\n\nGenerates markdown files will be written in **docs** folder (except README.md where a link to doc index is added)\n\n- You can customize the pages following [mkdocs-material setup documentation](https://squidfunk.github.io/mkdocs-material/setup/)\n- You can manually add new markdown files in the \"docs\" folder to extend this documentation and add references to them in \"mkdocs.yml\"\n- You can also add images in folder \"docs/assets\" and embed them in markdown files.\n\nTo read Flow documentations if your markdown reader doesn't handle MermaidJS syntax, this command could require @mermaid-js/mermaid-cli\n\n- Run `npm install @mermaid-js/mermaid-cli --global` if puppeteer works in your environment\n- It can also be run as a docker image\n\nBoth modes will be tried by default, but you can also force one of them by defining environment variable `MERMAID_MODES=docker` or `MERMAID_MODES=cli`\n\n_sfdx-hardis docker image is alpine-based and does not succeed to run mermaid/puppeteer: if you can help, please submit a PR !_\n\nIf Flow history doc always display a single state, you probably need to update your workflow configuration:\n\n- on Gitlab: Env variable [`GIT_FETCH_EXTRA_FLAGS: --depth 10000`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/.gitlab-ci.yml#L11)\n- on GitHub: [`fetch-depth: 0`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/.github/workflows/org-monitoring.yml#L58)\n- on Azure: [`fetchDepth: \"0\"`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/azure-pipelines.yml#L39)\n- on Bitbucket: [`step: clone: depth: full`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/bitbucket-pipelines.yml#L18)\n\n![Screenshot flow doc](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/screenshot-flow-doc.jpg)\n\n![Screenshot project documentation](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/screenshot-project-doc.jpg)\n\n![Screenshot project documentation](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/screenshot-project-doc-2.jpg)\n\n![Screenshot project documentation](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/screenshot-object-diagram.jpg)\n\n![Screenshot project documentation](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/screenshot-project-doc-profile.gif)\n\n![Screenshot project documentation](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/screenshot-doc-apex.png)\n\nIf it is a sfdx-hardis CI/CD project, a diagram of the branches and orgs strategy will be generated.\n\n![](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/screenshot-doc-branches-strategy.jpg)\n\nIf [AI integration](https://sfdx-hardis.cloudity.com/salesforce-ai-setup/) is configured, documentation will contain a summary of the Flow.\n\n- Use variable PROMPTS_LANGUAGE (ex: PROMPTS_LANGUAGE=fr) to force language for LLM calls (default:en)\n\nIf you have a complex strategy, you might need to input property **mergeTargets** in branch-scoped sfdx-hardis.yml file to have a correct diagram.\n\nDefine DO_NOT_OVERWRITE_INDEX_MD=true to avoid overwriting the index.md file in docs folder, useful if you want to keep your own index.md file.\n\n## Doc HTML Pages\n\nTo read the documentation as HTML pages, run the following code (you need [**Python**](https://www.python.org/downloads/) on your computer)\n\n```python\npip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists || python -m pip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists || py -m pip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists\nmkdocs serve -v || python -m mkdocs serve -v || py -m mkdocs serve -v\n```\n\nTo just generate HTML pages that you can host anywhere, run `mkdocs build -v || python -m mkdocs build -v || py -m mkdocs build -v`\n\n",
948
864
  "examples": [
949
- "$ sf hardis:doc:mkdocs-to-cf"
865
+ "$ sf hardis:doc:project2markdown",
866
+ "$ sf hardis:doc:project2markdown --with-history",
867
+ "$ sf hardis:doc:project2markdown --with-history --pdf"
950
868
  ],
951
869
  "flags": {
952
870
  "json": {
@@ -964,6 +882,24 @@
964
882
  "multiple": false,
965
883
  "type": "option"
966
884
  },
885
+ "diff-only": {
886
+ "description": "Generate documentation only for changed files (used for monitoring)",
887
+ "name": "diff-only",
888
+ "allowNo": false,
889
+ "type": "boolean"
890
+ },
891
+ "with-history": {
892
+ "description": "Generate a markdown file with the history diff of the Flow",
893
+ "name": "with-history",
894
+ "allowNo": false,
895
+ "type": "boolean"
896
+ },
897
+ "pdf": {
898
+ "description": "Also generate the documentation in PDF format",
899
+ "name": "pdf",
900
+ "allowNo": false,
901
+ "type": "boolean"
902
+ },
967
903
  "debug": {
968
904
  "char": "d",
969
905
  "description": "Activate debug mode (more logs)",
@@ -983,17 +919,32 @@
983
919
  "name": "skipauth",
984
920
  "allowNo": false,
985
921
  "type": "boolean"
922
+ },
923
+ "target-org": {
924
+ "aliases": [
925
+ "targetusername",
926
+ "u"
927
+ ],
928
+ "char": "o",
929
+ "deprecateAliases": true,
930
+ "name": "target-org",
931
+ "noCacheDefault": true,
932
+ "summary": "Username or alias of the target org.",
933
+ "hasDynamicHelp": true,
934
+ "multiple": false,
935
+ "type": "option"
986
936
  }
987
937
  },
988
- "hasDynamicHelp": false,
938
+ "hasDynamicHelp": true,
989
939
  "hiddenAliases": [],
990
- "id": "hardis:doc:mkdocs-to-cf",
940
+ "id": "hardis:doc:project2markdown",
991
941
  "pluginAlias": "sfdx-hardis",
992
942
  "pluginName": "sfdx-hardis",
993
943
  "pluginType": "core",
994
944
  "strict": true,
995
945
  "enableJsonFlag": true,
996
- "title": "MkDocs to Cloudflare",
946
+ "title": "SFDX Project to Markdown",
947
+ "htmlInstructions": "## Doc HTML Pages\n\nTo read the documentation as HTML pages, run the following code (you need [**Python**](https://www.python.org/downloads/) on your computer)\n\n```python\npip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists || python -m pip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists || py -m pip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists\nmkdocs serve -v || python -m mkdocs serve -v || py -m mkdocs serve -v\n```\n\nTo just generate HTML pages that you can host anywhere, run `mkdocs build -v || python -m mkdocs build -v || py -m mkdocs build -v`\n",
997
948
  "requiresProject": true,
998
949
  "isESM": true,
999
950
  "relativePath": [
@@ -1001,24 +952,26 @@
1001
952
  "commands",
1002
953
  "hardis",
1003
954
  "doc",
1004
- "mkdocs-to-cf.js"
955
+ "project2markdown.js"
1005
956
  ],
1006
957
  "aliasPermutations": [],
1007
- "permutations": [
1008
- "hardis:doc:mkdocs-to-cf",
1009
- "doc:hardis:mkdocs-to-cf",
1010
- "doc:mkdocs-to-cf:hardis",
1011
- "hardis:mkdocs-to-cf:doc",
1012
- "mkdocs-to-cf:hardis:doc",
1013
- "mkdocs-to-cf:doc:hardis"
958
+ "permutations": [
959
+ "hardis:doc:project2markdown",
960
+ "doc:hardis:project2markdown",
961
+ "doc:project2markdown:hardis",
962
+ "hardis:project2markdown:doc",
963
+ "project2markdown:hardis:doc",
964
+ "project2markdown:doc:hardis"
1014
965
  ]
1015
966
  },
1016
- "hardis:doc:mkdocs-to-salesforce": {
967
+ "hardis:lint:access": {
1017
968
  "aliases": [],
1018
969
  "args": {},
1019
- "description": "Generates MkDocs HTML pages and upload them to Salesforce as a static resource\n\nThis command performs the following operations:\n\n- Generates MkDocs HTML pages (using locally installed mkdocs-material, or using mkdocs docker image)\n- Creates a Static Resource, a VisualForce page and a Custom Tab metadata\n- Upload the metadatas to the default org\n- Opens the Custom Tab in the default browser (only if not in CI context)\n\nNote: the documentation must have been previously generated using \"sf hardis:doc:project2markdown --with-history\"\n\nYou can:\n\n- Specify the type of documentation to generate (CICD or Monitoring) using the --type flag. Default is CICD.\n- Override default styles by customizing mkdocs.yml\n\nMore info on [Documentation section](https://sfdx-hardis.cloudity.com/salesforce-project-documentation/)\n",
970
+ "description": "Check if elements(apex class and field) are at least in one permission set\n \nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-missing-access/) and can output Grafana, Slack and MsTeams Notifications.\n",
1020
971
  "examples": [
1021
- "$ sf hardis:doc:mkdocs-to-salesforce"
972
+ "$ sf hardis:lint:access",
973
+ "$ sf hardis:lint:access -e \"ApexClass:ClassA, CustomField:Account.CustomField\"",
974
+ "$ sf hardis:lint:access -i \"PermissionSet:permissionSetA, Profile\""
1022
975
  ],
1023
976
  "flags": {
1024
977
  "json": {
@@ -1036,17 +989,39 @@
1036
989
  "multiple": false,
1037
990
  "type": "option"
1038
991
  },
1039
- "type": {
1040
- "char": "t",
1041
- "description": "Type of the documentation to generate. Default is \"all\"",
1042
- "name": "type",
1043
- "default": "CICD",
992
+ "elementsignored": {
993
+ "char": "e",
994
+ "description": "Ignore specific elements separated by commas",
995
+ "name": "elementsignored",
996
+ "default": "",
997
+ "hasDynamicHelp": false,
998
+ "multiple": false,
999
+ "type": "option"
1000
+ },
1001
+ "ignorerights": {
1002
+ "char": "i",
1003
+ "description": "Ignore permission sets or profiles",
1004
+ "name": "ignorerights",
1005
+ "default": "",
1006
+ "hasDynamicHelp": false,
1007
+ "multiple": false,
1008
+ "type": "option"
1009
+ },
1010
+ "folder": {
1011
+ "char": "f",
1012
+ "description": "Root folder",
1013
+ "name": "folder",
1014
+ "default": "force-app",
1015
+ "hasDynamicHelp": false,
1016
+ "multiple": false,
1017
+ "type": "option"
1018
+ },
1019
+ "outputfile": {
1020
+ "char": "x",
1021
+ "description": "Force the path and name of output report file. Must end with .csv",
1022
+ "name": "outputfile",
1044
1023
  "hasDynamicHelp": false,
1045
1024
  "multiple": false,
1046
- "options": [
1047
- "CICD",
1048
- "Monitoring"
1049
- ],
1050
1025
  "type": "option"
1051
1026
  },
1052
1027
  "debug": {
@@ -1078,8 +1053,7 @@
1078
1053
  "deprecateAliases": true,
1079
1054
  "name": "target-org",
1080
1055
  "noCacheDefault": true,
1081
- "required": true,
1082
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
1056
+ "summary": "Username or alias of the target org.",
1083
1057
  "hasDynamicHelp": true,
1084
1058
  "multiple": false,
1085
1059
  "type": "option"
@@ -1087,39 +1061,68 @@
1087
1061
  },
1088
1062
  "hasDynamicHelp": true,
1089
1063
  "hiddenAliases": [],
1090
- "id": "hardis:doc:mkdocs-to-salesforce",
1064
+ "id": "hardis:lint:access",
1091
1065
  "pluginAlias": "sfdx-hardis",
1092
1066
  "pluginName": "sfdx-hardis",
1093
1067
  "pluginType": "core",
1094
1068
  "strict": true,
1095
1069
  "enableJsonFlag": true,
1096
- "title": "MkDocs to Salesforce",
1070
+ "title": "check permission access",
1071
+ "supportsDevhubUsername": false,
1097
1072
  "requiresProject": true,
1073
+ "sourceElements": [
1074
+ {
1075
+ "regex": "/**/*.cls",
1076
+ "type": "ApexClass",
1077
+ "xmlField": "apexClass",
1078
+ "xmlChildren": "classAccesses",
1079
+ "xmlAccessField": "enabled",
1080
+ "ignore": {
1081
+ "all": false,
1082
+ "elements": []
1083
+ }
1084
+ },
1085
+ {
1086
+ "regex": "/**/objects/**/fields/*__c.field-meta.xml",
1087
+ "type": "CustomField",
1088
+ "xmlField": "field",
1089
+ "xmlChildren": "fieldPermissions",
1090
+ "xmlAccessField": "readable",
1091
+ "ignore": {
1092
+ "all": false,
1093
+ "elements": []
1094
+ }
1095
+ }
1096
+ ],
1097
+ "messages": {
1098
+ "header": "Check if elements(apex class and field) are at least in one permission set",
1099
+ "allElementsHaveRights": "All elements are included in at least one Permission set or Profile",
1100
+ "someElementsDontHaveRights": "Some elements are not included in at least one Permission set or Profile"
1101
+ },
1098
1102
  "isESM": true,
1099
1103
  "relativePath": [
1100
1104
  "lib",
1101
1105
  "commands",
1102
1106
  "hardis",
1103
- "doc",
1104
- "mkdocs-to-salesforce.js"
1107
+ "lint",
1108
+ "access.js"
1105
1109
  ],
1106
1110
  "aliasPermutations": [],
1107
1111
  "permutations": [
1108
- "hardis:doc:mkdocs-to-salesforce",
1109
- "doc:hardis:mkdocs-to-salesforce",
1110
- "doc:mkdocs-to-salesforce:hardis",
1111
- "hardis:mkdocs-to-salesforce:doc",
1112
- "mkdocs-to-salesforce:hardis:doc",
1113
- "mkdocs-to-salesforce:doc:hardis"
1112
+ "hardis:lint:access",
1113
+ "lint:hardis:access",
1114
+ "lint:access:hardis",
1115
+ "hardis:access:lint",
1116
+ "access:hardis:lint",
1117
+ "access:lint:hardis"
1114
1118
  ]
1115
1119
  },
1116
- "hardis:doc:override-prompts": {
1120
+ "hardis:lint:metadatastatus": {
1117
1121
  "aliases": [],
1118
1122
  "args": {},
1119
- "description": "Create local override files for AI prompt templates and variables\n\nThis command creates a folder config/prompt-templates/ and copies all the default AI prompt templates and variables as .txt files that can be customized.\n\nThe templates are used by sfdx-hardis for:\n- Generating documentation with AI\n- Solving deployment errors\n- Describing Salesforce metadata\n\nThe variables contain common instruction patterns that are reused across multiple templates, such as:\n- Role definitions (business analyst, developer, etc.)\n- Formatting requirements for markdown output\n- Security caution instructions\n- Output format specifications\n\nYou can customize these prompts and variables to match your organization's specific needs and terminology.\n\nAfter running this command, you can modify any of the .txt files in config/prompt-templates/ to override the default prompts and variables.\n\n**Important**: Once created, existing template and variable files will never be overwritten with newer versions from sfdx-hardis updates, unless you explicitly use the --overwrite flag. This ensures your customizations are preserved.\n\nAvailable templates:\n- PROMPT_SOLVE_DEPLOYMENT_ERROR\n- PROMPT_DESCRIBE_FLOW\n- PROMPT_DESCRIBE_FLOW_DIFF\n- PROMPT_DESCRIBE_OBJECT\n- PROMPT_COMPLETE_OBJECT_ATTRIBUTES_MD\n- PROMPT_DESCRIBE_APEX\n- PROMPT_DESCRIBE_PAGE\n- PROMPT_DESCRIBE_PACKAGE\n- PROMPT_DESCRIBE_PROFILE\n- PROMPT_DESCRIBE_PERMISSION_SET\n- PROMPT_DESCRIBE_PERMISSION_SET_GROUP\n- PROMPT_DESCRIBE_ASSIGNMENT_RULES\n- PROMPT_DESCRIBE_APPROVAL_PROCESS\n- PROMPT_DESCRIBE_LWC\n- PROMPT_DESCRIBE_AUTORESPONSE_RULES\n- PROMPT_DESCRIBE_ESCALATION_RULES\n- PROMPT_DESCRIBE_ROLES\n\nAvailable variables:\n- VARIABLE_OUTPUT_FORMAT_MARKDOWN_DOC\n- VARIABLE_FORMATTING_REQUIREMENTS\n- VARIABLE_ADDITIONAL_INSTRUCTIONS\n\nMore info on [AI Prompts documentation](https://sfdx-hardis.cloudity.com/salesforce-ai-prompts/)\n",
1123
+ "description": "Check if elements are inactive in the project:\n\n- Approval Processes\n- Assignment Rules\n- Auto Response Rules\n- Escalation Rules\n- Flows\n- Forecasting Types\n- Record Types\n- Validation Rules\n- Workflow Rules\n\n![](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/detect-inactive-metadata.gif)\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-inactive-metadata/) and can output Grafana, Slack and MsTeams Notifications.\n",
1120
1124
  "examples": [
1121
- "$ sf hardis:doc:override-prompts",
1122
- "$ sf hardis:doc:override-prompts --overwrite"
1125
+ "$ sf hardis:lint:metadatastatus"
1123
1126
  ],
1124
1127
  "flags": {
1125
1128
  "json": {
@@ -1137,12 +1140,6 @@
1137
1140
  "multiple": false,
1138
1141
  "type": "option"
1139
1142
  },
1140
- "overwrite": {
1141
- "description": "Overwrite existing template files if they already exist",
1142
- "name": "overwrite",
1143
- "allowNo": false,
1144
- "type": "boolean"
1145
- },
1146
1143
  "debug": {
1147
1144
  "char": "d",
1148
1145
  "description": "Activate debug mode (more logs)",
@@ -1150,6 +1147,14 @@
1150
1147
  "allowNo": false,
1151
1148
  "type": "boolean"
1152
1149
  },
1150
+ "outputfile": {
1151
+ "char": "f",
1152
+ "description": "Force the path and name of output report file. Must end with .csv",
1153
+ "name": "outputfile",
1154
+ "hasDynamicHelp": false,
1155
+ "multiple": false,
1156
+ "type": "option"
1157
+ },
1153
1158
  "websocket": {
1154
1159
  "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
1155
1160
  "name": "websocket",
@@ -1162,43 +1167,57 @@
1162
1167
  "name": "skipauth",
1163
1168
  "allowNo": false,
1164
1169
  "type": "boolean"
1170
+ },
1171
+ "target-org": {
1172
+ "aliases": [
1173
+ "targetusername",
1174
+ "u"
1175
+ ],
1176
+ "char": "o",
1177
+ "deprecateAliases": true,
1178
+ "name": "target-org",
1179
+ "noCacheDefault": true,
1180
+ "summary": "Username or alias of the target org.",
1181
+ "hasDynamicHelp": true,
1182
+ "multiple": false,
1183
+ "type": "option"
1165
1184
  }
1166
1185
  },
1167
- "hasDynamicHelp": false,
1186
+ "hasDynamicHelp": true,
1168
1187
  "hiddenAliases": [],
1169
- "id": "hardis:doc:override-prompts",
1188
+ "id": "hardis:lint:metadatastatus",
1170
1189
  "pluginAlias": "sfdx-hardis",
1171
1190
  "pluginName": "sfdx-hardis",
1172
1191
  "pluginType": "core",
1173
1192
  "strict": true,
1174
1193
  "enableJsonFlag": true,
1175
- "title": "Override AI Prompt Templates",
1176
- "requiresProject": false,
1194
+ "title": "check inactive metadatas",
1195
+ "supportsDevhubUsername": false,
1196
+ "requiresProject": true,
1177
1197
  "isESM": true,
1178
1198
  "relativePath": [
1179
1199
  "lib",
1180
1200
  "commands",
1181
1201
  "hardis",
1182
- "doc",
1183
- "override-prompts.js"
1202
+ "lint",
1203
+ "metadatastatus.js"
1184
1204
  ],
1185
1205
  "aliasPermutations": [],
1186
1206
  "permutations": [
1187
- "hardis:doc:override-prompts",
1188
- "doc:hardis:override-prompts",
1189
- "doc:override-prompts:hardis",
1190
- "hardis:override-prompts:doc",
1191
- "override-prompts:hardis:doc",
1192
- "override-prompts:doc:hardis"
1207
+ "hardis:lint:metadatastatus",
1208
+ "lint:hardis:metadatastatus",
1209
+ "lint:metadatastatus:hardis",
1210
+ "hardis:metadatastatus:lint",
1211
+ "metadatastatus:hardis:lint",
1212
+ "metadatastatus:lint:hardis"
1193
1213
  ]
1194
1214
  },
1195
- "hardis:doc:packagexml2markdown": {
1215
+ "hardis:lint:missingattributes": {
1196
1216
  "aliases": [],
1197
1217
  "args": {},
1198
- "description": "Generates a markdown documentation from a package.xml file",
1218
+ "description": "Check if elements(custom fields) aren't description",
1199
1219
  "examples": [
1200
- "$ sf hardis:doc:packagexml2markdown",
1201
- "$ sf hardis:doc:packagexml2markdown --inputfile manifest/package-all.xml"
1220
+ "$ sf hardis:lint:missingattributes"
1202
1221
  ],
1203
1222
  "flags": {
1204
1223
  "json": {
@@ -1216,29 +1235,21 @@
1216
1235
  "multiple": false,
1217
1236
  "type": "option"
1218
1237
  },
1219
- "inputfile": {
1220
- "char": "x",
1221
- "description": "Path to package.xml file. If not specified, the command will look in manifest folder",
1222
- "name": "inputfile",
1223
- "hasDynamicHelp": false,
1224
- "multiple": false,
1225
- "type": "option"
1238
+ "debug": {
1239
+ "char": "d",
1240
+ "description": "Activate debug mode (more logs)",
1241
+ "name": "debug",
1242
+ "allowNo": false,
1243
+ "type": "boolean"
1226
1244
  },
1227
1245
  "outputfile": {
1228
1246
  "char": "f",
1229
- "description": "Force the path and name of output report file. Must end with .md",
1247
+ "description": "Force the path and name of output report file. Must end with .csv",
1230
1248
  "name": "outputfile",
1231
1249
  "hasDynamicHelp": false,
1232
1250
  "multiple": false,
1233
1251
  "type": "option"
1234
1252
  },
1235
- "debug": {
1236
- "char": "d",
1237
- "description": "Activate debug mode (more logs)",
1238
- "name": "debug",
1239
- "allowNo": false,
1240
- "type": "boolean"
1241
- },
1242
1253
  "websocket": {
1243
1254
  "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
1244
1255
  "name": "websocket",
@@ -1269,40 +1280,39 @@
1269
1280
  },
1270
1281
  "hasDynamicHelp": true,
1271
1282
  "hiddenAliases": [],
1272
- "id": "hardis:doc:packagexml2markdown",
1283
+ "id": "hardis:lint:missingattributes",
1273
1284
  "pluginAlias": "sfdx-hardis",
1274
1285
  "pluginName": "sfdx-hardis",
1275
1286
  "pluginType": "core",
1276
1287
  "strict": true,
1277
1288
  "enableJsonFlag": true,
1278
- "title": "PackageXml to Markdown",
1279
- "requiresProject": false,
1289
+ "title": "check missing description on custom fields",
1290
+ "supportsDevhubUsername": false,
1291
+ "requiresProject": true,
1280
1292
  "isESM": true,
1281
1293
  "relativePath": [
1282
1294
  "lib",
1283
1295
  "commands",
1284
1296
  "hardis",
1285
- "doc",
1286
- "packagexml2markdown.js"
1297
+ "lint",
1298
+ "missingattributes.js"
1287
1299
  ],
1288
1300
  "aliasPermutations": [],
1289
1301
  "permutations": [
1290
- "hardis:doc:packagexml2markdown",
1291
- "doc:hardis:packagexml2markdown",
1292
- "doc:packagexml2markdown:hardis",
1293
- "hardis:packagexml2markdown:doc",
1294
- "packagexml2markdown:hardis:doc",
1295
- "packagexml2markdown:doc:hardis"
1302
+ "hardis:lint:missingattributes",
1303
+ "lint:hardis:missingattributes",
1304
+ "lint:missingattributes:hardis",
1305
+ "hardis:missingattributes:lint",
1306
+ "missingattributes:hardis:lint",
1307
+ "missingattributes:lint:hardis"
1296
1308
  ]
1297
1309
  },
1298
- "hardis:doc:project2markdown": {
1310
+ "hardis:lint:unusedmetadatas": {
1299
1311
  "aliases": [],
1300
1312
  "args": {},
1301
- "description": "Generates a markdown documentation from a SFDX project\n\n- Objects (with fields, validation rules, relationships and dependencies)\n- Automations\n - Approval Processes\n - Assignment Rules\n - AutoResponse Rules\n - Escalation Rules\n - Flows\n- Authorizations\n - Profiles\n - Permission Set Groups\n - Permission Sets\n- Code\n - Apex\n - Lightning Web Components\n- Lightning Pages\n- Packages\n- SFDX-Hardis Config\n- Branches & Orgs\n- Manifests\n\nCan work on any sfdx project, no need for it to be a sfdx-hardis flavored one.\n\nGenerates markdown files will be written in **docs** folder (except README.md where a link to doc index is added)\n\n- You can customize the pages following [mkdocs-material setup documentation](https://squidfunk.github.io/mkdocs-material/setup/)\n- You can manually add new markdown files in the \"docs\" folder to extend this documentation and add references to them in \"mkdocs.yml\"\n- You can also add images in folder \"docs/assets\" and embed them in markdown files.\n\nTo read Flow documentations if your markdown reader doesn't handle MermaidJS syntax, this command could require @mermaid-js/mermaid-cli\n\n- Run `npm install @mermaid-js/mermaid-cli --global` if puppeteer works in your environment\n- It can also be run as a docker image\n\nBoth modes will be tried by default, but you can also force one of them by defining environment variable `MERMAID_MODES=docker` or `MERMAID_MODES=cli`\n\n_sfdx-hardis docker image is alpine-based and does not succeed to run mermaid/puppeteer: if you can help, please submit a PR !_\n\nIf Flow history doc always display a single state, you probably need to update your workflow configuration:\n\n- on Gitlab: Env variable [`GIT_FETCH_EXTRA_FLAGS: --depth 10000`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/.gitlab-ci.yml#L11)\n- on GitHub: [`fetch-depth: 0`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/.github/workflows/org-monitoring.yml#L58)\n- on Azure: [`fetchDepth: \"0\"`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/azure-pipelines.yml#L39)\n- on Bitbucket: [`step: clone: depth: full`](https://github.com/hardisgroupcom/sfdx-hardis/blob/main/defaults/monitoring/bitbucket-pipelines.yml#L18)\n\n![Screenshot flow doc](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/screenshot-flow-doc.jpg)\n\n![Screenshot project documentation](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/screenshot-project-doc.jpg)\n\n![Screenshot project documentation](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/screenshot-project-doc-2.jpg)\n\n![Screenshot project documentation](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/screenshot-object-diagram.jpg)\n\n![Screenshot project documentation](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/screenshot-project-doc-profile.gif)\n\n![Screenshot project documentation](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/screenshot-doc-apex.png)\n\nIf it is a sfdx-hardis CI/CD project, a diagram of the branches and orgs strategy will be generated.\n\n![](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/screenshot-doc-branches-strategy.jpg)\n\nIf [AI integration](https://sfdx-hardis.cloudity.com/salesforce-ai-setup/) is configured, documentation will contain a summary of the Flow.\n\n- Use variable PROMPTS_LANGUAGE (ex: PROMPTS_LANGUAGE=fr) to force language for LLM calls (default:en)\n\nIf you have a complex strategy, you might need to input property **mergeTargets** in branch-scoped sfdx-hardis.yml file to have a correct diagram.\n\nDefine DO_NOT_OVERWRITE_INDEX_MD=true to avoid overwriting the index.md file in docs folder, useful if you want to keep your own index.md file.\n\n## Doc HTML Pages\n\nTo read the documentation as HTML pages, run the following code (you need [**Python**](https://www.python.org/downloads/) on your computer)\n\n```python\npip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists || python -m pip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists || py -m pip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists\nmkdocs serve -v || python -m mkdocs serve -v || py -m mkdocs serve -v\n```\n\nTo just generate HTML pages that you can host anywhere, run `mkdocs build -v || python -m mkdocs build -v || py -m mkdocs build -v`\n\n",
1313
+ "description": "Check if elements (custom labels and custom permissions) are used in the project\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-unused-metadata/) and can output Grafana, Slack and MsTeams Notifications.\n ",
1302
1314
  "examples": [
1303
- "$ sf hardis:doc:project2markdown",
1304
- "$ sf hardis:doc:project2markdown --with-history",
1305
- "$ sf hardis:doc:project2markdown --with-history --pdf"
1315
+ "$ sf hardis:lint:unusedmetadatas"
1306
1316
  ],
1307
1317
  "flags": {
1308
1318
  "json": {
@@ -1320,24 +1330,6 @@
1320
1330
  "multiple": false,
1321
1331
  "type": "option"
1322
1332
  },
1323
- "diff-only": {
1324
- "description": "Generate documentation only for changed files (used for monitoring)",
1325
- "name": "diff-only",
1326
- "allowNo": false,
1327
- "type": "boolean"
1328
- },
1329
- "with-history": {
1330
- "description": "Generate a markdown file with the history diff of the Flow",
1331
- "name": "with-history",
1332
- "allowNo": false,
1333
- "type": "boolean"
1334
- },
1335
- "pdf": {
1336
- "description": "Also generate the documentation in PDF format",
1337
- "name": "pdf",
1338
- "allowNo": false,
1339
- "type": "boolean"
1340
- },
1341
1333
  "debug": {
1342
1334
  "char": "d",
1343
1335
  "description": "Activate debug mode (more logs)",
@@ -1345,6 +1337,14 @@
1345
1337
  "allowNo": false,
1346
1338
  "type": "boolean"
1347
1339
  },
1340
+ "outputfile": {
1341
+ "char": "f",
1342
+ "description": "Force the path and name of output report file. Must end with .csv",
1343
+ "name": "outputfile",
1344
+ "hasDynamicHelp": false,
1345
+ "multiple": false,
1346
+ "type": "option"
1347
+ },
1348
1348
  "websocket": {
1349
1349
  "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
1350
1350
  "name": "websocket",
@@ -1375,31 +1375,31 @@
1375
1375
  },
1376
1376
  "hasDynamicHelp": true,
1377
1377
  "hiddenAliases": [],
1378
- "id": "hardis:doc:project2markdown",
1378
+ "id": "hardis:lint:unusedmetadatas",
1379
1379
  "pluginAlias": "sfdx-hardis",
1380
1380
  "pluginName": "sfdx-hardis",
1381
1381
  "pluginType": "core",
1382
1382
  "strict": true,
1383
1383
  "enableJsonFlag": true,
1384
- "title": "SFDX Project to Markdown",
1385
- "htmlInstructions": "## Doc HTML Pages\n\nTo read the documentation as HTML pages, run the following code (you need [**Python**](https://www.python.org/downloads/) on your computer)\n\n```python\npip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists || python -m pip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists || py -m pip install mkdocs-material mkdocs-exclude-search mdx_truly_sane_lists\nmkdocs serve -v || python -m mkdocs serve -v || py -m mkdocs serve -v\n```\n\nTo just generate HTML pages that you can host anywhere, run `mkdocs build -v || python -m mkdocs build -v || py -m mkdocs build -v`\n",
1384
+ "title": "check unused labels and custom permissions",
1385
+ "supportsDevhubUsername": false,
1386
1386
  "requiresProject": true,
1387
1387
  "isESM": true,
1388
1388
  "relativePath": [
1389
1389
  "lib",
1390
1390
  "commands",
1391
1391
  "hardis",
1392
- "doc",
1393
- "project2markdown.js"
1392
+ "lint",
1393
+ "unusedmetadatas.js"
1394
1394
  ],
1395
1395
  "aliasPermutations": [],
1396
1396
  "permutations": [
1397
- "hardis:doc:project2markdown",
1398
- "doc:hardis:project2markdown",
1399
- "doc:project2markdown:hardis",
1400
- "hardis:project2markdown:doc",
1401
- "project2markdown:hardis:doc",
1402
- "project2markdown:doc:hardis"
1397
+ "hardis:lint:unusedmetadatas",
1398
+ "lint:hardis:unusedmetadatas",
1399
+ "lint:unusedmetadatas:hardis",
1400
+ "hardis:unusedmetadatas:lint",
1401
+ "unusedmetadatas:hardis:lint",
1402
+ "unusedmetadatas:lint:hardis"
1403
1403
  ]
1404
1404
  },
1405
1405
  "hardis:mdapi:deploy": {
@@ -4394,135 +4394,6 @@
4394
4394
  "ws:work:hardis"
4395
4395
  ]
4396
4396
  },
4397
- "hardis:git:pull-requests:extract": {
4398
- "aliases": [],
4399
- "args": {},
4400
- "description": "Extract pull requests with filtering criteria",
4401
- "examples": [
4402
- "$ sf hardis:git:pull-requests:extract",
4403
- "$ sf hardis:git:pull-requests:extract --target-branch main --status merged"
4404
- ],
4405
- "flags": {
4406
- "json": {
4407
- "description": "Format output as json.",
4408
- "helpGroup": "GLOBAL",
4409
- "name": "json",
4410
- "allowNo": false,
4411
- "type": "boolean"
4412
- },
4413
- "flags-dir": {
4414
- "helpGroup": "GLOBAL",
4415
- "name": "flags-dir",
4416
- "summary": "Import flag values from a directory.",
4417
- "hasDynamicHelp": false,
4418
- "multiple": false,
4419
- "type": "option"
4420
- },
4421
- "target-branch": {
4422
- "char": "t",
4423
- "description": "Target branch of PRs",
4424
- "name": "target-branch",
4425
- "hasDynamicHelp": false,
4426
- "multiple": false,
4427
- "type": "option"
4428
- },
4429
- "status": {
4430
- "char": "x",
4431
- "description": "Status of the PR",
4432
- "name": "status",
4433
- "hasDynamicHelp": false,
4434
- "multiple": false,
4435
- "options": [
4436
- "open",
4437
- "merged",
4438
- "abandoned"
4439
- ],
4440
- "type": "option"
4441
- },
4442
- "min-date": {
4443
- "char": "m",
4444
- "description": "Minimum date for PR",
4445
- "name": "min-date",
4446
- "hasDynamicHelp": false,
4447
- "multiple": false,
4448
- "type": "option"
4449
- },
4450
- "outputfile": {
4451
- "char": "f",
4452
- "description": "Force the path and name of output report file. Must end with .csv",
4453
- "name": "outputfile",
4454
- "hasDynamicHelp": false,
4455
- "multiple": false,
4456
- "type": "option"
4457
- },
4458
- "debug": {
4459
- "char": "d",
4460
- "description": "Activate debug mode (more logs)",
4461
- "name": "debug",
4462
- "allowNo": false,
4463
- "type": "boolean"
4464
- },
4465
- "websocket": {
4466
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
4467
- "name": "websocket",
4468
- "hasDynamicHelp": false,
4469
- "multiple": false,
4470
- "type": "option"
4471
- },
4472
- "skipauth": {
4473
- "description": "Skip authentication check when a default username is required",
4474
- "name": "skipauth",
4475
- "allowNo": false,
4476
- "type": "boolean"
4477
- }
4478
- },
4479
- "hasDynamicHelp": false,
4480
- "hiddenAliases": [],
4481
- "id": "hardis:git:pull-requests:extract",
4482
- "pluginAlias": "sfdx-hardis",
4483
- "pluginName": "sfdx-hardis",
4484
- "pluginType": "core",
4485
- "strict": true,
4486
- "enableJsonFlag": true,
4487
- "title": "Extract pull requests",
4488
- "requiresProject": true,
4489
- "isESM": true,
4490
- "relativePath": [
4491
- "lib",
4492
- "commands",
4493
- "hardis",
4494
- "git",
4495
- "pull-requests",
4496
- "extract.js"
4497
- ],
4498
- "aliasPermutations": [],
4499
- "permutations": [
4500
- "hardis:git:pull-requests:extract",
4501
- "git:hardis:pull-requests:extract",
4502
- "git:pull-requests:hardis:extract",
4503
- "git:pull-requests:extract:hardis",
4504
- "hardis:pull-requests:git:extract",
4505
- "pull-requests:hardis:git:extract",
4506
- "pull-requests:git:hardis:extract",
4507
- "pull-requests:git:extract:hardis",
4508
- "hardis:pull-requests:extract:git",
4509
- "pull-requests:hardis:extract:git",
4510
- "pull-requests:extract:hardis:git",
4511
- "pull-requests:extract:git:hardis",
4512
- "hardis:git:extract:pull-requests",
4513
- "git:hardis:extract:pull-requests",
4514
- "git:extract:hardis:pull-requests",
4515
- "git:extract:pull-requests:hardis",
4516
- "hardis:extract:git:pull-requests",
4517
- "extract:hardis:git:pull-requests",
4518
- "extract:git:hardis:pull-requests",
4519
- "extract:git:pull-requests:hardis",
4520
- "hardis:extract:pull-requests:git",
4521
- "extract:hardis:pull-requests:git",
4522
- "extract:pull-requests:hardis:git",
4523
- "extract:pull-requests:git:hardis"
4524
- ]
4525
- },
4526
4397
  "hardis:doc:extract:permsetgroups": {
4527
4398
  "aliases": [],
4528
4399
  "args": {},
@@ -4713,6 +4584,135 @@
4713
4584
  "generate:plugin:doc:hardis"
4714
4585
  ]
4715
4586
  },
4587
+ "hardis:git:pull-requests:extract": {
4588
+ "aliases": [],
4589
+ "args": {},
4590
+ "description": "Extract pull requests with filtering criteria",
4591
+ "examples": [
4592
+ "$ sf hardis:git:pull-requests:extract",
4593
+ "$ sf hardis:git:pull-requests:extract --target-branch main --status merged"
4594
+ ],
4595
+ "flags": {
4596
+ "json": {
4597
+ "description": "Format output as json.",
4598
+ "helpGroup": "GLOBAL",
4599
+ "name": "json",
4600
+ "allowNo": false,
4601
+ "type": "boolean"
4602
+ },
4603
+ "flags-dir": {
4604
+ "helpGroup": "GLOBAL",
4605
+ "name": "flags-dir",
4606
+ "summary": "Import flag values from a directory.",
4607
+ "hasDynamicHelp": false,
4608
+ "multiple": false,
4609
+ "type": "option"
4610
+ },
4611
+ "target-branch": {
4612
+ "char": "t",
4613
+ "description": "Target branch of PRs",
4614
+ "name": "target-branch",
4615
+ "hasDynamicHelp": false,
4616
+ "multiple": false,
4617
+ "type": "option"
4618
+ },
4619
+ "status": {
4620
+ "char": "x",
4621
+ "description": "Status of the PR",
4622
+ "name": "status",
4623
+ "hasDynamicHelp": false,
4624
+ "multiple": false,
4625
+ "options": [
4626
+ "open",
4627
+ "merged",
4628
+ "abandoned"
4629
+ ],
4630
+ "type": "option"
4631
+ },
4632
+ "min-date": {
4633
+ "char": "m",
4634
+ "description": "Minimum date for PR",
4635
+ "name": "min-date",
4636
+ "hasDynamicHelp": false,
4637
+ "multiple": false,
4638
+ "type": "option"
4639
+ },
4640
+ "outputfile": {
4641
+ "char": "f",
4642
+ "description": "Force the path and name of output report file. Must end with .csv",
4643
+ "name": "outputfile",
4644
+ "hasDynamicHelp": false,
4645
+ "multiple": false,
4646
+ "type": "option"
4647
+ },
4648
+ "debug": {
4649
+ "char": "d",
4650
+ "description": "Activate debug mode (more logs)",
4651
+ "name": "debug",
4652
+ "allowNo": false,
4653
+ "type": "boolean"
4654
+ },
4655
+ "websocket": {
4656
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
4657
+ "name": "websocket",
4658
+ "hasDynamicHelp": false,
4659
+ "multiple": false,
4660
+ "type": "option"
4661
+ },
4662
+ "skipauth": {
4663
+ "description": "Skip authentication check when a default username is required",
4664
+ "name": "skipauth",
4665
+ "allowNo": false,
4666
+ "type": "boolean"
4667
+ }
4668
+ },
4669
+ "hasDynamicHelp": false,
4670
+ "hiddenAliases": [],
4671
+ "id": "hardis:git:pull-requests:extract",
4672
+ "pluginAlias": "sfdx-hardis",
4673
+ "pluginName": "sfdx-hardis",
4674
+ "pluginType": "core",
4675
+ "strict": true,
4676
+ "enableJsonFlag": true,
4677
+ "title": "Extract pull requests",
4678
+ "requiresProject": true,
4679
+ "isESM": true,
4680
+ "relativePath": [
4681
+ "lib",
4682
+ "commands",
4683
+ "hardis",
4684
+ "git",
4685
+ "pull-requests",
4686
+ "extract.js"
4687
+ ],
4688
+ "aliasPermutations": [],
4689
+ "permutations": [
4690
+ "hardis:git:pull-requests:extract",
4691
+ "git:hardis:pull-requests:extract",
4692
+ "git:pull-requests:hardis:extract",
4693
+ "git:pull-requests:extract:hardis",
4694
+ "hardis:pull-requests:git:extract",
4695
+ "pull-requests:hardis:git:extract",
4696
+ "pull-requests:git:hardis:extract",
4697
+ "pull-requests:git:extract:hardis",
4698
+ "hardis:pull-requests:extract:git",
4699
+ "pull-requests:hardis:extract:git",
4700
+ "pull-requests:extract:hardis:git",
4701
+ "pull-requests:extract:git:hardis",
4702
+ "hardis:git:extract:pull-requests",
4703
+ "git:hardis:extract:pull-requests",
4704
+ "git:extract:hardis:pull-requests",
4705
+ "git:extract:pull-requests:hardis",
4706
+ "hardis:extract:git:pull-requests",
4707
+ "extract:hardis:git:pull-requests",
4708
+ "extract:git:hardis:pull-requests",
4709
+ "extract:git:pull-requests:hardis",
4710
+ "hardis:extract:pull-requests:git",
4711
+ "extract:hardis:pull-requests:git",
4712
+ "extract:pull-requests:hardis:git",
4713
+ "extract:pull-requests:git:hardis"
4714
+ ]
4715
+ },
4716
4716
  "hardis:org:community:update": {
4717
4717
  "aliases": [],
4718
4718
  "args": {},
@@ -5099,272 +5099,38 @@
5099
5099
  ],
5100
5100
  "aliasPermutations": [],
5101
5101
  "permutations": [
5102
- "hardis:org:configure:monitoring",
5103
- "org:hardis:configure:monitoring",
5104
- "org:configure:hardis:monitoring",
5105
- "org:configure:monitoring:hardis",
5106
- "hardis:configure:org:monitoring",
5107
- "configure:hardis:org:monitoring",
5108
- "configure:org:hardis:monitoring",
5109
- "configure:org:monitoring:hardis",
5110
- "hardis:configure:monitoring:org",
5111
- "configure:hardis:monitoring:org",
5112
- "configure:monitoring:hardis:org",
5113
- "configure:monitoring:org:hardis",
5114
- "hardis:org:monitoring:configure",
5115
- "org:hardis:monitoring:configure",
5116
- "org:monitoring:hardis:configure",
5117
- "org:monitoring:configure:hardis",
5118
- "hardis:monitoring:org:configure",
5119
- "monitoring:hardis:org:configure",
5120
- "monitoring:org:hardis:configure",
5121
- "monitoring:org:configure:hardis",
5122
- "hardis:monitoring:configure:org",
5123
- "monitoring:hardis:configure:org",
5124
- "monitoring:configure:hardis:org",
5125
- "monitoring:configure:org:hardis"
5126
- ]
5127
- },
5128
- "hardis:org:data:delete": {
5129
- "aliases": [],
5130
- "args": {},
5131
- "description": "Delete records in multiple objects using SFDMU Workspace\n \nIf you need to run this command in production, you need to:\n\n- define runnableInProduction in export.json\n- define sfdmuCanModify: YOUR_INSTANCE_URL in config/branches/.sfdx-hardis.YOUR_BRANCH.yml\n",
5132
- "examples": [
5133
- "$ sf hardis:org:data:delete"
5134
- ],
5135
- "flags": {
5136
- "json": {
5137
- "description": "Format output as json.",
5138
- "helpGroup": "GLOBAL",
5139
- "name": "json",
5140
- "allowNo": false,
5141
- "type": "boolean"
5142
- },
5143
- "flags-dir": {
5144
- "helpGroup": "GLOBAL",
5145
- "name": "flags-dir",
5146
- "summary": "Import flag values from a directory.",
5147
- "hasDynamicHelp": false,
5148
- "multiple": false,
5149
- "type": "option"
5150
- },
5151
- "path": {
5152
- "char": "p",
5153
- "description": "Path to the sfdmu workspace folder",
5154
- "name": "path",
5155
- "hasDynamicHelp": false,
5156
- "multiple": false,
5157
- "type": "option"
5158
- },
5159
- "debug": {
5160
- "char": "d",
5161
- "description": "Activate debug mode (more logs)",
5162
- "name": "debug",
5163
- "allowNo": false,
5164
- "type": "boolean"
5165
- },
5166
- "websocket": {
5167
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
5168
- "name": "websocket",
5169
- "hasDynamicHelp": false,
5170
- "multiple": false,
5171
- "type": "option"
5172
- },
5173
- "skipauth": {
5174
- "description": "Skip authentication check when a default username is required",
5175
- "name": "skipauth",
5176
- "allowNo": false,
5177
- "type": "boolean"
5178
- },
5179
- "target-org": {
5180
- "aliases": [
5181
- "targetusername",
5182
- "u"
5183
- ],
5184
- "char": "o",
5185
- "deprecateAliases": true,
5186
- "name": "target-org",
5187
- "noCacheDefault": true,
5188
- "required": true,
5189
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
5190
- "hasDynamicHelp": true,
5191
- "multiple": false,
5192
- "type": "option"
5193
- }
5194
- },
5195
- "hasDynamicHelp": true,
5196
- "hiddenAliases": [],
5197
- "id": "hardis:org:data:delete",
5198
- "pluginAlias": "sfdx-hardis",
5199
- "pluginName": "sfdx-hardis",
5200
- "pluginType": "core",
5201
- "strict": true,
5202
- "enableJsonFlag": true,
5203
- "title": "Delete data",
5204
- "requiresProject": false,
5205
- "requiresSfdxPlugins": [
5206
- "sfdmu"
5207
- ],
5208
- "isESM": true,
5209
- "relativePath": [
5210
- "lib",
5211
- "commands",
5212
- "hardis",
5213
- "org",
5214
- "data",
5215
- "delete.js"
5216
- ],
5217
- "aliasPermutations": [],
5218
- "permutations": [
5219
- "hardis:org:data:delete",
5220
- "org:hardis:data:delete",
5221
- "org:data:hardis:delete",
5222
- "org:data:delete:hardis",
5223
- "hardis:data:org:delete",
5224
- "data:hardis:org:delete",
5225
- "data:org:hardis:delete",
5226
- "data:org:delete:hardis",
5227
- "hardis:data:delete:org",
5228
- "data:hardis:delete:org",
5229
- "data:delete:hardis:org",
5230
- "data:delete:org:hardis",
5231
- "hardis:org:delete:data",
5232
- "org:hardis:delete:data",
5233
- "org:delete:hardis:data",
5234
- "org:delete:data:hardis",
5235
- "hardis:delete:org:data",
5236
- "delete:hardis:org:data",
5237
- "delete:org:hardis:data",
5238
- "delete:org:data:hardis",
5239
- "hardis:delete:data:org",
5240
- "delete:hardis:data:org",
5241
- "delete:data:hardis:org",
5242
- "delete:data:org:hardis"
5243
- ]
5244
- },
5245
- "hardis:org:data:export": {
5246
- "aliases": [],
5247
- "args": {},
5248
- "description": "Export data from an org using a [SFDX Data Loader](https://help.sfdmu.com/) Project\n\nSee article:\n\n[![How to detect bad words in Salesforce records using SFDX Data Loader and sfdx-hardis](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/article-badwords.jpg)](https://nicolas.vuillamy.fr/how-to-detect-bad-words-in-salesforce-records-using-sfdx-data-loader-and-sfdx-hardis-171db40a9bac)\n",
5249
- "examples": [
5250
- "$ sf hardis:org:data:export"
5251
- ],
5252
- "flags": {
5253
- "json": {
5254
- "description": "Format output as json.",
5255
- "helpGroup": "GLOBAL",
5256
- "name": "json",
5257
- "allowNo": false,
5258
- "type": "boolean"
5259
- },
5260
- "flags-dir": {
5261
- "helpGroup": "GLOBAL",
5262
- "name": "flags-dir",
5263
- "summary": "Import flag values from a directory.",
5264
- "hasDynamicHelp": false,
5265
- "multiple": false,
5266
- "type": "option"
5267
- },
5268
- "path": {
5269
- "char": "p",
5270
- "description": "Path to the sfdmu workspace folder",
5271
- "name": "path",
5272
- "hasDynamicHelp": false,
5273
- "multiple": false,
5274
- "type": "option"
5275
- },
5276
- "debug": {
5277
- "char": "d",
5278
- "description": "Activate debug mode (more logs)",
5279
- "name": "debug",
5280
- "allowNo": false,
5281
- "type": "boolean"
5282
- },
5283
- "websocket": {
5284
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
5285
- "name": "websocket",
5286
- "hasDynamicHelp": false,
5287
- "multiple": false,
5288
- "type": "option"
5289
- },
5290
- "skipauth": {
5291
- "description": "Skip authentication check when a default username is required",
5292
- "name": "skipauth",
5293
- "allowNo": false,
5294
- "type": "boolean"
5295
- },
5296
- "target-org": {
5297
- "aliases": [
5298
- "targetusername",
5299
- "u"
5300
- ],
5301
- "char": "o",
5302
- "deprecateAliases": true,
5303
- "name": "target-org",
5304
- "noCacheDefault": true,
5305
- "required": true,
5306
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
5307
- "hasDynamicHelp": true,
5308
- "multiple": false,
5309
- "type": "option"
5310
- }
5311
- },
5312
- "hasDynamicHelp": true,
5313
- "hiddenAliases": [],
5314
- "id": "hardis:org:data:export",
5315
- "pluginAlias": "sfdx-hardis",
5316
- "pluginName": "sfdx-hardis",
5317
- "pluginType": "core",
5318
- "strict": true,
5319
- "enableJsonFlag": true,
5320
- "title": "Export data",
5321
- "requiresProject": false,
5322
- "requiresSfdxPlugins": [
5323
- "sfdmu"
5324
- ],
5325
- "isESM": true,
5326
- "relativePath": [
5327
- "lib",
5328
- "commands",
5329
- "hardis",
5330
- "org",
5331
- "data",
5332
- "export.js"
5333
- ],
5334
- "aliasPermutations": [],
5335
- "permutations": [
5336
- "hardis:org:data:export",
5337
- "org:hardis:data:export",
5338
- "org:data:hardis:export",
5339
- "org:data:export:hardis",
5340
- "hardis:data:org:export",
5341
- "data:hardis:org:export",
5342
- "data:org:hardis:export",
5343
- "data:org:export:hardis",
5344
- "hardis:data:export:org",
5345
- "data:hardis:export:org",
5346
- "data:export:hardis:org",
5347
- "data:export:org:hardis",
5348
- "hardis:org:export:data",
5349
- "org:hardis:export:data",
5350
- "org:export:hardis:data",
5351
- "org:export:data:hardis",
5352
- "hardis:export:org:data",
5353
- "export:hardis:org:data",
5354
- "export:org:hardis:data",
5355
- "export:org:data:hardis",
5356
- "hardis:export:data:org",
5357
- "export:hardis:data:org",
5358
- "export:data:hardis:org",
5359
- "export:data:org:hardis"
5102
+ "hardis:org:configure:monitoring",
5103
+ "org:hardis:configure:monitoring",
5104
+ "org:configure:hardis:monitoring",
5105
+ "org:configure:monitoring:hardis",
5106
+ "hardis:configure:org:monitoring",
5107
+ "configure:hardis:org:monitoring",
5108
+ "configure:org:hardis:monitoring",
5109
+ "configure:org:monitoring:hardis",
5110
+ "hardis:configure:monitoring:org",
5111
+ "configure:hardis:monitoring:org",
5112
+ "configure:monitoring:hardis:org",
5113
+ "configure:monitoring:org:hardis",
5114
+ "hardis:org:monitoring:configure",
5115
+ "org:hardis:monitoring:configure",
5116
+ "org:monitoring:hardis:configure",
5117
+ "org:monitoring:configure:hardis",
5118
+ "hardis:monitoring:org:configure",
5119
+ "monitoring:hardis:org:configure",
5120
+ "monitoring:org:hardis:configure",
5121
+ "monitoring:org:configure:hardis",
5122
+ "hardis:monitoring:configure:org",
5123
+ "monitoring:hardis:configure:org",
5124
+ "monitoring:configure:hardis:org",
5125
+ "monitoring:configure:org:hardis"
5360
5126
  ]
5361
5127
  },
5362
- "hardis:org:data:import": {
5128
+ "hardis:org:data:delete": {
5363
5129
  "aliases": [],
5364
5130
  "args": {},
5365
- "description": "Import/Load data in an org using a [SFDX Data Loader](https://help.sfdmu.com/) Project\n\nIf you need to run this command in a production org, you need to either:\n\n- Define **sfdmuCanModify** in your .sfdx-hardis.yml config file. (Example: `sfdmuCanModify: prod-instance.my.salesforce.com`)\n- Define an environment variable SFDMU_CAN_MODIFY. (Example: `SFDMU_CAN_MODIFY=prod-instance.my.salesforce.com`)\n\nSee article:\n\n[![How to detect bad words in Salesforce records using SFDX Data Loader and sfdx-hardis](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/article-badwords.jpg)](https://nicolas.vuillamy.fr/how-to-detect-bad-words-in-salesforce-records-using-sfdx-data-loader-and-sfdx-hardis-171db40a9bac)\n",
5131
+ "description": "Delete records in multiple objects using SFDMU Workspace\n \nIf you need to run this command in production, you need to:\n\n- define runnableInProduction in export.json\n- define sfdmuCanModify: YOUR_INSTANCE_URL in config/branches/.sfdx-hardis.YOUR_BRANCH.yml\n",
5366
5132
  "examples": [
5367
- "$ sf hardis:org:data:import"
5133
+ "$ sf hardis:org:data:delete"
5368
5134
  ],
5369
5135
  "flags": {
5370
5136
  "json": {
@@ -5428,13 +5194,13 @@
5428
5194
  },
5429
5195
  "hasDynamicHelp": true,
5430
5196
  "hiddenAliases": [],
5431
- "id": "hardis:org:data:import",
5197
+ "id": "hardis:org:data:delete",
5432
5198
  "pluginAlias": "sfdx-hardis",
5433
5199
  "pluginName": "sfdx-hardis",
5434
5200
  "pluginType": "core",
5435
5201
  "strict": true,
5436
5202
  "enableJsonFlag": true,
5437
- "title": "Import data",
5203
+ "title": "Delete data",
5438
5204
  "requiresProject": false,
5439
5205
  "requiresSfdxPlugins": [
5440
5206
  "sfdmu"
@@ -5446,42 +5212,42 @@
5446
5212
  "hardis",
5447
5213
  "org",
5448
5214
  "data",
5449
- "import.js"
5215
+ "delete.js"
5450
5216
  ],
5451
5217
  "aliasPermutations": [],
5452
5218
  "permutations": [
5453
- "hardis:org:data:import",
5454
- "org:hardis:data:import",
5455
- "org:data:hardis:import",
5456
- "org:data:import:hardis",
5457
- "hardis:data:org:import",
5458
- "data:hardis:org:import",
5459
- "data:org:hardis:import",
5460
- "data:org:import:hardis",
5461
- "hardis:data:import:org",
5462
- "data:hardis:import:org",
5463
- "data:import:hardis:org",
5464
- "data:import:org:hardis",
5465
- "hardis:org:import:data",
5466
- "org:hardis:import:data",
5467
- "org:import:hardis:data",
5468
- "org:import:data:hardis",
5469
- "hardis:import:org:data",
5470
- "import:hardis:org:data",
5471
- "import:org:hardis:data",
5472
- "import:org:data:hardis",
5473
- "hardis:import:data:org",
5474
- "import:hardis:data:org",
5475
- "import:data:hardis:org",
5476
- "import:data:org:hardis"
5219
+ "hardis:org:data:delete",
5220
+ "org:hardis:data:delete",
5221
+ "org:data:hardis:delete",
5222
+ "org:data:delete:hardis",
5223
+ "hardis:data:org:delete",
5224
+ "data:hardis:org:delete",
5225
+ "data:org:hardis:delete",
5226
+ "data:org:delete:hardis",
5227
+ "hardis:data:delete:org",
5228
+ "data:hardis:delete:org",
5229
+ "data:delete:hardis:org",
5230
+ "data:delete:org:hardis",
5231
+ "hardis:org:delete:data",
5232
+ "org:hardis:delete:data",
5233
+ "org:delete:hardis:data",
5234
+ "org:delete:data:hardis",
5235
+ "hardis:delete:org:data",
5236
+ "delete:hardis:org:data",
5237
+ "delete:org:hardis:data",
5238
+ "delete:org:data:hardis",
5239
+ "hardis:delete:data:org",
5240
+ "delete:hardis:data:org",
5241
+ "delete:data:hardis:org",
5242
+ "delete:data:org:hardis"
5477
5243
  ]
5478
5244
  },
5479
- "hardis:org:files:export": {
5245
+ "hardis:org:data:export": {
5480
5246
  "aliases": [],
5481
5247
  "args": {},
5482
- "description": "Export file attachments from a Salesforce org\n\nHandles:\n\n- ContentVersion\n- Attachment\n\nSee article below:\n\n[![How to mass download notes and attachments files from a Salesforce org](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/article-mass-download.jpg)](https://nicolas.vuillamy.fr/how-to-mass-download-notes-and-attachments-files-from-a-salesforce-org-83a028824afd)\n",
5248
+ "description": "Export data from an org using a [SFDX Data Loader](https://help.sfdmu.com/) Project\n\nSee article:\n\n[![How to detect bad words in Salesforce records using SFDX Data Loader and sfdx-hardis](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/article-badwords.jpg)](https://nicolas.vuillamy.fr/how-to-detect-bad-words-in-salesforce-records-using-sfdx-data-loader-and-sfdx-hardis-171db40a9bac)\n",
5483
5249
  "examples": [
5484
- "$ sf hardis:org:files:export"
5250
+ "$ sf hardis:org:data:export"
5485
5251
  ],
5486
5252
  "flags": {
5487
5253
  "json": {
@@ -5501,39 +5267,12 @@
5501
5267
  },
5502
5268
  "path": {
5503
5269
  "char": "p",
5504
- "description": "Path to the file export project",
5270
+ "description": "Path to the sfdmu workspace folder",
5505
5271
  "name": "path",
5506
5272
  "hasDynamicHelp": false,
5507
5273
  "multiple": false,
5508
5274
  "type": "option"
5509
5275
  },
5510
- "chunksize": {
5511
- "char": "c",
5512
- "description": "Number of records to add in a chunk before it is processed",
5513
- "name": "chunksize",
5514
- "default": 1000,
5515
- "hasDynamicHelp": false,
5516
- "multiple": false,
5517
- "type": "option"
5518
- },
5519
- "polltimeout": {
5520
- "char": "t",
5521
- "description": "Timeout in MS for Bulk API calls",
5522
- "name": "polltimeout",
5523
- "default": 300000,
5524
- "hasDynamicHelp": false,
5525
- "multiple": false,
5526
- "type": "option"
5527
- },
5528
- "startchunknumber": {
5529
- "char": "s",
5530
- "description": "Chunk number to start from",
5531
- "name": "startchunknumber",
5532
- "default": 0,
5533
- "hasDynamicHelp": false,
5534
- "multiple": false,
5535
- "type": "option"
5536
- },
5537
5276
  "debug": {
5538
5277
  "char": "d",
5539
5278
  "description": "Activate debug mode (more logs)",
@@ -5572,57 +5311,60 @@
5572
5311
  },
5573
5312
  "hasDynamicHelp": true,
5574
5313
  "hiddenAliases": [],
5575
- "id": "hardis:org:files:export",
5314
+ "id": "hardis:org:data:export",
5576
5315
  "pluginAlias": "sfdx-hardis",
5577
5316
  "pluginName": "sfdx-hardis",
5578
5317
  "pluginType": "core",
5579
5318
  "strict": true,
5580
5319
  "enableJsonFlag": true,
5581
- "title": "Export files",
5320
+ "title": "Export data",
5582
5321
  "requiresProject": false,
5322
+ "requiresSfdxPlugins": [
5323
+ "sfdmu"
5324
+ ],
5583
5325
  "isESM": true,
5584
5326
  "relativePath": [
5585
5327
  "lib",
5586
5328
  "commands",
5587
5329
  "hardis",
5588
5330
  "org",
5589
- "files",
5331
+ "data",
5590
5332
  "export.js"
5591
5333
  ],
5592
5334
  "aliasPermutations": [],
5593
5335
  "permutations": [
5594
- "hardis:org:files:export",
5595
- "org:hardis:files:export",
5596
- "org:files:hardis:export",
5597
- "org:files:export:hardis",
5598
- "hardis:files:org:export",
5599
- "files:hardis:org:export",
5600
- "files:org:hardis:export",
5601
- "files:org:export:hardis",
5602
- "hardis:files:export:org",
5603
- "files:hardis:export:org",
5604
- "files:export:hardis:org",
5605
- "files:export:org:hardis",
5606
- "hardis:org:export:files",
5607
- "org:hardis:export:files",
5608
- "org:export:hardis:files",
5609
- "org:export:files:hardis",
5610
- "hardis:export:org:files",
5611
- "export:hardis:org:files",
5612
- "export:org:hardis:files",
5613
- "export:org:files:hardis",
5614
- "hardis:export:files:org",
5615
- "export:hardis:files:org",
5616
- "export:files:hardis:org",
5617
- "export:files:org:hardis"
5336
+ "hardis:org:data:export",
5337
+ "org:hardis:data:export",
5338
+ "org:data:hardis:export",
5339
+ "org:data:export:hardis",
5340
+ "hardis:data:org:export",
5341
+ "data:hardis:org:export",
5342
+ "data:org:hardis:export",
5343
+ "data:org:export:hardis",
5344
+ "hardis:data:export:org",
5345
+ "data:hardis:export:org",
5346
+ "data:export:hardis:org",
5347
+ "data:export:org:hardis",
5348
+ "hardis:org:export:data",
5349
+ "org:hardis:export:data",
5350
+ "org:export:hardis:data",
5351
+ "org:export:data:hardis",
5352
+ "hardis:export:org:data",
5353
+ "export:hardis:org:data",
5354
+ "export:org:hardis:data",
5355
+ "export:org:data:hardis",
5356
+ "hardis:export:data:org",
5357
+ "export:hardis:data:org",
5358
+ "export:data:hardis:org",
5359
+ "export:data:org:hardis"
5618
5360
  ]
5619
5361
  },
5620
- "hardis:org:files:import": {
5362
+ "hardis:org:data:import": {
5621
5363
  "aliases": [],
5622
5364
  "args": {},
5623
- "description": "Import file attachments into a Salesforce org\n\nSee article below to see how to Export them.\n\n[![How to mass download notes and attachments files from a Salesforce org](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/article-mass-download.jpg)](https://nicolas.vuillamy.fr/how-to-mass-download-notes-and-attachments-files-from-a-salesforce-org-83a028824afd)\n",
5365
+ "description": "Import/Load data in an org using a [SFDX Data Loader](https://help.sfdmu.com/) Project\n\nIf you need to run this command in a production org, you need to either:\n\n- Define **sfdmuCanModify** in your .sfdx-hardis.yml config file. (Example: `sfdmuCanModify: prod-instance.my.salesforce.com`)\n- Define an environment variable SFDMU_CAN_MODIFY. (Example: `SFDMU_CAN_MODIFY=prod-instance.my.salesforce.com`)\n\nSee article:\n\n[![How to detect bad words in Salesforce records using SFDX Data Loader and sfdx-hardis](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/article-badwords.jpg)](https://nicolas.vuillamy.fr/how-to-detect-bad-words-in-salesforce-records-using-sfdx-data-loader-and-sfdx-hardis-171db40a9bac)\n",
5624
5366
  "examples": [
5625
- "$ sf hardis:org:files:import"
5367
+ "$ sf hardis:org:data:import"
5626
5368
  ],
5627
5369
  "flags": {
5628
5370
  "json": {
@@ -5642,19 +5384,12 @@
5642
5384
  },
5643
5385
  "path": {
5644
5386
  "char": "p",
5645
- "description": "Path to the file export project",
5387
+ "description": "Path to the sfdmu workspace folder",
5646
5388
  "name": "path",
5647
5389
  "hasDynamicHelp": false,
5648
5390
  "multiple": false,
5649
5391
  "type": "option"
5650
5392
  },
5651
- "overwrite": {
5652
- "char": "f",
5653
- "description": "Override existing files (doubles the number of API calls)",
5654
- "name": "overwrite",
5655
- "allowNo": false,
5656
- "type": "boolean"
5657
- },
5658
5393
  "debug": {
5659
5394
  "char": "d",
5660
5395
  "description": "Activate debug mode (more logs)",
@@ -5693,49 +5428,52 @@
5693
5428
  },
5694
5429
  "hasDynamicHelp": true,
5695
5430
  "hiddenAliases": [],
5696
- "id": "hardis:org:files:import",
5431
+ "id": "hardis:org:data:import",
5697
5432
  "pluginAlias": "sfdx-hardis",
5698
5433
  "pluginName": "sfdx-hardis",
5699
5434
  "pluginType": "core",
5700
5435
  "strict": true,
5701
5436
  "enableJsonFlag": true,
5702
- "title": "Import files",
5437
+ "title": "Import data",
5703
5438
  "requiresProject": false,
5704
- "isESM": true,
5705
- "relativePath": [
5706
- "lib",
5707
- "commands",
5708
- "hardis",
5709
- "org",
5710
- "files",
5711
- "import.js"
5712
- ],
5713
- "aliasPermutations": [],
5714
- "permutations": [
5715
- "hardis:org:files:import",
5716
- "org:hardis:files:import",
5717
- "org:files:hardis:import",
5718
- "org:files:import:hardis",
5719
- "hardis:files:org:import",
5720
- "files:hardis:org:import",
5721
- "files:org:hardis:import",
5722
- "files:org:import:hardis",
5723
- "hardis:files:import:org",
5724
- "files:hardis:import:org",
5725
- "files:import:hardis:org",
5726
- "files:import:org:hardis",
5727
- "hardis:org:import:files",
5728
- "org:hardis:import:files",
5729
- "org:import:hardis:files",
5730
- "org:import:files:hardis",
5731
- "hardis:import:org:files",
5732
- "import:hardis:org:files",
5733
- "import:org:hardis:files",
5734
- "import:org:files:hardis",
5735
- "hardis:import:files:org",
5736
- "import:hardis:files:org",
5737
- "import:files:hardis:org",
5738
- "import:files:org:hardis"
5439
+ "requiresSfdxPlugins": [
5440
+ "sfdmu"
5441
+ ],
5442
+ "isESM": true,
5443
+ "relativePath": [
5444
+ "lib",
5445
+ "commands",
5446
+ "hardis",
5447
+ "org",
5448
+ "data",
5449
+ "import.js"
5450
+ ],
5451
+ "aliasPermutations": [],
5452
+ "permutations": [
5453
+ "hardis:org:data:import",
5454
+ "org:hardis:data:import",
5455
+ "org:data:hardis:import",
5456
+ "org:data:import:hardis",
5457
+ "hardis:data:org:import",
5458
+ "data:hardis:org:import",
5459
+ "data:org:hardis:import",
5460
+ "data:org:import:hardis",
5461
+ "hardis:data:import:org",
5462
+ "data:hardis:import:org",
5463
+ "data:import:hardis:org",
5464
+ "data:import:org:hardis",
5465
+ "hardis:org:import:data",
5466
+ "org:hardis:import:data",
5467
+ "org:import:hardis:data",
5468
+ "org:import:data:hardis",
5469
+ "hardis:import:org:data",
5470
+ "import:hardis:org:data",
5471
+ "import:org:hardis:data",
5472
+ "import:org:data:hardis",
5473
+ "hardis:import:data:org",
5474
+ "import:hardis:data:org",
5475
+ "import:data:hardis:org",
5476
+ "import:data:org:hardis"
5739
5477
  ]
5740
5478
  },
5741
5479
  "hardis:org:diagnose:audittrail": {
@@ -6887,6 +6625,268 @@
6887
6625
  "unusedusers:diagnose:org:hardis"
6888
6626
  ]
6889
6627
  },
6628
+ "hardis:org:files:export": {
6629
+ "aliases": [],
6630
+ "args": {},
6631
+ "description": "Export file attachments from a Salesforce org\n\nHandles:\n\n- ContentVersion\n- Attachment\n\nSee article below:\n\n[![How to mass download notes and attachments files from a Salesforce org](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/article-mass-download.jpg)](https://nicolas.vuillamy.fr/how-to-mass-download-notes-and-attachments-files-from-a-salesforce-org-83a028824afd)\n",
6632
+ "examples": [
6633
+ "$ sf hardis:org:files:export"
6634
+ ],
6635
+ "flags": {
6636
+ "json": {
6637
+ "description": "Format output as json.",
6638
+ "helpGroup": "GLOBAL",
6639
+ "name": "json",
6640
+ "allowNo": false,
6641
+ "type": "boolean"
6642
+ },
6643
+ "flags-dir": {
6644
+ "helpGroup": "GLOBAL",
6645
+ "name": "flags-dir",
6646
+ "summary": "Import flag values from a directory.",
6647
+ "hasDynamicHelp": false,
6648
+ "multiple": false,
6649
+ "type": "option"
6650
+ },
6651
+ "path": {
6652
+ "char": "p",
6653
+ "description": "Path to the file export project",
6654
+ "name": "path",
6655
+ "hasDynamicHelp": false,
6656
+ "multiple": false,
6657
+ "type": "option"
6658
+ },
6659
+ "chunksize": {
6660
+ "char": "c",
6661
+ "description": "Number of records to add in a chunk before it is processed",
6662
+ "name": "chunksize",
6663
+ "default": 1000,
6664
+ "hasDynamicHelp": false,
6665
+ "multiple": false,
6666
+ "type": "option"
6667
+ },
6668
+ "polltimeout": {
6669
+ "char": "t",
6670
+ "description": "Timeout in MS for Bulk API calls",
6671
+ "name": "polltimeout",
6672
+ "default": 300000,
6673
+ "hasDynamicHelp": false,
6674
+ "multiple": false,
6675
+ "type": "option"
6676
+ },
6677
+ "startchunknumber": {
6678
+ "char": "s",
6679
+ "description": "Chunk number to start from",
6680
+ "name": "startchunknumber",
6681
+ "default": 0,
6682
+ "hasDynamicHelp": false,
6683
+ "multiple": false,
6684
+ "type": "option"
6685
+ },
6686
+ "debug": {
6687
+ "char": "d",
6688
+ "description": "Activate debug mode (more logs)",
6689
+ "name": "debug",
6690
+ "allowNo": false,
6691
+ "type": "boolean"
6692
+ },
6693
+ "websocket": {
6694
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
6695
+ "name": "websocket",
6696
+ "hasDynamicHelp": false,
6697
+ "multiple": false,
6698
+ "type": "option"
6699
+ },
6700
+ "skipauth": {
6701
+ "description": "Skip authentication check when a default username is required",
6702
+ "name": "skipauth",
6703
+ "allowNo": false,
6704
+ "type": "boolean"
6705
+ },
6706
+ "target-org": {
6707
+ "aliases": [
6708
+ "targetusername",
6709
+ "u"
6710
+ ],
6711
+ "char": "o",
6712
+ "deprecateAliases": true,
6713
+ "name": "target-org",
6714
+ "noCacheDefault": true,
6715
+ "required": true,
6716
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
6717
+ "hasDynamicHelp": true,
6718
+ "multiple": false,
6719
+ "type": "option"
6720
+ }
6721
+ },
6722
+ "hasDynamicHelp": true,
6723
+ "hiddenAliases": [],
6724
+ "id": "hardis:org:files:export",
6725
+ "pluginAlias": "sfdx-hardis",
6726
+ "pluginName": "sfdx-hardis",
6727
+ "pluginType": "core",
6728
+ "strict": true,
6729
+ "enableJsonFlag": true,
6730
+ "title": "Export files",
6731
+ "requiresProject": false,
6732
+ "isESM": true,
6733
+ "relativePath": [
6734
+ "lib",
6735
+ "commands",
6736
+ "hardis",
6737
+ "org",
6738
+ "files",
6739
+ "export.js"
6740
+ ],
6741
+ "aliasPermutations": [],
6742
+ "permutations": [
6743
+ "hardis:org:files:export",
6744
+ "org:hardis:files:export",
6745
+ "org:files:hardis:export",
6746
+ "org:files:export:hardis",
6747
+ "hardis:files:org:export",
6748
+ "files:hardis:org:export",
6749
+ "files:org:hardis:export",
6750
+ "files:org:export:hardis",
6751
+ "hardis:files:export:org",
6752
+ "files:hardis:export:org",
6753
+ "files:export:hardis:org",
6754
+ "files:export:org:hardis",
6755
+ "hardis:org:export:files",
6756
+ "org:hardis:export:files",
6757
+ "org:export:hardis:files",
6758
+ "org:export:files:hardis",
6759
+ "hardis:export:org:files",
6760
+ "export:hardis:org:files",
6761
+ "export:org:hardis:files",
6762
+ "export:org:files:hardis",
6763
+ "hardis:export:files:org",
6764
+ "export:hardis:files:org",
6765
+ "export:files:hardis:org",
6766
+ "export:files:org:hardis"
6767
+ ]
6768
+ },
6769
+ "hardis:org:files:import": {
6770
+ "aliases": [],
6771
+ "args": {},
6772
+ "description": "Import file attachments into a Salesforce org\n\nSee article below to see how to Export them.\n\n[![How to mass download notes and attachments files from a Salesforce org](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/article-mass-download.jpg)](https://nicolas.vuillamy.fr/how-to-mass-download-notes-and-attachments-files-from-a-salesforce-org-83a028824afd)\n",
6773
+ "examples": [
6774
+ "$ sf hardis:org:files:import"
6775
+ ],
6776
+ "flags": {
6777
+ "json": {
6778
+ "description": "Format output as json.",
6779
+ "helpGroup": "GLOBAL",
6780
+ "name": "json",
6781
+ "allowNo": false,
6782
+ "type": "boolean"
6783
+ },
6784
+ "flags-dir": {
6785
+ "helpGroup": "GLOBAL",
6786
+ "name": "flags-dir",
6787
+ "summary": "Import flag values from a directory.",
6788
+ "hasDynamicHelp": false,
6789
+ "multiple": false,
6790
+ "type": "option"
6791
+ },
6792
+ "path": {
6793
+ "char": "p",
6794
+ "description": "Path to the file export project",
6795
+ "name": "path",
6796
+ "hasDynamicHelp": false,
6797
+ "multiple": false,
6798
+ "type": "option"
6799
+ },
6800
+ "overwrite": {
6801
+ "char": "f",
6802
+ "description": "Override existing files (doubles the number of API calls)",
6803
+ "name": "overwrite",
6804
+ "allowNo": false,
6805
+ "type": "boolean"
6806
+ },
6807
+ "debug": {
6808
+ "char": "d",
6809
+ "description": "Activate debug mode (more logs)",
6810
+ "name": "debug",
6811
+ "allowNo": false,
6812
+ "type": "boolean"
6813
+ },
6814
+ "websocket": {
6815
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
6816
+ "name": "websocket",
6817
+ "hasDynamicHelp": false,
6818
+ "multiple": false,
6819
+ "type": "option"
6820
+ },
6821
+ "skipauth": {
6822
+ "description": "Skip authentication check when a default username is required",
6823
+ "name": "skipauth",
6824
+ "allowNo": false,
6825
+ "type": "boolean"
6826
+ },
6827
+ "target-org": {
6828
+ "aliases": [
6829
+ "targetusername",
6830
+ "u"
6831
+ ],
6832
+ "char": "o",
6833
+ "deprecateAliases": true,
6834
+ "name": "target-org",
6835
+ "noCacheDefault": true,
6836
+ "required": true,
6837
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
6838
+ "hasDynamicHelp": true,
6839
+ "multiple": false,
6840
+ "type": "option"
6841
+ }
6842
+ },
6843
+ "hasDynamicHelp": true,
6844
+ "hiddenAliases": [],
6845
+ "id": "hardis:org:files:import",
6846
+ "pluginAlias": "sfdx-hardis",
6847
+ "pluginName": "sfdx-hardis",
6848
+ "pluginType": "core",
6849
+ "strict": true,
6850
+ "enableJsonFlag": true,
6851
+ "title": "Import files",
6852
+ "requiresProject": false,
6853
+ "isESM": true,
6854
+ "relativePath": [
6855
+ "lib",
6856
+ "commands",
6857
+ "hardis",
6858
+ "org",
6859
+ "files",
6860
+ "import.js"
6861
+ ],
6862
+ "aliasPermutations": [],
6863
+ "permutations": [
6864
+ "hardis:org:files:import",
6865
+ "org:hardis:files:import",
6866
+ "org:files:hardis:import",
6867
+ "org:files:import:hardis",
6868
+ "hardis:files:org:import",
6869
+ "files:hardis:org:import",
6870
+ "files:org:hardis:import",
6871
+ "files:org:import:hardis",
6872
+ "hardis:files:import:org",
6873
+ "files:hardis:import:org",
6874
+ "files:import:hardis:org",
6875
+ "files:import:org:hardis",
6876
+ "hardis:org:import:files",
6877
+ "org:hardis:import:files",
6878
+ "org:import:hardis:files",
6879
+ "org:import:files:hardis",
6880
+ "hardis:import:org:files",
6881
+ "import:hardis:org:files",
6882
+ "import:org:hardis:files",
6883
+ "import:org:files:hardis",
6884
+ "hardis:import:files:org",
6885
+ "import:hardis:files:org",
6886
+ "import:files:hardis:org",
6887
+ "import:files:org:hardis"
6888
+ ]
6889
+ },
6890
6890
  "hardis:org:fix:listviewmine": {
6891
6891
  "aliases": [],
6892
6892
  "args": {},
@@ -7592,6 +7592,113 @@
7592
7592
  "limits:monitor:org:hardis"
7593
7593
  ]
7594
7594
  },
7595
+ "hardis:org:retrieve:packageconfig": {
7596
+ "aliases": [],
7597
+ "args": {},
7598
+ "description": "Retrieve package configuration from an org",
7599
+ "examples": [
7600
+ "$ sf hardis:org:retrieve:packageconfig",
7601
+ "sf hardis:org:retrieve:packageconfig -u myOrg"
7602
+ ],
7603
+ "flags": {
7604
+ "json": {
7605
+ "description": "Format output as json.",
7606
+ "helpGroup": "GLOBAL",
7607
+ "name": "json",
7608
+ "allowNo": false,
7609
+ "type": "boolean"
7610
+ },
7611
+ "flags-dir": {
7612
+ "helpGroup": "GLOBAL",
7613
+ "name": "flags-dir",
7614
+ "summary": "Import flag values from a directory.",
7615
+ "hasDynamicHelp": false,
7616
+ "multiple": false,
7617
+ "type": "option"
7618
+ },
7619
+ "debug": {
7620
+ "char": "d",
7621
+ "description": "Activate debug mode (more logs)",
7622
+ "name": "debug",
7623
+ "allowNo": false,
7624
+ "type": "boolean"
7625
+ },
7626
+ "websocket": {
7627
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
7628
+ "name": "websocket",
7629
+ "hasDynamicHelp": false,
7630
+ "multiple": false,
7631
+ "type": "option"
7632
+ },
7633
+ "skipauth": {
7634
+ "description": "Skip authentication check when a default username is required",
7635
+ "name": "skipauth",
7636
+ "allowNo": false,
7637
+ "type": "boolean"
7638
+ },
7639
+ "target-org": {
7640
+ "aliases": [
7641
+ "targetusername",
7642
+ "u"
7643
+ ],
7644
+ "char": "o",
7645
+ "deprecateAliases": true,
7646
+ "name": "target-org",
7647
+ "noCacheDefault": true,
7648
+ "required": true,
7649
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
7650
+ "hasDynamicHelp": true,
7651
+ "multiple": false,
7652
+ "type": "option"
7653
+ }
7654
+ },
7655
+ "hasDynamicHelp": true,
7656
+ "hiddenAliases": [],
7657
+ "id": "hardis:org:retrieve:packageconfig",
7658
+ "pluginAlias": "sfdx-hardis",
7659
+ "pluginName": "sfdx-hardis",
7660
+ "pluginType": "core",
7661
+ "strict": true,
7662
+ "enableJsonFlag": true,
7663
+ "title": "Retrieve package configuration from an org",
7664
+ "requiresProject": false,
7665
+ "isESM": true,
7666
+ "relativePath": [
7667
+ "lib",
7668
+ "commands",
7669
+ "hardis",
7670
+ "org",
7671
+ "retrieve",
7672
+ "packageconfig.js"
7673
+ ],
7674
+ "aliasPermutations": [],
7675
+ "permutations": [
7676
+ "hardis:org:retrieve:packageconfig",
7677
+ "org:hardis:retrieve:packageconfig",
7678
+ "org:retrieve:hardis:packageconfig",
7679
+ "org:retrieve:packageconfig:hardis",
7680
+ "hardis:retrieve:org:packageconfig",
7681
+ "retrieve:hardis:org:packageconfig",
7682
+ "retrieve:org:hardis:packageconfig",
7683
+ "retrieve:org:packageconfig:hardis",
7684
+ "hardis:retrieve:packageconfig:org",
7685
+ "retrieve:hardis:packageconfig:org",
7686
+ "retrieve:packageconfig:hardis:org",
7687
+ "retrieve:packageconfig:org:hardis",
7688
+ "hardis:org:packageconfig:retrieve",
7689
+ "org:hardis:packageconfig:retrieve",
7690
+ "org:packageconfig:hardis:retrieve",
7691
+ "org:packageconfig:retrieve:hardis",
7692
+ "hardis:packageconfig:org:retrieve",
7693
+ "packageconfig:hardis:org:retrieve",
7694
+ "packageconfig:org:hardis:retrieve",
7695
+ "packageconfig:org:retrieve:hardis",
7696
+ "hardis:packageconfig:retrieve:org",
7697
+ "packageconfig:hardis:retrieve:org",
7698
+ "packageconfig:retrieve:hardis:org",
7699
+ "packageconfig:retrieve:org:hardis"
7700
+ ]
7701
+ },
7595
7702
  "hardis:org:purge:apexlog": {
7596
7703
  "aliases": [],
7597
7704
  "args": {},
@@ -7815,120 +7922,13 @@
7815
7922
  },
7816
7923
  "hasDynamicHelp": true,
7817
7924
  "hiddenAliases": [],
7818
- "id": "hardis:org:purge:flow",
7819
- "pluginAlias": "sfdx-hardis",
7820
- "pluginName": "sfdx-hardis",
7821
- "pluginType": "core",
7822
- "strict": true,
7823
- "enableJsonFlag": true,
7824
- "title": "Purge Flow versions",
7825
- "requiresProject": false,
7826
- "isESM": true,
7827
- "relativePath": [
7828
- "lib",
7829
- "commands",
7830
- "hardis",
7831
- "org",
7832
- "purge",
7833
- "flow.js"
7834
- ],
7835
- "aliasPermutations": [],
7836
- "permutations": [
7837
- "hardis:org:purge:flow",
7838
- "org:hardis:purge:flow",
7839
- "org:purge:hardis:flow",
7840
- "org:purge:flow:hardis",
7841
- "hardis:purge:org:flow",
7842
- "purge:hardis:org:flow",
7843
- "purge:org:hardis:flow",
7844
- "purge:org:flow:hardis",
7845
- "hardis:purge:flow:org",
7846
- "purge:hardis:flow:org",
7847
- "purge:flow:hardis:org",
7848
- "purge:flow:org:hardis",
7849
- "hardis:org:flow:purge",
7850
- "org:hardis:flow:purge",
7851
- "org:flow:hardis:purge",
7852
- "org:flow:purge:hardis",
7853
- "hardis:flow:org:purge",
7854
- "flow:hardis:org:purge",
7855
- "flow:org:hardis:purge",
7856
- "flow:org:purge:hardis",
7857
- "hardis:flow:purge:org",
7858
- "flow:hardis:purge:org",
7859
- "flow:purge:hardis:org",
7860
- "flow:purge:org:hardis"
7861
- ]
7862
- },
7863
- "hardis:org:retrieve:packageconfig": {
7864
- "aliases": [],
7865
- "args": {},
7866
- "description": "Retrieve package configuration from an org",
7867
- "examples": [
7868
- "$ sf hardis:org:retrieve:packageconfig",
7869
- "sf hardis:org:retrieve:packageconfig -u myOrg"
7870
- ],
7871
- "flags": {
7872
- "json": {
7873
- "description": "Format output as json.",
7874
- "helpGroup": "GLOBAL",
7875
- "name": "json",
7876
- "allowNo": false,
7877
- "type": "boolean"
7878
- },
7879
- "flags-dir": {
7880
- "helpGroup": "GLOBAL",
7881
- "name": "flags-dir",
7882
- "summary": "Import flag values from a directory.",
7883
- "hasDynamicHelp": false,
7884
- "multiple": false,
7885
- "type": "option"
7886
- },
7887
- "debug": {
7888
- "char": "d",
7889
- "description": "Activate debug mode (more logs)",
7890
- "name": "debug",
7891
- "allowNo": false,
7892
- "type": "boolean"
7893
- },
7894
- "websocket": {
7895
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
7896
- "name": "websocket",
7897
- "hasDynamicHelp": false,
7898
- "multiple": false,
7899
- "type": "option"
7900
- },
7901
- "skipauth": {
7902
- "description": "Skip authentication check when a default username is required",
7903
- "name": "skipauth",
7904
- "allowNo": false,
7905
- "type": "boolean"
7906
- },
7907
- "target-org": {
7908
- "aliases": [
7909
- "targetusername",
7910
- "u"
7911
- ],
7912
- "char": "o",
7913
- "deprecateAliases": true,
7914
- "name": "target-org",
7915
- "noCacheDefault": true,
7916
- "required": true,
7917
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
7918
- "hasDynamicHelp": true,
7919
- "multiple": false,
7920
- "type": "option"
7921
- }
7922
- },
7923
- "hasDynamicHelp": true,
7924
- "hiddenAliases": [],
7925
- "id": "hardis:org:retrieve:packageconfig",
7925
+ "id": "hardis:org:purge:flow",
7926
7926
  "pluginAlias": "sfdx-hardis",
7927
7927
  "pluginName": "sfdx-hardis",
7928
7928
  "pluginType": "core",
7929
7929
  "strict": true,
7930
7930
  "enableJsonFlag": true,
7931
- "title": "Retrieve package configuration from an org",
7931
+ "title": "Purge Flow versions",
7932
7932
  "requiresProject": false,
7933
7933
  "isESM": true,
7934
7934
  "relativePath": [
@@ -7936,35 +7936,35 @@
7936
7936
  "commands",
7937
7937
  "hardis",
7938
7938
  "org",
7939
- "retrieve",
7940
- "packageconfig.js"
7939
+ "purge",
7940
+ "flow.js"
7941
7941
  ],
7942
7942
  "aliasPermutations": [],
7943
7943
  "permutations": [
7944
- "hardis:org:retrieve:packageconfig",
7945
- "org:hardis:retrieve:packageconfig",
7946
- "org:retrieve:hardis:packageconfig",
7947
- "org:retrieve:packageconfig:hardis",
7948
- "hardis:retrieve:org:packageconfig",
7949
- "retrieve:hardis:org:packageconfig",
7950
- "retrieve:org:hardis:packageconfig",
7951
- "retrieve:org:packageconfig:hardis",
7952
- "hardis:retrieve:packageconfig:org",
7953
- "retrieve:hardis:packageconfig:org",
7954
- "retrieve:packageconfig:hardis:org",
7955
- "retrieve:packageconfig:org:hardis",
7956
- "hardis:org:packageconfig:retrieve",
7957
- "org:hardis:packageconfig:retrieve",
7958
- "org:packageconfig:hardis:retrieve",
7959
- "org:packageconfig:retrieve:hardis",
7960
- "hardis:packageconfig:org:retrieve",
7961
- "packageconfig:hardis:org:retrieve",
7962
- "packageconfig:org:hardis:retrieve",
7963
- "packageconfig:org:retrieve:hardis",
7964
- "hardis:packageconfig:retrieve:org",
7965
- "packageconfig:hardis:retrieve:org",
7966
- "packageconfig:retrieve:hardis:org",
7967
- "packageconfig:retrieve:org:hardis"
7944
+ "hardis:org:purge:flow",
7945
+ "org:hardis:purge:flow",
7946
+ "org:purge:hardis:flow",
7947
+ "org:purge:flow:hardis",
7948
+ "hardis:purge:org:flow",
7949
+ "purge:hardis:org:flow",
7950
+ "purge:org:hardis:flow",
7951
+ "purge:org:flow:hardis",
7952
+ "hardis:purge:flow:org",
7953
+ "purge:hardis:flow:org",
7954
+ "purge:flow:hardis:org",
7955
+ "purge:flow:org:hardis",
7956
+ "hardis:org:flow:purge",
7957
+ "org:hardis:flow:purge",
7958
+ "org:flow:hardis:purge",
7959
+ "org:flow:purge:hardis",
7960
+ "hardis:flow:org:purge",
7961
+ "flow:hardis:org:purge",
7962
+ "flow:org:hardis:purge",
7963
+ "flow:org:purge:hardis",
7964
+ "hardis:flow:purge:org",
7965
+ "flow:hardis:purge:org",
7966
+ "flow:purge:hardis:org",
7967
+ "flow:purge:org:hardis"
7968
7968
  ]
7969
7969
  },
7970
7970
  "hardis:org:test:apex": {
@@ -9163,12 +9163,232 @@
9163
9163
  "duplicatefiles:audit:project:hardis"
9164
9164
  ]
9165
9165
  },
9166
- "hardis:project:audit:remotesites": {
9166
+ "hardis:project:audit:remotesites": {
9167
+ "aliases": [],
9168
+ "args": {},
9169
+ "description": "Generate list of remote sites",
9170
+ "examples": [
9171
+ "$ sf hardis:project:audit:remotesites"
9172
+ ],
9173
+ "flags": {
9174
+ "json": {
9175
+ "description": "Format output as json.",
9176
+ "helpGroup": "GLOBAL",
9177
+ "name": "json",
9178
+ "allowNo": false,
9179
+ "type": "boolean"
9180
+ },
9181
+ "flags-dir": {
9182
+ "helpGroup": "GLOBAL",
9183
+ "name": "flags-dir",
9184
+ "summary": "Import flag values from a directory.",
9185
+ "hasDynamicHelp": false,
9186
+ "multiple": false,
9187
+ "type": "option"
9188
+ },
9189
+ "debug": {
9190
+ "char": "d",
9191
+ "description": "Activate debug mode (more logs)",
9192
+ "name": "debug",
9193
+ "allowNo": false,
9194
+ "type": "boolean"
9195
+ },
9196
+ "websocket": {
9197
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
9198
+ "name": "websocket",
9199
+ "hasDynamicHelp": false,
9200
+ "multiple": false,
9201
+ "type": "option"
9202
+ },
9203
+ "skipauth": {
9204
+ "description": "Skip authentication check when a default username is required",
9205
+ "name": "skipauth",
9206
+ "allowNo": false,
9207
+ "type": "boolean"
9208
+ }
9209
+ },
9210
+ "hasDynamicHelp": false,
9211
+ "hiddenAliases": [],
9212
+ "id": "hardis:project:audit:remotesites",
9213
+ "pluginAlias": "sfdx-hardis",
9214
+ "pluginName": "sfdx-hardis",
9215
+ "pluginType": "core",
9216
+ "strict": true,
9217
+ "enableJsonFlag": true,
9218
+ "title": "Audit Remote Sites",
9219
+ "requiresProject": true,
9220
+ "isESM": true,
9221
+ "relativePath": [
9222
+ "lib",
9223
+ "commands",
9224
+ "hardis",
9225
+ "project",
9226
+ "audit",
9227
+ "remotesites.js"
9228
+ ],
9229
+ "aliasPermutations": [],
9230
+ "permutations": [
9231
+ "hardis:project:audit:remotesites",
9232
+ "project:hardis:audit:remotesites",
9233
+ "project:audit:hardis:remotesites",
9234
+ "project:audit:remotesites:hardis",
9235
+ "hardis:audit:project:remotesites",
9236
+ "audit:hardis:project:remotesites",
9237
+ "audit:project:hardis:remotesites",
9238
+ "audit:project:remotesites:hardis",
9239
+ "hardis:audit:remotesites:project",
9240
+ "audit:hardis:remotesites:project",
9241
+ "audit:remotesites:hardis:project",
9242
+ "audit:remotesites:project:hardis",
9243
+ "hardis:project:remotesites:audit",
9244
+ "project:hardis:remotesites:audit",
9245
+ "project:remotesites:hardis:audit",
9246
+ "project:remotesites:audit:hardis",
9247
+ "hardis:remotesites:project:audit",
9248
+ "remotesites:hardis:project:audit",
9249
+ "remotesites:project:hardis:audit",
9250
+ "remotesites:project:audit:hardis",
9251
+ "hardis:remotesites:audit:project",
9252
+ "remotesites:hardis:audit:project",
9253
+ "remotesites:audit:hardis:project",
9254
+ "remotesites:audit:project:hardis"
9255
+ ]
9256
+ },
9257
+ "hardis:project:configure:auth": {
9258
+ "aliases": [],
9259
+ "args": {},
9260
+ "description": "Configure authentication from git branch to target org",
9261
+ "examples": [
9262
+ "$ sf hardis:project:configure:auth"
9263
+ ],
9264
+ "flags": {
9265
+ "json": {
9266
+ "description": "Format output as json.",
9267
+ "helpGroup": "GLOBAL",
9268
+ "name": "json",
9269
+ "allowNo": false,
9270
+ "type": "boolean"
9271
+ },
9272
+ "flags-dir": {
9273
+ "helpGroup": "GLOBAL",
9274
+ "name": "flags-dir",
9275
+ "summary": "Import flag values from a directory.",
9276
+ "hasDynamicHelp": false,
9277
+ "multiple": false,
9278
+ "type": "option"
9279
+ },
9280
+ "devhub": {
9281
+ "char": "b",
9282
+ "description": "Configure project DevHub",
9283
+ "name": "devhub",
9284
+ "allowNo": false,
9285
+ "type": "boolean"
9286
+ },
9287
+ "debug": {
9288
+ "char": "d",
9289
+ "description": "Activate debug mode (more logs)",
9290
+ "name": "debug",
9291
+ "allowNo": false,
9292
+ "type": "boolean"
9293
+ },
9294
+ "websocket": {
9295
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
9296
+ "name": "websocket",
9297
+ "hasDynamicHelp": false,
9298
+ "multiple": false,
9299
+ "type": "option"
9300
+ },
9301
+ "skipauth": {
9302
+ "description": "Skip authentication check when a default username is required",
9303
+ "name": "skipauth",
9304
+ "allowNo": false,
9305
+ "type": "boolean"
9306
+ },
9307
+ "target-org": {
9308
+ "aliases": [
9309
+ "targetusername",
9310
+ "u"
9311
+ ],
9312
+ "char": "o",
9313
+ "deprecateAliases": true,
9314
+ "name": "target-org",
9315
+ "noCacheDefault": true,
9316
+ "summary": "Username or alias of the target org.",
9317
+ "hasDynamicHelp": true,
9318
+ "multiple": false,
9319
+ "type": "option"
9320
+ },
9321
+ "target-dev-hub": {
9322
+ "aliases": [
9323
+ "targetdevhubusername"
9324
+ ],
9325
+ "char": "v",
9326
+ "deprecateAliases": true,
9327
+ "name": "target-dev-hub",
9328
+ "noCacheDefault": true,
9329
+ "required": false,
9330
+ "summary": "Username or alias of the Dev Hub org.",
9331
+ "hasDynamicHelp": true,
9332
+ "multiple": false,
9333
+ "type": "option"
9334
+ }
9335
+ },
9336
+ "hasDynamicHelp": true,
9337
+ "hiddenAliases": [],
9338
+ "id": "hardis:project:configure:auth",
9339
+ "pluginAlias": "sfdx-hardis",
9340
+ "pluginName": "sfdx-hardis",
9341
+ "pluginType": "core",
9342
+ "strict": true,
9343
+ "enableJsonFlag": true,
9344
+ "title": "Configure authentication",
9345
+ "requiresProject": false,
9346
+ "requiresDependencies": [
9347
+ "openssl"
9348
+ ],
9349
+ "isESM": true,
9350
+ "relativePath": [
9351
+ "lib",
9352
+ "commands",
9353
+ "hardis",
9354
+ "project",
9355
+ "configure",
9356
+ "auth.js"
9357
+ ],
9358
+ "aliasPermutations": [],
9359
+ "permutations": [
9360
+ "hardis:project:configure:auth",
9361
+ "project:hardis:configure:auth",
9362
+ "project:configure:hardis:auth",
9363
+ "project:configure:auth:hardis",
9364
+ "hardis:configure:project:auth",
9365
+ "configure:hardis:project:auth",
9366
+ "configure:project:hardis:auth",
9367
+ "configure:project:auth:hardis",
9368
+ "hardis:configure:auth:project",
9369
+ "configure:hardis:auth:project",
9370
+ "configure:auth:hardis:project",
9371
+ "configure:auth:project:hardis",
9372
+ "hardis:project:auth:configure",
9373
+ "project:hardis:auth:configure",
9374
+ "project:auth:hardis:configure",
9375
+ "project:auth:configure:hardis",
9376
+ "hardis:auth:project:configure",
9377
+ "auth:hardis:project:configure",
9378
+ "auth:project:hardis:configure",
9379
+ "auth:project:configure:hardis",
9380
+ "hardis:auth:configure:project",
9381
+ "auth:hardis:configure:project",
9382
+ "auth:configure:hardis:project",
9383
+ "auth:configure:project:hardis"
9384
+ ]
9385
+ },
9386
+ "hardis:project:convert:profilestopermsets": {
9167
9387
  "aliases": [],
9168
9388
  "args": {},
9169
- "description": "Generate list of remote sites",
9389
+ "description": "Creates permission sets from existing profiles, with id PS_PROFILENAME",
9170
9390
  "examples": [
9171
- "$ sf hardis:project:audit:remotesites"
9391
+ "$ sf hardis:project:convert:profilestopermsets"
9172
9392
  ],
9173
9393
  "flags": {
9174
9394
  "json": {
@@ -9186,6 +9406,15 @@
9186
9406
  "multiple": false,
9187
9407
  "type": "option"
9188
9408
  },
9409
+ "except": {
9410
+ "char": "e",
9411
+ "description": "List of filters",
9412
+ "name": "except",
9413
+ "default": [],
9414
+ "hasDynamicHelp": false,
9415
+ "multiple": true,
9416
+ "type": "option"
9417
+ },
9189
9418
  "debug": {
9190
9419
  "char": "d",
9191
9420
  "description": "Activate debug mode (more logs)",
@@ -9209,49 +9438,52 @@
9209
9438
  },
9210
9439
  "hasDynamicHelp": false,
9211
9440
  "hiddenAliases": [],
9212
- "id": "hardis:project:audit:remotesites",
9441
+ "id": "hardis:project:convert:profilestopermsets",
9213
9442
  "pluginAlias": "sfdx-hardis",
9214
9443
  "pluginName": "sfdx-hardis",
9215
9444
  "pluginType": "core",
9216
9445
  "strict": true,
9217
9446
  "enableJsonFlag": true,
9218
- "title": "Audit Remote Sites",
9447
+ "title": "Convert Profiles into Permission Sets",
9219
9448
  "requiresProject": true,
9449
+ "requiresSfdxPlugins": [
9450
+ "shane-sfdx-plugins"
9451
+ ],
9220
9452
  "isESM": true,
9221
9453
  "relativePath": [
9222
9454
  "lib",
9223
9455
  "commands",
9224
9456
  "hardis",
9225
9457
  "project",
9226
- "audit",
9227
- "remotesites.js"
9458
+ "convert",
9459
+ "profilestopermsets.js"
9228
9460
  ],
9229
9461
  "aliasPermutations": [],
9230
9462
  "permutations": [
9231
- "hardis:project:audit:remotesites",
9232
- "project:hardis:audit:remotesites",
9233
- "project:audit:hardis:remotesites",
9234
- "project:audit:remotesites:hardis",
9235
- "hardis:audit:project:remotesites",
9236
- "audit:hardis:project:remotesites",
9237
- "audit:project:hardis:remotesites",
9238
- "audit:project:remotesites:hardis",
9239
- "hardis:audit:remotesites:project",
9240
- "audit:hardis:remotesites:project",
9241
- "audit:remotesites:hardis:project",
9242
- "audit:remotesites:project:hardis",
9243
- "hardis:project:remotesites:audit",
9244
- "project:hardis:remotesites:audit",
9245
- "project:remotesites:hardis:audit",
9246
- "project:remotesites:audit:hardis",
9247
- "hardis:remotesites:project:audit",
9248
- "remotesites:hardis:project:audit",
9249
- "remotesites:project:hardis:audit",
9250
- "remotesites:project:audit:hardis",
9251
- "hardis:remotesites:audit:project",
9252
- "remotesites:hardis:audit:project",
9253
- "remotesites:audit:hardis:project",
9254
- "remotesites:audit:project:hardis"
9463
+ "hardis:project:convert:profilestopermsets",
9464
+ "project:hardis:convert:profilestopermsets",
9465
+ "project:convert:hardis:profilestopermsets",
9466
+ "project:convert:profilestopermsets:hardis",
9467
+ "hardis:convert:project:profilestopermsets",
9468
+ "convert:hardis:project:profilestopermsets",
9469
+ "convert:project:hardis:profilestopermsets",
9470
+ "convert:project:profilestopermsets:hardis",
9471
+ "hardis:convert:profilestopermsets:project",
9472
+ "convert:hardis:profilestopermsets:project",
9473
+ "convert:profilestopermsets:hardis:project",
9474
+ "convert:profilestopermsets:project:hardis",
9475
+ "hardis:project:profilestopermsets:convert",
9476
+ "project:hardis:profilestopermsets:convert",
9477
+ "project:profilestopermsets:hardis:convert",
9478
+ "project:profilestopermsets:convert:hardis",
9479
+ "hardis:profilestopermsets:project:convert",
9480
+ "profilestopermsets:hardis:project:convert",
9481
+ "profilestopermsets:project:hardis:convert",
9482
+ "profilestopermsets:project:convert:hardis",
9483
+ "hardis:profilestopermsets:convert:project",
9484
+ "profilestopermsets:hardis:convert:project",
9485
+ "profilestopermsets:convert:hardis:project",
9486
+ "profilestopermsets:convert:project:hardis"
9255
9487
  ]
9256
9488
  },
9257
9489
  "hardis:project:clean:emptyitems": {
@@ -10739,12 +10971,12 @@
10739
10971
  "xml:clean:project:hardis"
10740
10972
  ]
10741
10973
  },
10742
- "hardis:project:configure:auth": {
10974
+ "hardis:project:fix:profiletabs": {
10743
10975
  "aliases": [],
10744
10976
  "args": {},
10745
- "description": "Configure authentication from git branch to target org",
10977
+ "description": "Interactive prompts to add tab visibilities that are not retrieved by project retrieve start",
10746
10978
  "examples": [
10747
- "$ sf hardis:project:configure:auth"
10979
+ "$ sf hardis:project:fix:profiletabs"
10748
10980
  ],
10749
10981
  "flags": {
10750
10982
  "json": {
@@ -10762,12 +10994,14 @@
10762
10994
  "multiple": false,
10763
10995
  "type": "option"
10764
10996
  },
10765
- "devhub": {
10766
- "char": "b",
10767
- "description": "Configure project DevHub",
10768
- "name": "devhub",
10769
- "allowNo": false,
10770
- "type": "boolean"
10997
+ "path": {
10998
+ "char": "p",
10999
+ "description": "Root folder",
11000
+ "name": "path",
11001
+ "default": "/home/runner/work/sfdx-hardis/sfdx-hardis",
11002
+ "hasDynamicHelp": false,
11003
+ "multiple": false,
11004
+ "type": "option"
10771
11005
  },
10772
11006
  "debug": {
10773
11007
  "char": "d",
@@ -10798,21 +11032,8 @@
10798
11032
  "deprecateAliases": true,
10799
11033
  "name": "target-org",
10800
11034
  "noCacheDefault": true,
10801
- "summary": "Username or alias of the target org.",
10802
- "hasDynamicHelp": true,
10803
- "multiple": false,
10804
- "type": "option"
10805
- },
10806
- "target-dev-hub": {
10807
- "aliases": [
10808
- "targetdevhubusername"
10809
- ],
10810
- "char": "v",
10811
- "deprecateAliases": true,
10812
- "name": "target-dev-hub",
10813
- "noCacheDefault": true,
10814
- "required": false,
10815
- "summary": "Username or alias of the Dev Hub org.",
11035
+ "required": true,
11036
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
10816
11037
  "hasDynamicHelp": true,
10817
11038
  "multiple": false,
10818
11039
  "type": "option"
@@ -10820,60 +11041,57 @@
10820
11041
  },
10821
11042
  "hasDynamicHelp": true,
10822
11043
  "hiddenAliases": [],
10823
- "id": "hardis:project:configure:auth",
11044
+ "id": "hardis:project:fix:profiletabs",
10824
11045
  "pluginAlias": "sfdx-hardis",
10825
11046
  "pluginName": "sfdx-hardis",
10826
11047
  "pluginType": "core",
10827
11048
  "strict": true,
10828
11049
  "enableJsonFlag": true,
10829
- "title": "Configure authentication",
10830
- "requiresProject": false,
10831
- "requiresDependencies": [
10832
- "openssl"
10833
- ],
11050
+ "title": "Fix profiles to add tabs that are not retrieved by SF CLI",
11051
+ "requiresProject": true,
10834
11052
  "isESM": true,
10835
11053
  "relativePath": [
10836
11054
  "lib",
10837
11055
  "commands",
10838
11056
  "hardis",
10839
11057
  "project",
10840
- "configure",
10841
- "auth.js"
11058
+ "fix",
11059
+ "profiletabs.js"
10842
11060
  ],
10843
11061
  "aliasPermutations": [],
10844
11062
  "permutations": [
10845
- "hardis:project:configure:auth",
10846
- "project:hardis:configure:auth",
10847
- "project:configure:hardis:auth",
10848
- "project:configure:auth:hardis",
10849
- "hardis:configure:project:auth",
10850
- "configure:hardis:project:auth",
10851
- "configure:project:hardis:auth",
10852
- "configure:project:auth:hardis",
10853
- "hardis:configure:auth:project",
10854
- "configure:hardis:auth:project",
10855
- "configure:auth:hardis:project",
10856
- "configure:auth:project:hardis",
10857
- "hardis:project:auth:configure",
10858
- "project:hardis:auth:configure",
10859
- "project:auth:hardis:configure",
10860
- "project:auth:configure:hardis",
10861
- "hardis:auth:project:configure",
10862
- "auth:hardis:project:configure",
10863
- "auth:project:hardis:configure",
10864
- "auth:project:configure:hardis",
10865
- "hardis:auth:configure:project",
10866
- "auth:hardis:configure:project",
10867
- "auth:configure:hardis:project",
10868
- "auth:configure:project:hardis"
11063
+ "hardis:project:fix:profiletabs",
11064
+ "project:hardis:fix:profiletabs",
11065
+ "project:fix:hardis:profiletabs",
11066
+ "project:fix:profiletabs:hardis",
11067
+ "hardis:fix:project:profiletabs",
11068
+ "fix:hardis:project:profiletabs",
11069
+ "fix:project:hardis:profiletabs",
11070
+ "fix:project:profiletabs:hardis",
11071
+ "hardis:fix:profiletabs:project",
11072
+ "fix:hardis:profiletabs:project",
11073
+ "fix:profiletabs:hardis:project",
11074
+ "fix:profiletabs:project:hardis",
11075
+ "hardis:project:profiletabs:fix",
11076
+ "project:hardis:profiletabs:fix",
11077
+ "project:profiletabs:hardis:fix",
11078
+ "project:profiletabs:fix:hardis",
11079
+ "hardis:profiletabs:project:fix",
11080
+ "profiletabs:hardis:project:fix",
11081
+ "profiletabs:project:hardis:fix",
11082
+ "profiletabs:project:fix:hardis",
11083
+ "hardis:profiletabs:fix:project",
11084
+ "profiletabs:hardis:fix:project",
11085
+ "profiletabs:fix:hardis:project",
11086
+ "profiletabs:fix:project:hardis"
10869
11087
  ]
10870
11088
  },
10871
- "hardis:project:convert:profilestopermsets": {
11089
+ "hardis:project:fix:v53flexipages": {
10872
11090
  "aliases": [],
10873
11091
  "args": {},
10874
- "description": "Creates permission sets from existing profiles, with id PS_PROFILENAME",
11092
+ "description": "Fix flexipages for apiVersion v53 (Winter22).\n\nNote: Update api version to 53.0 in package.xml and sfdx-project.json",
10875
11093
  "examples": [
10876
- "$ sf hardis:project:convert:profilestopermsets"
11094
+ "$ sf hardis:project:fix:v53flexipages"
10877
11095
  ],
10878
11096
  "flags": {
10879
11097
  "json": {
@@ -10891,13 +11109,13 @@
10891
11109
  "multiple": false,
10892
11110
  "type": "option"
10893
11111
  },
10894
- "except": {
10895
- "char": "e",
10896
- "description": "List of filters",
10897
- "name": "except",
10898
- "default": [],
11112
+ "path": {
11113
+ "char": "p",
11114
+ "description": "Root folder",
11115
+ "name": "path",
11116
+ "default": "/home/runner/work/sfdx-hardis/sfdx-hardis",
10899
11117
  "hasDynamicHelp": false,
10900
- "multiple": true,
11118
+ "multiple": false,
10901
11119
  "type": "option"
10902
11120
  },
10903
11121
  "debug": {
@@ -10923,52 +11141,49 @@
10923
11141
  },
10924
11142
  "hasDynamicHelp": false,
10925
11143
  "hiddenAliases": [],
10926
- "id": "hardis:project:convert:profilestopermsets",
11144
+ "id": "hardis:project:fix:v53flexipages",
10927
11145
  "pluginAlias": "sfdx-hardis",
10928
- "pluginName": "sfdx-hardis",
10929
- "pluginType": "core",
10930
- "strict": true,
10931
- "enableJsonFlag": true,
10932
- "title": "Convert Profiles into Permission Sets",
10933
- "requiresProject": true,
10934
- "requiresSfdxPlugins": [
10935
- "shane-sfdx-plugins"
10936
- ],
10937
- "isESM": true,
10938
- "relativePath": [
10939
- "lib",
10940
- "commands",
10941
- "hardis",
10942
- "project",
10943
- "convert",
10944
- "profilestopermsets.js"
10945
- ],
10946
- "aliasPermutations": [],
10947
- "permutations": [
10948
- "hardis:project:convert:profilestopermsets",
10949
- "project:hardis:convert:profilestopermsets",
10950
- "project:convert:hardis:profilestopermsets",
10951
- "project:convert:profilestopermsets:hardis",
10952
- "hardis:convert:project:profilestopermsets",
10953
- "convert:hardis:project:profilestopermsets",
10954
- "convert:project:hardis:profilestopermsets",
10955
- "convert:project:profilestopermsets:hardis",
10956
- "hardis:convert:profilestopermsets:project",
10957
- "convert:hardis:profilestopermsets:project",
10958
- "convert:profilestopermsets:hardis:project",
10959
- "convert:profilestopermsets:project:hardis",
10960
- "hardis:project:profilestopermsets:convert",
10961
- "project:hardis:profilestopermsets:convert",
10962
- "project:profilestopermsets:hardis:convert",
10963
- "project:profilestopermsets:convert:hardis",
10964
- "hardis:profilestopermsets:project:convert",
10965
- "profilestopermsets:hardis:project:convert",
10966
- "profilestopermsets:project:hardis:convert",
10967
- "profilestopermsets:project:convert:hardis",
10968
- "hardis:profilestopermsets:convert:project",
10969
- "profilestopermsets:hardis:convert:project",
10970
- "profilestopermsets:convert:hardis:project",
10971
- "profilestopermsets:convert:project:hardis"
11146
+ "pluginName": "sfdx-hardis",
11147
+ "pluginType": "core",
11148
+ "strict": true,
11149
+ "enableJsonFlag": true,
11150
+ "title": "Fix flexipages for v53",
11151
+ "requiresProject": true,
11152
+ "isESM": true,
11153
+ "relativePath": [
11154
+ "lib",
11155
+ "commands",
11156
+ "hardis",
11157
+ "project",
11158
+ "fix",
11159
+ "v53flexipages.js"
11160
+ ],
11161
+ "aliasPermutations": [],
11162
+ "permutations": [
11163
+ "hardis:project:fix:v53flexipages",
11164
+ "project:hardis:fix:v53flexipages",
11165
+ "project:fix:hardis:v53flexipages",
11166
+ "project:fix:v53flexipages:hardis",
11167
+ "hardis:fix:project:v53flexipages",
11168
+ "fix:hardis:project:v53flexipages",
11169
+ "fix:project:hardis:v53flexipages",
11170
+ "fix:project:v53flexipages:hardis",
11171
+ "hardis:fix:v53flexipages:project",
11172
+ "fix:hardis:v53flexipages:project",
11173
+ "fix:v53flexipages:hardis:project",
11174
+ "fix:v53flexipages:project:hardis",
11175
+ "hardis:project:v53flexipages:fix",
11176
+ "project:hardis:v53flexipages:fix",
11177
+ "project:v53flexipages:hardis:fix",
11178
+ "project:v53flexipages:fix:hardis",
11179
+ "hardis:v53flexipages:project:fix",
11180
+ "v53flexipages:hardis:project:fix",
11181
+ "v53flexipages:project:hardis:fix",
11182
+ "v53flexipages:project:fix:hardis",
11183
+ "hardis:v53flexipages:fix:project",
11184
+ "v53flexipages:hardis:fix:project",
11185
+ "v53flexipages:fix:hardis:project",
11186
+ "v53flexipages:fix:project:hardis"
10972
11187
  ]
10973
11188
  },
10974
11189
  "hardis:project:deploy:notify": {
@@ -12146,221 +12361,6 @@
12146
12361
  "validate:deploy:project:hardis"
12147
12362
  ]
12148
12363
  },
12149
- "hardis:project:fix:profiletabs": {
12150
- "aliases": [],
12151
- "args": {},
12152
- "description": "Interactive prompts to add tab visibilities that are not retrieved by project retrieve start",
12153
- "examples": [
12154
- "$ sf hardis:project:fix:profiletabs"
12155
- ],
12156
- "flags": {
12157
- "json": {
12158
- "description": "Format output as json.",
12159
- "helpGroup": "GLOBAL",
12160
- "name": "json",
12161
- "allowNo": false,
12162
- "type": "boolean"
12163
- },
12164
- "flags-dir": {
12165
- "helpGroup": "GLOBAL",
12166
- "name": "flags-dir",
12167
- "summary": "Import flag values from a directory.",
12168
- "hasDynamicHelp": false,
12169
- "multiple": false,
12170
- "type": "option"
12171
- },
12172
- "path": {
12173
- "char": "p",
12174
- "description": "Root folder",
12175
- "name": "path",
12176
- "default": "/home/runner/work/sfdx-hardis/sfdx-hardis",
12177
- "hasDynamicHelp": false,
12178
- "multiple": false,
12179
- "type": "option"
12180
- },
12181
- "debug": {
12182
- "char": "d",
12183
- "description": "Activate debug mode (more logs)",
12184
- "name": "debug",
12185
- "allowNo": false,
12186
- "type": "boolean"
12187
- },
12188
- "websocket": {
12189
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
12190
- "name": "websocket",
12191
- "hasDynamicHelp": false,
12192
- "multiple": false,
12193
- "type": "option"
12194
- },
12195
- "skipauth": {
12196
- "description": "Skip authentication check when a default username is required",
12197
- "name": "skipauth",
12198
- "allowNo": false,
12199
- "type": "boolean"
12200
- },
12201
- "target-org": {
12202
- "aliases": [
12203
- "targetusername",
12204
- "u"
12205
- ],
12206
- "char": "o",
12207
- "deprecateAliases": true,
12208
- "name": "target-org",
12209
- "noCacheDefault": true,
12210
- "required": true,
12211
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
12212
- "hasDynamicHelp": true,
12213
- "multiple": false,
12214
- "type": "option"
12215
- }
12216
- },
12217
- "hasDynamicHelp": true,
12218
- "hiddenAliases": [],
12219
- "id": "hardis:project:fix:profiletabs",
12220
- "pluginAlias": "sfdx-hardis",
12221
- "pluginName": "sfdx-hardis",
12222
- "pluginType": "core",
12223
- "strict": true,
12224
- "enableJsonFlag": true,
12225
- "title": "Fix profiles to add tabs that are not retrieved by SF CLI",
12226
- "requiresProject": true,
12227
- "isESM": true,
12228
- "relativePath": [
12229
- "lib",
12230
- "commands",
12231
- "hardis",
12232
- "project",
12233
- "fix",
12234
- "profiletabs.js"
12235
- ],
12236
- "aliasPermutations": [],
12237
- "permutations": [
12238
- "hardis:project:fix:profiletabs",
12239
- "project:hardis:fix:profiletabs",
12240
- "project:fix:hardis:profiletabs",
12241
- "project:fix:profiletabs:hardis",
12242
- "hardis:fix:project:profiletabs",
12243
- "fix:hardis:project:profiletabs",
12244
- "fix:project:hardis:profiletabs",
12245
- "fix:project:profiletabs:hardis",
12246
- "hardis:fix:profiletabs:project",
12247
- "fix:hardis:profiletabs:project",
12248
- "fix:profiletabs:hardis:project",
12249
- "fix:profiletabs:project:hardis",
12250
- "hardis:project:profiletabs:fix",
12251
- "project:hardis:profiletabs:fix",
12252
- "project:profiletabs:hardis:fix",
12253
- "project:profiletabs:fix:hardis",
12254
- "hardis:profiletabs:project:fix",
12255
- "profiletabs:hardis:project:fix",
12256
- "profiletabs:project:hardis:fix",
12257
- "profiletabs:project:fix:hardis",
12258
- "hardis:profiletabs:fix:project",
12259
- "profiletabs:hardis:fix:project",
12260
- "profiletabs:fix:hardis:project",
12261
- "profiletabs:fix:project:hardis"
12262
- ]
12263
- },
12264
- "hardis:project:fix:v53flexipages": {
12265
- "aliases": [],
12266
- "args": {},
12267
- "description": "Fix flexipages for apiVersion v53 (Winter22).\n\nNote: Update api version to 53.0 in package.xml and sfdx-project.json",
12268
- "examples": [
12269
- "$ sf hardis:project:fix:v53flexipages"
12270
- ],
12271
- "flags": {
12272
- "json": {
12273
- "description": "Format output as json.",
12274
- "helpGroup": "GLOBAL",
12275
- "name": "json",
12276
- "allowNo": false,
12277
- "type": "boolean"
12278
- },
12279
- "flags-dir": {
12280
- "helpGroup": "GLOBAL",
12281
- "name": "flags-dir",
12282
- "summary": "Import flag values from a directory.",
12283
- "hasDynamicHelp": false,
12284
- "multiple": false,
12285
- "type": "option"
12286
- },
12287
- "path": {
12288
- "char": "p",
12289
- "description": "Root folder",
12290
- "name": "path",
12291
- "default": "/home/runner/work/sfdx-hardis/sfdx-hardis",
12292
- "hasDynamicHelp": false,
12293
- "multiple": false,
12294
- "type": "option"
12295
- },
12296
- "debug": {
12297
- "char": "d",
12298
- "description": "Activate debug mode (more logs)",
12299
- "name": "debug",
12300
- "allowNo": false,
12301
- "type": "boolean"
12302
- },
12303
- "websocket": {
12304
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
12305
- "name": "websocket",
12306
- "hasDynamicHelp": false,
12307
- "multiple": false,
12308
- "type": "option"
12309
- },
12310
- "skipauth": {
12311
- "description": "Skip authentication check when a default username is required",
12312
- "name": "skipauth",
12313
- "allowNo": false,
12314
- "type": "boolean"
12315
- }
12316
- },
12317
- "hasDynamicHelp": false,
12318
- "hiddenAliases": [],
12319
- "id": "hardis:project:fix:v53flexipages",
12320
- "pluginAlias": "sfdx-hardis",
12321
- "pluginName": "sfdx-hardis",
12322
- "pluginType": "core",
12323
- "strict": true,
12324
- "enableJsonFlag": true,
12325
- "title": "Fix flexipages for v53",
12326
- "requiresProject": true,
12327
- "isESM": true,
12328
- "relativePath": [
12329
- "lib",
12330
- "commands",
12331
- "hardis",
12332
- "project",
12333
- "fix",
12334
- "v53flexipages.js"
12335
- ],
12336
- "aliasPermutations": [],
12337
- "permutations": [
12338
- "hardis:project:fix:v53flexipages",
12339
- "project:hardis:fix:v53flexipages",
12340
- "project:fix:hardis:v53flexipages",
12341
- "project:fix:v53flexipages:hardis",
12342
- "hardis:fix:project:v53flexipages",
12343
- "fix:hardis:project:v53flexipages",
12344
- "fix:project:hardis:v53flexipages",
12345
- "fix:project:v53flexipages:hardis",
12346
- "hardis:fix:v53flexipages:project",
12347
- "fix:hardis:v53flexipages:project",
12348
- "fix:v53flexipages:hardis:project",
12349
- "fix:v53flexipages:project:hardis",
12350
- "hardis:project:v53flexipages:fix",
12351
- "project:hardis:v53flexipages:fix",
12352
- "project:v53flexipages:hardis:fix",
12353
- "project:v53flexipages:fix:hardis",
12354
- "hardis:v53flexipages:project:fix",
12355
- "v53flexipages:hardis:project:fix",
12356
- "v53flexipages:project:hardis:fix",
12357
- "v53flexipages:project:fix:hardis",
12358
- "hardis:v53flexipages:fix:project",
12359
- "v53flexipages:hardis:fix:project",
12360
- "v53flexipages:fix:hardis:project",
12361
- "v53flexipages:fix:project:hardis"
12362
- ]
12363
- },
12364
12364
  "hardis:project:generate:bypass": {
12365
12365
  "aliases": [],
12366
12366
  "args": {},
@@ -14814,5 +14814,5 @@
14814
14814
  ]
14815
14815
  }
14816
14816
  },
14817
- "version": "5.43.3"
14817
+ "version": "5.43.4"
14818
14818
  }