sfdx-hardis 5.25.2 → 5.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -57,12 +57,13 @@
57
57
  "world:hello"
58
58
  ]
59
59
  },
60
- "hardis:cache:clear": {
60
+ "hardis:auth:login": {
61
61
  "aliases": [],
62
62
  "args": {},
63
- "description": "Clear cache generated by sfdx-hardis",
63
+ "description": "Login to salesforce org",
64
64
  "examples": [
65
- "$ sf hardis:cache:clear"
65
+ "$ sf hardis:auth:login",
66
+ "CI=true sf hardis:auth:login"
66
67
  ],
67
68
  "flags": {
68
69
  "json": {
@@ -80,6 +81,28 @@
80
81
  "multiple": false,
81
82
  "type": "option"
82
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
+ },
83
106
  "debug": {
84
107
  "char": "d",
85
108
  "description": "Activate debug mode (more logs)",
@@ -103,39 +126,38 @@
103
126
  },
104
127
  "hasDynamicHelp": false,
105
128
  "hiddenAliases": [],
106
- "id": "hardis:cache:clear",
129
+ "id": "hardis:auth:login",
107
130
  "pluginAlias": "sfdx-hardis",
108
131
  "pluginName": "sfdx-hardis",
109
132
  "pluginType": "core",
110
133
  "strict": true,
111
134
  "enableJsonFlag": true,
112
- "title": "Clear sfdx-hardis cache",
135
+ "title": "Login",
113
136
  "requiresProject": false,
114
137
  "isESM": true,
115
138
  "relativePath": [
116
139
  "lib",
117
140
  "commands",
118
141
  "hardis",
119
- "cache",
120
- "clear.js"
142
+ "auth",
143
+ "login.js"
121
144
  ],
122
145
  "aliasPermutations": [],
123
146
  "permutations": [
124
- "hardis:cache:clear",
125
- "cache:hardis:clear",
126
- "cache:clear:hardis",
127
- "hardis:clear:cache",
128
- "clear:hardis:cache",
129
- "clear:cache:hardis"
147
+ "hardis:auth:login",
148
+ "auth:hardis:login",
149
+ "auth:login:hardis",
150
+ "hardis:login:auth",
151
+ "login:hardis:auth",
152
+ "login:auth:hardis"
130
153
  ]
131
154
  },
132
- "hardis:auth:login": {
155
+ "hardis:cache:clear": {
133
156
  "aliases": [],
134
157
  "args": {},
135
- "description": "Login to salesforce org",
158
+ "description": "Clear cache generated by sfdx-hardis",
136
159
  "examples": [
137
- "$ sf hardis:auth:login",
138
- "CI=true sf hardis:auth:login"
160
+ "$ sf hardis:cache:clear"
139
161
  ],
140
162
  "flags": {
141
163
  "json": {
@@ -153,28 +175,6 @@
153
175
  "multiple": false,
154
176
  "type": "option"
155
177
  },
156
- "instanceurl": {
157
- "char": "r",
158
- "description": "URL of org instance",
159
- "name": "instanceurl",
160
- "hasDynamicHelp": false,
161
- "multiple": false,
162
- "type": "option"
163
- },
164
- "devhub": {
165
- "char": "h",
166
- "description": "Also connect associated DevHub",
167
- "name": "devhub",
168
- "allowNo": false,
169
- "type": "boolean"
170
- },
171
- "scratchorg": {
172
- "char": "s",
173
- "description": "Scratch org",
174
- "name": "scratchorg",
175
- "allowNo": false,
176
- "type": "boolean"
177
- },
178
178
  "debug": {
179
179
  "char": "d",
180
180
  "description": "Activate debug mode (more logs)",
@@ -198,30 +198,30 @@
198
198
  },
199
199
  "hasDynamicHelp": false,
200
200
  "hiddenAliases": [],
201
- "id": "hardis:auth:login",
201
+ "id": "hardis:cache:clear",
202
202
  "pluginAlias": "sfdx-hardis",
203
203
  "pluginName": "sfdx-hardis",
204
204
  "pluginType": "core",
205
205
  "strict": true,
206
206
  "enableJsonFlag": true,
207
- "title": "Login",
207
+ "title": "Clear sfdx-hardis cache",
208
208
  "requiresProject": false,
209
209
  "isESM": true,
210
210
  "relativePath": [
211
211
  "lib",
212
212
  "commands",
213
213
  "hardis",
214
- "auth",
215
- "login.js"
214
+ "cache",
215
+ "clear.js"
216
216
  ],
217
217
  "aliasPermutations": [],
218
218
  "permutations": [
219
- "hardis:auth:login",
220
- "auth:hardis:login",
221
- "auth:login:hardis",
222
- "hardis:login:auth",
223
- "login:hardis:auth",
224
- "login:auth:hardis"
219
+ "hardis:cache:clear",
220
+ "cache:hardis:clear",
221
+ "cache:clear:hardis",
222
+ "hardis:clear:cache",
223
+ "clear:hardis:cache",
224
+ "clear:cache:hardis"
225
225
  ]
226
226
  },
227
227
  "hardis:config:get": {
@@ -2386,12 +2386,12 @@
2386
2386
  "mergexml:package:hardis"
2387
2387
  ]
2388
2388
  },
2389
- "hardis:project:create": {
2389
+ "hardis:packagexml:append": {
2390
2390
  "aliases": [],
2391
2391
  "args": {},
2392
- "description": "Create a new SFDX Project",
2392
+ "description": "Append one or multiple package.xml files into a single one",
2393
2393
  "examples": [
2394
- "$ sf hardis:project:create"
2394
+ "$ sf hardis packagexml append -p package1.xml,package2.xml -o package3.xml"
2395
2395
  ],
2396
2396
  "flags": {
2397
2397
  "json": {
@@ -2409,62 +2409,70 @@
2409
2409
  "multiple": false,
2410
2410
  "type": "option"
2411
2411
  },
2412
+ "packagexmls": {
2413
+ "char": "p",
2414
+ "description": "package.xml files path (separated by commas)",
2415
+ "name": "packagexmls",
2416
+ "required": true,
2417
+ "hasDynamicHelp": false,
2418
+ "multiple": false,
2419
+ "type": "option"
2420
+ },
2421
+ "outputfile": {
2422
+ "char": "f",
2423
+ "description": "package.xml output file",
2424
+ "name": "outputfile",
2425
+ "required": true,
2426
+ "hasDynamicHelp": false,
2427
+ "multiple": false,
2428
+ "type": "option"
2429
+ },
2412
2430
  "debug": {
2413
- "char": "d",
2414
- "description": "Activate debug mode (more logs)",
2431
+ "description": "debug",
2415
2432
  "name": "debug",
2416
2433
  "allowNo": false,
2417
2434
  "type": "boolean"
2418
2435
  },
2419
2436
  "websocket": {
2420
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
2437
+ "description": "websocket",
2421
2438
  "name": "websocket",
2422
2439
  "hasDynamicHelp": false,
2423
2440
  "multiple": false,
2424
2441
  "type": "option"
2425
- },
2426
- "skipauth": {
2427
- "description": "Skip authentication check when a default username is required",
2428
- "name": "skipauth",
2429
- "allowNo": false,
2430
- "type": "boolean"
2431
2442
  }
2432
2443
  },
2433
2444
  "hasDynamicHelp": false,
2434
2445
  "hiddenAliases": [],
2435
- "id": "hardis:project:create",
2446
+ "id": "hardis:packagexml:append",
2436
2447
  "pluginAlias": "sfdx-hardis",
2437
2448
  "pluginName": "sfdx-hardis",
2438
2449
  "pluginType": "core",
2439
2450
  "strict": true,
2440
2451
  "enableJsonFlag": true,
2441
- "title": "Login",
2442
- "requiresProject": false,
2443
2452
  "isESM": true,
2444
2453
  "relativePath": [
2445
2454
  "lib",
2446
2455
  "commands",
2447
2456
  "hardis",
2448
- "project",
2449
- "create.js"
2457
+ "packagexml",
2458
+ "append.js"
2450
2459
  ],
2451
2460
  "aliasPermutations": [],
2452
2461
  "permutations": [
2453
- "hardis:project:create",
2454
- "project:hardis:create",
2455
- "project:create:hardis",
2456
- "hardis:create:project",
2457
- "create:hardis:project",
2458
- "create:project:hardis"
2462
+ "hardis:packagexml:append",
2463
+ "packagexml:hardis:append",
2464
+ "packagexml:append:hardis",
2465
+ "hardis:append:packagexml",
2466
+ "append:hardis:packagexml",
2467
+ "append:packagexml:hardis"
2459
2468
  ]
2460
2469
  },
2461
- "hardis:project:lint": {
2470
+ "hardis:packagexml:remove": {
2462
2471
  "aliases": [],
2463
2472
  "args": {},
2464
- "description": "Apply syntactic analysis (linters) on the repository sources, using Mega-Linter",
2473
+ "description": "Removes the content of a package.xml file matching another package.xml file",
2465
2474
  "examples": [
2466
- "$ sf hardis:project:lint",
2467
- "$ sf hardis:project:lint --fix"
2475
+ "$ sf hardis packagexml:remove -p package.xml -r destructiveChanges.xml -o my-reduced-package.xml"
2468
2476
  ],
2469
2477
  "flags": {
2470
2478
  "json": {
@@ -2482,82 +2490,85 @@
2482
2490
  "multiple": false,
2483
2491
  "type": "option"
2484
2492
  },
2485
- "fix": {
2486
- "char": "f",
2487
- "description": "Apply linters fixes",
2488
- "name": "fix",
2489
- "allowNo": false,
2490
- "type": "boolean"
2493
+ "packagexml": {
2494
+ "char": "p",
2495
+ "description": "package.xml file to reduce",
2496
+ "name": "packagexml",
2497
+ "hasDynamicHelp": false,
2498
+ "multiple": false,
2499
+ "type": "option"
2491
2500
  },
2492
- "debug": {
2493
- "char": "d",
2494
- "description": "Activate debug mode (more logs)",
2495
- "name": "debug",
2501
+ "removepackagexml": {
2502
+ "char": "r",
2503
+ "description": "package.xml file to use to filter input package.xml",
2504
+ "name": "removepackagexml",
2505
+ "hasDynamicHelp": false,
2506
+ "multiple": false,
2507
+ "type": "option"
2508
+ },
2509
+ "removedonly": {
2510
+ "char": "z",
2511
+ "description": "Use this flag to generate a package.xml with only removed items",
2512
+ "name": "removedonly",
2496
2513
  "allowNo": false,
2497
2514
  "type": "boolean"
2498
2515
  },
2499
- "websocket": {
2500
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
2501
- "name": "websocket",
2516
+ "outputfile": {
2517
+ "char": "f",
2518
+ "description": "package.xml output file",
2519
+ "name": "outputfile",
2520
+ "required": true,
2502
2521
  "hasDynamicHelp": false,
2503
2522
  "multiple": false,
2504
2523
  "type": "option"
2505
2524
  },
2506
- "skipauth": {
2507
- "description": "Skip authentication check when a default username is required",
2508
- "name": "skipauth",
2525
+ "debug": {
2526
+ "description": "debug",
2527
+ "name": "debug",
2509
2528
  "allowNo": false,
2510
2529
  "type": "boolean"
2511
2530
  },
2512
- "target-org": {
2513
- "aliases": [
2514
- "targetusername",
2515
- "u"
2516
- ],
2517
- "char": "o",
2518
- "deprecateAliases": true,
2519
- "name": "target-org",
2520
- "noCacheDefault": true,
2521
- "summary": "Username or alias of the target org.",
2522
- "hasDynamicHelp": true,
2531
+ "websocket": {
2532
+ "description": "websocket",
2533
+ "name": "websocket",
2534
+ "hasDynamicHelp": false,
2523
2535
  "multiple": false,
2524
2536
  "type": "option"
2525
2537
  }
2526
2538
  },
2527
- "hasDynamicHelp": true,
2539
+ "hasDynamicHelp": false,
2528
2540
  "hiddenAliases": [],
2529
- "id": "hardis:project:lint",
2541
+ "id": "hardis:packagexml:remove",
2530
2542
  "pluginAlias": "sfdx-hardis",
2531
2543
  "pluginName": "sfdx-hardis",
2532
2544
  "pluginType": "core",
2533
2545
  "strict": true,
2534
2546
  "enableJsonFlag": true,
2535
- "title": "Lint",
2536
2547
  "requiresProject": false,
2537
2548
  "isESM": true,
2538
2549
  "relativePath": [
2539
2550
  "lib",
2540
2551
  "commands",
2541
2552
  "hardis",
2542
- "project",
2543
- "lint.js"
2553
+ "packagexml",
2554
+ "remove.js"
2544
2555
  ],
2545
2556
  "aliasPermutations": [],
2546
2557
  "permutations": [
2547
- "hardis:project:lint",
2548
- "project:hardis:lint",
2549
- "project:lint:hardis",
2550
- "hardis:lint:project",
2551
- "lint:hardis:project",
2552
- "lint:project:hardis"
2558
+ "hardis:packagexml:remove",
2559
+ "packagexml:hardis:remove",
2560
+ "packagexml:remove:hardis",
2561
+ "hardis:remove:packagexml",
2562
+ "remove:hardis:packagexml",
2563
+ "remove:packagexml:hardis"
2553
2564
  ]
2554
2565
  },
2555
- "hardis:scratch:create": {
2566
+ "hardis:project:create": {
2556
2567
  "aliases": [],
2557
2568
  "args": {},
2558
- "description": "Create and initialize a scratch org or a source-tracked sandbox (config can be defined using `config/.sfdx-hardis.yml`):\n\n- **Install packages**\n - Use property `installedPackages`\n- **Push sources**\n- **Assign permission sets**\n - Use property `initPermissionSets`\n- **Run apex initialization scripts**\n - Use property `scratchOrgInitApexScripts`\n- **Load data**\n - Use property `dataPackages`\n ",
2569
+ "description": "Create a new SFDX Project",
2559
2570
  "examples": [
2560
- "$ sf hardis:scratch:create"
2571
+ "$ sf hardis:project:create"
2561
2572
  ],
2562
2573
  "flags": {
2563
2574
  "json": {
@@ -2575,23 +2586,10 @@
2575
2586
  "multiple": false,
2576
2587
  "type": "option"
2577
2588
  },
2578
- "forcenew": {
2579
- "char": "n",
2580
- "description": "If an existing scratch org exists, do not reuse it but create a new one",
2581
- "name": "forcenew",
2582
- "allowNo": false,
2583
- "type": "boolean"
2584
- },
2585
- "pool": {
2586
- "description": "Creates the scratch org for a scratch org pool",
2587
- "name": "pool",
2588
- "allowNo": false,
2589
- "type": "boolean"
2590
- },
2591
- "debug": {
2592
- "char": "d",
2593
- "description": "Activate debug mode (more logs)",
2594
- "name": "debug",
2589
+ "debug": {
2590
+ "char": "d",
2591
+ "description": "Activate debug mode (more logs)",
2592
+ "name": "debug",
2595
2593
  "allowNo": false,
2596
2594
  "type": "boolean"
2597
2595
  },
@@ -2607,60 +2605,43 @@
2607
2605
  "name": "skipauth",
2608
2606
  "allowNo": false,
2609
2607
  "type": "boolean"
2610
- },
2611
- "target-dev-hub": {
2612
- "aliases": [
2613
- "targetdevhubusername"
2614
- ],
2615
- "char": "v",
2616
- "deprecateAliases": true,
2617
- "name": "target-dev-hub",
2618
- "noCacheDefault": true,
2619
- "required": true,
2620
- "summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
2621
- "hasDynamicHelp": true,
2622
- "multiple": false,
2623
- "type": "option"
2624
2608
  }
2625
2609
  },
2626
- "hasDynamicHelp": true,
2610
+ "hasDynamicHelp": false,
2627
2611
  "hiddenAliases": [],
2628
- "id": "hardis:scratch:create",
2612
+ "id": "hardis:project:create",
2629
2613
  "pluginAlias": "sfdx-hardis",
2630
2614
  "pluginName": "sfdx-hardis",
2631
2615
  "pluginType": "core",
2632
2616
  "strict": true,
2633
2617
  "enableJsonFlag": true,
2634
- "title": "Create and initialize scratch org",
2635
- "requiresProject": true,
2636
- "requiresSfdxPlugins": [
2637
- "sfdmu",
2638
- "texei-sfdx-plugin"
2639
- ],
2618
+ "title": "Login",
2619
+ "requiresProject": false,
2640
2620
  "isESM": true,
2641
2621
  "relativePath": [
2642
2622
  "lib",
2643
2623
  "commands",
2644
2624
  "hardis",
2645
- "scratch",
2625
+ "project",
2646
2626
  "create.js"
2647
2627
  ],
2648
2628
  "aliasPermutations": [],
2649
2629
  "permutations": [
2650
- "hardis:scratch:create",
2651
- "scratch:hardis:create",
2652
- "scratch:create:hardis",
2653
- "hardis:create:scratch",
2654
- "create:hardis:scratch",
2655
- "create:scratch:hardis"
2630
+ "hardis:project:create",
2631
+ "project:hardis:create",
2632
+ "project:create:hardis",
2633
+ "hardis:create:project",
2634
+ "create:hardis:project",
2635
+ "create:project:hardis"
2656
2636
  ]
2657
2637
  },
2658
- "hardis:scratch:delete": {
2638
+ "hardis:project:lint": {
2659
2639
  "aliases": [],
2660
2640
  "args": {},
2661
- "description": "Assisted menu to delete scratch orgs associated to a DevHub",
2641
+ "description": "Apply syntactic analysis (linters) on the repository sources, using Mega-Linter",
2662
2642
  "examples": [
2663
- "$ sf hardis:scratch:delete"
2643
+ "$ sf hardis:project:lint",
2644
+ "$ sf hardis:project:lint --fix"
2664
2645
  ],
2665
2646
  "flags": {
2666
2647
  "json": {
@@ -2678,6 +2659,13 @@
2678
2659
  "multiple": false,
2679
2660
  "type": "option"
2680
2661
  },
2662
+ "fix": {
2663
+ "char": "f",
2664
+ "description": "Apply linters fixes",
2665
+ "name": "fix",
2666
+ "allowNo": false,
2667
+ "type": "boolean"
2668
+ },
2681
2669
  "debug": {
2682
2670
  "char": "d",
2683
2671
  "description": "Activate debug mode (more logs)",
@@ -2698,16 +2686,16 @@
2698
2686
  "allowNo": false,
2699
2687
  "type": "boolean"
2700
2688
  },
2701
- "target-dev-hub": {
2689
+ "target-org": {
2702
2690
  "aliases": [
2703
- "targetdevhubusername"
2691
+ "targetusername",
2692
+ "u"
2704
2693
  ],
2705
- "char": "v",
2694
+ "char": "o",
2706
2695
  "deprecateAliases": true,
2707
- "name": "target-dev-hub",
2696
+ "name": "target-org",
2708
2697
  "noCacheDefault": true,
2709
- "required": true,
2710
- "summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
2698
+ "summary": "Username or alias of the target org.",
2711
2699
  "hasDynamicHelp": true,
2712
2700
  "multiple": false,
2713
2701
  "type": "option"
@@ -2715,37 +2703,38 @@
2715
2703
  },
2716
2704
  "hasDynamicHelp": true,
2717
2705
  "hiddenAliases": [],
2718
- "id": "hardis:scratch:delete",
2706
+ "id": "hardis:project:lint",
2719
2707
  "pluginAlias": "sfdx-hardis",
2720
2708
  "pluginName": "sfdx-hardis",
2721
2709
  "pluginType": "core",
2722
2710
  "strict": true,
2723
2711
  "enableJsonFlag": true,
2724
- "title": "Delete scratch orgs(s)",
2712
+ "title": "Lint",
2713
+ "requiresProject": false,
2725
2714
  "isESM": true,
2726
2715
  "relativePath": [
2727
2716
  "lib",
2728
2717
  "commands",
2729
2718
  "hardis",
2730
- "scratch",
2731
- "delete.js"
2719
+ "project",
2720
+ "lint.js"
2732
2721
  ],
2733
2722
  "aliasPermutations": [],
2734
2723
  "permutations": [
2735
- "hardis:scratch:delete",
2736
- "scratch:hardis:delete",
2737
- "scratch:delete:hardis",
2738
- "hardis:delete:scratch",
2739
- "delete:hardis:scratch",
2740
- "delete:scratch:hardis"
2724
+ "hardis:project:lint",
2725
+ "project:hardis:lint",
2726
+ "project:lint:hardis",
2727
+ "hardis:lint:project",
2728
+ "lint:hardis:project",
2729
+ "lint:project:hardis"
2741
2730
  ]
2742
2731
  },
2743
- "hardis:scratch:pull": {
2732
+ "hardis:source:deploy": {
2744
2733
  "aliases": [],
2745
2734
  "args": {},
2746
- "description": "This commands pulls the updates you performed in your scratch or sandbox org, into your local files\n\nThen, you probably want to stage and commit the files containing the updates you want to keep, as explained in this video.\n\n<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/Ik6whtflmfY\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n\n- Calls `sf project retrieve start` under the hood\n- If there are errors, proposes to automatically add erroneous item in `.forceignore`, then pull again\n- If you don't see your updated items in the results, you can manually retrieve [using SF Extension **Org Browser** or **Salesforce CLI**](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-publish-task/#retrieve-metadatas)\n- If you want to always retrieve sources like CustomApplication that are not always detected as updates by project:retrieve:start , you can define property **autoRetrieveWhenPull** in .sfdx-hardis.yml\n\nExample:\n```yaml\nautoRetrieveWhenPull:\n - CustomApplication:MyCustomApplication\n - CustomApplication:MyOtherCustomApplication\n - CustomApplication:MyThirdCustomApp\n```\n",
2735
+ "description": "sfdx-hardis wrapper for sfdx force:source:deploy that displays tips to solve deployment errors.\n\nAdditional to the base command wrapper: If using **--checkonly**, add options **--checkcoverage** and **--coverageformatters json-summary** to check that org coverage is > 75% (or value defined in .sfdx-hardis.yml property **apexTestsMinCoverageOrgWide**)\n\n### Deployment results\n\nYou can also have deployment results as pull request comments, on:\n\n- GitHub (see [GitHub Pull Requests comments config](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-github/))\n- Gitlab (see [Gitlab integration configuration](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-gitlab/))\n- Azure DevOps (see [Azure integration configuration](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-azure/))\n\n\n[![Assisted solving of Salesforce deployments errors](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/article-deployment-errors.jpg)](https://nicolas.vuillamy.fr/assisted-solving-of-salesforce-deployments-errors-47f3666a9ed0)\n\n### Deployment pre or post commands\n\nYou can define command lines to run before or after a deployment, with parameters:\n\n- **id**: Unique Id for the command\n- **label**: Human readable label for the command\n- **skipIfError**: If defined to \"true\", the post-command won't be run if there is a deployment failure\n- **context**: Defines the context where the command will be run. Can be **all** (default), **check-deployment-only** or **process-deployment-only**\n- **runOnlyOnceByOrg**: If set to true, the command will be run only one time per org. A record of SfdxHardisTrace__c is stored to make that possible (it needs to be existing in target org)\n\nIf the commands are not the same depending on the target org, you can define them into **config/branches/.sfdx-hardis-BRANCHNAME.yml** instead of root **config/.sfdx-hardis.yml**\n\nExample:\n\n```yaml\ncommandsPreDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to the deployment user\n command: sf data update record --sobject User --where \"Username='deploy.github@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n\ncommandsPostDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to desired username\n command: sf data update record --sobject User --where \"Username='admin-yser@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n - id: someActionToRunJustOneTime\n label: And to run only if deployment is success\n command: sf sfdmu:run ...\n skipIfError: true\n context: process-deployment-only\n runOnlyOnceByOrg: true\n```\n\nNotes:\n\n- You can disable coloring of errors in red by defining env variable SFDX_HARDIS_DEPLOY_ERR_COLORS=false\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_force_source.htm#cli_reference_force_source_deploy)\n",
2747
2736
  "examples": [
2748
- "$ sf hardis:scratch:pull"
2737
+ "$ sf hardis:source:deploy -x manifest/package.xml --wait 60 --ignorewarnings --testlevel RunLocalTests --postdestructivechanges ./manifest/destructiveChanges.xml --target-org nicolas.vuillamy@cloudity.com.sfdxhardis --checkonly --checkcoverage --verbose --coverageformatters json-summary"
2749
2738
  ],
2750
2739
  "flags": {
2751
2740
  "json": {
@@ -2763,122 +2752,214 @@
2763
2752
  "multiple": false,
2764
2753
  "type": "option"
2765
2754
  },
2766
- "debug": {
2767
- "char": "d",
2768
- "description": "Activate debug mode (more logs)",
2769
- "name": "debug",
2755
+ "checkonly": {
2756
+ "char": "c",
2757
+ "description": "checkonly",
2758
+ "name": "checkonly",
2770
2759
  "allowNo": false,
2771
2760
  "type": "boolean"
2772
2761
  },
2773
- "websocket": {
2774
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
2775
- "name": "websocket",
2776
- "hasDynamicHelp": false,
2777
- "multiple": false,
2778
- "type": "option"
2779
- },
2780
- "skipauth": {
2781
- "description": "Skip authentication check when a default username is required",
2782
- "name": "skipauth",
2762
+ "soapdeploy": {
2763
+ "description": "soapDeploy",
2764
+ "name": "soapdeploy",
2783
2765
  "allowNo": false,
2784
2766
  "type": "boolean"
2785
2767
  },
2786
- "target-org": {
2787
- "aliases": [
2788
- "targetusername",
2789
- "u"
2790
- ],
2791
- "char": "o",
2792
- "deprecateAliases": true,
2793
- "name": "target-org",
2794
- "noCacheDefault": true,
2795
- "required": true,
2796
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
2797
- "hasDynamicHelp": true,
2768
+ "wait": {
2769
+ "char": "w",
2770
+ "description": "wait",
2771
+ "name": "wait",
2772
+ "default": 60,
2773
+ "hasDynamicHelp": false,
2798
2774
  "multiple": false,
2799
2775
  "type": "option"
2800
- }
2801
- },
2802
- "hasDynamicHelp": true,
2803
- "hiddenAliases": [],
2804
- "id": "hardis:scratch:pull",
2805
- "pluginAlias": "sfdx-hardis",
2806
- "pluginName": "sfdx-hardis",
2807
- "pluginType": "core",
2808
- "strict": true,
2809
- "enableJsonFlag": true,
2810
- "title": "Scratch PULL",
2811
- "requiresProject": true,
2812
- "isESM": true,
2813
- "relativePath": [
2814
- "lib",
2815
- "commands",
2816
- "hardis",
2817
- "scratch",
2818
- "pull.js"
2819
- ],
2820
- "aliasPermutations": [],
2821
- "permutations": [
2822
- "hardis:scratch:pull",
2823
- "scratch:hardis:pull",
2824
- "scratch:pull:hardis",
2825
- "hardis:pull:scratch",
2826
- "pull:hardis:scratch",
2827
- "pull:scratch:hardis"
2828
- ]
2829
- },
2830
- "hardis:scratch:push": {
2831
- "aliases": [],
2832
- "args": {},
2833
- "description": "Push local files to scratch org\n\nCalls `sf project deploy start` under the hood\n",
2834
- "examples": [
2835
- "$ sf hardis:scratch:push"
2836
- ],
2837
- "flags": {
2838
- "json": {
2839
- "description": "Format output as json.",
2840
- "helpGroup": "GLOBAL",
2841
- "name": "json",
2842
- "allowNo": false,
2843
- "type": "boolean"
2844
2776
  },
2845
- "flags-dir": {
2846
- "helpGroup": "GLOBAL",
2847
- "name": "flags-dir",
2848
- "summary": "Import flag values from a directory.",
2777
+ "testlevel": {
2778
+ "char": "l",
2779
+ "description": "testlevel",
2780
+ "name": "testlevel",
2781
+ "default": "NoTestRun",
2849
2782
  "hasDynamicHelp": false,
2850
2783
  "multiple": false,
2784
+ "options": [
2785
+ "NoTestRun",
2786
+ "RunSpecifiedTests",
2787
+ "RunLocalTests",
2788
+ "RunAllTestsInOrg"
2789
+ ],
2851
2790
  "type": "option"
2852
2791
  },
2853
- "debug": {
2854
- "char": "d",
2855
- "description": "Activate debug mode (more logs)",
2856
- "name": "debug",
2792
+ "runtests": {
2793
+ "char": "r",
2794
+ "description": "runTests",
2795
+ "name": "runtests",
2796
+ "default": [],
2797
+ "hasDynamicHelp": false,
2798
+ "multiple": true,
2799
+ "type": "option"
2800
+ },
2801
+ "ignoreerrors": {
2802
+ "description": "ignoreErrors",
2803
+ "name": "ignoreerrors",
2857
2804
  "allowNo": false,
2858
2805
  "type": "boolean"
2859
2806
  },
2860
- "websocket": {
2861
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
2862
- "name": "websocket",
2807
+ "ignorewarnings": {
2808
+ "char": "g",
2809
+ "description": "ignoreWarnings",
2810
+ "name": "ignorewarnings",
2811
+ "allowNo": false,
2812
+ "type": "boolean"
2813
+ },
2814
+ "validateddeployrequestid": {
2815
+ "char": "q",
2816
+ "description": "validateDeployRequestId",
2817
+ "exclusive": [
2818
+ "manifest",
2819
+ "metadata",
2820
+ "sourcepath",
2821
+ "checkonly",
2822
+ "testlevel",
2823
+ "runtests",
2824
+ "ignoreerrors",
2825
+ "ignorewarnings"
2826
+ ],
2827
+ "name": "validateddeployrequestid",
2863
2828
  "hasDynamicHelp": false,
2864
2829
  "multiple": false,
2865
2830
  "type": "option"
2866
2831
  },
2867
- "skipauth": {
2868
- "description": "Skip authentication check when a default username is required",
2869
- "name": "skipauth",
2832
+ "verbose": {
2833
+ "description": "verbose",
2834
+ "name": "verbose",
2870
2835
  "allowNo": false,
2871
2836
  "type": "boolean"
2872
2837
  },
2873
- "target-org": {
2874
- "aliases": [
2875
- "targetusername",
2876
- "u"
2877
- ],
2878
- "char": "o",
2879
- "deprecateAliases": true,
2880
- "name": "target-org",
2881
- "noCacheDefault": true,
2838
+ "metadata": {
2839
+ "char": "m",
2840
+ "description": "metadata",
2841
+ "exclusive": [
2842
+ "manifest",
2843
+ "sourcepath"
2844
+ ],
2845
+ "name": "metadata",
2846
+ "hasDynamicHelp": false,
2847
+ "multiple": true,
2848
+ "type": "option"
2849
+ },
2850
+ "sourcepath": {
2851
+ "char": "p",
2852
+ "description": "sourcePath",
2853
+ "exclusive": [
2854
+ "manifest",
2855
+ "metadata"
2856
+ ],
2857
+ "name": "sourcepath",
2858
+ "hasDynamicHelp": false,
2859
+ "multiple": true,
2860
+ "type": "option"
2861
+ },
2862
+ "manifest": {
2863
+ "char": "x",
2864
+ "description": "flagsLong.manifest",
2865
+ "exclusive": [
2866
+ "metadata",
2867
+ "sourcepath"
2868
+ ],
2869
+ "name": "manifest",
2870
+ "hasDynamicHelp": false,
2871
+ "multiple": false,
2872
+ "type": "option"
2873
+ },
2874
+ "predestructivechanges": {
2875
+ "dependsOn": [
2876
+ "manifest"
2877
+ ],
2878
+ "description": "predestructivechanges",
2879
+ "name": "predestructivechanges",
2880
+ "hasDynamicHelp": false,
2881
+ "multiple": false,
2882
+ "type": "option"
2883
+ },
2884
+ "postdestructivechanges": {
2885
+ "dependsOn": [
2886
+ "manifest"
2887
+ ],
2888
+ "description": "postdestructivechanges",
2889
+ "name": "postdestructivechanges",
2890
+ "hasDynamicHelp": false,
2891
+ "multiple": false,
2892
+ "type": "option"
2893
+ },
2894
+ "tracksource": {
2895
+ "char": "t",
2896
+ "description": "tracksource",
2897
+ "exclusive": [
2898
+ "checkonly",
2899
+ "validateddeployrequestid"
2900
+ ],
2901
+ "name": "tracksource",
2902
+ "allowNo": false,
2903
+ "type": "boolean"
2904
+ },
2905
+ "forceoverwrite": {
2906
+ "char": "f",
2907
+ "dependsOn": [
2908
+ "tracksource"
2909
+ ],
2910
+ "description": "forceoverwrite",
2911
+ "name": "forceoverwrite",
2912
+ "allowNo": false,
2913
+ "type": "boolean"
2914
+ },
2915
+ "resultsdir": {
2916
+ "description": "resultsdir",
2917
+ "name": "resultsdir",
2918
+ "hasDynamicHelp": false,
2919
+ "multiple": false,
2920
+ "type": "option"
2921
+ },
2922
+ "coverageformatters": {
2923
+ "description": "coverageformatters",
2924
+ "name": "coverageformatters",
2925
+ "hasDynamicHelp": false,
2926
+ "multiple": true,
2927
+ "type": "option"
2928
+ },
2929
+ "junit": {
2930
+ "description": "junit",
2931
+ "name": "junit",
2932
+ "allowNo": false,
2933
+ "type": "boolean"
2934
+ },
2935
+ "checkcoverage": {
2936
+ "description": "Check Apex org coverage",
2937
+ "name": "checkcoverage",
2938
+ "allowNo": false,
2939
+ "type": "boolean"
2940
+ },
2941
+ "debug": {
2942
+ "description": "debug",
2943
+ "name": "debug",
2944
+ "allowNo": false,
2945
+ "type": "boolean"
2946
+ },
2947
+ "websocket": {
2948
+ "description": "websocket",
2949
+ "name": "websocket",
2950
+ "hasDynamicHelp": false,
2951
+ "multiple": false,
2952
+ "type": "option"
2953
+ },
2954
+ "target-org": {
2955
+ "aliases": [
2956
+ "targetusername",
2957
+ "u"
2958
+ ],
2959
+ "char": "o",
2960
+ "deprecateAliases": true,
2961
+ "name": "target-org",
2962
+ "noCacheDefault": true,
2882
2963
  "required": true,
2883
2964
  "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
2884
2965
  "hasDynamicHelp": true,
@@ -2888,39 +2969,35 @@
2888
2969
  },
2889
2970
  "hasDynamicHelp": true,
2890
2971
  "hiddenAliases": [],
2891
- "id": "hardis:scratch:push",
2972
+ "id": "hardis:source:deploy",
2892
2973
  "pluginAlias": "sfdx-hardis",
2893
2974
  "pluginName": "sfdx-hardis",
2894
2975
  "pluginType": "core",
2895
2976
  "strict": true,
2896
2977
  "enableJsonFlag": true,
2897
- "title": "Scratch PUSH",
2898
2978
  "requiresProject": true,
2899
2979
  "isESM": true,
2900
2980
  "relativePath": [
2901
2981
  "lib",
2902
2982
  "commands",
2903
2983
  "hardis",
2904
- "scratch",
2905
- "push.js"
2984
+ "source",
2985
+ "deploy.js"
2906
2986
  ],
2907
2987
  "aliasPermutations": [],
2908
2988
  "permutations": [
2909
- "hardis:scratch:push",
2910
- "scratch:hardis:push",
2911
- "scratch:push:hardis",
2912
- "hardis:push:scratch",
2913
- "push:hardis:scratch",
2914
- "push:scratch:hardis"
2989
+ "hardis:source:deploy",
2990
+ "source:hardis:deploy",
2991
+ "source:deploy:hardis",
2992
+ "hardis:deploy:source",
2993
+ "deploy:hardis:source",
2994
+ "deploy:source:hardis"
2915
2995
  ]
2916
2996
  },
2917
- "hardis:packagexml:append": {
2997
+ "hardis:source:push": {
2918
2998
  "aliases": [],
2919
2999
  "args": {},
2920
- "description": "Append one or multiple package.xml files into a single one",
2921
- "examples": [
2922
- "$ sf hardis packagexml append -p package1.xml,package2.xml -o package3.xml"
2923
- ],
3000
+ "description": "sfdx-hardis wrapper for sfdx force:source:push that displays tips to solve deployment errors.\n\n[![Assisted solving of Salesforce deployments errors](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/article-deployment-errors.jpg)](https://nicolas.vuillamy.fr/assisted-solving-of-salesforce-deployments-errors-47f3666a9ed0)\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_force_source.htm#cli_reference_force_source_push)\n",
2924
3001
  "flags": {
2925
3002
  "json": {
2926
3003
  "description": "Format output as json.",
@@ -2937,24 +3014,35 @@
2937
3014
  "multiple": false,
2938
3015
  "type": "option"
2939
3016
  },
2940
- "packagexmls": {
2941
- "char": "p",
2942
- "description": "package.xml files path (separated by commas)",
2943
- "name": "packagexmls",
2944
- "required": true,
2945
- "hasDynamicHelp": false,
2946
- "multiple": false,
2947
- "type": "option"
2948
- },
2949
- "outputfile": {
3017
+ "forceoverwrite": {
2950
3018
  "char": "f",
2951
- "description": "package.xml output file",
2952
- "name": "outputfile",
2953
- "required": true,
3019
+ "description": "forceoverwrite",
3020
+ "name": "forceoverwrite",
3021
+ "allowNo": false,
3022
+ "type": "boolean"
3023
+ },
3024
+ "wait": {
3025
+ "char": "w",
3026
+ "description": "wait",
3027
+ "name": "wait",
3028
+ "default": 60,
2954
3029
  "hasDynamicHelp": false,
2955
3030
  "multiple": false,
2956
3031
  "type": "option"
2957
3032
  },
3033
+ "ignorewarnings": {
3034
+ "char": "g",
3035
+ "description": "ignorewarnings",
3036
+ "name": "ignorewarnings",
3037
+ "allowNo": false,
3038
+ "type": "boolean"
3039
+ },
3040
+ "quiet": {
3041
+ "description": "quiet",
3042
+ "name": "quiet",
3043
+ "allowNo": false,
3044
+ "type": "boolean"
3045
+ },
2958
3046
  "debug": {
2959
3047
  "description": "debug",
2960
3048
  "name": "debug",
@@ -2967,41 +3055,55 @@
2967
3055
  "hasDynamicHelp": false,
2968
3056
  "multiple": false,
2969
3057
  "type": "option"
3058
+ },
3059
+ "target-org": {
3060
+ "aliases": [
3061
+ "targetusername",
3062
+ "u"
3063
+ ],
3064
+ "char": "o",
3065
+ "deprecateAliases": true,
3066
+ "name": "target-org",
3067
+ "noCacheDefault": true,
3068
+ "required": true,
3069
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
3070
+ "hasDynamicHelp": true,
3071
+ "multiple": false,
3072
+ "type": "option"
2970
3073
  }
2971
3074
  },
2972
- "hasDynamicHelp": false,
3075
+ "hasDynamicHelp": true,
2973
3076
  "hiddenAliases": [],
2974
- "id": "hardis:packagexml:append",
3077
+ "id": "hardis:source:push",
2975
3078
  "pluginAlias": "sfdx-hardis",
2976
3079
  "pluginName": "sfdx-hardis",
2977
3080
  "pluginType": "core",
2978
3081
  "strict": true,
2979
3082
  "enableJsonFlag": true,
3083
+ "requiresProject": true,
2980
3084
  "isESM": true,
2981
3085
  "relativePath": [
2982
3086
  "lib",
2983
3087
  "commands",
2984
3088
  "hardis",
2985
- "packagexml",
2986
- "append.js"
3089
+ "source",
3090
+ "push.js"
2987
3091
  ],
2988
3092
  "aliasPermutations": [],
2989
3093
  "permutations": [
2990
- "hardis:packagexml:append",
2991
- "packagexml:hardis:append",
2992
- "packagexml:append:hardis",
2993
- "hardis:append:packagexml",
2994
- "append:hardis:packagexml",
2995
- "append:packagexml:hardis"
3094
+ "hardis:source:push",
3095
+ "source:hardis:push",
3096
+ "source:push:hardis",
3097
+ "hardis:push:source",
3098
+ "push:hardis:source",
3099
+ "push:source:hardis"
2996
3100
  ]
2997
3101
  },
2998
- "hardis:packagexml:remove": {
3102
+ "hardis:source:retrieve": {
2999
3103
  "aliases": [],
3000
3104
  "args": {},
3001
- "description": "Removes the content of a package.xml file matching another package.xml file",
3002
- "examples": [
3003
- "$ sf hardis packagexml:remove -p package.xml -r destructiveChanges.xml -o my-reduced-package.xml"
3004
- ],
3105
+ "description": "sfdx-hardis wrapper for sfdx force:source:retrieve\n\n- If no retrieve constraint is sent, as assisted menu will request the list of metadatas to retrieve\n- If no org is selected , an assisted menu will request the user to choose one\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_force_source.htm#cli_reference_force_source_retrieve)\n",
3106
+ "examples": [],
3005
3107
  "flags": {
3006
3108
  "json": {
3007
3109
  "description": "Format output as json.",
@@ -3018,185 +3120,46 @@
3018
3120
  "multiple": false,
3019
3121
  "type": "option"
3020
3122
  },
3021
- "packagexml": {
3022
- "char": "p",
3023
- "description": "package.xml file to reduce",
3024
- "name": "packagexml",
3123
+ "apiversion": {
3124
+ "char": "a",
3125
+ "description": "Override the api version used for api requests made by this command",
3126
+ "name": "apiversion",
3025
3127
  "hasDynamicHelp": false,
3026
3128
  "multiple": false,
3027
3129
  "type": "option"
3028
3130
  },
3029
- "removepackagexml": {
3030
- "char": "r",
3031
- "description": "package.xml file to use to filter input package.xml",
3032
- "name": "removepackagexml",
3131
+ "sourcepath": {
3132
+ "char": "p",
3133
+ "description": "sourcePath",
3134
+ "exclusive": [
3135
+ "manifest",
3136
+ "metadata"
3137
+ ],
3138
+ "name": "sourcepath",
3033
3139
  "hasDynamicHelp": false,
3034
- "multiple": false,
3140
+ "multiple": true,
3035
3141
  "type": "option"
3036
3142
  },
3037
- "removedonly": {
3038
- "char": "z",
3039
- "description": "Use this flag to generate a package.xml with only removed items",
3040
- "name": "removedonly",
3041
- "allowNo": false,
3042
- "type": "boolean"
3043
- },
3044
- "outputfile": {
3045
- "char": "f",
3046
- "description": "package.xml output file",
3047
- "name": "outputfile",
3048
- "required": true,
3049
- "hasDynamicHelp": false,
3050
- "multiple": false,
3051
- "type": "option"
3052
- },
3053
- "debug": {
3054
- "description": "debug",
3055
- "name": "debug",
3056
- "allowNo": false,
3057
- "type": "boolean"
3058
- },
3059
- "websocket": {
3060
- "description": "websocket",
3061
- "name": "websocket",
3062
- "hasDynamicHelp": false,
3063
- "multiple": false,
3064
- "type": "option"
3065
- }
3066
- },
3067
- "hasDynamicHelp": false,
3068
- "hiddenAliases": [],
3069
- "id": "hardis:packagexml:remove",
3070
- "pluginAlias": "sfdx-hardis",
3071
- "pluginName": "sfdx-hardis",
3072
- "pluginType": "core",
3073
- "strict": true,
3074
- "enableJsonFlag": true,
3075
- "requiresProject": false,
3076
- "isESM": true,
3077
- "relativePath": [
3078
- "lib",
3079
- "commands",
3080
- "hardis",
3081
- "packagexml",
3082
- "remove.js"
3083
- ],
3084
- "aliasPermutations": [],
3085
- "permutations": [
3086
- "hardis:packagexml:remove",
3087
- "packagexml:hardis:remove",
3088
- "packagexml:remove:hardis",
3089
- "hardis:remove:packagexml",
3090
- "remove:hardis:packagexml",
3091
- "remove:packagexml:hardis"
3092
- ]
3093
- },
3094
- "hardis:source:deploy": {
3095
- "aliases": [],
3096
- "args": {},
3097
- "description": "sfdx-hardis wrapper for sfdx force:source:deploy that displays tips to solve deployment errors.\n\nAdditional to the base command wrapper: If using **--checkonly**, add options **--checkcoverage** and **--coverageformatters json-summary** to check that org coverage is > 75% (or value defined in .sfdx-hardis.yml property **apexTestsMinCoverageOrgWide**)\n\n### Deployment results\n\nYou can also have deployment results as pull request comments, on:\n\n- GitHub (see [GitHub Pull Requests comments config](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-github/))\n- Gitlab (see [Gitlab integration configuration](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-gitlab/))\n- Azure DevOps (see [Azure integration configuration](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-azure/))\n\n\n[![Assisted solving of Salesforce deployments errors](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/article-deployment-errors.jpg)](https://nicolas.vuillamy.fr/assisted-solving-of-salesforce-deployments-errors-47f3666a9ed0)\n\n### Deployment pre or post commands\n\nYou can define command lines to run before or after a deployment, with parameters:\n\n- **id**: Unique Id for the command\n- **label**: Human readable label for the command\n- **skipIfError**: If defined to \"true\", the post-command won't be run if there is a deployment failure\n- **context**: Defines the context where the command will be run. Can be **all** (default), **check-deployment-only** or **process-deployment-only**\n- **runOnlyOnceByOrg**: If set to true, the command will be run only one time per org. A record of SfdxHardisTrace__c is stored to make that possible (it needs to be existing in target org)\n\nIf the commands are not the same depending on the target org, you can define them into **config/branches/.sfdx-hardis-BRANCHNAME.yml** instead of root **config/.sfdx-hardis.yml**\n\nExample:\n\n```yaml\ncommandsPreDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to the deployment user\n command: sf data update record --sobject User --where \"Username='deploy.github@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n\ncommandsPostDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to desired username\n command: sf data update record --sobject User --where \"Username='admin-yser@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n - id: someActionToRunJustOneTime\n label: And to run only if deployment is success\n command: sf sfdmu:run ...\n skipIfError: true\n context: process-deployment-only\n runOnlyOnceByOrg: true\n```\n\nNotes:\n\n- You can disable coloring of errors in red by defining env variable SFDX_HARDIS_DEPLOY_ERR_COLORS=false\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_force_source.htm#cli_reference_force_source_deploy)\n",
3098
- "examples": [
3099
- "$ sf hardis:source:deploy -x manifest/package.xml --wait 60 --ignorewarnings --testlevel RunLocalTests --postdestructivechanges ./manifest/destructiveChanges.xml --target-org nicolas.vuillamy@cloudity.com.sfdxhardis --checkonly --checkcoverage --verbose --coverageformatters json-summary"
3100
- ],
3101
- "flags": {
3102
- "json": {
3103
- "description": "Format output as json.",
3104
- "helpGroup": "GLOBAL",
3105
- "name": "json",
3106
- "allowNo": false,
3107
- "type": "boolean"
3108
- },
3109
- "flags-dir": {
3110
- "helpGroup": "GLOBAL",
3111
- "name": "flags-dir",
3112
- "summary": "Import flag values from a directory.",
3113
- "hasDynamicHelp": false,
3114
- "multiple": false,
3115
- "type": "option"
3116
- },
3117
- "checkonly": {
3118
- "char": "c",
3119
- "description": "checkonly",
3120
- "name": "checkonly",
3121
- "allowNo": false,
3122
- "type": "boolean"
3123
- },
3124
- "soapdeploy": {
3125
- "description": "soapDeploy",
3126
- "name": "soapdeploy",
3127
- "allowNo": false,
3128
- "type": "boolean"
3129
- },
3130
3143
  "wait": {
3131
3144
  "char": "w",
3132
3145
  "description": "wait",
3133
3146
  "name": "wait",
3134
- "default": 60,
3135
- "hasDynamicHelp": false,
3136
- "multiple": false,
3137
- "type": "option"
3138
- },
3139
- "testlevel": {
3140
- "char": "l",
3141
- "description": "testlevel",
3142
- "name": "testlevel",
3143
- "default": "NoTestRun",
3144
3147
  "hasDynamicHelp": false,
3145
3148
  "multiple": false,
3146
- "options": [
3147
- "NoTestRun",
3148
- "RunSpecifiedTests",
3149
- "RunLocalTests",
3150
- "RunAllTestsInOrg"
3151
- ],
3152
- "type": "option"
3153
- },
3154
- "runtests": {
3155
- "char": "r",
3156
- "description": "runTests",
3157
- "name": "runtests",
3158
- "default": [],
3159
- "hasDynamicHelp": false,
3160
- "multiple": true,
3161
3149
  "type": "option"
3162
3150
  },
3163
- "ignoreerrors": {
3164
- "description": "ignoreErrors",
3165
- "name": "ignoreerrors",
3166
- "allowNo": false,
3167
- "type": "boolean"
3168
- },
3169
- "ignorewarnings": {
3170
- "char": "g",
3171
- "description": "ignoreWarnings",
3172
- "name": "ignorewarnings",
3173
- "allowNo": false,
3174
- "type": "boolean"
3175
- },
3176
- "validateddeployrequestid": {
3177
- "char": "q",
3178
- "description": "validateDeployRequestId",
3151
+ "manifest": {
3152
+ "char": "x",
3153
+ "description": "manifest",
3179
3154
  "exclusive": [
3180
- "manifest",
3181
3155
  "metadata",
3182
- "sourcepath",
3183
- "checkonly",
3184
- "testlevel",
3185
- "runtests",
3186
- "ignoreerrors",
3187
- "ignorewarnings"
3156
+ "sourcepath"
3188
3157
  ],
3189
- "name": "validateddeployrequestid",
3158
+ "name": "manifest",
3190
3159
  "hasDynamicHelp": false,
3191
3160
  "multiple": false,
3192
3161
  "type": "option"
3193
3162
  },
3194
- "verbose": {
3195
- "description": "verbose",
3196
- "name": "verbose",
3197
- "allowNo": false,
3198
- "type": "boolean"
3199
- },
3200
3163
  "metadata": {
3201
3164
  "char": "m",
3202
3165
  "description": "metadata",
@@ -3209,57 +3172,17 @@
3209
3172
  "multiple": true,
3210
3173
  "type": "option"
3211
3174
  },
3212
- "sourcepath": {
3213
- "char": "p",
3214
- "description": "sourcePath",
3215
- "exclusive": [
3216
- "manifest",
3217
- "metadata"
3218
- ],
3219
- "name": "sourcepath",
3175
+ "packagenames": {
3176
+ "char": "n",
3177
+ "description": "packagenames",
3178
+ "name": "packagenames",
3220
3179
  "hasDynamicHelp": false,
3221
3180
  "multiple": true,
3222
3181
  "type": "option"
3223
3182
  },
3224
- "manifest": {
3225
- "char": "x",
3226
- "description": "flagsLong.manifest",
3227
- "exclusive": [
3228
- "metadata",
3229
- "sourcepath"
3230
- ],
3231
- "name": "manifest",
3232
- "hasDynamicHelp": false,
3233
- "multiple": false,
3234
- "type": "option"
3235
- },
3236
- "predestructivechanges": {
3237
- "dependsOn": [
3238
- "manifest"
3239
- ],
3240
- "description": "predestructivechanges",
3241
- "name": "predestructivechanges",
3242
- "hasDynamicHelp": false,
3243
- "multiple": false,
3244
- "type": "option"
3245
- },
3246
- "postdestructivechanges": {
3247
- "dependsOn": [
3248
- "manifest"
3249
- ],
3250
- "description": "postdestructivechanges",
3251
- "name": "postdestructivechanges",
3252
- "hasDynamicHelp": false,
3253
- "multiple": false,
3254
- "type": "option"
3255
- },
3256
3183
  "tracksource": {
3257
3184
  "char": "t",
3258
3185
  "description": "tracksource",
3259
- "exclusive": [
3260
- "checkonly",
3261
- "validateddeployrequestid"
3262
- ],
3263
3186
  "name": "tracksource",
3264
3187
  "allowNo": false,
3265
3188
  "type": "boolean"
@@ -3274,34 +3197,15 @@
3274
3197
  "allowNo": false,
3275
3198
  "type": "boolean"
3276
3199
  },
3277
- "resultsdir": {
3278
- "description": "resultsdir",
3279
- "name": "resultsdir",
3280
- "hasDynamicHelp": false,
3281
- "multiple": false,
3282
- "type": "option"
3283
- },
3284
- "coverageformatters": {
3285
- "description": "coverageformatters",
3286
- "name": "coverageformatters",
3287
- "hasDynamicHelp": false,
3288
- "multiple": true,
3289
- "type": "option"
3290
- },
3291
- "junit": {
3292
- "description": "junit",
3293
- "name": "junit",
3294
- "allowNo": false,
3295
- "type": "boolean"
3296
- },
3297
- "checkcoverage": {
3298
- "description": "Check Apex org coverage",
3299
- "name": "checkcoverage",
3200
+ "verbose": {
3201
+ "description": "verbose",
3202
+ "name": "verbose",
3300
3203
  "allowNo": false,
3301
3204
  "type": "boolean"
3302
3205
  },
3303
3206
  "debug": {
3304
- "description": "debug",
3207
+ "char": "d",
3208
+ "description": "debugMode",
3305
3209
  "name": "debug",
3306
3210
  "allowNo": false,
3307
3211
  "type": "boolean"
@@ -3313,6 +3217,12 @@
3313
3217
  "multiple": false,
3314
3218
  "type": "option"
3315
3219
  },
3220
+ "skipauth": {
3221
+ "description": "Skip authentication check when a default username is required",
3222
+ "name": "skipauth",
3223
+ "allowNo": false,
3224
+ "type": "boolean"
3225
+ },
3316
3226
  "target-org": {
3317
3227
  "aliases": [
3318
3228
  "targetusername",
@@ -3331,7 +3241,7 @@
3331
3241
  },
3332
3242
  "hasDynamicHelp": true,
3333
3243
  "hiddenAliases": [],
3334
- "id": "hardis:source:deploy",
3244
+ "id": "hardis:source:retrieve",
3335
3245
  "pluginAlias": "sfdx-hardis",
3336
3246
  "pluginName": "sfdx-hardis",
3337
3247
  "pluginType": "core",
@@ -3344,25 +3254,28 @@
3344
3254
  "commands",
3345
3255
  "hardis",
3346
3256
  "source",
3347
- "deploy.js"
3257
+ "retrieve.js"
3348
3258
  ],
3349
3259
  "aliasPermutations": [],
3350
3260
  "permutations": [
3351
- "hardis:source:deploy",
3352
- "source:hardis:deploy",
3353
- "source:deploy:hardis",
3354
- "hardis:deploy:source",
3355
- "deploy:hardis:source",
3356
- "deploy:source:hardis"
3261
+ "hardis:source:retrieve",
3262
+ "source:hardis:retrieve",
3263
+ "source:retrieve:hardis",
3264
+ "hardis:retrieve:source",
3265
+ "retrieve:hardis:source",
3266
+ "retrieve:source:hardis"
3357
3267
  ]
3358
3268
  },
3359
- "hardis:source:push": {
3269
+ "hardis:work:new": {
3360
3270
  "aliases": [],
3361
3271
  "args": {},
3362
- "description": "sfdx-hardis wrapper for sfdx force:source:push that displays tips to solve deployment errors.\n\n[![Assisted solving of Salesforce deployments errors](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/article-deployment-errors.jpg)](https://nicolas.vuillamy.fr/assisted-solving-of-salesforce-deployments-errors-47f3666a9ed0)\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_force_source.htm#cli_reference_force_source_push)\n",
3363
- "flags": {
3364
- "json": {
3365
- "description": "Format output as json.",
3272
+ "description": "Assisted menu to start working on a Salesforce task.\n\nAdvanced instructions in [Create New Task documentation](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-create-new-task/)\n\nAt the end of the command, it will allow you to work on either a scratch org or a sandbox, depending on your choices.\n\nUnder the hood, it can:\n\n- Make **git pull** to be up to date with target branch\n- Create **new git branch** with formatted name (you can override the choices using .sfdx-hardis.yml property **branchPrefixChoices**)\n- Create and initialize a scratch org or a source-tracked sandbox (config can be defined using `config/.sfdx-hardis.yml`):\n- (and for scratch org only for now):\n - **Install packages**\n - Use property `installedPackages`\n - **Push sources**\n - **Assign permission sets**\n - Use property `initPermissionSets`\n - **Run apex initialization scripts**\n - Use property `scratchOrgInitApexScripts`\n - **Load data**\n - Use property `dataPackages`\n\n## Override .sfdx-hardis.yml config\n\n### availableTargetBranches\n\nBy default, there is only one target branch (value of property **developmentBranch**).\n\nYou can define multiple target branches (for the future Pull Request) by setting the property **availableTargetBranches** in your .sfdx-hardis.yml file.\n\nThe selected branch will checked out and be used as base to create the user new feature branch.\n\nExamples:\n\n```yaml\navailableTargetBranches:\n - integration\n - preprod\n```\n\n```yaml\navailableTargetBranches:\n - integration,Select this to work from the integration branch (project stream)\n - preprod,Select this to work from the preprod branch (run stream)\n```\n\n### availableProjects\n\nYou can add a first question \"What is the project your task is for\" if you define a property **availableProjects**\n\nThe select will be used as first part of the git branch name. (ex: france/features/dev/JIRA123-webservice-get-account)\n\nExamples:\n\n```yaml\navailableProjects:\n - build\n - run\n - some-big-project\n - france\n - uk\n```\n\n```yaml\navailableProjects:\n - build,Select this to work on the build project\n - run,Select this to work on the run project\n - some-big-project,Select this to work on the some big project\n - france,Select this to work on the France project\n - uk,Select this to work on the UK project\n```\n\n### newTaskNameRegex\n\nIf you want to force a specific format for the task name, you can define a property **newTaskNameRegex** in your .sfdx-hardis.yml file.\n\nPlease also define a property **newTaskNameRegexExample** to give an example to the user.\n\nExample:\n\n```yaml\nnewTaskNameRegex: '^[A-Z]+-[0-9]+ .*'\nnewTaskNameRegexExample: 'MYPROJECT-123 Update account status validation rule'\n```\n\n### sharedDevSandboxes\n\nIf contributors can share dev sandboxes, let's not ask them if they want to overwrite their colleagues' changes when creating a new task :)\n",
3273
+ "examples": [
3274
+ "$ sf hardis:work:new"
3275
+ ],
3276
+ "flags": {
3277
+ "json": {
3278
+ "description": "Format output as json.",
3366
3279
  "helpGroup": "GLOBAL",
3367
3280
  "name": "json",
3368
3281
  "allowNo": false,
@@ -3376,45 +3289,37 @@
3376
3289
  "multiple": false,
3377
3290
  "type": "option"
3378
3291
  },
3379
- "forceoverwrite": {
3380
- "char": "f",
3381
- "description": "forceoverwrite",
3382
- "name": "forceoverwrite",
3292
+ "debug": {
3293
+ "char": "d",
3294
+ "description": "Activate debug mode (more logs)",
3295
+ "name": "debug",
3383
3296
  "allowNo": false,
3384
3297
  "type": "boolean"
3385
3298
  },
3386
- "wait": {
3387
- "char": "w",
3388
- "description": "wait",
3389
- "name": "wait",
3390
- "default": 60,
3299
+ "websocket": {
3300
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
3301
+ "name": "websocket",
3391
3302
  "hasDynamicHelp": false,
3392
3303
  "multiple": false,
3393
3304
  "type": "option"
3394
3305
  },
3395
- "ignorewarnings": {
3396
- "char": "g",
3397
- "description": "ignorewarnings",
3398
- "name": "ignorewarnings",
3399
- "allowNo": false,
3400
- "type": "boolean"
3401
- },
3402
- "quiet": {
3403
- "description": "quiet",
3404
- "name": "quiet",
3405
- "allowNo": false,
3406
- "type": "boolean"
3407
- },
3408
- "debug": {
3409
- "description": "debug",
3410
- "name": "debug",
3306
+ "skipauth": {
3307
+ "description": "Skip authentication check when a default username is required",
3308
+ "name": "skipauth",
3411
3309
  "allowNo": false,
3412
3310
  "type": "boolean"
3413
3311
  },
3414
- "websocket": {
3415
- "description": "websocket",
3416
- "name": "websocket",
3417
- "hasDynamicHelp": false,
3312
+ "target-dev-hub": {
3313
+ "aliases": [
3314
+ "targetdevhubusername"
3315
+ ],
3316
+ "char": "v",
3317
+ "deprecateAliases": true,
3318
+ "name": "target-dev-hub",
3319
+ "noCacheDefault": true,
3320
+ "required": false,
3321
+ "summary": "Username or alias of the Dev Hub org.",
3322
+ "hasDynamicHelp": true,
3418
3323
  "multiple": false,
3419
3324
  "type": "option"
3420
3325
  },
@@ -3427,8 +3332,7 @@
3427
3332
  "deprecateAliases": true,
3428
3333
  "name": "target-org",
3429
3334
  "noCacheDefault": true,
3430
- "required": true,
3431
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
3335
+ "summary": "Username or alias of the target org.",
3432
3336
  "hasDynamicHelp": true,
3433
3337
  "multiple": false,
3434
3338
  "type": "option"
@@ -3436,36 +3340,39 @@
3436
3340
  },
3437
3341
  "hasDynamicHelp": true,
3438
3342
  "hiddenAliases": [],
3439
- "id": "hardis:source:push",
3343
+ "id": "hardis:work:new",
3440
3344
  "pluginAlias": "sfdx-hardis",
3441
3345
  "pluginName": "sfdx-hardis",
3442
3346
  "pluginType": "core",
3443
3347
  "strict": true,
3444
3348
  "enableJsonFlag": true,
3349
+ "title": "New work task",
3445
3350
  "requiresProject": true,
3446
3351
  "isESM": true,
3447
3352
  "relativePath": [
3448
3353
  "lib",
3449
3354
  "commands",
3450
3355
  "hardis",
3451
- "source",
3452
- "push.js"
3356
+ "work",
3357
+ "new.js"
3453
3358
  ],
3454
3359
  "aliasPermutations": [],
3455
3360
  "permutations": [
3456
- "hardis:source:push",
3457
- "source:hardis:push",
3458
- "source:push:hardis",
3459
- "hardis:push:source",
3460
- "push:hardis:source",
3461
- "push:source:hardis"
3361
+ "hardis:work:new",
3362
+ "work:hardis:new",
3363
+ "work:new:hardis",
3364
+ "hardis:new:work",
3365
+ "new:hardis:work",
3366
+ "new:work:hardis"
3462
3367
  ]
3463
3368
  },
3464
- "hardis:source:retrieve": {
3369
+ "hardis:work:refresh": {
3465
3370
  "aliases": [],
3466
3371
  "args": {},
3467
- "description": "sfdx-hardis wrapper for sfdx force:source:retrieve\n\n- If no retrieve constraint is sent, as assisted menu will request the list of metadatas to retrieve\n- If no org is selected , an assisted menu will request the user to choose one\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_force_source.htm#cli_reference_force_source_retrieve)\n",
3468
- "examples": [],
3372
+ "description": "Make my local branch and my scratch org up to date with the most recent sources",
3373
+ "examples": [
3374
+ "$ sf hardis:work:refresh"
3375
+ ],
3469
3376
  "flags": {
3470
3377
  "json": {
3471
3378
  "description": "Format output as json.",
@@ -3482,98 +3389,22 @@
3482
3389
  "multiple": false,
3483
3390
  "type": "option"
3484
3391
  },
3485
- "apiversion": {
3486
- "char": "a",
3487
- "description": "Override the api version used for api requests made by this command",
3488
- "name": "apiversion",
3489
- "hasDynamicHelp": false,
3490
- "multiple": false,
3491
- "type": "option"
3492
- },
3493
- "sourcepath": {
3494
- "char": "p",
3495
- "description": "sourcePath",
3496
- "exclusive": [
3497
- "manifest",
3498
- "metadata"
3499
- ],
3500
- "name": "sourcepath",
3501
- "hasDynamicHelp": false,
3502
- "multiple": true,
3503
- "type": "option"
3504
- },
3505
- "wait": {
3506
- "char": "w",
3507
- "description": "wait",
3508
- "name": "wait",
3509
- "hasDynamicHelp": false,
3510
- "multiple": false,
3511
- "type": "option"
3512
- },
3513
- "manifest": {
3514
- "char": "x",
3515
- "description": "manifest",
3516
- "exclusive": [
3517
- "metadata",
3518
- "sourcepath"
3519
- ],
3520
- "name": "manifest",
3521
- "hasDynamicHelp": false,
3522
- "multiple": false,
3523
- "type": "option"
3524
- },
3525
- "metadata": {
3526
- "char": "m",
3527
- "description": "metadata",
3528
- "exclusive": [
3529
- "manifest",
3530
- "sourcepath"
3531
- ],
3532
- "name": "metadata",
3533
- "hasDynamicHelp": false,
3534
- "multiple": true,
3535
- "type": "option"
3536
- },
3537
- "packagenames": {
3392
+ "nopull": {
3538
3393
  "char": "n",
3539
- "description": "packagenames",
3540
- "name": "packagenames",
3541
- "hasDynamicHelp": false,
3542
- "multiple": true,
3543
- "type": "option"
3544
- },
3545
- "tracksource": {
3546
- "char": "t",
3547
- "description": "tracksource",
3548
- "name": "tracksource",
3549
- "allowNo": false,
3550
- "type": "boolean"
3551
- },
3552
- "forceoverwrite": {
3553
- "char": "f",
3554
- "dependsOn": [
3555
- "tracksource"
3556
- ],
3557
- "description": "forceoverwrite",
3558
- "name": "forceoverwrite",
3559
- "allowNo": false,
3560
- "type": "boolean"
3561
- },
3562
- "verbose": {
3563
- "description": "verbose",
3564
- "name": "verbose",
3394
+ "description": "No scratch pull before save (careful if you use that!)",
3395
+ "name": "nopull",
3565
3396
  "allowNo": false,
3566
3397
  "type": "boolean"
3567
3398
  },
3568
3399
  "debug": {
3569
3400
  "char": "d",
3570
- "description": "debugMode",
3401
+ "description": "Activate debug mode (more logs)",
3571
3402
  "name": "debug",
3572
3403
  "allowNo": false,
3573
3404
  "type": "boolean"
3574
3405
  },
3575
3406
  "websocket": {
3576
- "description": "websocket",
3407
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
3577
3408
  "name": "websocket",
3578
3409
  "hasDynamicHelp": false,
3579
3410
  "multiple": false,
@@ -3603,37 +3434,38 @@
3603
3434
  },
3604
3435
  "hasDynamicHelp": true,
3605
3436
  "hiddenAliases": [],
3606
- "id": "hardis:source:retrieve",
3437
+ "id": "hardis:work:refresh",
3607
3438
  "pluginAlias": "sfdx-hardis",
3608
3439
  "pluginName": "sfdx-hardis",
3609
3440
  "pluginType": "core",
3610
3441
  "strict": true,
3611
3442
  "enableJsonFlag": true,
3443
+ "title": "Refresh work task",
3612
3444
  "requiresProject": true,
3613
3445
  "isESM": true,
3614
3446
  "relativePath": [
3615
3447
  "lib",
3616
3448
  "commands",
3617
3449
  "hardis",
3618
- "source",
3619
- "retrieve.js"
3450
+ "work",
3451
+ "refresh.js"
3620
3452
  ],
3621
3453
  "aliasPermutations": [],
3622
3454
  "permutations": [
3623
- "hardis:source:retrieve",
3624
- "source:hardis:retrieve",
3625
- "source:retrieve:hardis",
3626
- "hardis:retrieve:source",
3627
- "retrieve:hardis:source",
3628
- "retrieve:source:hardis"
3455
+ "hardis:work:refresh",
3456
+ "work:hardis:refresh",
3457
+ "work:refresh:hardis",
3458
+ "hardis:refresh:work",
3459
+ "refresh:hardis:work",
3460
+ "refresh:work:hardis"
3629
3461
  ]
3630
3462
  },
3631
- "hardis:work:new": {
3463
+ "hardis:work:resetselection": {
3632
3464
  "aliases": [],
3633
3465
  "args": {},
3634
- "description": "Assisted menu to start working on a Salesforce task.\n\nAdvanced instructions in [Create New Task documentation](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-create-new-task/)\n\nAt the end of the command, it will allow you to work on either a scratch org or a sandbox, depending on your choices.\n\nUnder the hood, it can:\n\n- Make **git pull** to be up to date with target branch\n- Create **new git branch** with formatted name (you can override the choices using .sfdx-hardis.yml property **branchPrefixChoices**)\n- Create and initialize a scratch org or a source-tracked sandbox (config can be defined using `config/.sfdx-hardis.yml`):\n- (and for scratch org only for now):\n - **Install packages**\n - Use property `installedPackages`\n - **Push sources**\n - **Assign permission sets**\n - Use property `initPermissionSets`\n - **Run apex initialization scripts**\n - Use property `scratchOrgInitApexScripts`\n - **Load data**\n - Use property `dataPackages`\n\n## Override .sfdx-hardis.yml config\n\n### availableTargetBranches\n\nBy default, there is only one target branch (value of property **developmentBranch**).\n\nYou can define multiple target branches (for the future Pull Request) by setting the property **availableTargetBranches** in your .sfdx-hardis.yml file.\n\nThe selected branch will checked out and be used as base to create the user new feature branch.\n\nExamples:\n\n```yaml\navailableTargetBranches:\n - integration\n - preprod\n```\n\n```yaml\navailableTargetBranches:\n - integration,Select this to work from the integration branch (project stream)\n - preprod,Select this to work from the preprod branch (run stream)\n```\n\n### availableProjects\n\nYou can add a first question \"What is the project your task is for\" if you define a property **availableProjects**\n\nThe select will be used as first part of the git branch name. (ex: france/features/dev/JIRA123-webservice-get-account)\n\nExamples:\n\n```yaml\navailableProjects:\n - build\n - run\n - some-big-project\n - france\n - uk\n```\n\n```yaml\navailableProjects:\n - build,Select this to work on the build project\n - run,Select this to work on the run project\n - some-big-project,Select this to work on the some big project\n - france,Select this to work on the France project\n - uk,Select this to work on the UK project\n```\n\n### newTaskNameRegex\n\nIf you want to force a specific format for the task name, you can define a property **newTaskNameRegex** in your .sfdx-hardis.yml file.\n\nPlease also define a property **newTaskNameRegexExample** to give an example to the user.\n\nExample:\n\n```yaml\nnewTaskNameRegex: '^[A-Z]+-[0-9]+ .*'\nnewTaskNameRegexExample: 'MYPROJECT-123 Update account status validation rule'\n```\n\n### sharedDevSandboxes\n\nIf contributors can share dev sandboxes, let's not ask them if they want to overwrite their colleagues' changes when creating a new task :)\n",
3466
+ "description": "Resets the selection that we want to add in the merge request\n\nCalls a soft git reset behind the hood \n",
3635
3467
  "examples": [
3636
- "$ sf hardis:work:new"
3468
+ "$ sf hardis:work:resetsave"
3637
3469
  ],
3638
3470
  "flags": {
3639
3471
  "json": {
@@ -3671,20 +3503,6 @@
3671
3503
  "allowNo": false,
3672
3504
  "type": "boolean"
3673
3505
  },
3674
- "target-dev-hub": {
3675
- "aliases": [
3676
- "targetdevhubusername"
3677
- ],
3678
- "char": "v",
3679
- "deprecateAliases": true,
3680
- "name": "target-dev-hub",
3681
- "noCacheDefault": true,
3682
- "required": false,
3683
- "summary": "Username or alias of the Dev Hub org.",
3684
- "hasDynamicHelp": true,
3685
- "multiple": false,
3686
- "type": "option"
3687
- },
3688
3506
  "target-org": {
3689
3507
  "aliases": [
3690
3508
  "targetusername",
@@ -3694,7 +3512,8 @@
3694
3512
  "deprecateAliases": true,
3695
3513
  "name": "target-org",
3696
3514
  "noCacheDefault": true,
3697
- "summary": "Username or alias of the target org.",
3515
+ "required": true,
3516
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
3698
3517
  "hasDynamicHelp": true,
3699
3518
  "multiple": false,
3700
3519
  "type": "option"
@@ -3702,13 +3521,13 @@
3702
3521
  },
3703
3522
  "hasDynamicHelp": true,
3704
3523
  "hiddenAliases": [],
3705
- "id": "hardis:work:new",
3524
+ "id": "hardis:work:resetselection",
3706
3525
  "pluginAlias": "sfdx-hardis",
3707
3526
  "pluginName": "sfdx-hardis",
3708
3527
  "pluginType": "core",
3709
3528
  "strict": true,
3710
3529
  "enableJsonFlag": true,
3711
- "title": "New work task",
3530
+ "title": "Select again",
3712
3531
  "requiresProject": true,
3713
3532
  "isESM": true,
3714
3533
  "relativePath": [
@@ -3716,24 +3535,25 @@
3716
3535
  "commands",
3717
3536
  "hardis",
3718
3537
  "work",
3719
- "new.js"
3538
+ "resetselection.js"
3720
3539
  ],
3721
3540
  "aliasPermutations": [],
3722
3541
  "permutations": [
3723
- "hardis:work:new",
3724
- "work:hardis:new",
3725
- "work:new:hardis",
3726
- "hardis:new:work",
3727
- "new:hardis:work",
3728
- "new:work:hardis"
3542
+ "hardis:work:resetselection",
3543
+ "work:hardis:resetselection",
3544
+ "work:resetselection:hardis",
3545
+ "hardis:resetselection:work",
3546
+ "resetselection:hardis:work",
3547
+ "resetselection:work:hardis"
3729
3548
  ]
3730
3549
  },
3731
- "hardis:work:refresh": {
3550
+ "hardis:work:save": {
3732
3551
  "aliases": [],
3733
3552
  "args": {},
3734
- "description": "Make my local branch and my scratch org up to date with the most recent sources",
3553
+ "description": "When a work task is completed, guide user to create a merge request\n\nAdvanced instructions in [Publish a task](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-publish-task/)\n\n- Generate package-xml diff using sfdx-git-delta\n- Automatically update `manifest/package.xml` and `manifest/destructiveChanges.xml` according to the committed updates\n- Automatically Clean XML files using `.sfdx-hardis.yml` properties\n - `autocleantypes`: List of auto-performed sources cleanings, available on command [hardis:project:clean:references](https://sfdx-hardis.cloudity.com/hardis/project/clean/references/)\n - `autoRemoveUserPermissions`: List of userPermission to automatically remove from profile metadatas\n\nExample:\n\n```yaml\nautoCleanTypes:\n - checkPermissions\n - destructivechanges\n - datadotcom\n - minimizeProfiles\n - listViewsMine\nautoRemoveUserPermissions:\n - EnableCommunityAppLauncher\n - FieldServiceAccess\n - OmnichannelInventorySync\n - SendExternalEmailAvailable\n - UseOmnichannelInventoryAPIs\n - ViewDataLeakageEvents\n - ViewMLModels\n - ViewPlatformEvents\n - WorkCalibrationUser\n```\n\n- Push commit to server\n ",
3735
3554
  "examples": [
3736
- "$ sf hardis:work:refresh"
3555
+ "$ sf hardis:work:task:save",
3556
+ "$ sf hardis:work:task:save --nopull --nogit --noclean"
3737
3557
  ],
3738
3558
  "flags": {
3739
3559
  "json": {
@@ -3753,24 +3573,51 @@
3753
3573
  },
3754
3574
  "nopull": {
3755
3575
  "char": "n",
3756
- "description": "No scratch pull before save (careful if you use that!)",
3576
+ "description": "No scratch pull before save",
3757
3577
  "name": "nopull",
3758
3578
  "allowNo": false,
3759
3579
  "type": "boolean"
3760
3580
  },
3761
- "debug": {
3762
- "char": "d",
3763
- "description": "Activate debug mode (more logs)",
3764
- "name": "debug",
3581
+ "nogit": {
3582
+ "char": "g",
3583
+ "description": "No automated git operations",
3584
+ "name": "nogit",
3765
3585
  "allowNo": false,
3766
3586
  "type": "boolean"
3767
3587
  },
3768
- "websocket": {
3769
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
3770
- "name": "websocket",
3771
- "hasDynamicHelp": false,
3772
- "multiple": false,
3773
- "type": "option"
3588
+ "noclean": {
3589
+ "char": "c",
3590
+ "description": "No cleaning of local sources",
3591
+ "name": "noclean",
3592
+ "allowNo": false,
3593
+ "type": "boolean"
3594
+ },
3595
+ "auto": {
3596
+ "description": "No user prompts (when called from CI for example)",
3597
+ "name": "auto",
3598
+ "allowNo": false,
3599
+ "type": "boolean"
3600
+ },
3601
+ "targetbranch": {
3602
+ "description": "Name of the Merge Request target branch. Will be guessed or prompted if not provided.",
3603
+ "name": "targetbranch",
3604
+ "hasDynamicHelp": false,
3605
+ "multiple": false,
3606
+ "type": "option"
3607
+ },
3608
+ "debug": {
3609
+ "char": "d",
3610
+ "description": "Activate debug mode (more logs)",
3611
+ "name": "debug",
3612
+ "allowNo": false,
3613
+ "type": "boolean"
3614
+ },
3615
+ "websocket": {
3616
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
3617
+ "name": "websocket",
3618
+ "hasDynamicHelp": false,
3619
+ "multiple": false,
3620
+ "type": "option"
3774
3621
  },
3775
3622
  "skipauth": {
3776
3623
  "description": "Skip authentication check when a default username is required",
@@ -3796,38 +3643,41 @@
3796
3643
  },
3797
3644
  "hasDynamicHelp": true,
3798
3645
  "hiddenAliases": [],
3799
- "id": "hardis:work:refresh",
3646
+ "id": "hardis:work:save",
3800
3647
  "pluginAlias": "sfdx-hardis",
3801
3648
  "pluginName": "sfdx-hardis",
3802
3649
  "pluginType": "core",
3803
3650
  "strict": true,
3804
3651
  "enableJsonFlag": true,
3805
- "title": "Refresh work task",
3652
+ "title": "Save work task",
3806
3653
  "requiresProject": true,
3654
+ "requiresSfdxPlugins": [
3655
+ "sfdx-git-delta"
3656
+ ],
3807
3657
  "isESM": true,
3808
3658
  "relativePath": [
3809
3659
  "lib",
3810
3660
  "commands",
3811
3661
  "hardis",
3812
3662
  "work",
3813
- "refresh.js"
3663
+ "save.js"
3814
3664
  ],
3815
3665
  "aliasPermutations": [],
3816
3666
  "permutations": [
3817
- "hardis:work:refresh",
3818
- "work:hardis:refresh",
3819
- "work:refresh:hardis",
3820
- "hardis:refresh:work",
3821
- "refresh:hardis:work",
3822
- "refresh:work:hardis"
3667
+ "hardis:work:save",
3668
+ "work:hardis:save",
3669
+ "work:save:hardis",
3670
+ "hardis:save:work",
3671
+ "save:hardis:work",
3672
+ "save:work:hardis"
3823
3673
  ]
3824
3674
  },
3825
- "hardis:work:resetselection": {
3675
+ "hardis:work:ws": {
3826
3676
  "aliases": [],
3827
3677
  "args": {},
3828
- "description": "Resets the selection that we want to add in the merge request\n\nCalls a soft git reset behind the hood \n",
3678
+ "description": "Technical calls to WebSocket functions",
3829
3679
  "examples": [
3830
- "$ sf hardis:work:resetsave"
3680
+ "$ sf hardis:work:ws --event refreshStatus"
3831
3681
  ],
3832
3682
  "flags": {
3833
3683
  "json": {
@@ -3845,6 +3695,14 @@
3845
3695
  "multiple": false,
3846
3696
  "type": "option"
3847
3697
  },
3698
+ "event": {
3699
+ "char": "e",
3700
+ "description": "WebSocket event",
3701
+ "name": "event",
3702
+ "hasDynamicHelp": false,
3703
+ "multiple": false,
3704
+ "type": "option"
3705
+ },
3848
3706
  "debug": {
3849
3707
  "char": "d",
3850
3708
  "description": "Activate debug mode (more logs)",
@@ -3864,58 +3722,42 @@
3864
3722
  "name": "skipauth",
3865
3723
  "allowNo": false,
3866
3724
  "type": "boolean"
3867
- },
3868
- "target-org": {
3869
- "aliases": [
3870
- "targetusername",
3871
- "u"
3872
- ],
3873
- "char": "o",
3874
- "deprecateAliases": true,
3875
- "name": "target-org",
3876
- "noCacheDefault": true,
3877
- "required": true,
3878
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
3879
- "hasDynamicHelp": true,
3880
- "multiple": false,
3881
- "type": "option"
3882
3725
  }
3883
3726
  },
3884
- "hasDynamicHelp": true,
3727
+ "hasDynamicHelp": false,
3885
3728
  "hiddenAliases": [],
3886
- "id": "hardis:work:resetselection",
3729
+ "id": "hardis:work:ws",
3887
3730
  "pluginAlias": "sfdx-hardis",
3888
3731
  "pluginName": "sfdx-hardis",
3889
3732
  "pluginType": "core",
3890
3733
  "strict": true,
3891
3734
  "enableJsonFlag": true,
3892
- "title": "Select again",
3893
- "requiresProject": true,
3735
+ "title": "WebSocket operations",
3736
+ "requiresProject": false,
3894
3737
  "isESM": true,
3895
3738
  "relativePath": [
3896
3739
  "lib",
3897
3740
  "commands",
3898
3741
  "hardis",
3899
3742
  "work",
3900
- "resetselection.js"
3743
+ "ws.js"
3901
3744
  ],
3902
3745
  "aliasPermutations": [],
3903
3746
  "permutations": [
3904
- "hardis:work:resetselection",
3905
- "work:hardis:resetselection",
3906
- "work:resetselection:hardis",
3907
- "hardis:resetselection:work",
3908
- "resetselection:hardis:work",
3909
- "resetselection:work:hardis"
3747
+ "hardis:work:ws",
3748
+ "work:hardis:ws",
3749
+ "work:ws:hardis",
3750
+ "hardis:ws:work",
3751
+ "ws:hardis:work",
3752
+ "ws:work:hardis"
3910
3753
  ]
3911
3754
  },
3912
- "hardis:work:save": {
3755
+ "hardis:scratch:create": {
3913
3756
  "aliases": [],
3914
3757
  "args": {},
3915
- "description": "When a work task is completed, guide user to create a merge request\n\nAdvanced instructions in [Publish a task](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-publish-task/)\n\n- Generate package-xml diff using sfdx-git-delta\n- Automatically update `manifest/package.xml` and `manifest/destructiveChanges.xml` according to the committed updates\n- Automatically Clean XML files using `.sfdx-hardis.yml` properties\n - `autocleantypes`: List of auto-performed sources cleanings, available on command [hardis:project:clean:references](https://sfdx-hardis.cloudity.com/hardis/project/clean/references/)\n - `autoRemoveUserPermissions`: List of userPermission to automatically remove from profile metadatas\n\nExample:\n\n```yaml\nautoCleanTypes:\n - checkPermissions\n - destructivechanges\n - datadotcom\n - minimizeProfiles\n - listViewsMine\nautoRemoveUserPermissions:\n - EnableCommunityAppLauncher\n - FieldServiceAccess\n - OmnichannelInventorySync\n - SendExternalEmailAvailable\n - UseOmnichannelInventoryAPIs\n - ViewDataLeakageEvents\n - ViewMLModels\n - ViewPlatformEvents\n - WorkCalibrationUser\n```\n\n- Push commit to server\n ",
3758
+ "description": "Create and initialize a scratch org or a source-tracked sandbox (config can be defined using `config/.sfdx-hardis.yml`):\n\n- **Install packages**\n - Use property `installedPackages`\n- **Push sources**\n- **Assign permission sets**\n - Use property `initPermissionSets`\n- **Run apex initialization scripts**\n - Use property `scratchOrgInitApexScripts`\n- **Load data**\n - Use property `dataPackages`\n ",
3916
3759
  "examples": [
3917
- "$ sf hardis:work:task:save",
3918
- "$ sf hardis:work:task:save --nopull --nogit --noclean"
3760
+ "$ sf hardis:scratch:create"
3919
3761
  ],
3920
3762
  "flags": {
3921
3763
  "json": {
@@ -3933,40 +3775,19 @@
3933
3775
  "multiple": false,
3934
3776
  "type": "option"
3935
3777
  },
3936
- "nopull": {
3778
+ "forcenew": {
3937
3779
  "char": "n",
3938
- "description": "No scratch pull before save",
3939
- "name": "nopull",
3940
- "allowNo": false,
3941
- "type": "boolean"
3942
- },
3943
- "nogit": {
3944
- "char": "g",
3945
- "description": "No automated git operations",
3946
- "name": "nogit",
3947
- "allowNo": false,
3948
- "type": "boolean"
3949
- },
3950
- "noclean": {
3951
- "char": "c",
3952
- "description": "No cleaning of local sources",
3953
- "name": "noclean",
3780
+ "description": "If an existing scratch org exists, do not reuse it but create a new one",
3781
+ "name": "forcenew",
3954
3782
  "allowNo": false,
3955
3783
  "type": "boolean"
3956
3784
  },
3957
- "auto": {
3958
- "description": "No user prompts (when called from CI for example)",
3959
- "name": "auto",
3785
+ "pool": {
3786
+ "description": "Creates the scratch org for a scratch org pool",
3787
+ "name": "pool",
3960
3788
  "allowNo": false,
3961
3789
  "type": "boolean"
3962
3790
  },
3963
- "targetbranch": {
3964
- "description": "Name of the Merge Request target branch. Will be guessed or prompted if not provided.",
3965
- "name": "targetbranch",
3966
- "hasDynamicHelp": false,
3967
- "multiple": false,
3968
- "type": "option"
3969
- },
3970
3791
  "debug": {
3971
3792
  "char": "d",
3972
3793
  "description": "Activate debug mode (more logs)",
@@ -3987,17 +3808,16 @@
3987
3808
  "allowNo": false,
3988
3809
  "type": "boolean"
3989
3810
  },
3990
- "target-org": {
3811
+ "target-dev-hub": {
3991
3812
  "aliases": [
3992
- "targetusername",
3993
- "u"
3813
+ "targetdevhubusername"
3994
3814
  ],
3995
- "char": "o",
3815
+ "char": "v",
3996
3816
  "deprecateAliases": true,
3997
- "name": "target-org",
3817
+ "name": "target-dev-hub",
3998
3818
  "noCacheDefault": true,
3999
3819
  "required": true,
4000
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
3820
+ "summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
4001
3821
  "hasDynamicHelp": true,
4002
3822
  "multiple": false,
4003
3823
  "type": "option"
@@ -4005,41 +3825,42 @@
4005
3825
  },
4006
3826
  "hasDynamicHelp": true,
4007
3827
  "hiddenAliases": [],
4008
- "id": "hardis:work:save",
3828
+ "id": "hardis:scratch:create",
4009
3829
  "pluginAlias": "sfdx-hardis",
4010
3830
  "pluginName": "sfdx-hardis",
4011
3831
  "pluginType": "core",
4012
3832
  "strict": true,
4013
3833
  "enableJsonFlag": true,
4014
- "title": "Save work task",
3834
+ "title": "Create and initialize scratch org",
4015
3835
  "requiresProject": true,
4016
3836
  "requiresSfdxPlugins": [
4017
- "sfdx-git-delta"
3837
+ "sfdmu",
3838
+ "texei-sfdx-plugin"
4018
3839
  ],
4019
3840
  "isESM": true,
4020
3841
  "relativePath": [
4021
3842
  "lib",
4022
3843
  "commands",
4023
3844
  "hardis",
4024
- "work",
4025
- "save.js"
3845
+ "scratch",
3846
+ "create.js"
4026
3847
  ],
4027
3848
  "aliasPermutations": [],
4028
3849
  "permutations": [
4029
- "hardis:work:save",
4030
- "work:hardis:save",
4031
- "work:save:hardis",
4032
- "hardis:save:work",
4033
- "save:hardis:work",
4034
- "save:work:hardis"
3850
+ "hardis:scratch:create",
3851
+ "scratch:hardis:create",
3852
+ "scratch:create:hardis",
3853
+ "hardis:create:scratch",
3854
+ "create:hardis:scratch",
3855
+ "create:scratch:hardis"
4035
3856
  ]
4036
3857
  },
4037
- "hardis:work:ws": {
3858
+ "hardis:scratch:delete": {
4038
3859
  "aliases": [],
4039
3860
  "args": {},
4040
- "description": "Technical calls to WebSocket functions",
3861
+ "description": "Assisted menu to delete scratch orgs associated to a DevHub",
4041
3862
  "examples": [
4042
- "$ sf hardis:work:ws --event refreshStatus"
3863
+ "$ sf hardis:scratch:delete"
4043
3864
  ],
4044
3865
  "flags": {
4045
3866
  "json": {
@@ -4057,14 +3878,6 @@
4057
3878
  "multiple": false,
4058
3879
  "type": "option"
4059
3880
  },
4060
- "event": {
4061
- "char": "e",
4062
- "description": "WebSocket event",
4063
- "name": "event",
4064
- "hasDynamicHelp": false,
4065
- "multiple": false,
4066
- "type": "option"
4067
- },
4068
3881
  "debug": {
4069
3882
  "char": "d",
4070
3883
  "description": "Activate debug mode (more logs)",
@@ -4084,42 +3897,55 @@
4084
3897
  "name": "skipauth",
4085
3898
  "allowNo": false,
4086
3899
  "type": "boolean"
3900
+ },
3901
+ "target-dev-hub": {
3902
+ "aliases": [
3903
+ "targetdevhubusername"
3904
+ ],
3905
+ "char": "v",
3906
+ "deprecateAliases": true,
3907
+ "name": "target-dev-hub",
3908
+ "noCacheDefault": true,
3909
+ "required": true,
3910
+ "summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
3911
+ "hasDynamicHelp": true,
3912
+ "multiple": false,
3913
+ "type": "option"
4087
3914
  }
4088
3915
  },
4089
- "hasDynamicHelp": false,
3916
+ "hasDynamicHelp": true,
4090
3917
  "hiddenAliases": [],
4091
- "id": "hardis:work:ws",
3918
+ "id": "hardis:scratch:delete",
4092
3919
  "pluginAlias": "sfdx-hardis",
4093
3920
  "pluginName": "sfdx-hardis",
4094
3921
  "pluginType": "core",
4095
3922
  "strict": true,
4096
3923
  "enableJsonFlag": true,
4097
- "title": "WebSocket operations",
4098
- "requiresProject": false,
3924
+ "title": "Delete scratch orgs(s)",
4099
3925
  "isESM": true,
4100
3926
  "relativePath": [
4101
3927
  "lib",
4102
3928
  "commands",
4103
3929
  "hardis",
4104
- "work",
4105
- "ws.js"
3930
+ "scratch",
3931
+ "delete.js"
4106
3932
  ],
4107
3933
  "aliasPermutations": [],
4108
3934
  "permutations": [
4109
- "hardis:work:ws",
4110
- "work:hardis:ws",
4111
- "work:ws:hardis",
4112
- "hardis:ws:work",
4113
- "ws:hardis:work",
4114
- "ws:work:hardis"
3935
+ "hardis:scratch:delete",
3936
+ "scratch:hardis:delete",
3937
+ "scratch:delete:hardis",
3938
+ "hardis:delete:scratch",
3939
+ "delete:hardis:scratch",
3940
+ "delete:scratch:hardis"
4115
3941
  ]
4116
3942
  },
4117
- "hardis:doc:extract:permsetgroups": {
3943
+ "hardis:scratch:pull": {
4118
3944
  "aliases": [],
4119
3945
  "args": {},
4120
- "description": "Generate markdown files with project documentation",
3946
+ "description": "This commands pulls the updates you performed in your scratch or sandbox org, into your local files\n\nThen, you probably want to stage and commit the files containing the updates you want to keep, as explained in this video.\n\n<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/Ik6whtflmfY\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n\n- Calls `sf project retrieve start` under the hood\n- If there are errors, proposes to automatically add erroneous item in `.forceignore`, then pull again\n- If you don't see your updated items in the results, you can manually retrieve [using SF Extension **Org Browser** or **Salesforce CLI**](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-publish-task/#retrieve-metadatas)\n- If you want to always retrieve sources like CustomApplication that are not always detected as updates by project:retrieve:start , you can define property **autoRetrieveWhenPull** in .sfdx-hardis.yml\n\nExample:\n```yaml\nautoRetrieveWhenPull:\n - CustomApplication:MyCustomApplication\n - CustomApplication:MyOtherCustomApplication\n - CustomApplication:MyThirdCustomApp\n```\n",
4121
3947
  "examples": [
4122
- "$ sf hardis:doc:extract:permsetgroups"
3948
+ "$ sf hardis:scratch:pull"
4123
3949
  ],
4124
3950
  "flags": {
4125
3951
  "json": {
@@ -4137,14 +3963,6 @@
4137
3963
  "multiple": false,
4138
3964
  "type": "option"
4139
3965
  },
4140
- "outputfile": {
4141
- "char": "f",
4142
- "description": "Force the path and name of output report file. Must end with .csv",
4143
- "name": "outputfile",
4144
- "hasDynamicHelp": false,
4145
- "multiple": false,
4146
- "type": "option"
4147
- },
4148
3966
  "debug": {
4149
3967
  "char": "d",
4150
3968
  "description": "Activate debug mode (more logs)",
@@ -4164,18 +3982,200 @@
4164
3982
  "name": "skipauth",
4165
3983
  "allowNo": false,
4166
3984
  "type": "boolean"
4167
- }
4168
- },
4169
- "hasDynamicHelp": false,
4170
- "hiddenAliases": [],
4171
- "id": "hardis:doc:extract:permsetgroups",
4172
- "pluginAlias": "sfdx-hardis",
4173
- "pluginName": "sfdx-hardis",
4174
- "pluginType": "core",
4175
- "strict": true,
4176
- "enableJsonFlag": true,
4177
- "title": "Generate project documentation",
4178
- "requiresProject": true,
3985
+ },
3986
+ "target-org": {
3987
+ "aliases": [
3988
+ "targetusername",
3989
+ "u"
3990
+ ],
3991
+ "char": "o",
3992
+ "deprecateAliases": true,
3993
+ "name": "target-org",
3994
+ "noCacheDefault": true,
3995
+ "required": true,
3996
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
3997
+ "hasDynamicHelp": true,
3998
+ "multiple": false,
3999
+ "type": "option"
4000
+ }
4001
+ },
4002
+ "hasDynamicHelp": true,
4003
+ "hiddenAliases": [],
4004
+ "id": "hardis:scratch:pull",
4005
+ "pluginAlias": "sfdx-hardis",
4006
+ "pluginName": "sfdx-hardis",
4007
+ "pluginType": "core",
4008
+ "strict": true,
4009
+ "enableJsonFlag": true,
4010
+ "title": "Scratch PULL",
4011
+ "requiresProject": true,
4012
+ "isESM": true,
4013
+ "relativePath": [
4014
+ "lib",
4015
+ "commands",
4016
+ "hardis",
4017
+ "scratch",
4018
+ "pull.js"
4019
+ ],
4020
+ "aliasPermutations": [],
4021
+ "permutations": [
4022
+ "hardis:scratch:pull",
4023
+ "scratch:hardis:pull",
4024
+ "scratch:pull:hardis",
4025
+ "hardis:pull:scratch",
4026
+ "pull:hardis:scratch",
4027
+ "pull:scratch:hardis"
4028
+ ]
4029
+ },
4030
+ "hardis:scratch:push": {
4031
+ "aliases": [],
4032
+ "args": {},
4033
+ "description": "Push local files to scratch org\n\nCalls `sf project deploy start` under the hood\n",
4034
+ "examples": [
4035
+ "$ sf hardis:scratch:push"
4036
+ ],
4037
+ "flags": {
4038
+ "json": {
4039
+ "description": "Format output as json.",
4040
+ "helpGroup": "GLOBAL",
4041
+ "name": "json",
4042
+ "allowNo": false,
4043
+ "type": "boolean"
4044
+ },
4045
+ "flags-dir": {
4046
+ "helpGroup": "GLOBAL",
4047
+ "name": "flags-dir",
4048
+ "summary": "Import flag values from a directory.",
4049
+ "hasDynamicHelp": false,
4050
+ "multiple": false,
4051
+ "type": "option"
4052
+ },
4053
+ "debug": {
4054
+ "char": "d",
4055
+ "description": "Activate debug mode (more logs)",
4056
+ "name": "debug",
4057
+ "allowNo": false,
4058
+ "type": "boolean"
4059
+ },
4060
+ "websocket": {
4061
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
4062
+ "name": "websocket",
4063
+ "hasDynamicHelp": false,
4064
+ "multiple": false,
4065
+ "type": "option"
4066
+ },
4067
+ "skipauth": {
4068
+ "description": "Skip authentication check when a default username is required",
4069
+ "name": "skipauth",
4070
+ "allowNo": false,
4071
+ "type": "boolean"
4072
+ },
4073
+ "target-org": {
4074
+ "aliases": [
4075
+ "targetusername",
4076
+ "u"
4077
+ ],
4078
+ "char": "o",
4079
+ "deprecateAliases": true,
4080
+ "name": "target-org",
4081
+ "noCacheDefault": true,
4082
+ "required": true,
4083
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
4084
+ "hasDynamicHelp": true,
4085
+ "multiple": false,
4086
+ "type": "option"
4087
+ }
4088
+ },
4089
+ "hasDynamicHelp": true,
4090
+ "hiddenAliases": [],
4091
+ "id": "hardis:scratch:push",
4092
+ "pluginAlias": "sfdx-hardis",
4093
+ "pluginName": "sfdx-hardis",
4094
+ "pluginType": "core",
4095
+ "strict": true,
4096
+ "enableJsonFlag": true,
4097
+ "title": "Scratch PUSH",
4098
+ "requiresProject": true,
4099
+ "isESM": true,
4100
+ "relativePath": [
4101
+ "lib",
4102
+ "commands",
4103
+ "hardis",
4104
+ "scratch",
4105
+ "push.js"
4106
+ ],
4107
+ "aliasPermutations": [],
4108
+ "permutations": [
4109
+ "hardis:scratch:push",
4110
+ "scratch:hardis:push",
4111
+ "scratch:push:hardis",
4112
+ "hardis:push:scratch",
4113
+ "push:hardis:scratch",
4114
+ "push:scratch:hardis"
4115
+ ]
4116
+ },
4117
+ "hardis:doc:extract:permsetgroups": {
4118
+ "aliases": [],
4119
+ "args": {},
4120
+ "description": "Generate markdown files with project documentation",
4121
+ "examples": [
4122
+ "$ sf hardis:doc:extract:permsetgroups"
4123
+ ],
4124
+ "flags": {
4125
+ "json": {
4126
+ "description": "Format output as json.",
4127
+ "helpGroup": "GLOBAL",
4128
+ "name": "json",
4129
+ "allowNo": false,
4130
+ "type": "boolean"
4131
+ },
4132
+ "flags-dir": {
4133
+ "helpGroup": "GLOBAL",
4134
+ "name": "flags-dir",
4135
+ "summary": "Import flag values from a directory.",
4136
+ "hasDynamicHelp": false,
4137
+ "multiple": false,
4138
+ "type": "option"
4139
+ },
4140
+ "outputfile": {
4141
+ "char": "f",
4142
+ "description": "Force the path and name of output report file. Must end with .csv",
4143
+ "name": "outputfile",
4144
+ "hasDynamicHelp": false,
4145
+ "multiple": false,
4146
+ "type": "option"
4147
+ },
4148
+ "debug": {
4149
+ "char": "d",
4150
+ "description": "Activate debug mode (more logs)",
4151
+ "name": "debug",
4152
+ "allowNo": false,
4153
+ "type": "boolean"
4154
+ },
4155
+ "websocket": {
4156
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
4157
+ "name": "websocket",
4158
+ "hasDynamicHelp": false,
4159
+ "multiple": false,
4160
+ "type": "option"
4161
+ },
4162
+ "skipauth": {
4163
+ "description": "Skip authentication check when a default username is required",
4164
+ "name": "skipauth",
4165
+ "allowNo": false,
4166
+ "type": "boolean"
4167
+ }
4168
+ },
4169
+ "hasDynamicHelp": false,
4170
+ "hiddenAliases": [],
4171
+ "id": "hardis:doc:extract:permsetgroups",
4172
+ "pluginAlias": "sfdx-hardis",
4173
+ "pluginName": "sfdx-hardis",
4174
+ "pluginType": "core",
4175
+ "strict": true,
4176
+ "enableJsonFlag": true,
4177
+ "title": "Generate project documentation",
4178
+ "requiresProject": true,
4179
4179
  "isESM": true,
4180
4180
  "relativePath": [
4181
4181
  "lib",
@@ -4304,13 +4304,13 @@
4304
4304
  "generate:plugin:doc:hardis"
4305
4305
  ]
4306
4306
  },
4307
- "hardis:git:pull-requests:extract": {
4307
+ "hardis:org:community:update": {
4308
4308
  "aliases": [],
4309
4309
  "args": {},
4310
- "description": "Extract pull requests with filtering criteria",
4310
+ "description": "Activate or deactivate a community by changing it's status:\n\n- Live\n- DownForMaintenance",
4311
4311
  "examples": [
4312
- "$ sf hardis:git:pull-requests:extract",
4313
- "$ sf hardis:git:pull-requests:extract --target-branch main --status merged"
4312
+ "$ sf hardis:org:community:update --name 'MyNetworkName' --status DownForMaintenance",
4313
+ "$ sf hardis:org:community:update --name 'MyNetworkName,MySecondNetworkName' --status Live"
4314
4314
  ],
4315
4315
  "flags": {
4316
4316
  "json": {
@@ -4328,39 +4328,20 @@
4328
4328
  "multiple": false,
4329
4329
  "type": "option"
4330
4330
  },
4331
- "target-branch": {
4332
- "char": "t",
4333
- "description": "Target branch of PRs",
4334
- "name": "target-branch",
4331
+ "name": {
4332
+ "char": "n",
4333
+ "description": "List of Networks Names that you want to update, separated by comma",
4334
+ "name": "name",
4335
+ "required": true,
4335
4336
  "hasDynamicHelp": false,
4336
4337
  "multiple": false,
4337
4338
  "type": "option"
4338
4339
  },
4339
4340
  "status": {
4340
- "char": "x",
4341
- "description": "Status of the PR",
4341
+ "char": "s",
4342
+ "description": "New status for the community, available values are: Live, DownForMaintenance",
4342
4343
  "name": "status",
4343
- "hasDynamicHelp": false,
4344
- "multiple": false,
4345
- "options": [
4346
- "open",
4347
- "merged",
4348
- "abandoned"
4349
- ],
4350
- "type": "option"
4351
- },
4352
- "min-date": {
4353
- "char": "m",
4354
- "description": "Minimum date for PR",
4355
- "name": "min-date",
4356
- "hasDynamicHelp": false,
4357
- "multiple": false,
4358
- "type": "option"
4359
- },
4360
- "outputfile": {
4361
- "char": "f",
4362
- "description": "Force the path and name of output report file. Must end with .csv",
4363
- "name": "outputfile",
4344
+ "required": true,
4364
4345
  "hasDynamicHelp": false,
4365
4346
  "multiple": false,
4366
4347
  "type": "option"
@@ -4372,128 +4353,18 @@
4372
4353
  "allowNo": false,
4373
4354
  "type": "boolean"
4374
4355
  },
4375
- "websocket": {
4376
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
4377
- "name": "websocket",
4378
- "hasDynamicHelp": false,
4379
- "multiple": false,
4380
- "type": "option"
4381
- },
4382
- "skipauth": {
4383
- "description": "Skip authentication check when a default username is required",
4384
- "name": "skipauth",
4385
- "allowNo": false,
4386
- "type": "boolean"
4387
- }
4388
- },
4389
- "hasDynamicHelp": false,
4390
- "hiddenAliases": [],
4391
- "id": "hardis:git:pull-requests:extract",
4392
- "pluginAlias": "sfdx-hardis",
4393
- "pluginName": "sfdx-hardis",
4394
- "pluginType": "core",
4395
- "strict": true,
4396
- "enableJsonFlag": true,
4397
- "title": "Extract pull requests",
4398
- "requiresProject": true,
4399
- "isESM": true,
4400
- "relativePath": [
4401
- "lib",
4402
- "commands",
4403
- "hardis",
4404
- "git",
4405
- "pull-requests",
4406
- "extract.js"
4407
- ],
4408
- "aliasPermutations": [],
4409
- "permutations": [
4410
- "hardis:git:pull-requests:extract",
4411
- "git:hardis:pull-requests:extract",
4412
- "git:pull-requests:hardis:extract",
4413
- "git:pull-requests:extract:hardis",
4414
- "hardis:pull-requests:git:extract",
4415
- "pull-requests:hardis:git:extract",
4416
- "pull-requests:git:hardis:extract",
4417
- "pull-requests:git:extract:hardis",
4418
- "hardis:pull-requests:extract:git",
4419
- "pull-requests:hardis:extract:git",
4420
- "pull-requests:extract:hardis:git",
4421
- "pull-requests:extract:git:hardis",
4422
- "hardis:git:extract:pull-requests",
4423
- "git:hardis:extract:pull-requests",
4424
- "git:extract:hardis:pull-requests",
4425
- "git:extract:pull-requests:hardis",
4426
- "hardis:extract:git:pull-requests",
4427
- "extract:hardis:git:pull-requests",
4428
- "extract:git:hardis:pull-requests",
4429
- "extract:git:pull-requests:hardis",
4430
- "hardis:extract:pull-requests:git",
4431
- "extract:hardis:pull-requests:git",
4432
- "extract:pull-requests:hardis:git",
4433
- "extract:pull-requests:git:hardis"
4434
- ]
4435
- },
4436
- "hardis:org:community:update": {
4437
- "aliases": [],
4438
- "args": {},
4439
- "description": "Activate or deactivate a community by changing it's status:\n\n- Live\n- DownForMaintenance",
4440
- "examples": [
4441
- "$ sf hardis:org:community:update --name 'MyNetworkName' --status DownForMaintenance",
4442
- "$ sf hardis:org:community:update --name 'MyNetworkName,MySecondNetworkName' --status Live"
4443
- ],
4444
- "flags": {
4445
- "json": {
4446
- "description": "Format output as json.",
4447
- "helpGroup": "GLOBAL",
4448
- "name": "json",
4449
- "allowNo": false,
4450
- "type": "boolean"
4451
- },
4452
- "flags-dir": {
4453
- "helpGroup": "GLOBAL",
4454
- "name": "flags-dir",
4455
- "summary": "Import flag values from a directory.",
4456
- "hasDynamicHelp": false,
4457
- "multiple": false,
4458
- "type": "option"
4459
- },
4460
- "name": {
4461
- "char": "n",
4462
- "description": "List of Networks Names that you want to update, separated by comma",
4463
- "name": "name",
4464
- "required": true,
4465
- "hasDynamicHelp": false,
4466
- "multiple": false,
4467
- "type": "option"
4468
- },
4469
- "status": {
4470
- "char": "s",
4471
- "description": "New status for the community, available values are: Live, DownForMaintenance",
4472
- "name": "status",
4473
- "required": true,
4474
- "hasDynamicHelp": false,
4475
- "multiple": false,
4476
- "type": "option"
4477
- },
4478
- "debug": {
4479
- "char": "d",
4480
- "description": "Activate debug mode (more logs)",
4481
- "name": "debug",
4482
- "allowNo": false,
4483
- "type": "boolean"
4484
- },
4485
- "target-org": {
4486
- "aliases": [
4487
- "targetusername",
4488
- "u"
4489
- ],
4490
- "char": "o",
4491
- "deprecateAliases": true,
4492
- "name": "target-org",
4493
- "noCacheDefault": true,
4494
- "required": true,
4495
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
4496
- "hasDynamicHelp": true,
4356
+ "target-org": {
4357
+ "aliases": [
4358
+ "targetusername",
4359
+ "u"
4360
+ ],
4361
+ "char": "o",
4362
+ "deprecateAliases": true,
4363
+ "name": "target-org",
4364
+ "noCacheDefault": true,
4365
+ "required": true,
4366
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
4367
+ "hasDynamicHelp": true,
4497
4368
  "multiple": false,
4498
4369
  "type": "option"
4499
4370
  }
@@ -4845,6 +4716,135 @@
4845
4716
  "monitoring:configure:org:hardis"
4846
4717
  ]
4847
4718
  },
4719
+ "hardis:git:pull-requests:extract": {
4720
+ "aliases": [],
4721
+ "args": {},
4722
+ "description": "Extract pull requests with filtering criteria",
4723
+ "examples": [
4724
+ "$ sf hardis:git:pull-requests:extract",
4725
+ "$ sf hardis:git:pull-requests:extract --target-branch main --status merged"
4726
+ ],
4727
+ "flags": {
4728
+ "json": {
4729
+ "description": "Format output as json.",
4730
+ "helpGroup": "GLOBAL",
4731
+ "name": "json",
4732
+ "allowNo": false,
4733
+ "type": "boolean"
4734
+ },
4735
+ "flags-dir": {
4736
+ "helpGroup": "GLOBAL",
4737
+ "name": "flags-dir",
4738
+ "summary": "Import flag values from a directory.",
4739
+ "hasDynamicHelp": false,
4740
+ "multiple": false,
4741
+ "type": "option"
4742
+ },
4743
+ "target-branch": {
4744
+ "char": "t",
4745
+ "description": "Target branch of PRs",
4746
+ "name": "target-branch",
4747
+ "hasDynamicHelp": false,
4748
+ "multiple": false,
4749
+ "type": "option"
4750
+ },
4751
+ "status": {
4752
+ "char": "x",
4753
+ "description": "Status of the PR",
4754
+ "name": "status",
4755
+ "hasDynamicHelp": false,
4756
+ "multiple": false,
4757
+ "options": [
4758
+ "open",
4759
+ "merged",
4760
+ "abandoned"
4761
+ ],
4762
+ "type": "option"
4763
+ },
4764
+ "min-date": {
4765
+ "char": "m",
4766
+ "description": "Minimum date for PR",
4767
+ "name": "min-date",
4768
+ "hasDynamicHelp": false,
4769
+ "multiple": false,
4770
+ "type": "option"
4771
+ },
4772
+ "outputfile": {
4773
+ "char": "f",
4774
+ "description": "Force the path and name of output report file. Must end with .csv",
4775
+ "name": "outputfile",
4776
+ "hasDynamicHelp": false,
4777
+ "multiple": false,
4778
+ "type": "option"
4779
+ },
4780
+ "debug": {
4781
+ "char": "d",
4782
+ "description": "Activate debug mode (more logs)",
4783
+ "name": "debug",
4784
+ "allowNo": false,
4785
+ "type": "boolean"
4786
+ },
4787
+ "websocket": {
4788
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
4789
+ "name": "websocket",
4790
+ "hasDynamicHelp": false,
4791
+ "multiple": false,
4792
+ "type": "option"
4793
+ },
4794
+ "skipauth": {
4795
+ "description": "Skip authentication check when a default username is required",
4796
+ "name": "skipauth",
4797
+ "allowNo": false,
4798
+ "type": "boolean"
4799
+ }
4800
+ },
4801
+ "hasDynamicHelp": false,
4802
+ "hiddenAliases": [],
4803
+ "id": "hardis:git:pull-requests:extract",
4804
+ "pluginAlias": "sfdx-hardis",
4805
+ "pluginName": "sfdx-hardis",
4806
+ "pluginType": "core",
4807
+ "strict": true,
4808
+ "enableJsonFlag": true,
4809
+ "title": "Extract pull requests",
4810
+ "requiresProject": true,
4811
+ "isESM": true,
4812
+ "relativePath": [
4813
+ "lib",
4814
+ "commands",
4815
+ "hardis",
4816
+ "git",
4817
+ "pull-requests",
4818
+ "extract.js"
4819
+ ],
4820
+ "aliasPermutations": [],
4821
+ "permutations": [
4822
+ "hardis:git:pull-requests:extract",
4823
+ "git:hardis:pull-requests:extract",
4824
+ "git:pull-requests:hardis:extract",
4825
+ "git:pull-requests:extract:hardis",
4826
+ "hardis:pull-requests:git:extract",
4827
+ "pull-requests:hardis:git:extract",
4828
+ "pull-requests:git:hardis:extract",
4829
+ "pull-requests:git:extract:hardis",
4830
+ "hardis:pull-requests:extract:git",
4831
+ "pull-requests:hardis:extract:git",
4832
+ "pull-requests:extract:hardis:git",
4833
+ "pull-requests:extract:git:hardis",
4834
+ "hardis:git:extract:pull-requests",
4835
+ "git:hardis:extract:pull-requests",
4836
+ "git:extract:hardis:pull-requests",
4837
+ "git:extract:pull-requests:hardis",
4838
+ "hardis:extract:git:pull-requests",
4839
+ "extract:hardis:git:pull-requests",
4840
+ "extract:git:hardis:pull-requests",
4841
+ "extract:git:pull-requests:hardis",
4842
+ "hardis:extract:pull-requests:git",
4843
+ "extract:hardis:pull-requests:git",
4844
+ "extract:pull-requests:hardis:git",
4845
+ "extract:pull-requests:git:hardis"
4846
+ ]
4847
+ },
4848
4848
  "hardis:org:data:delete": {
4849
4849
  "aliases": [],
4850
4850
  "args": {},
@@ -7039,7 +7039,7 @@
7039
7039
  "hardis:org:monitor:backup": {
7040
7040
  "aliases": [],
7041
7041
  "args": {},
7042
- "description": "Retrieve sfdx sources in the context of a monitoring backup\n\nThe command exists in 2 modes: filtered(default & recommended) and full.\n\n## Filtered mode (default, better performances)\n\nAutomatically skips metadatas from installed packages with namespace. \n\nYou can remove more metadata types from backup, especially in case you have too many metadatas and that provokes a crash, using:\n\n- Manual update of `manifest/package-skip-items.xml` config file (then commit & push in the same branch)\n\n- Environment variable MONITORING_BACKUP_SKIP_METADATA_TYPES (example: `MONITORING_BACKUP_SKIP_METADATA_TYPES=CustomLabel,StaticResource,Translation`): that will be applied to all monitoring branches.\n\n## Full mode\n\nActivate it with **--full** parameter, or variable MONITORING_BACKUP_MODE_FULL=true\n\nIgnores filters (namespaces items & manifest/package-skip-items.xml) to retrieve ALL metadatas, including those you might not care about (reports, translations...)\n\nAs we can retrieve only 10000 files by call, the list of all metadatas will be chunked to make multiple calls (and take more time than filtered mode)\n\n- if you use `--full-apply-filters` , manifest/package-skip-items.xml and MONITORING_BACKUP_SKIP_METADATA_TYPES filters will be applied anyway\n- if you use `--exclude-namespaces` , namespaced items will be ignored\n\n_With those both options, it's like if you are not using --full, but with chunked metadata download_\n\n## In CI/CD\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-metadata-backup/) and can output Grafana, Slack and MsTeams Notifications.\n\n## Documentation\n\n[Doc generation (including visual flows)](https://sfdx-hardis.cloudity.com/hardis/doc/project2markdown/) is triggered at the end of the command.\n\nIf you want to also upload HTML Documentation on your Salesforce Org as static resource, use variable **SFDX_HARDIS_DOC_DEPLOY_TO_ORG=\"true\"**\n\nIf you want to also upload HTML Documentation on Cloudflare, use variable **SFDX_HARDIS_DOC_DEPLOY_TO_CLOUDFLARE=\"true\"**\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",
7042
+ "description": "Retrieve sfdx sources in the context of a monitoring backup\n\nThe command exists in 2 modes: filtered(default & recommended) and full.\n\n## Filtered mode (default, better performances)\n\nAutomatically skips metadatas from installed packages with namespace. \n\nYou can remove more metadata types from backup, especially in case you have too many metadatas and that provokes a crash, using:\n\n- Manual update of `manifest/package-skip-items.xml` config file (then commit & push in the same branch)\n\n - Works with full wildcard (`<members>*</members>`) , named metadata (`<members>Account.Name</members>`) or partial wildcards names (`<members>pi__*</members>` , `<members>*__dlm</members>` , or `<members>prefix*suffix</members>`)\n\n- Environment variable MONITORING_BACKUP_SKIP_METADATA_TYPES (example: `MONITORING_BACKUP_SKIP_METADATA_TYPES=CustomLabel,StaticResource,Translation`): that will be applied to all monitoring branches.\n\n## Full mode\n\nActivate it with **--full** parameter, or variable MONITORING_BACKUP_MODE_FULL=true\n\nIgnores filters (namespaces items & manifest/package-skip-items.xml) to retrieve ALL metadatas, including those you might not care about (reports, translations...)\n\nAs we can retrieve only 10000 files by call, the list of all metadatas will be chunked to make multiple calls (and take more time than filtered mode)\n\n- if you use `--full-apply-filters` , manifest/package-skip-items.xml and MONITORING_BACKUP_SKIP_METADATA_TYPES filters will be applied anyway\n- if you use `--exclude-namespaces` , namespaced items will be ignored\n\n_With those both options, it's like if you are not using --full, but with chunked metadata download_\n\n## In CI/CD\n\nThis command is part of [sfdx-hardis Monitoring](https://sfdx-hardis.cloudity.com/salesforce-monitoring-metadata-backup/) and can output Grafana, Slack and MsTeams Notifications.\n\n## Documentation\n\n[Doc generation (including visual flows)](https://sfdx-hardis.cloudity.com/hardis/doc/project2markdown/) is triggered at the end of the command.\n\nIf you want to also upload HTML Documentation on your Salesforce Org as static resource, use variable **SFDX_HARDIS_DOC_DEPLOY_TO_ORG=\"true\"**\n\nIf you want to also upload HTML Documentation on Cloudflare, use variable **SFDX_HARDIS_DOC_DEPLOY_TO_CLOUDFLARE=\"true\"**\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",
7043
7043
  "examples": [
7044
7044
  "$ sf hardis:org:monitor:backup",
7045
7045
  "$ sf hardis:org:monitor:backup --full",
@@ -13068,272 +13068,12 @@
13068
13068
  "view:pool:scratch:hardis"
13069
13069
  ]
13070
13070
  },
13071
- "hardis:project:deploy:sources:metadata": {
13071
+ "hardis:org:retrieve:sources:analytics": {
13072
13072
  "aliases": [],
13073
13073
  "args": {},
13074
- "description": "Deploy metadatas to source org",
13074
+ "description": "Retrieve all CRM Analytics sources from an org, with workarounds for SFDX bugs",
13075
13075
  "examples": [
13076
- "$ sf hardis:project:deploy:sources:metadata"
13077
- ],
13078
- "flags": {
13079
- "json": {
13080
- "description": "Format output as json.",
13081
- "helpGroup": "GLOBAL",
13082
- "name": "json",
13083
- "allowNo": false,
13084
- "type": "boolean"
13085
- },
13086
- "flags-dir": {
13087
- "helpGroup": "GLOBAL",
13088
- "name": "flags-dir",
13089
- "summary": "Import flag values from a directory.",
13090
- "hasDynamicHelp": false,
13091
- "multiple": false,
13092
- "type": "option"
13093
- },
13094
- "check": {
13095
- "char": "c",
13096
- "description": "Only checks the deployment, there is no impact on target org",
13097
- "name": "check",
13098
- "allowNo": false,
13099
- "type": "boolean"
13100
- },
13101
- "deploydir": {
13102
- "char": "x",
13103
- "description": "Deploy directory",
13104
- "name": "deploydir",
13105
- "default": ".",
13106
- "hasDynamicHelp": false,
13107
- "multiple": false,
13108
- "type": "option"
13109
- },
13110
- "packagexml": {
13111
- "char": "p",
13112
- "description": "Path to package.xml file to deploy",
13113
- "name": "packagexml",
13114
- "hasDynamicHelp": false,
13115
- "multiple": false,
13116
- "type": "option"
13117
- },
13118
- "filter": {
13119
- "char": "f",
13120
- "description": "Filter metadatas before deploying",
13121
- "name": "filter",
13122
- "allowNo": false,
13123
- "type": "boolean"
13124
- },
13125
- "destructivepackagexml": {
13126
- "char": "k",
13127
- "description": "Path to destructiveChanges.xml file to deploy",
13128
- "name": "destructivepackagexml",
13129
- "hasDynamicHelp": false,
13130
- "multiple": false,
13131
- "type": "option"
13132
- },
13133
- "testlevel": {
13134
- "char": "l",
13135
- "description": "Level of tests to apply to validate deployment",
13136
- "name": "testlevel",
13137
- "default": "RunLocalTests",
13138
- "hasDynamicHelp": false,
13139
- "multiple": false,
13140
- "options": [
13141
- "NoTestRun",
13142
- "RunSpecifiedTests",
13143
- "RunLocalTests",
13144
- "RunAllTestsInOrg"
13145
- ],
13146
- "type": "option"
13147
- },
13148
- "debug": {
13149
- "char": "d",
13150
- "description": "Activate debug mode (more logs)",
13151
- "name": "debug",
13152
- "allowNo": false,
13153
- "type": "boolean"
13154
- },
13155
- "websocket": {
13156
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
13157
- "name": "websocket",
13158
- "hasDynamicHelp": false,
13159
- "multiple": false,
13160
- "type": "option"
13161
- },
13162
- "skipauth": {
13163
- "description": "Skip authentication check when a default username is required",
13164
- "name": "skipauth",
13165
- "allowNo": false,
13166
- "type": "boolean"
13167
- },
13168
- "target-org": {
13169
- "aliases": [
13170
- "targetusername",
13171
- "u"
13172
- ],
13173
- "char": "o",
13174
- "deprecateAliases": true,
13175
- "name": "target-org",
13176
- "noCacheDefault": true,
13177
- "required": true,
13178
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
13179
- "hasDynamicHelp": true,
13180
- "multiple": false,
13181
- "type": "option"
13182
- }
13183
- },
13184
- "hasDynamicHelp": true,
13185
- "hiddenAliases": [],
13186
- "id": "hardis:project:deploy:sources:metadata",
13187
- "pluginAlias": "sfdx-hardis",
13188
- "pluginName": "sfdx-hardis",
13189
- "pluginType": "core",
13190
- "strict": true,
13191
- "enableJsonFlag": true,
13192
- "title": "Deploy metadata sources to org",
13193
- "requiresProject": false,
13194
- "requiresSfdxPlugins": [
13195
- "sfdx-essentials"
13196
- ],
13197
- "isESM": true,
13198
- "relativePath": [
13199
- "lib",
13200
- "commands",
13201
- "hardis",
13202
- "project",
13203
- "deploy",
13204
- "sources",
13205
- "metadata.js"
13206
- ],
13207
- "aliasPermutations": [],
13208
- "permutations": [
13209
- "hardis:project:deploy:sources:metadata",
13210
- "project:hardis:deploy:sources:metadata",
13211
- "project:deploy:hardis:sources:metadata",
13212
- "project:deploy:sources:hardis:metadata",
13213
- "project:deploy:sources:metadata:hardis",
13214
- "hardis:deploy:project:sources:metadata",
13215
- "deploy:hardis:project:sources:metadata",
13216
- "deploy:project:hardis:sources:metadata",
13217
- "deploy:project:sources:hardis:metadata",
13218
- "deploy:project:sources:metadata:hardis",
13219
- "hardis:deploy:sources:project:metadata",
13220
- "deploy:hardis:sources:project:metadata",
13221
- "deploy:sources:hardis:project:metadata",
13222
- "deploy:sources:project:hardis:metadata",
13223
- "deploy:sources:project:metadata:hardis",
13224
- "hardis:deploy:sources:metadata:project",
13225
- "deploy:hardis:sources:metadata:project",
13226
- "deploy:sources:hardis:metadata:project",
13227
- "deploy:sources:metadata:hardis:project",
13228
- "deploy:sources:metadata:project:hardis",
13229
- "hardis:project:sources:deploy:metadata",
13230
- "project:hardis:sources:deploy:metadata",
13231
- "project:sources:hardis:deploy:metadata",
13232
- "project:sources:deploy:hardis:metadata",
13233
- "project:sources:deploy:metadata:hardis",
13234
- "hardis:sources:project:deploy:metadata",
13235
- "sources:hardis:project:deploy:metadata",
13236
- "sources:project:hardis:deploy:metadata",
13237
- "sources:project:deploy:hardis:metadata",
13238
- "sources:project:deploy:metadata:hardis",
13239
- "hardis:sources:deploy:project:metadata",
13240
- "sources:hardis:deploy:project:metadata",
13241
- "sources:deploy:hardis:project:metadata",
13242
- "sources:deploy:project:hardis:metadata",
13243
- "sources:deploy:project:metadata:hardis",
13244
- "hardis:sources:deploy:metadata:project",
13245
- "sources:hardis:deploy:metadata:project",
13246
- "sources:deploy:hardis:metadata:project",
13247
- "sources:deploy:metadata:hardis:project",
13248
- "sources:deploy:metadata:project:hardis",
13249
- "hardis:project:sources:metadata:deploy",
13250
- "project:hardis:sources:metadata:deploy",
13251
- "project:sources:hardis:metadata:deploy",
13252
- "project:sources:metadata:hardis:deploy",
13253
- "project:sources:metadata:deploy:hardis",
13254
- "hardis:sources:project:metadata:deploy",
13255
- "sources:hardis:project:metadata:deploy",
13256
- "sources:project:hardis:metadata:deploy",
13257
- "sources:project:metadata:hardis:deploy",
13258
- "sources:project:metadata:deploy:hardis",
13259
- "hardis:sources:metadata:project:deploy",
13260
- "sources:hardis:metadata:project:deploy",
13261
- "sources:metadata:hardis:project:deploy",
13262
- "sources:metadata:project:hardis:deploy",
13263
- "sources:metadata:project:deploy:hardis",
13264
- "hardis:sources:metadata:deploy:project",
13265
- "sources:hardis:metadata:deploy:project",
13266
- "sources:metadata:hardis:deploy:project",
13267
- "sources:metadata:deploy:hardis:project",
13268
- "sources:metadata:deploy:project:hardis",
13269
- "hardis:project:deploy:metadata:sources",
13270
- "project:hardis:deploy:metadata:sources",
13271
- "project:deploy:hardis:metadata:sources",
13272
- "project:deploy:metadata:hardis:sources",
13273
- "project:deploy:metadata:sources:hardis",
13274
- "hardis:deploy:project:metadata:sources",
13275
- "deploy:hardis:project:metadata:sources",
13276
- "deploy:project:hardis:metadata:sources",
13277
- "deploy:project:metadata:hardis:sources",
13278
- "deploy:project:metadata:sources:hardis",
13279
- "hardis:deploy:metadata:project:sources",
13280
- "deploy:hardis:metadata:project:sources",
13281
- "deploy:metadata:hardis:project:sources",
13282
- "deploy:metadata:project:hardis:sources",
13283
- "deploy:metadata:project:sources:hardis",
13284
- "hardis:deploy:metadata:sources:project",
13285
- "deploy:hardis:metadata:sources:project",
13286
- "deploy:metadata:hardis:sources:project",
13287
- "deploy:metadata:sources:hardis:project",
13288
- "deploy:metadata:sources:project:hardis",
13289
- "hardis:project:metadata:deploy:sources",
13290
- "project:hardis:metadata:deploy:sources",
13291
- "project:metadata:hardis:deploy:sources",
13292
- "project:metadata:deploy:hardis:sources",
13293
- "project:metadata:deploy:sources:hardis",
13294
- "hardis:metadata:project:deploy:sources",
13295
- "metadata:hardis:project:deploy:sources",
13296
- "metadata:project:hardis:deploy:sources",
13297
- "metadata:project:deploy:hardis:sources",
13298
- "metadata:project:deploy:sources:hardis",
13299
- "hardis:metadata:deploy:project:sources",
13300
- "metadata:hardis:deploy:project:sources",
13301
- "metadata:deploy:hardis:project:sources",
13302
- "metadata:deploy:project:hardis:sources",
13303
- "metadata:deploy:project:sources:hardis",
13304
- "hardis:metadata:deploy:sources:project",
13305
- "metadata:hardis:deploy:sources:project",
13306
- "metadata:deploy:hardis:sources:project",
13307
- "metadata:deploy:sources:hardis:project",
13308
- "metadata:deploy:sources:project:hardis",
13309
- "hardis:project:metadata:sources:deploy",
13310
- "project:hardis:metadata:sources:deploy",
13311
- "project:metadata:hardis:sources:deploy",
13312
- "project:metadata:sources:hardis:deploy",
13313
- "project:metadata:sources:deploy:hardis",
13314
- "hardis:metadata:project:sources:deploy",
13315
- "metadata:hardis:project:sources:deploy",
13316
- "metadata:project:hardis:sources:deploy",
13317
- "metadata:project:sources:hardis:deploy",
13318
- "metadata:project:sources:deploy:hardis",
13319
- "hardis:metadata:sources:project:deploy",
13320
- "metadata:hardis:sources:project:deploy",
13321
- "metadata:sources:hardis:project:deploy",
13322
- "metadata:sources:project:hardis:deploy",
13323
- "metadata:sources:project:deploy:hardis",
13324
- "hardis:metadata:sources:deploy:project",
13325
- "metadata:hardis:sources:deploy:project",
13326
- "metadata:sources:hardis:deploy:project",
13327
- "metadata:sources:deploy:hardis:project",
13328
- "metadata:sources:deploy:project:hardis"
13329
- ]
13330
- },
13331
- "hardis:org:retrieve:sources:analytics": {
13332
- "aliases": [],
13333
- "args": {},
13334
- "description": "Retrieve all CRM Analytics sources from an org, with workarounds for SFDX bugs",
13335
- "examples": [
13336
- "$ sf hardis:org:retrieve:sources:analytics"
13076
+ "$ sf hardis:org:retrieve:sources:analytics"
13337
13077
  ],
13338
13078
  "flags": {
13339
13079
  "json": {
@@ -14515,7 +14255,267 @@
14515
14255
  "retrofit:sources:retrieve:hardis:org",
14516
14256
  "retrofit:sources:retrieve:org:hardis"
14517
14257
  ]
14258
+ },
14259
+ "hardis:project:deploy:sources:metadata": {
14260
+ "aliases": [],
14261
+ "args": {},
14262
+ "description": "Deploy metadatas to source org",
14263
+ "examples": [
14264
+ "$ sf hardis:project:deploy:sources:metadata"
14265
+ ],
14266
+ "flags": {
14267
+ "json": {
14268
+ "description": "Format output as json.",
14269
+ "helpGroup": "GLOBAL",
14270
+ "name": "json",
14271
+ "allowNo": false,
14272
+ "type": "boolean"
14273
+ },
14274
+ "flags-dir": {
14275
+ "helpGroup": "GLOBAL",
14276
+ "name": "flags-dir",
14277
+ "summary": "Import flag values from a directory.",
14278
+ "hasDynamicHelp": false,
14279
+ "multiple": false,
14280
+ "type": "option"
14281
+ },
14282
+ "check": {
14283
+ "char": "c",
14284
+ "description": "Only checks the deployment, there is no impact on target org",
14285
+ "name": "check",
14286
+ "allowNo": false,
14287
+ "type": "boolean"
14288
+ },
14289
+ "deploydir": {
14290
+ "char": "x",
14291
+ "description": "Deploy directory",
14292
+ "name": "deploydir",
14293
+ "default": ".",
14294
+ "hasDynamicHelp": false,
14295
+ "multiple": false,
14296
+ "type": "option"
14297
+ },
14298
+ "packagexml": {
14299
+ "char": "p",
14300
+ "description": "Path to package.xml file to deploy",
14301
+ "name": "packagexml",
14302
+ "hasDynamicHelp": false,
14303
+ "multiple": false,
14304
+ "type": "option"
14305
+ },
14306
+ "filter": {
14307
+ "char": "f",
14308
+ "description": "Filter metadatas before deploying",
14309
+ "name": "filter",
14310
+ "allowNo": false,
14311
+ "type": "boolean"
14312
+ },
14313
+ "destructivepackagexml": {
14314
+ "char": "k",
14315
+ "description": "Path to destructiveChanges.xml file to deploy",
14316
+ "name": "destructivepackagexml",
14317
+ "hasDynamicHelp": false,
14318
+ "multiple": false,
14319
+ "type": "option"
14320
+ },
14321
+ "testlevel": {
14322
+ "char": "l",
14323
+ "description": "Level of tests to apply to validate deployment",
14324
+ "name": "testlevel",
14325
+ "default": "RunLocalTests",
14326
+ "hasDynamicHelp": false,
14327
+ "multiple": false,
14328
+ "options": [
14329
+ "NoTestRun",
14330
+ "RunSpecifiedTests",
14331
+ "RunLocalTests",
14332
+ "RunAllTestsInOrg"
14333
+ ],
14334
+ "type": "option"
14335
+ },
14336
+ "debug": {
14337
+ "char": "d",
14338
+ "description": "Activate debug mode (more logs)",
14339
+ "name": "debug",
14340
+ "allowNo": false,
14341
+ "type": "boolean"
14342
+ },
14343
+ "websocket": {
14344
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
14345
+ "name": "websocket",
14346
+ "hasDynamicHelp": false,
14347
+ "multiple": false,
14348
+ "type": "option"
14349
+ },
14350
+ "skipauth": {
14351
+ "description": "Skip authentication check when a default username is required",
14352
+ "name": "skipauth",
14353
+ "allowNo": false,
14354
+ "type": "boolean"
14355
+ },
14356
+ "target-org": {
14357
+ "aliases": [
14358
+ "targetusername",
14359
+ "u"
14360
+ ],
14361
+ "char": "o",
14362
+ "deprecateAliases": true,
14363
+ "name": "target-org",
14364
+ "noCacheDefault": true,
14365
+ "required": true,
14366
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
14367
+ "hasDynamicHelp": true,
14368
+ "multiple": false,
14369
+ "type": "option"
14370
+ }
14371
+ },
14372
+ "hasDynamicHelp": true,
14373
+ "hiddenAliases": [],
14374
+ "id": "hardis:project:deploy:sources:metadata",
14375
+ "pluginAlias": "sfdx-hardis",
14376
+ "pluginName": "sfdx-hardis",
14377
+ "pluginType": "core",
14378
+ "strict": true,
14379
+ "enableJsonFlag": true,
14380
+ "title": "Deploy metadata sources to org",
14381
+ "requiresProject": false,
14382
+ "requiresSfdxPlugins": [
14383
+ "sfdx-essentials"
14384
+ ],
14385
+ "isESM": true,
14386
+ "relativePath": [
14387
+ "lib",
14388
+ "commands",
14389
+ "hardis",
14390
+ "project",
14391
+ "deploy",
14392
+ "sources",
14393
+ "metadata.js"
14394
+ ],
14395
+ "aliasPermutations": [],
14396
+ "permutations": [
14397
+ "hardis:project:deploy:sources:metadata",
14398
+ "project:hardis:deploy:sources:metadata",
14399
+ "project:deploy:hardis:sources:metadata",
14400
+ "project:deploy:sources:hardis:metadata",
14401
+ "project:deploy:sources:metadata:hardis",
14402
+ "hardis:deploy:project:sources:metadata",
14403
+ "deploy:hardis:project:sources:metadata",
14404
+ "deploy:project:hardis:sources:metadata",
14405
+ "deploy:project:sources:hardis:metadata",
14406
+ "deploy:project:sources:metadata:hardis",
14407
+ "hardis:deploy:sources:project:metadata",
14408
+ "deploy:hardis:sources:project:metadata",
14409
+ "deploy:sources:hardis:project:metadata",
14410
+ "deploy:sources:project:hardis:metadata",
14411
+ "deploy:sources:project:metadata:hardis",
14412
+ "hardis:deploy:sources:metadata:project",
14413
+ "deploy:hardis:sources:metadata:project",
14414
+ "deploy:sources:hardis:metadata:project",
14415
+ "deploy:sources:metadata:hardis:project",
14416
+ "deploy:sources:metadata:project:hardis",
14417
+ "hardis:project:sources:deploy:metadata",
14418
+ "project:hardis:sources:deploy:metadata",
14419
+ "project:sources:hardis:deploy:metadata",
14420
+ "project:sources:deploy:hardis:metadata",
14421
+ "project:sources:deploy:metadata:hardis",
14422
+ "hardis:sources:project:deploy:metadata",
14423
+ "sources:hardis:project:deploy:metadata",
14424
+ "sources:project:hardis:deploy:metadata",
14425
+ "sources:project:deploy:hardis:metadata",
14426
+ "sources:project:deploy:metadata:hardis",
14427
+ "hardis:sources:deploy:project:metadata",
14428
+ "sources:hardis:deploy:project:metadata",
14429
+ "sources:deploy:hardis:project:metadata",
14430
+ "sources:deploy:project:hardis:metadata",
14431
+ "sources:deploy:project:metadata:hardis",
14432
+ "hardis:sources:deploy:metadata:project",
14433
+ "sources:hardis:deploy:metadata:project",
14434
+ "sources:deploy:hardis:metadata:project",
14435
+ "sources:deploy:metadata:hardis:project",
14436
+ "sources:deploy:metadata:project:hardis",
14437
+ "hardis:project:sources:metadata:deploy",
14438
+ "project:hardis:sources:metadata:deploy",
14439
+ "project:sources:hardis:metadata:deploy",
14440
+ "project:sources:metadata:hardis:deploy",
14441
+ "project:sources:metadata:deploy:hardis",
14442
+ "hardis:sources:project:metadata:deploy",
14443
+ "sources:hardis:project:metadata:deploy",
14444
+ "sources:project:hardis:metadata:deploy",
14445
+ "sources:project:metadata:hardis:deploy",
14446
+ "sources:project:metadata:deploy:hardis",
14447
+ "hardis:sources:metadata:project:deploy",
14448
+ "sources:hardis:metadata:project:deploy",
14449
+ "sources:metadata:hardis:project:deploy",
14450
+ "sources:metadata:project:hardis:deploy",
14451
+ "sources:metadata:project:deploy:hardis",
14452
+ "hardis:sources:metadata:deploy:project",
14453
+ "sources:hardis:metadata:deploy:project",
14454
+ "sources:metadata:hardis:deploy:project",
14455
+ "sources:metadata:deploy:hardis:project",
14456
+ "sources:metadata:deploy:project:hardis",
14457
+ "hardis:project:deploy:metadata:sources",
14458
+ "project:hardis:deploy:metadata:sources",
14459
+ "project:deploy:hardis:metadata:sources",
14460
+ "project:deploy:metadata:hardis:sources",
14461
+ "project:deploy:metadata:sources:hardis",
14462
+ "hardis:deploy:project:metadata:sources",
14463
+ "deploy:hardis:project:metadata:sources",
14464
+ "deploy:project:hardis:metadata:sources",
14465
+ "deploy:project:metadata:hardis:sources",
14466
+ "deploy:project:metadata:sources:hardis",
14467
+ "hardis:deploy:metadata:project:sources",
14468
+ "deploy:hardis:metadata:project:sources",
14469
+ "deploy:metadata:hardis:project:sources",
14470
+ "deploy:metadata:project:hardis:sources",
14471
+ "deploy:metadata:project:sources:hardis",
14472
+ "hardis:deploy:metadata:sources:project",
14473
+ "deploy:hardis:metadata:sources:project",
14474
+ "deploy:metadata:hardis:sources:project",
14475
+ "deploy:metadata:sources:hardis:project",
14476
+ "deploy:metadata:sources:project:hardis",
14477
+ "hardis:project:metadata:deploy:sources",
14478
+ "project:hardis:metadata:deploy:sources",
14479
+ "project:metadata:hardis:deploy:sources",
14480
+ "project:metadata:deploy:hardis:sources",
14481
+ "project:metadata:deploy:sources:hardis",
14482
+ "hardis:metadata:project:deploy:sources",
14483
+ "metadata:hardis:project:deploy:sources",
14484
+ "metadata:project:hardis:deploy:sources",
14485
+ "metadata:project:deploy:hardis:sources",
14486
+ "metadata:project:deploy:sources:hardis",
14487
+ "hardis:metadata:deploy:project:sources",
14488
+ "metadata:hardis:deploy:project:sources",
14489
+ "metadata:deploy:hardis:project:sources",
14490
+ "metadata:deploy:project:hardis:sources",
14491
+ "metadata:deploy:project:sources:hardis",
14492
+ "hardis:metadata:deploy:sources:project",
14493
+ "metadata:hardis:deploy:sources:project",
14494
+ "metadata:deploy:hardis:sources:project",
14495
+ "metadata:deploy:sources:hardis:project",
14496
+ "metadata:deploy:sources:project:hardis",
14497
+ "hardis:project:metadata:sources:deploy",
14498
+ "project:hardis:metadata:sources:deploy",
14499
+ "project:metadata:hardis:sources:deploy",
14500
+ "project:metadata:sources:hardis:deploy",
14501
+ "project:metadata:sources:deploy:hardis",
14502
+ "hardis:metadata:project:sources:deploy",
14503
+ "metadata:hardis:project:sources:deploy",
14504
+ "metadata:project:hardis:sources:deploy",
14505
+ "metadata:project:sources:hardis:deploy",
14506
+ "metadata:project:sources:deploy:hardis",
14507
+ "hardis:metadata:sources:project:deploy",
14508
+ "metadata:hardis:sources:project:deploy",
14509
+ "metadata:sources:hardis:project:deploy",
14510
+ "metadata:sources:project:hardis:deploy",
14511
+ "metadata:sources:project:deploy:hardis",
14512
+ "hardis:metadata:sources:deploy:project",
14513
+ "metadata:hardis:sources:deploy:project",
14514
+ "metadata:sources:hardis:deploy:project",
14515
+ "metadata:sources:deploy:hardis:project",
14516
+ "metadata:sources:deploy:project:hardis"
14517
+ ]
14518
14518
  }
14519
14519
  },
14520
- "version": "5.25.2"
14520
+ "version": "5.26.0"
14521
14521
  }