sfdx-hardis 6.12.7-beta202511221406.0 → 6.12.7-beta202511232340.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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,11 @@
4
4
 
5
5
  Note: Can be used with `sfdx plugins:install sfdx-hardis@beta` and docker image `hardisgroupcom/sfdx-hardis@beta`
6
6
 
7
+ ## [6.12.7] 2025-11-24
8
+
9
+ - Include stack trace in warning log for Flow diff generation errors
10
+ - Upgrade dependencies
11
+
7
12
  ## [6.12.6] 2025-11-18
8
13
 
9
14
  - QuickFix typo in deployment actions
@@ -132,13 +132,12 @@
132
132
  "clear:cache:hardis"
133
133
  ]
134
134
  },
135
- "hardis:auth:login": {
135
+ "hardis:config:get": {
136
136
  "aliases": [],
137
137
  "args": {},
138
- "description": "\n## Command Behavior\n\n**Authenticates to a Salesforce org, primarily designed for CI/CD workflows.**\n\nThis command facilitates secure and automated logins to Salesforce organizations within continuous integration and continuous delivery pipelines. It leverages pre-configured authentication details, ensuring that CI/CD processes can interact with Salesforce without manual intervention.\n\nKey aspects:\n\n- **Configuration-Driven:** It relies on authentication variables and files set up by dedicated configuration commands:\n - For CI/CD repositories: [Configure Org CI Authentication](https://sfdx-hardis.cloudity.com/hardis/project/configure/auth/)\n - For Monitoring repositories: [Configure Org Monitoring](https://sfdx-hardis.cloudity.com/hardis/org/configure/monitoring/)\n- **Technical Org Support:** Supports authentication to a 'technical org' (e.g., for calling Agentforce from another org) by utilizing the `SFDX_AUTH_URL_TECHNICAL_ORG` environment variable. If this variable is set, the command authenticates to this org with the alias `TECHNICAL_ORG`.\n\nTo obtain the `SFDX_AUTH_URL_TECHNICAL_ORG` value, you can run `sf org display --verbose --json` and copy the `sfdxAuthUrl` field from the output.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThe command's technical flow involves:\n\n- **Flag Parsing:** It parses command-line flags such as `instanceurl`, `devhub`, `scratchorg`, and `debug` to determine the authentication context.\n- **Authentication Hook:** It triggers an internal authentication hook (`this.config.runHook('auth', ...`)) which is responsible for executing the actual authentication logic based on the provided flags (e.g., whether it's a Dev Hub or a scratch org).\n- **Environment Variable Check:** It checks for the presence of `SFDX_AUTH_URL_TECHNICAL_ORG` or `TECHNICAL_ORG_ALIAS` environment variables.\n- **`authOrg` Utility:** If a technical org is configured, it calls the `authOrg` utility function to perform the authentication for that specific org, ensuring it's connected and available for subsequent operations.\n- **Salesforce CLI Integration:** It integrates with the Salesforce CLI's authentication mechanisms to establish and manage org connections.\n</details>\n",
138
+ "description": "\n## Command Behavior\n\n**Retrieves and displays the sfdx-hardis configuration for a specified level.**\n\nThis command allows you to inspect the configuration that is currently in effect for your project, which is useful for debugging and understanding how sfdx-hardis will behave.\n\n- **Configuration levels:** It can retrieve configuration from three different levels:\n - **Project:** The configuration defined in the project's `.sfdx-hardis.yml` file.\n - **Branch:** The configuration defined in a branch-specific configuration file (e.g., `.sfdx-hardis.production.yml`).\n - **User:** The global user-level configuration.\n\n## Technical explanations\n\nThe command's logic is straightforward:\n\n- **`getConfig` function:** It calls the `getConfig` utility function, passing the desired configuration level as an argument.\n- **Configuration loading:** The `getConfig` function is responsible for finding the appropriate configuration file, reading its contents, and parsing it as YAML or JSON.\n- **Output:** The retrieved configuration is then displayed to the user as a JSON string.\n",
139
139
  "examples": [
140
- "$ sf hardis:auth:login",
141
- "CI=true CI_COMMIT_REF_NAME=monitoring_myclient sf hardis:auth:login"
140
+ "$ sf hardis:project:deploy:sources:metadata"
142
141
  ],
143
142
  "flags": {
144
143
  "json": {
@@ -156,28 +155,20 @@
156
155
  "multiple": false,
157
156
  "type": "option"
158
157
  },
159
- "instanceurl": {
160
- "char": "r",
161
- "description": "URL of org instance",
162
- "name": "instanceurl",
158
+ "level": {
159
+ "char": "l",
160
+ "description": "project,branch or user",
161
+ "name": "level",
162
+ "default": "project",
163
163
  "hasDynamicHelp": false,
164
164
  "multiple": false,
165
+ "options": [
166
+ "project",
167
+ "branch",
168
+ "user"
169
+ ],
165
170
  "type": "option"
166
171
  },
167
- "devhub": {
168
- "char": "h",
169
- "description": "Also connect associated DevHub",
170
- "name": "devhub",
171
- "allowNo": false,
172
- "type": "boolean"
173
- },
174
- "scratchorg": {
175
- "char": "s",
176
- "description": "Scratch org",
177
- "name": "scratchorg",
178
- "allowNo": false,
179
- "type": "boolean"
180
- },
181
172
  "debug": {
182
173
  "char": "d",
183
174
  "description": "Activate debug mode (more logs)",
@@ -201,38 +192,39 @@
201
192
  },
202
193
  "hasDynamicHelp": false,
203
194
  "hiddenAliases": [],
204
- "id": "hardis:auth:login",
195
+ "id": "hardis:config:get",
205
196
  "pluginAlias": "sfdx-hardis",
206
197
  "pluginName": "sfdx-hardis",
207
198
  "pluginType": "core",
208
199
  "strict": true,
209
200
  "enableJsonFlag": true,
210
- "title": "Login",
201
+ "title": "Deploy metadata sources to org",
211
202
  "requiresProject": false,
212
203
  "isESM": true,
213
204
  "relativePath": [
214
205
  "lib",
215
206
  "commands",
216
207
  "hardis",
217
- "auth",
218
- "login.js"
208
+ "config",
209
+ "get.js"
219
210
  ],
220
211
  "aliasPermutations": [],
221
212
  "permutations": [
222
- "hardis:auth:login",
223
- "auth:hardis:login",
224
- "auth:login:hardis",
225
- "hardis:login:auth",
226
- "login:hardis:auth",
227
- "login:auth:hardis"
213
+ "hardis:config:get",
214
+ "config:hardis:get",
215
+ "config:get:hardis",
216
+ "hardis:get:config",
217
+ "get:hardis:config",
218
+ "get:config:hardis"
228
219
  ]
229
220
  },
230
- "hardis:config:get": {
221
+ "hardis:auth:login": {
231
222
  "aliases": [],
232
223
  "args": {},
233
- "description": "\n## Command Behavior\n\n**Retrieves and displays the sfdx-hardis configuration for a specified level.**\n\nThis command allows you to inspect the configuration that is currently in effect for your project, which is useful for debugging and understanding how sfdx-hardis will behave.\n\n- **Configuration levels:** It can retrieve configuration from three different levels:\n - **Project:** The configuration defined in the project's `.sfdx-hardis.yml` file.\n - **Branch:** The configuration defined in a branch-specific configuration file (e.g., `.sfdx-hardis.production.yml`).\n - **User:** The global user-level configuration.\n\n## Technical explanations\n\nThe command's logic is straightforward:\n\n- **`getConfig` function:** It calls the `getConfig` utility function, passing the desired configuration level as an argument.\n- **Configuration loading:** The `getConfig` function is responsible for finding the appropriate configuration file, reading its contents, and parsing it as YAML or JSON.\n- **Output:** The retrieved configuration is then displayed to the user as a JSON string.\n",
224
+ "description": "\n## Command Behavior\n\n**Authenticates to a Salesforce org, primarily designed for CI/CD workflows.**\n\nThis command facilitates secure and automated logins to Salesforce organizations within continuous integration and continuous delivery pipelines. It leverages pre-configured authentication details, ensuring that CI/CD processes can interact with Salesforce without manual intervention.\n\nKey aspects:\n\n- **Configuration-Driven:** It relies on authentication variables and files set up by dedicated configuration commands:\n - For CI/CD repositories: [Configure Org CI Authentication](https://sfdx-hardis.cloudity.com/hardis/project/configure/auth/)\n - For Monitoring repositories: [Configure Org Monitoring](https://sfdx-hardis.cloudity.com/hardis/org/configure/monitoring/)\n- **Technical Org Support:** Supports authentication to a 'technical org' (e.g., for calling Agentforce from another org) by utilizing the `SFDX_AUTH_URL_TECHNICAL_ORG` environment variable. If this variable is set, the command authenticates to this org with the alias `TECHNICAL_ORG`.\n\nTo obtain the `SFDX_AUTH_URL_TECHNICAL_ORG` value, you can run `sf org display --verbose --json` and copy the `sfdxAuthUrl` field from the output.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThe command's technical flow involves:\n\n- **Flag Parsing:** It parses command-line flags such as `instanceurl`, `devhub`, `scratchorg`, and `debug` to determine the authentication context.\n- **Authentication Hook:** It triggers an internal authentication hook (`this.config.runHook('auth', ...`)) which is responsible for executing the actual authentication logic based on the provided flags (e.g., whether it's a Dev Hub or a scratch org).\n- **Environment Variable Check:** It checks for the presence of `SFDX_AUTH_URL_TECHNICAL_ORG` or `TECHNICAL_ORG_ALIAS` environment variables.\n- **`authOrg` Utility:** If a technical org is configured, it calls the `authOrg` utility function to perform the authentication for that specific org, ensuring it's connected and available for subsequent operations.\n- **Salesforce CLI Integration:** It integrates with the Salesforce CLI's authentication mechanisms to establish and manage org connections.\n</details>\n",
234
225
  "examples": [
235
- "$ sf hardis:project:deploy:sources:metadata"
226
+ "$ sf hardis:auth:login",
227
+ "CI=true CI_COMMIT_REF_NAME=monitoring_myclient sf hardis:auth:login"
236
228
  ],
237
229
  "flags": {
238
230
  "json": {
@@ -250,20 +242,28 @@
250
242
  "multiple": false,
251
243
  "type": "option"
252
244
  },
253
- "level": {
254
- "char": "l",
255
- "description": "project,branch or user",
256
- "name": "level",
257
- "default": "project",
245
+ "instanceurl": {
246
+ "char": "r",
247
+ "description": "URL of org instance",
248
+ "name": "instanceurl",
258
249
  "hasDynamicHelp": false,
259
250
  "multiple": false,
260
- "options": [
261
- "project",
262
- "branch",
263
- "user"
264
- ],
265
251
  "type": "option"
266
252
  },
253
+ "devhub": {
254
+ "char": "h",
255
+ "description": "Also connect associated DevHub",
256
+ "name": "devhub",
257
+ "allowNo": false,
258
+ "type": "boolean"
259
+ },
260
+ "scratchorg": {
261
+ "char": "s",
262
+ "description": "Scratch org",
263
+ "name": "scratchorg",
264
+ "allowNo": false,
265
+ "type": "boolean"
266
+ },
267
267
  "debug": {
268
268
  "char": "d",
269
269
  "description": "Activate debug mode (more logs)",
@@ -287,30 +287,30 @@
287
287
  },
288
288
  "hasDynamicHelp": false,
289
289
  "hiddenAliases": [],
290
- "id": "hardis:config:get",
290
+ "id": "hardis:auth:login",
291
291
  "pluginAlias": "sfdx-hardis",
292
292
  "pluginName": "sfdx-hardis",
293
293
  "pluginType": "core",
294
294
  "strict": true,
295
295
  "enableJsonFlag": true,
296
- "title": "Deploy metadata sources to org",
296
+ "title": "Login",
297
297
  "requiresProject": false,
298
298
  "isESM": true,
299
299
  "relativePath": [
300
300
  "lib",
301
301
  "commands",
302
302
  "hardis",
303
- "config",
304
- "get.js"
303
+ "auth",
304
+ "login.js"
305
305
  ],
306
306
  "aliasPermutations": [],
307
307
  "permutations": [
308
- "hardis:config:get",
309
- "config:hardis:get",
310
- "config:get:hardis",
311
- "hardis:get:config",
312
- "get:hardis:config",
313
- "get:config:hardis"
308
+ "hardis:auth:login",
309
+ "auth:hardis:login",
310
+ "auth:login:hardis",
311
+ "hardis:login:auth",
312
+ "login:hardis:auth",
313
+ "login:auth:hardis"
314
314
  ]
315
315
  },
316
316
  "hardis:doc:fieldusage": {
@@ -4741,117 +4741,6 @@
4741
4741
  "extract:pull-requests:git:hardis"
4742
4742
  ]
4743
4743
  },
4744
- "hardis:org:community:update": {
4745
- "aliases": [],
4746
- "args": {},
4747
- "description": "\n## Command Behavior\n\n**Updates the status of one or more Salesforce Experience Cloud (Community) networks.**\n\nThis command provides a way to programmatically change the status of your Salesforce Communities, allowing you to manage their availability. This is particularly useful for:\n\n- **Maintenance:** Taking communities offline for planned maintenance (`DownForMaintenance`).\n- **Activation/Deactivation:** Bringing communities online or offline (`Live`, `DownForMaintenance`).\n- **Automation:** Integrating community status changes into CI/CD pipelines or scheduled jobs.\n\nKey functionalities:\n\n- **Network Selection:** You can specify one or more community network names (separated by commas) using the `--name` flag.\n- **Status Update:** You can set the new status for the selected communities using the `--status` flag. Supported values are `Live` and `DownForMaintenance`.\n- **Confirmation Prompt:** In non-CI environments, it provides a confirmation prompt before executing the update, ensuring intentional changes.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThe command's technical implementation involves:\n\n- **Salesforce SOQL Query:** It first queries the Salesforce `Network` object using SOQL to retrieve the `Id`, `Name`, and `Status` of the specified communities. This ensures that only existing communities are targeted.\n- **SObject Update:** It then constructs an array of `Network` sObjects with their `Id` and the new `Status` and performs a DML update operation using `conn.sobject(\"Network\").update()`. The `allOrNone: false` option is used to allow partial success in case some updates fail.\n- **Error Handling and Reporting:** It iterates through the update results, logging success or failure for each community. It also provides a summary of successful and erroneous updates.\n- **User Interaction:** Uses `prompts` to confirm the update action with the user when not running in a CI environment.\n- **Salesforce Connection:** Establishes a connection to the target Salesforce org using the `target-org` flag.\n</details>\n",
4748
- "examples": [
4749
- "$ sf hardis:org:community:update --name 'MyNetworkName' --status DownForMaintenance",
4750
- "$ sf hardis:org:community:update --name 'MyNetworkName,MySecondNetworkName' --status Live"
4751
- ],
4752
- "flags": {
4753
- "json": {
4754
- "description": "Format output as json.",
4755
- "helpGroup": "GLOBAL",
4756
- "name": "json",
4757
- "allowNo": false,
4758
- "type": "boolean"
4759
- },
4760
- "flags-dir": {
4761
- "helpGroup": "GLOBAL",
4762
- "name": "flags-dir",
4763
- "summary": "Import flag values from a directory.",
4764
- "hasDynamicHelp": false,
4765
- "multiple": false,
4766
- "type": "option"
4767
- },
4768
- "name": {
4769
- "char": "n",
4770
- "description": "List of Networks Names that you want to update, separated by comma",
4771
- "name": "name",
4772
- "required": true,
4773
- "hasDynamicHelp": false,
4774
- "multiple": false,
4775
- "type": "option"
4776
- },
4777
- "status": {
4778
- "char": "s",
4779
- "description": "New status for the community, available values are: Live, DownForMaintenance",
4780
- "name": "status",
4781
- "required": true,
4782
- "hasDynamicHelp": false,
4783
- "multiple": false,
4784
- "type": "option"
4785
- },
4786
- "debug": {
4787
- "char": "d",
4788
- "description": "Activate debug mode (more logs)",
4789
- "name": "debug",
4790
- "allowNo": false,
4791
- "type": "boolean"
4792
- },
4793
- "target-org": {
4794
- "aliases": [
4795
- "targetusername",
4796
- "u"
4797
- ],
4798
- "char": "o",
4799
- "deprecateAliases": true,
4800
- "name": "target-org",
4801
- "noCacheDefault": true,
4802
- "required": true,
4803
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
4804
- "hasDynamicHelp": true,
4805
- "multiple": false,
4806
- "type": "option"
4807
- }
4808
- },
4809
- "hasDynamicHelp": true,
4810
- "hiddenAliases": [],
4811
- "id": "hardis:org:community:update",
4812
- "pluginAlias": "sfdx-hardis",
4813
- "pluginName": "sfdx-hardis",
4814
- "pluginType": "core",
4815
- "strict": true,
4816
- "summary": "Update a community status.",
4817
- "enableJsonFlag": true,
4818
- "isESM": true,
4819
- "relativePath": [
4820
- "lib",
4821
- "commands",
4822
- "hardis",
4823
- "org",
4824
- "community",
4825
- "update.js"
4826
- ],
4827
- "aliasPermutations": [],
4828
- "permutations": [
4829
- "hardis:org:community:update",
4830
- "org:hardis:community:update",
4831
- "org:community:hardis:update",
4832
- "org:community:update:hardis",
4833
- "hardis:community:org:update",
4834
- "community:hardis:org:update",
4835
- "community:org:hardis:update",
4836
- "community:org:update:hardis",
4837
- "hardis:community:update:org",
4838
- "community:hardis:update:org",
4839
- "community:update:hardis:org",
4840
- "community:update:org:hardis",
4841
- "hardis:org:update:community",
4842
- "org:hardis:update:community",
4843
- "org:update:hardis:community",
4844
- "org:update:community:hardis",
4845
- "hardis:update:org:community",
4846
- "update:hardis:org:community",
4847
- "update:org:hardis:community",
4848
- "update:org:community:hardis",
4849
- "hardis:update:community:org",
4850
- "update:hardis:community:org",
4851
- "update:community:hardis:org",
4852
- "update:community:org:hardis"
4853
- ]
4854
- },
4855
4744
  "hardis:org:configure:data": {
4856
4745
  "aliases": [],
4857
4746
  "args": {},
@@ -5153,12 +5042,13 @@
5153
5042
  "monitoring:configure:org:hardis"
5154
5043
  ]
5155
5044
  },
5156
- "hardis:org:data:delete": {
5045
+ "hardis:org:community:update": {
5157
5046
  "aliases": [],
5158
5047
  "args": {},
5159
- "description": "\n## Command Behavior\n\n**Deletes records in multiple Salesforce objects using an SFDMU (Salesforce Data Migration Utility) workspace.**\n\nThis command provides a powerful and controlled way to remove data from your Salesforce orgs based on configurations defined in an SFDMU workspace. It's particularly useful for:\n\n- **Data Cleanup:** Removing test data, obsolete records, or sensitive information.\n- **Environment Reset:** Preparing sandboxes for new development cycles by clearing specific data sets.\n- **Compliance:** Deleting data to meet regulatory requirements.\n\n**Important Considerations for Production Environments:**\n\nIf you intend to run this command in a production environment, you must:\n\n- Set `runnableInProduction` to `true` in your `export.json` file within the SFDMU workspace.\n- Define `sfdmuCanModify: YOUR_INSTANCE_URL` in your branch-specific configuration file (e.g., `config/branches/.sfdx-hardis.YOUR_BRANCH.yml`) to explicitly authorize data modification for that instance.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThe command's technical implementation relies heavily on the SFDMU plugin:\n\n- **SFDMU Integration:** It leverages the `sfdmu` plugin to perform the actual data deletion operations. The command acts as a wrapper, providing an assisted interface for SFDMU execution.\n- **Workspace Selection:** If the SFDMU workspace path is not provided via the `--path` flag, it interactively prompts the user to select a data workspace using `selectDataWorkspace`.\n- **Org Selection:** It ensures that a target Salesforce org is selected (either via the `--target-org` flag or through an interactive prompt using `promptOrgUsernameDefault`) to specify where the data deletion will occur.\n- **`deleteData` Utility:** The core logic for executing the SFDMU deletion process is encapsulated within the `deleteData` utility function, which takes the SFDMU workspace path and the target username as arguments.\n- **Environment Awareness:** It checks the `isCI` flag to determine whether to run in an interactive mode (prompting for user input) or a non-interactive mode (relying solely on command-line flags).\n- **Required Plugin:** It explicitly lists `sfdmu` as a required plugin, ensuring that the necessary dependency is in place before execution.\n</details>\n",
5048
+ "description": "\n## Command Behavior\n\n**Updates the status of one or more Salesforce Experience Cloud (Community) networks.**\n\nThis command provides a way to programmatically change the status of your Salesforce Communities, allowing you to manage their availability. This is particularly useful for:\n\n- **Maintenance:** Taking communities offline for planned maintenance (`DownForMaintenance`).\n- **Activation/Deactivation:** Bringing communities online or offline (`Live`, `DownForMaintenance`).\n- **Automation:** Integrating community status changes into CI/CD pipelines or scheduled jobs.\n\nKey functionalities:\n\n- **Network Selection:** You can specify one or more community network names (separated by commas) using the `--name` flag.\n- **Status Update:** You can set the new status for the selected communities using the `--status` flag. Supported values are `Live` and `DownForMaintenance`.\n- **Confirmation Prompt:** In non-CI environments, it provides a confirmation prompt before executing the update, ensuring intentional changes.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThe command's technical implementation involves:\n\n- **Salesforce SOQL Query:** It first queries the Salesforce `Network` object using SOQL to retrieve the `Id`, `Name`, and `Status` of the specified communities. This ensures that only existing communities are targeted.\n- **SObject Update:** It then constructs an array of `Network` sObjects with their `Id` and the new `Status` and performs a DML update operation using `conn.sobject(\"Network\").update()`. The `allOrNone: false` option is used to allow partial success in case some updates fail.\n- **Error Handling and Reporting:** It iterates through the update results, logging success or failure for each community. It also provides a summary of successful and erroneous updates.\n- **User Interaction:** Uses `prompts` to confirm the update action with the user when not running in a CI environment.\n- **Salesforce Connection:** Establishes a connection to the target Salesforce org using the `target-org` flag.\n</details>\n",
5160
5049
  "examples": [
5161
- "$ sf hardis:org:data:delete"
5050
+ "$ sf hardis:org:community:update --name 'MyNetworkName' --status DownForMaintenance",
5051
+ "$ sf hardis:org:community:update --name 'MyNetworkName,MySecondNetworkName' --status Live"
5162
5052
  ],
5163
5053
  "flags": {
5164
5054
  "json": {
@@ -5176,10 +5066,20 @@
5176
5066
  "multiple": false,
5177
5067
  "type": "option"
5178
5068
  },
5179
- "path": {
5180
- "char": "p",
5181
- "description": "Path to the sfdmu workspace folder",
5182
- "name": "path",
5069
+ "name": {
5070
+ "char": "n",
5071
+ "description": "List of Networks Names that you want to update, separated by comma",
5072
+ "name": "name",
5073
+ "required": true,
5074
+ "hasDynamicHelp": false,
5075
+ "multiple": false,
5076
+ "type": "option"
5077
+ },
5078
+ "status": {
5079
+ "char": "s",
5080
+ "description": "New status for the community, available values are: Live, DownForMaintenance",
5081
+ "name": "status",
5082
+ "required": true,
5183
5083
  "hasDynamicHelp": false,
5184
5084
  "multiple": false,
5185
5085
  "type": "option"
@@ -5191,16 +5091,116 @@
5191
5091
  "allowNo": false,
5192
5092
  "type": "boolean"
5193
5093
  },
5194
- "websocket": {
5195
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
5196
- "name": "websocket",
5197
- "hasDynamicHelp": false,
5198
- "multiple": false,
5199
- "type": "option"
5200
- },
5201
- "skipauth": {
5202
- "description": "Skip authentication check when a default username is required",
5203
- "name": "skipauth",
5094
+ "target-org": {
5095
+ "aliases": [
5096
+ "targetusername",
5097
+ "u"
5098
+ ],
5099
+ "char": "o",
5100
+ "deprecateAliases": true,
5101
+ "name": "target-org",
5102
+ "noCacheDefault": true,
5103
+ "required": true,
5104
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
5105
+ "hasDynamicHelp": true,
5106
+ "multiple": false,
5107
+ "type": "option"
5108
+ }
5109
+ },
5110
+ "hasDynamicHelp": true,
5111
+ "hiddenAliases": [],
5112
+ "id": "hardis:org:community:update",
5113
+ "pluginAlias": "sfdx-hardis",
5114
+ "pluginName": "sfdx-hardis",
5115
+ "pluginType": "core",
5116
+ "strict": true,
5117
+ "summary": "Update a community status.",
5118
+ "enableJsonFlag": true,
5119
+ "isESM": true,
5120
+ "relativePath": [
5121
+ "lib",
5122
+ "commands",
5123
+ "hardis",
5124
+ "org",
5125
+ "community",
5126
+ "update.js"
5127
+ ],
5128
+ "aliasPermutations": [],
5129
+ "permutations": [
5130
+ "hardis:org:community:update",
5131
+ "org:hardis:community:update",
5132
+ "org:community:hardis:update",
5133
+ "org:community:update:hardis",
5134
+ "hardis:community:org:update",
5135
+ "community:hardis:org:update",
5136
+ "community:org:hardis:update",
5137
+ "community:org:update:hardis",
5138
+ "hardis:community:update:org",
5139
+ "community:hardis:update:org",
5140
+ "community:update:hardis:org",
5141
+ "community:update:org:hardis",
5142
+ "hardis:org:update:community",
5143
+ "org:hardis:update:community",
5144
+ "org:update:hardis:community",
5145
+ "org:update:community:hardis",
5146
+ "hardis:update:org:community",
5147
+ "update:hardis:org:community",
5148
+ "update:org:hardis:community",
5149
+ "update:org:community:hardis",
5150
+ "hardis:update:community:org",
5151
+ "update:hardis:community:org",
5152
+ "update:community:hardis:org",
5153
+ "update:community:org:hardis"
5154
+ ]
5155
+ },
5156
+ "hardis:org:data:delete": {
5157
+ "aliases": [],
5158
+ "args": {},
5159
+ "description": "\n## Command Behavior\n\n**Deletes records in multiple Salesforce objects using an SFDMU (Salesforce Data Migration Utility) workspace.**\n\nThis command provides a powerful and controlled way to remove data from your Salesforce orgs based on configurations defined in an SFDMU workspace. It's particularly useful for:\n\n- **Data Cleanup:** Removing test data, obsolete records, or sensitive information.\n- **Environment Reset:** Preparing sandboxes for new development cycles by clearing specific data sets.\n- **Compliance:** Deleting data to meet regulatory requirements.\n\n**Important Considerations for Production Environments:**\n\nIf you intend to run this command in a production environment, you must:\n\n- Set `runnableInProduction` to `true` in your `export.json` file within the SFDMU workspace.\n- Define `sfdmuCanModify: YOUR_INSTANCE_URL` in your branch-specific configuration file (e.g., `config/branches/.sfdx-hardis.YOUR_BRANCH.yml`) to explicitly authorize data modification for that instance.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThe command's technical implementation relies heavily on the SFDMU plugin:\n\n- **SFDMU Integration:** It leverages the `sfdmu` plugin to perform the actual data deletion operations. The command acts as a wrapper, providing an assisted interface for SFDMU execution.\n- **Workspace Selection:** If the SFDMU workspace path is not provided via the `--path` flag, it interactively prompts the user to select a data workspace using `selectDataWorkspace`.\n- **Org Selection:** It ensures that a target Salesforce org is selected (either via the `--target-org` flag or through an interactive prompt using `promptOrgUsernameDefault`) to specify where the data deletion will occur.\n- **`deleteData` Utility:** The core logic for executing the SFDMU deletion process is encapsulated within the `deleteData` utility function, which takes the SFDMU workspace path and the target username as arguments.\n- **Environment Awareness:** It checks the `isCI` flag to determine whether to run in an interactive mode (prompting for user input) or a non-interactive mode (relying solely on command-line flags).\n- **Required Plugin:** It explicitly lists `sfdmu` as a required plugin, ensuring that the necessary dependency is in place before execution.\n</details>\n",
5160
+ "examples": [
5161
+ "$ sf hardis:org:data:delete"
5162
+ ],
5163
+ "flags": {
5164
+ "json": {
5165
+ "description": "Format output as json.",
5166
+ "helpGroup": "GLOBAL",
5167
+ "name": "json",
5168
+ "allowNo": false,
5169
+ "type": "boolean"
5170
+ },
5171
+ "flags-dir": {
5172
+ "helpGroup": "GLOBAL",
5173
+ "name": "flags-dir",
5174
+ "summary": "Import flag values from a directory.",
5175
+ "hasDynamicHelp": false,
5176
+ "multiple": false,
5177
+ "type": "option"
5178
+ },
5179
+ "path": {
5180
+ "char": "p",
5181
+ "description": "Path to the sfdmu workspace folder",
5182
+ "name": "path",
5183
+ "hasDynamicHelp": false,
5184
+ "multiple": false,
5185
+ "type": "option"
5186
+ },
5187
+ "debug": {
5188
+ "char": "d",
5189
+ "description": "Activate debug mode (more logs)",
5190
+ "name": "debug",
5191
+ "allowNo": false,
5192
+ "type": "boolean"
5193
+ },
5194
+ "websocket": {
5195
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
5196
+ "name": "websocket",
5197
+ "hasDynamicHelp": false,
5198
+ "multiple": false,
5199
+ "type": "option"
5200
+ },
5201
+ "skipauth": {
5202
+ "description": "Skip authentication check when a default username is required",
5203
+ "name": "skipauth",
5204
5204
  "allowNo": false,
5205
5205
  "type": "boolean"
5206
5206
  },
@@ -9412,135 +9412,6 @@
9412
9412
  "promote:version:package:hardis"
9413
9413
  ]
9414
9414
  },
9415
- "hardis:project:configure:auth": {
9416
- "aliases": [],
9417
- "args": {},
9418
- "description": "\n## Command Behavior\n\n**Configures authentication between a Git branch and a target Salesforce org for CI/CD deployments.**\n\nThis command facilitates the setup of automated CI/CD pipelines, enabling seamless deployments from specific Git branches to designated Salesforce orgs. It supports both standard Salesforce orgs and Dev Hub configurations, catering to various enterprise deployment workflows.\n\nKey functionalities include:\n\n- **Org Selection/Login:** Guides the user to select an existing Salesforce org or log in to a new one.\n- **Git Branch Association:** Allows associating a specific Git branch with the chosen Salesforce org.\n- **Merge Target Definition:** Enables defining target Git branches into which the configured branch can merge, ensuring controlled deployment flows.\n- **Salesforce Username Configuration:** Prompts for the Salesforce username to be used by the CI server for deployments.\n- **SSL Certificate Generation:** Automatically generates an SSL certificate for secure authentication.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThe command's implementation involves several key technical aspects:\n\n- **SF CLI Integration:** Utilizes \n@salesforce/sf-plugins-core\n for command structure and flag parsing.\n- **Interactive Prompts:** Employs the \nprompts\n library for interactive user input, guiding the configuration process.\n- **Git Integration:** Interacts with Git to retrieve branch information using \n`git().branch([\"--list\", \"-r\"])`\n.\n- **Configuration Management:** Leverages internal utilities (`checkConfig`, `getConfig`, `setConfig`, `setInConfigFile`) to read from and write to project-specific configuration files (e.g., `.sfdx-hardis.<branchName>.yml`).\n- **Salesforce CLI Execution:** Executes Salesforce CLI commands programmatically via `execSfdxJson` for org interactions.\n- **SSL Certificate Generation:** Calls `generateSSLCertificate` to create necessary SSL certificates for JWT-based authentication.\n- **WebSocket Communication:** Uses `WebSocketClient` for potential communication with external tools or processes, such as restarting the command in VS Code.\n- **Dependency Check:** Ensures the presence of `openssl` on the system, which is required for SSL certificate generation.\n",
9419
- "examples": [
9420
- "$ sf hardis:project:configure:auth"
9421
- ],
9422
- "flags": {
9423
- "json": {
9424
- "description": "Format output as json.",
9425
- "helpGroup": "GLOBAL",
9426
- "name": "json",
9427
- "allowNo": false,
9428
- "type": "boolean"
9429
- },
9430
- "flags-dir": {
9431
- "helpGroup": "GLOBAL",
9432
- "name": "flags-dir",
9433
- "summary": "Import flag values from a directory.",
9434
- "hasDynamicHelp": false,
9435
- "multiple": false,
9436
- "type": "option"
9437
- },
9438
- "devhub": {
9439
- "char": "b",
9440
- "description": "Configure project DevHub",
9441
- "name": "devhub",
9442
- "allowNo": false,
9443
- "type": "boolean"
9444
- },
9445
- "debug": {
9446
- "char": "d",
9447
- "description": "Activate debug mode (more logs)",
9448
- "name": "debug",
9449
- "allowNo": false,
9450
- "type": "boolean"
9451
- },
9452
- "websocket": {
9453
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
9454
- "name": "websocket",
9455
- "hasDynamicHelp": false,
9456
- "multiple": false,
9457
- "type": "option"
9458
- },
9459
- "skipauth": {
9460
- "description": "Skip authentication check when a default username is required",
9461
- "name": "skipauth",
9462
- "allowNo": false,
9463
- "type": "boolean"
9464
- },
9465
- "target-org": {
9466
- "aliases": [
9467
- "targetusername",
9468
- "u"
9469
- ],
9470
- "char": "o",
9471
- "deprecateAliases": true,
9472
- "name": "target-org",
9473
- "noCacheDefault": true,
9474
- "summary": "Username or alias of the target org.",
9475
- "hasDynamicHelp": true,
9476
- "multiple": false,
9477
- "type": "option"
9478
- },
9479
- "target-dev-hub": {
9480
- "aliases": [
9481
- "targetdevhubusername"
9482
- ],
9483
- "char": "v",
9484
- "deprecateAliases": true,
9485
- "name": "target-dev-hub",
9486
- "noCacheDefault": true,
9487
- "required": false,
9488
- "summary": "Username or alias of the Dev Hub org.",
9489
- "hasDynamicHelp": true,
9490
- "multiple": false,
9491
- "type": "option"
9492
- }
9493
- },
9494
- "hasDynamicHelp": true,
9495
- "hiddenAliases": [],
9496
- "id": "hardis:project:configure:auth",
9497
- "pluginAlias": "sfdx-hardis",
9498
- "pluginName": "sfdx-hardis",
9499
- "pluginType": "core",
9500
- "strict": true,
9501
- "enableJsonFlag": true,
9502
- "title": "Configure authentication",
9503
- "requiresProject": false,
9504
- "requiresDependencies": [
9505
- "openssl"
9506
- ],
9507
- "isESM": true,
9508
- "relativePath": [
9509
- "lib",
9510
- "commands",
9511
- "hardis",
9512
- "project",
9513
- "configure",
9514
- "auth.js"
9515
- ],
9516
- "aliasPermutations": [],
9517
- "permutations": [
9518
- "hardis:project:configure:auth",
9519
- "project:hardis:configure:auth",
9520
- "project:configure:hardis:auth",
9521
- "project:configure:auth:hardis",
9522
- "hardis:configure:project:auth",
9523
- "configure:hardis:project:auth",
9524
- "configure:project:hardis:auth",
9525
- "configure:project:auth:hardis",
9526
- "hardis:configure:auth:project",
9527
- "configure:hardis:auth:project",
9528
- "configure:auth:hardis:project",
9529
- "configure:auth:project:hardis",
9530
- "hardis:project:auth:configure",
9531
- "project:hardis:auth:configure",
9532
- "project:auth:hardis:configure",
9533
- "project:auth:configure:hardis",
9534
- "hardis:auth:project:configure",
9535
- "auth:hardis:project:configure",
9536
- "auth:project:hardis:configure",
9537
- "auth:project:configure:hardis",
9538
- "hardis:auth:configure:project",
9539
- "auth:hardis:configure:project",
9540
- "auth:configure:hardis:project",
9541
- "auth:configure:project:hardis"
9542
- ]
9543
- },
9544
9415
  "hardis:project:audit:apiversion": {
9545
9416
  "aliases": [],
9546
9417
  "args": {},
@@ -9954,6 +9825,135 @@
9954
9825
  "remotesites:audit:project:hardis"
9955
9826
  ]
9956
9827
  },
9828
+ "hardis:project:configure:auth": {
9829
+ "aliases": [],
9830
+ "args": {},
9831
+ "description": "\n## Command Behavior\n\n**Configures authentication between a Git branch and a target Salesforce org for CI/CD deployments.**\n\nThis command facilitates the setup of automated CI/CD pipelines, enabling seamless deployments from specific Git branches to designated Salesforce orgs. It supports both standard Salesforce orgs and Dev Hub configurations, catering to various enterprise deployment workflows.\n\nKey functionalities include:\n\n- **Org Selection/Login:** Guides the user to select an existing Salesforce org or log in to a new one.\n- **Git Branch Association:** Allows associating a specific Git branch with the chosen Salesforce org.\n- **Merge Target Definition:** Enables defining target Git branches into which the configured branch can merge, ensuring controlled deployment flows.\n- **Salesforce Username Configuration:** Prompts for the Salesforce username to be used by the CI server for deployments.\n- **SSL Certificate Generation:** Automatically generates an SSL certificate for secure authentication.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThe command's implementation involves several key technical aspects:\n\n- **SF CLI Integration:** Utilizes \n@salesforce/sf-plugins-core\n for command structure and flag parsing.\n- **Interactive Prompts:** Employs the \nprompts\n library for interactive user input, guiding the configuration process.\n- **Git Integration:** Interacts with Git to retrieve branch information using \n`git().branch([\"--list\", \"-r\"])`\n.\n- **Configuration Management:** Leverages internal utilities (`checkConfig`, `getConfig`, `setConfig`, `setInConfigFile`) to read from and write to project-specific configuration files (e.g., `.sfdx-hardis.<branchName>.yml`).\n- **Salesforce CLI Execution:** Executes Salesforce CLI commands programmatically via `execSfdxJson` for org interactions.\n- **SSL Certificate Generation:** Calls `generateSSLCertificate` to create necessary SSL certificates for JWT-based authentication.\n- **WebSocket Communication:** Uses `WebSocketClient` for potential communication with external tools or processes, such as restarting the command in VS Code.\n- **Dependency Check:** Ensures the presence of `openssl` on the system, which is required for SSL certificate generation.\n",
9832
+ "examples": [
9833
+ "$ sf hardis:project:configure:auth"
9834
+ ],
9835
+ "flags": {
9836
+ "json": {
9837
+ "description": "Format output as json.",
9838
+ "helpGroup": "GLOBAL",
9839
+ "name": "json",
9840
+ "allowNo": false,
9841
+ "type": "boolean"
9842
+ },
9843
+ "flags-dir": {
9844
+ "helpGroup": "GLOBAL",
9845
+ "name": "flags-dir",
9846
+ "summary": "Import flag values from a directory.",
9847
+ "hasDynamicHelp": false,
9848
+ "multiple": false,
9849
+ "type": "option"
9850
+ },
9851
+ "devhub": {
9852
+ "char": "b",
9853
+ "description": "Configure project DevHub",
9854
+ "name": "devhub",
9855
+ "allowNo": false,
9856
+ "type": "boolean"
9857
+ },
9858
+ "debug": {
9859
+ "char": "d",
9860
+ "description": "Activate debug mode (more logs)",
9861
+ "name": "debug",
9862
+ "allowNo": false,
9863
+ "type": "boolean"
9864
+ },
9865
+ "websocket": {
9866
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
9867
+ "name": "websocket",
9868
+ "hasDynamicHelp": false,
9869
+ "multiple": false,
9870
+ "type": "option"
9871
+ },
9872
+ "skipauth": {
9873
+ "description": "Skip authentication check when a default username is required",
9874
+ "name": "skipauth",
9875
+ "allowNo": false,
9876
+ "type": "boolean"
9877
+ },
9878
+ "target-org": {
9879
+ "aliases": [
9880
+ "targetusername",
9881
+ "u"
9882
+ ],
9883
+ "char": "o",
9884
+ "deprecateAliases": true,
9885
+ "name": "target-org",
9886
+ "noCacheDefault": true,
9887
+ "summary": "Username or alias of the target org.",
9888
+ "hasDynamicHelp": true,
9889
+ "multiple": false,
9890
+ "type": "option"
9891
+ },
9892
+ "target-dev-hub": {
9893
+ "aliases": [
9894
+ "targetdevhubusername"
9895
+ ],
9896
+ "char": "v",
9897
+ "deprecateAliases": true,
9898
+ "name": "target-dev-hub",
9899
+ "noCacheDefault": true,
9900
+ "required": false,
9901
+ "summary": "Username or alias of the Dev Hub org.",
9902
+ "hasDynamicHelp": true,
9903
+ "multiple": false,
9904
+ "type": "option"
9905
+ }
9906
+ },
9907
+ "hasDynamicHelp": true,
9908
+ "hiddenAliases": [],
9909
+ "id": "hardis:project:configure:auth",
9910
+ "pluginAlias": "sfdx-hardis",
9911
+ "pluginName": "sfdx-hardis",
9912
+ "pluginType": "core",
9913
+ "strict": true,
9914
+ "enableJsonFlag": true,
9915
+ "title": "Configure authentication",
9916
+ "requiresProject": false,
9917
+ "requiresDependencies": [
9918
+ "openssl"
9919
+ ],
9920
+ "isESM": true,
9921
+ "relativePath": [
9922
+ "lib",
9923
+ "commands",
9924
+ "hardis",
9925
+ "project",
9926
+ "configure",
9927
+ "auth.js"
9928
+ ],
9929
+ "aliasPermutations": [],
9930
+ "permutations": [
9931
+ "hardis:project:configure:auth",
9932
+ "project:hardis:configure:auth",
9933
+ "project:configure:hardis:auth",
9934
+ "project:configure:auth:hardis",
9935
+ "hardis:configure:project:auth",
9936
+ "configure:hardis:project:auth",
9937
+ "configure:project:hardis:auth",
9938
+ "configure:project:auth:hardis",
9939
+ "hardis:configure:auth:project",
9940
+ "configure:hardis:auth:project",
9941
+ "configure:auth:hardis:project",
9942
+ "configure:auth:project:hardis",
9943
+ "hardis:project:auth:configure",
9944
+ "project:hardis:auth:configure",
9945
+ "project:auth:hardis:configure",
9946
+ "project:auth:configure:hardis",
9947
+ "hardis:auth:project:configure",
9948
+ "auth:hardis:project:configure",
9949
+ "auth:project:hardis:configure",
9950
+ "auth:project:configure:hardis",
9951
+ "hardis:auth:configure:project",
9952
+ "auth:hardis:configure:project",
9953
+ "auth:configure:hardis:project",
9954
+ "auth:configure:project:hardis"
9955
+ ]
9956
+ },
9957
9957
  "hardis:project:convert:profilestopermsets": {
9958
9958
  "aliases": [],
9959
9959
  "args": {},
@@ -15504,5 +15504,5 @@
15504
15504
  ]
15505
15505
  }
15506
15506
  },
15507
- "version": "6.12.7-beta202511221406.0"
15507
+ "version": "6.12.7-beta202511232340.0"
15508
15508
  }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Swiss-army-knife Toolbox for Salesforce.\n Allows you to define a complete CD/CD Pipeline.\n Orchestrate base commands and assist users with interactive wizards",
4
4
  "author": "NicolasVuillamy @nvuillam",
5
5
  "bugs": "https://github.com/hardisgroupcom/sfdx-hardis/issues",
6
- "version": "6.12.7-beta202511221406.0",
6
+ "version": "6.12.7-beta202511232340.0",
7
7
  "dependencies": {
8
8
  "@actions/github": "^6.0.1",
9
9
  "@cparra/apexdocs": "^3.14.1",