sfdx-hardis 6.0.7-beta202508172156.0 → 6.0.7-beta202508191748.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,10 +4,14 @@
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
+ - [hardis:org:refresh:before-refresh](https://sfdx-hardis.cloudity.com/hardis/org/refresh/before-refresh/)
8
+ - Retrieve Certificates and other metadatas that could need to be restored
9
+ - Retrieve Custom Settings values
10
+
7
11
  ## [6.0.6 (beta)] 2025-08-17
8
12
 
9
- - New command [hardis:org:refresh:save:connectedapp](https://sfdx-hardis.cloudity.com/hardis/org/refresh/save/connectedapp/) : Save Connected Apps before refreshing a sandbox.
10
- - New command [hardis:org:refresh:restore:connectedapp](https://sfdx-hardis.cloudity.com/hardis/org/refresh/restore/connectedapp/) : Restore Connected Apps after refreshing a sandbox.
13
+ - New command [hardis:org:refresh:before-refresh](https://sfdx-hardis.cloudity.com/hardis/org/refresh/before-refresh/) : Save Connected Apps before refreshing a sandbox.
14
+ - New command [hardis:org:refresh:after-refresh](https://sfdx-hardis.cloudity.com/hardis/org/refresh/after-refresh/) : Restore Connected Apps after refreshing a sandbox.
11
15
  - Update JSON Schema documentation
12
16
  - When authenticating to an expired org token, delete the SF Cli file that can mess with us when we refreshed a sandbox.
13
17
  - Improve logs display
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Package xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <types>
4
+ <members>*</members>
5
+ <name>Certificate</name>
6
+ </types>
7
+ <version>64.0</version>
8
+ </Package>
@@ -0,0 +1,44 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Package xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <types>
4
+ <members>*</members>
5
+ <name>AuthProvider</name>
6
+ </types>
7
+ <types>
8
+ <members>*</members>
9
+ <name>CorsWhitelistOrigin</name>
10
+ </types>
11
+ <types>
12
+ <members>*</members>
13
+ <name>CustomMetadata</name>
14
+ </types>
15
+ <types>
16
+ <members>*</members>
17
+ <name>EmailServicesFunction</name>
18
+ </types>
19
+ <types>
20
+ <members>*</members>
21
+ <name>ExternalCredential</name>
22
+ </types>
23
+ <types>
24
+ <members>*</members>
25
+ <name>ExternalDataSource</name>
26
+ </types>
27
+ <types>
28
+ <members>*</members>
29
+ <name>NamedCredential</name>
30
+ </types>
31
+ <types>
32
+ <members>*</members>
33
+ <name>RemoteSiteSetting</name>
34
+ </types>
35
+ <types>
36
+ <members>*</members>
37
+ <name>SamlSsoConfig</name>
38
+ </types>
39
+ <types>
40
+ <members>*</members>
41
+ <name>WorkflowOutboundMessage</name>
42
+ </types>
43
+ <version>64.0</version>
44
+ </Package>
@@ -2,7 +2,6 @@ import { SfCommand } from '@salesforce/sf-plugins-core';
2
2
  import { Connection } from '@salesforce/core';
3
3
  import { AnyJson } from '@salesforce/ts-types';
4
4
  export default class OrgRefreshBeforeRefresh extends SfCommand<AnyJson> {
5
- static title: string;
6
5
  static description: string;
7
6
  static examples: string[];
8
7
  static flags: {
@@ -16,7 +15,10 @@ export default class OrgRefreshBeforeRefresh extends SfCommand<AnyJson> {
16
15
  static requiresProject: boolean;
17
16
  protected conn: Connection;
18
17
  protected saveProjectPath: string;
18
+ protected orgUsername: string;
19
+ protected instanceUrl: string;
19
20
  protected refreshSandboxConfig: any;
21
+ protected result: any;
20
22
  run(): Promise<AnyJson>;
21
23
  private createSaveProject;
22
24
  private getConnectedApps;
@@ -31,4 +33,10 @@ export default class OrgRefreshBeforeRefresh extends SfCommand<AnyJson> {
31
33
  private extractConsumerSecret;
32
34
  private updateConnectedAppWithSecret;
33
35
  private saveConfig;
36
+ private saveMetadatas;
37
+ private createSavePackageXml;
38
+ private retrieveMetadatasToSave;
39
+ private generatePackageXmlToRestore;
40
+ private retrieveCertificates;
41
+ private saveCustomSettings;
34
42
  }
@@ -8,53 +8,57 @@ import path from 'path';
8
8
  import puppeteer from 'puppeteer-core';
9
9
  import { execCommand, execSfdxJson, isCI, uxLog } from '../../../../common/utils/index.js';
10
10
  import { prompts } from '../../../../common/utils/prompts.js';
11
- import { parseXmlFile } from '../../../../common/utils/xmlUtils.js';
11
+ import { parsePackageXmlFile, parseXmlFile, writePackageXmlFile } from '../../../../common/utils/xmlUtils.js';
12
12
  import { getChromeExecutablePath } from '../../../../common/utils/orgConfigUtils.js';
13
13
  import { deleteConnectedApps, retrieveConnectedApps, validateConnectedApps, findConnectedAppFile, selectConnectedAppsForProcessing, createConnectedAppSuccessResponse, handleConnectedAppError } from '../../../../common/utils/refresh/connectedAppUtils.js';
14
14
  import { getConfig, setConfig } from '../../../../config/index.js';
15
15
  import { soqlQuery } from '../../../../common/utils/apiUtils.js';
16
16
  import { WebSocketClient } from '../../../../common/websocketClient.js';
17
+ import { PACKAGE_ROOT_DIR } from '../../../../settings.js';
17
18
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
18
19
  const messages = Messages.loadMessages('sfdx-hardis', 'org');
19
20
  export default class OrgRefreshBeforeRefresh extends SfCommand {
20
- static title = 'Save info to restore before org refresh';
21
21
  static description = `
22
22
  ## Command Behavior
23
23
 
24
- **Backs up all Connected Apps and their secrets from a Salesforce org before a sandbox refresh, enabling full restoration after the refresh.**
24
+ **Backs up all Connected Apps, their secrets, certificates, and custom settings from a Salesforce org before a sandbox refresh, enabling full restoration after the refresh.**
25
25
 
26
- This command is essential for Salesforce sandbox refresh operations where Connected Apps (and their Consumer Secrets) would otherwise be lost. It automates the extraction, secure storage, and (optionally) deletion of Connected Apps, ensuring that all credentials and configuration can be restored post-refresh.
26
+ This command is essential for Salesforce sandbox refresh operations where Connected Apps (and their Consumer Secrets), certificates, and custom settings would otherwise be lost. It automates the extraction, secure storage, and (optionally) deletion of Connected Apps, ensuring that all credentials and configuration can be restored post-refresh.
27
27
 
28
28
  Key functionalities:
29
29
 
30
- - **Connected App Discovery:** Lists all Connected Apps in the org, with options to filter by name or process all.
30
+ - **Connected App Discovery:** Lists all Connected Apps in the org, with options to filter by name, process all, or interactively select.
31
31
  - **User Selection:** Allows interactive or flag-based selection of which Connected Apps to back up.
32
32
  - **Metadata Retrieval:** Retrieves Connected App metadata and saves it in a dedicated project folder for the sandbox instance.
33
33
  - **Consumer Secret Extraction:** Attempts to extract Consumer Secrets automatically using browser automation (Puppeteer), or prompts for manual entry if automation fails.
34
34
  - **Config Persistence:** Stores the list of selected apps in the project config for use during restoration.
35
35
  - **Optional Deletion:** Can delete the Connected Apps from the org after backup, as required for re-upload after refresh.
36
- - **Summary and Reporting:** Provides a summary of actions, including which apps were saved and whether secrets were captured.
36
+ - **Certificate Backup:** Retrieves all org certificates and their definitions, saving them for later restoration.
37
+ - **Custom Settings Backup:** Lists all custom settings in the org, allows user selection, and exports their data to JSON files for backup.
38
+ - **Summary and Reporting:** Provides a summary of actions, including which apps, certificates, and custom settings were saved and whether secrets were captured.
37
39
 
38
- This command is part of [sfdx-hardis Sandbox Refresh](https://sfdx-hardis.cloudity.com/salesforce-sandbox-refresh/) and is designed to be run before a sandbox refresh. It ensures that all Connected Apps and their secrets are safely stored for later restoration.
40
+ This command is part of [sfdx-hardis Sandbox Refresh](https://sfdx-hardis.cloudity.com/salesforce-sandbox-refresh/) and is designed to be run before a sandbox refresh. It ensures that all Connected Apps, secrets, certificates, and custom settings are safely stored for later restoration.
39
41
 
40
42
  <details markdown="1">
41
43
  <summary>Technical explanations</summary>
42
44
 
43
- - **Salesforce CLI Integration:** Uses \`sf org list metadata\` and other CLI commands to discover and retrieve Connected Apps.
44
- - **Metadata Handling:** Saves Connected App XML files in a dedicated folder under \`scripts / sandbox - refresh / <sandbox-folder > \`.
45
+ - **Salesforce CLI Integration:** Uses \`sf org list metadata\`, \`sf project retrieve start\`, and other CLI commands to discover and retrieve Connected Apps, certificates, and custom settings.
46
+ - **Metadata Handling:** Saves Connected App XML files and certificate files in a dedicated folder under \`scripts/sandbox-refresh/<sandbox-folder>\`.
45
47
  - **Consumer Secret Handling:** Uses Puppeteer to automate browser login and extraction of Consumer Secrets, falling back to manual prompts if needed.
46
- - **Config Management:** Updates \`config /.sfdx - hardis.yml\` with the list of selected apps for later use.
47
- - **Deletion Logic:** Optionally deletes Connected Apps from the org (required for re-upload after refresh), with user confirmation unless running in CI or with \`--delete \` flag.
48
+ - **Custom Settings Handling:** Lists all custom settings, allows user selection, and exports their data using \`sf data tree export\` to JSON files.
49
+ - **Config Management:** Updates \`config/.sfdx-hardis.yml\` with the list of selected apps for later use.
50
+ - **Deletion Logic:** Optionally deletes Connected Apps from the org (required for re-upload after refresh), with user confirmation unless running in CI or with \`--delete\` flag.
48
51
  - **Error Handling:** Provides detailed error messages and guidance if retrieval or extraction fails.
52
+ - **Reporting:** Sends summary and configuration files to the WebSocket client for reporting and traceability.
49
53
 
50
54
  </details>
51
55
  `;
52
56
  static examples = [
53
- `$ sf hardis:org:refresh:before-refresh`,
54
- `$ sf hardis:org:refresh:before-refresh --name "MyConnectedApp"`,
55
- `$ sf hardis:org:refresh:before-refresh --name "App1,App2,App3"`,
56
- `$ sf hardis:org:refresh:before-refresh --all`,
57
- `$ sf hardis:org:refresh:before-refresh --delete`,
57
+ "$ sf hardis:org:refresh:before-refresh",
58
+ "$ sf hardis:org:refresh:before-refresh --name \"MyConnectedApp\"",
59
+ "$ sf hardis:org:refresh:before-refresh --name \"App1,App2,App3\"",
60
+ "$ sf hardis:org:refresh:before-refresh --all",
61
+ "$ sf hardis:org:refresh:before-refresh --delete",
58
62
  ];
59
63
  static flags = {
60
64
  "target-org": Flags.requiredOrg(),
@@ -84,82 +88,114 @@ This command is part of [sfdx-hardis Sandbox Refresh](https://sfdx-hardis.cloudi
84
88
  static requiresProject = true;
85
89
  conn;
86
90
  saveProjectPath = '';
91
+ orgUsername = '';
92
+ instanceUrl = '';
87
93
  refreshSandboxConfig = {};
94
+ result;
88
95
  async run() {
89
96
  const { flags } = await this.parse(OrgRefreshBeforeRefresh);
90
97
  this.conn = flags["target-org"].getConnection();
91
- const orgUsername = flags["target-org"].getUsername(); // Cast to string to avoid TypeScript error
92
- const instanceUrl = this.conn.instanceUrl;
98
+ this.orgUsername = flags["target-org"].getUsername(); // Cast to string to avoid TypeScript error
99
+ this.instanceUrl = this.conn.instanceUrl;
93
100
  const accessToken = this.conn.accessToken; // Ensure accessToken is a string
94
101
  const processAll = flags.all || false;
95
102
  const nameFilter = processAll ? undefined : flags.name; // If --all is set, ignore --name
96
103
  const config = await getConfig("user");
97
104
  this.refreshSandboxConfig = config?.refreshSandboxConfig || {};
98
- uxLog("action", this, c.cyan(`This command with save information that will need to be restored after org refresh`));
105
+ this.result = { success: true, message: 'before-refresh command performed successfully' };
106
+ uxLog("action", this, c.cyan(`This command with save information that will need to be restored after org refresh
107
+ - Certificates
108
+ - Custom Settings
109
+ - Connected Apps`));
99
110
  // Check org is connected
100
111
  if (!accessToken) {
101
112
  throw new SfError(c.red('Access token is required to retrieve Connected Apps from the org. Please authenticate to a default org.'));
102
113
  }
103
114
  this.saveProjectPath = await this.createSaveProject();
104
- try {
105
- // Step 1: Get Connected Apps from org or based on provided name filter
106
- const connectedApps = await this.getConnectedApps(orgUsername, nameFilter, processAll);
107
- if (connectedApps.length === 0) {
108
- uxLog("warning", this, c.yellow('No Connected Apps found'));
109
- return { success: false, message: 'No Connected Apps found' };
110
- }
111
- // Step 2: Determine which apps to process (all, filtered, or user-selected)
112
- const selectedApps = await this.selectConnectedApps(connectedApps, processAll, nameFilter);
113
- if (selectedApps.length === 0) {
114
- uxLog("warning", this, c.yellow('No Connected Apps selected'));
115
- return { success: false, message: 'No Connected Apps selected' };
115
+ await this.saveMetadatas();
116
+ await this.saveCustomSettings();
117
+ // If metadatas folder is not empty, ask if we want to retrieve them again
118
+ let retrieveConnectedApps = true;
119
+ const connectedAppsFolder = path.join(this.saveProjectPath, 'force-app', 'main', 'default', 'connectedApps');
120
+ if (fs.existsSync(connectedAppsFolder) && fs.readdirSync(connectedAppsFolder).length > 0) {
121
+ const confirmRetrieval = await prompts({
122
+ type: 'confirm',
123
+ name: 'retrieveAgain',
124
+ message: `Connected Apps folder is not empty. Do you want to retrieve Connected Apps again?`,
125
+ description: `If you do not retrieve them again, the Connected Apps will not be updated with the latest changes from the org.`,
126
+ initial: false
127
+ });
128
+ if (!confirmRetrieval.retrieveAgain) {
129
+ retrieveConnectedApps = false;
116
130
  }
117
- this.refreshSandboxConfig.connectedApps = selectedApps.map(app => app.fullName).sort();
118
- await this.saveConfig();
119
- // Step 3: Process the selected Connected Apps
120
- const updatedApps = await this.processConnectedApps(orgUsername, selectedApps, instanceUrl, accessToken);
121
- // Step 4: Delete Connected Apps from org if required (default behavior)
122
- let deleteApps = flags.delete || false;
123
- if (!isCI && !deleteApps) {
124
- const connectedAppNames = updatedApps.map(app => app.fullName).join(', ');
125
- const deletePrompt = await prompts({
126
- type: 'confirm',
127
- name: 'delete',
128
- message: `Do you want to delete the Connected Apps from the org after saving? ${connectedAppNames}`,
129
- description: 'If you do not delete them, they will remain in the org and can be re-uploaded after refreshing the org.',
130
- initial: false
131
+ }
132
+ if (retrieveConnectedApps) {
133
+ try {
134
+ // Step 1: Get Connected Apps from org or based on provided name filter
135
+ const connectedApps = await this.getConnectedApps(this.orgUsername, nameFilter, processAll);
136
+ if (connectedApps.length === 0) {
137
+ uxLog("warning", this, c.yellow('No Connected Apps found'));
138
+ return { success: false, message: 'No Connected Apps found' };
139
+ }
140
+ // Step 2: Determine which apps to process (all, filtered, or user-selected)
141
+ const selectedApps = await this.selectConnectedApps(connectedApps, processAll, nameFilter);
142
+ if (selectedApps.length === 0) {
143
+ uxLog("warning", this, c.yellow('No Connected Apps selected'));
144
+ return { success: false, message: 'No Connected Apps selected' };
145
+ }
146
+ this.refreshSandboxConfig.connectedApps = selectedApps.map(app => app.fullName).sort();
147
+ await this.saveConfig();
148
+ // Step 3: Process the selected Connected Apps
149
+ const updatedApps = await this.processConnectedApps(this.orgUsername, selectedApps, this.instanceUrl, accessToken);
150
+ // Step 4: Delete Connected Apps from org if required (default behavior)
151
+ let deleteApps = flags.delete || false;
152
+ if (!isCI && !deleteApps) {
153
+ const connectedAppNames = updatedApps.map(app => app.fullName).join(', ');
154
+ const deletePrompt = await prompts({
155
+ type: 'confirm',
156
+ name: 'delete',
157
+ message: `Do you want to delete the Connected Apps from the org after saving? ${connectedAppNames}`,
158
+ description: 'If you do not delete them, they will remain in the org and can be re-uploaded after refreshing the org.',
159
+ initial: false
160
+ });
161
+ deleteApps = deletePrompt.delete;
162
+ }
163
+ if (deleteApps) {
164
+ uxLog("action", this, c.cyan(`Deleting ${updatedApps.length} Connected Apps from ${this.conn.instanceUrl} ...`));
165
+ await deleteConnectedApps(this.orgUsername, updatedApps, this, this.saveProjectPath);
166
+ uxLog("success", this, c.green('Connected Apps were successfully deleted from the org.'));
167
+ }
168
+ const summaryMessage = deleteApps
169
+ ? `You are now ready to refresh your sandbox org, as you will be able to re-upload the Connected Apps after the refresh.`
170
+ : `Dry-run successful, run again the command with Connected Apps deletion to be able to refresh your org and re-upload the Connected Apps after the refresh.`;
171
+ uxLog("action", this, c.cyan(summaryMessage));
172
+ // Add a summary message at the end
173
+ if (updatedApps.length > 0) {
174
+ uxLog("success", this, c.green(`Successfully saved locally ${updatedApps.length} Connected App(s) with their Consumer Secrets`));
175
+ }
176
+ uxLog("success", this, c.cyan('Saved refresh sandbox configuration in config/.sfdx-hardis.yml'));
177
+ WebSocketClient.sendReportFileMessage(path.join(process.cwd(), 'config', '.sfdx-hardis.yml#refreshSandboxConfig'), "Sandbox refresh configuration", 'report');
178
+ const connectedAppRes = createConnectedAppSuccessResponse(`Successfully processed ${updatedApps.length} Connected App(s)`, updatedApps.map(app => app.fullName), {
179
+ consumerSecretsAdded: updatedApps.map(app => app.consumerSecret ? app.fullName : null).filter(Boolean)
131
180
  });
132
- deleteApps = deletePrompt.delete;
181
+ this.result = Object.assign(this.result || {}, connectedAppRes);
133
182
  }
134
- if (deleteApps) {
135
- uxLog("action", this, c.cyan(`Deleting ${updatedApps.length} Connected Apps from ${this.conn.instanceUrl} ...`));
136
- await deleteConnectedApps(orgUsername, updatedApps, this, this.saveProjectPath);
137
- uxLog("success", this, c.green('Connected Apps were successfully deleted from the org.'));
138
- }
139
- const summaryMessage = deleteApps
140
- ? `You are now ready to refresh your sandbox org, as you will be able to re-upload the Connected Apps after the refresh.`
141
- : `Dry-run successful, run again the command with Connected Apps deletion to be able to refresh your org and re-upload the Connected Apps after the refresh.`;
142
- uxLog("action", this, c.cyan(summaryMessage));
143
- // Add a summary message at the end
144
- if (updatedApps.length > 0) {
145
- uxLog("success", this, c.green(`Successfully saved locally ${updatedApps.length} Connected App(s) with their Consumer Secrets`));
183
+ catch (error) {
184
+ this.result = Object.assign(this.result || {}, handleConnectedAppError(error, this));
146
185
  }
147
- uxLog("success", this, c.cyan('Saved refresh sandbox configuration in config/.sfdx-hardis.yml'));
148
- WebSocketClient.sendReportFileMessage(path.join(process.cwd(), 'config', '.sfdx-hardis.yml#refreshSandboxConfig'), "Sandbox refresh configuration", 'report');
149
- return createConnectedAppSuccessResponse(`Successfully processed ${updatedApps.length} Connected App(s)`, updatedApps.map(app => app.fullName), {
150
- consumerSecretsAdded: updatedApps.map(app => app.consumerSecret ? app.fullName : null).filter(Boolean)
151
- });
152
- }
153
- catch (error) {
154
- return handleConnectedAppError(error, this);
155
186
  }
187
+ return this.result;
156
188
  }
157
189
  async createSaveProject() {
158
190
  const folderName = this.conn.instanceUrl.replace(/https?:\/\//, '').replace("my.salesforce.com", "").replace(/\//g, '-').replace(/[^a-zA-Z0-9-]/g, '');
159
191
  const sandboxRefreshRootFolder = path.join(process.cwd(), 'scripts', 'sandbox-refresh');
160
192
  const projectPath = path.join(sandboxRefreshRootFolder, folderName);
193
+ if (fs.existsSync(projectPath)) {
194
+ uxLog("log", this, c.cyan(`Project folder ${projectPath} already exists. Reusing it.\n(Delete it and run again this command if you want to start fresh)`));
195
+ return projectPath;
196
+ }
161
197
  await fs.ensureDir(projectPath);
162
- uxLog("action", this, c.cyan(`Creating sfdx-project for sandbox info storage in ${projectPath}`));
198
+ uxLog("action", this, c.cyan(`Creating sfdx-project for sandbox info storage`));
163
199
  const createCommand = `sf project generate --name "${folderName}"`;
164
200
  await execCommand(createCommand, this, {
165
201
  output: true,
@@ -168,6 +204,7 @@ This command is part of [sfdx-hardis Sandbox Refresh](https://sfdx-hardis.cloudi
168
204
  uxLog("log", this, c.grey('Moving sfdx-project to root...'));
169
205
  await fs.copy(folderName, projectPath, { overwrite: true });
170
206
  await fs.remove(folderName);
207
+ uxLog("log", this, c.grey(`Save Project created in folder ${projectPath}`));
171
208
  return projectPath;
172
209
  }
173
210
  async getConnectedApps(orgUsername, nameFilter, processAll) {
@@ -498,5 +535,191 @@ You might need to set variable PUPPETEER_EXECUTABLE_PATH with the target of a Ch
498
535
  uxLog("log", this, c.cyan('Refresh sandbox configuration has been saved successfully.'));
499
536
  }
500
537
  }
538
+ async saveMetadatas() {
539
+ const metadataToSave = path.join(this.saveProjectPath, "manifest", 'package-metadatas-to-save.xml');
540
+ if (fs.existsSync(metadataToSave)) {
541
+ const promptResponse = await prompts({
542
+ type: 'confirm',
543
+ name: 'retrieveAgain',
544
+ message: `It seems you already have metadatas saved from a previous run.\nDo you want to retrieve certificates and metadata again ?`,
545
+ description: 'This will overwrite the existing package-metadatas-to-save.xml file and related certificates and metadatas.',
546
+ initial: false
547
+ });
548
+ if (!promptResponse.retrieveAgain) {
549
+ uxLog("log", this, c.grey(`Skipping metadata retrieval as it already exists at ${this.saveProjectPath}`));
550
+ return;
551
+ }
552
+ }
553
+ // Retrieve certificates
554
+ await this.retrieveCertificates();
555
+ // Metadata package.Xml for backup
556
+ uxLog("action", this, c.cyan('Saving metadata files before sandbox refresh...'));
557
+ const savePackageXml = await this.createSavePackageXml();
558
+ // Retrieve metadata from org using the package XML
559
+ await this.retrieveMetadatasToSave(savePackageXml);
560
+ // Generate new package.xml from saveProjectPath, and remove ConnectedApps from it
561
+ await this.generatePackageXmlToRestore();
562
+ }
563
+ async createSavePackageXml() {
564
+ uxLog("log", this, c.cyan(`Managing "package-metadatas-to-save.xml" file, that will be used to retrieve the metadatas before refreshing the org.`));
565
+ // Copy default package xml to the save project path
566
+ const sourceFile = path.join(PACKAGE_ROOT_DIR, 'defaults/refresh-sandbox', 'package-metadatas-to-save.xml');
567
+ const targetFile = path.join(this.saveProjectPath, "manifest", 'package-metadatas-to-save.xml');
568
+ await fs.ensureDir(path.dirname(targetFile));
569
+ if (fs.existsSync(targetFile)) {
570
+ const promptResponse = await prompts({
571
+ type: 'confirm',
572
+ name: 'overwrite',
573
+ message: `The file ${targetFile} already exists. Do you want to overwrite it?`,
574
+ description: 'This file is used to save the metadata that will be restored after org refresh.',
575
+ initial: false
576
+ });
577
+ if (promptResponse.overwrite) {
578
+ uxLog("log", this, c.grey(`Overwriting default save package xml to ${targetFile}`));
579
+ await fs.copy(sourceFile, targetFile, { overwrite: true });
580
+ }
581
+ }
582
+ else {
583
+ uxLog("log", this, c.grey(`Copying default package xml to ${targetFile}`));
584
+ await fs.copy(sourceFile, targetFile, { overwrite: true });
585
+ }
586
+ uxLog("log", this, c.grey(`Save package XML is located at ${targetFile}`));
587
+ WebSocketClient.sendReportFileMessage(targetFile, "Save package XML", 'report');
588
+ return targetFile;
589
+ }
590
+ async retrieveMetadatasToSave(savePackageXml) {
591
+ uxLog("action", this, c.cyan(`Retrieving metadatas to save...`));
592
+ await execCommand(`sf project retrieve start --manifest ${savePackageXml} --target-org ${this.orgUsername} --ignore-conflicts --json`, this, { output: true, fail: true, cwd: this.saveProjectPath });
593
+ }
594
+ async generatePackageXmlToRestore() {
595
+ uxLog("action", this, c.cyan(`Generating new package.xml from saved project path ${this.saveProjectPath}...`));
596
+ const restorePackageXmlFileName = 'package-metadata-to-restore.xml';
597
+ const restorePackageXmlFile = path.join(this.saveProjectPath, 'manifest', restorePackageXmlFileName);
598
+ await execCommand(`sf project generate manifest --source-dir force-app --output-dir manifest --name ${restorePackageXmlFileName} --json`, this, { output: true, fail: true, cwd: this.saveProjectPath });
599
+ uxLog("success", this, c.grey(`Generated package.xml for restore at ${restorePackageXmlFile}`));
600
+ const restorePackage = await parsePackageXmlFile(restorePackageXmlFile);
601
+ if (restorePackage?.["ConnectedApp"]) {
602
+ delete restorePackage["ConnectedApp"];
603
+ await writePackageXmlFile(restorePackageXmlFile, restorePackage);
604
+ uxLog("log", this, c.grey(`Removed ConnectedApps from ${restorePackageXmlFileName} as they will be handled separately`));
605
+ }
606
+ }
607
+ async retrieveCertificates() {
608
+ uxLog("action", this, c.cyan('Retrieving certificates (.crt) from org...'));
609
+ // Retrieve certificates using metadata api coz with source api it does not work
610
+ const certificatesPackageXml = path.join(PACKAGE_ROOT_DIR, 'defaults/refresh-sandbox', 'package-certificates-to-save.xml');
611
+ const packageCertsXml = path.join(this.saveProjectPath, 'manifest', 'package-certificates-to-save.xml');
612
+ uxLog("log", this, c.grey(`Copying default package XML for certificates to ${packageCertsXml}`));
613
+ await fs.copy(certificatesPackageXml, packageCertsXml, { overwrite: true });
614
+ uxLog("log", this, c.grey(`Retrieving certificates from org ${this.instanceUrl} using Metadata API (Source APi does not support it)...`));
615
+ await execSfdxJson(`sf project retrieve start --manifest ${packageCertsXml} --target-org ${this.orgUsername} --target-metadata-dir ./mdapi_certs --unzip`, this, { output: true, fail: true, cwd: this.saveProjectPath });
616
+ // Copy the extracted certificates to the main directory
617
+ const mdapiCertsDir = path.join(this.saveProjectPath, 'mdapi_certs', 'unpackaged', 'unpackaged', 'certs');
618
+ const certsDir = path.join(this.saveProjectPath, 'force-app', 'main', 'default', 'certs');
619
+ uxLog("log", this, c.grey(`Copying certificates from ${mdapiCertsDir} to ${certsDir}`));
620
+ await fs.ensureDir(certsDir);
621
+ await fs.copy(mdapiCertsDir, certsDir, { overwrite: true });
622
+ await fs.remove(path.join(this.saveProjectPath, 'mdapi_certs'));
623
+ uxLog("success", this, c.green(`Successfully retrieved certificates from org and saved them to ${certsDir}`));
624
+ uxLog("action", this, c.cyan('Retrieving certificates definitions (.crt-meta.xml) from org...'));
625
+ // Retrieve certificates definitions using source api
626
+ await execCommand(`sf project retrieve start -m Certificate --target-org ${this.orgUsername} --ignore-conflicts --json`, this, { output: true, fail: true, cwd: this.saveProjectPath });
627
+ }
628
+ async saveCustomSettings() {
629
+ const customSettingsFolder = path.join(this.saveProjectPath, 'savedCustomSettings');
630
+ // If savedCustomSettings is not empty, ask if we want to retrieve them again
631
+ if (fs.existsSync(customSettingsFolder) && fs.readdirSync(customSettingsFolder).length > 0) {
632
+ const confirmRetrieval = await prompts({
633
+ type: 'confirm',
634
+ name: 'retrieveAgain',
635
+ message: `Custom Settings folder is not empty. Do you want to retrieve Custom Settings again?`,
636
+ description: `If you do not retrieve them again, the Custom Settings will not be updated with the latest changes from the org.`,
637
+ initial: false
638
+ });
639
+ if (!confirmRetrieval.retrieveAgain) {
640
+ uxLog("log", this, c.grey(`Skipping Custom Settings retrieval as it already exists at ${customSettingsFolder}`));
641
+ return;
642
+ }
643
+ }
644
+ // List custom settings in the org
645
+ uxLog("action", this, c.cyan(`Listing Custom Settings in the org...`));
646
+ const globalDesc = await this.conn.describeGlobal();
647
+ const customSettings = globalDesc.sobjects.filter(sobject => sobject.customSetting);
648
+ if (customSettings.length === 0) {
649
+ uxLog("warning", this, c.yellow('No Custom Settings found in the org.'));
650
+ return;
651
+ }
652
+ const customSettingsNames = customSettings.map(cs => `- ${cs.name}`).sort().join('\n');
653
+ uxLog("log", this, c.grey(`Found ${customSettings.length} Custom Setting(s) in the org:\n${customSettingsNames}`));
654
+ // Ask user to select which Custom Settings to retrieve
655
+ const selectedSettings = await prompts({
656
+ type: 'multiselect',
657
+ name: 'settings',
658
+ message: 'Select Custom Settings to retrieve',
659
+ description: 'You can select multiple Custom Settings to retrieve.',
660
+ choices: customSettings.map(cs => ({ title: cs.name, value: cs.name })),
661
+ initial: customSettings.map(cs => cs.name),
662
+ });
663
+ if (selectedSettings.settings.length === 0) {
664
+ uxLog("warning", this, c.yellow('No Custom Settings selected for retrieval'));
665
+ return;
666
+ }
667
+ uxLog("action", this, c.cyan(`Retrieving ${selectedSettings.settings.length} selected Custom Settings`));
668
+ const successCs = [];
669
+ const errorCs = [];
670
+ // Retrieve each selected Custom Setting
671
+ for (const settingName of selectedSettings.settings) {
672
+ try {
673
+ uxLog("action", this, c.cyan(`Retrieving Custom Setting: ${settingName}`));
674
+ // List all fields of the Custom Setting using globalDesc
675
+ const customSettingDesc = globalDesc.sobjects.find(sobject => sobject.name === settingName);
676
+ if (!customSettingDesc) {
677
+ uxLog("error", this, c.red(`Custom Setting ${settingName} not found in the org.`));
678
+ errorCs.push(settingName);
679
+ continue;
680
+ }
681
+ const csDescribe = await this.conn.sobject(settingName).describe();
682
+ const fieldList = csDescribe.fields.map(field => field.name).join(', ');
683
+ uxLog("log", this, c.grey(`Fields in Custom Setting ${settingName}: ${fieldList}`));
684
+ // Use data tree export to retrieve the Custom Setting
685
+ uxLog("log", this, c.cyan(`Running tree export for Custom Setting ${settingName}...`));
686
+ const retrieveCommand = `sf data tree export --query "SELECT ${fieldList} FROM ${settingName}" --target-org ${this.orgUsername} --json`;
687
+ const csFolder = path.join(customSettingsFolder, settingName);
688
+ await fs.ensureDir(csFolder);
689
+ const result = await execSfdxJson(retrieveCommand, this, {
690
+ output: true,
691
+ fail: true,
692
+ cwd: csFolder
693
+ });
694
+ if (!(result?.status === 0)) {
695
+ uxLog("error", this, c.red(`Failed to retrieve Custom Setting ${settingName}: ${JSON.stringify(result)}`));
696
+ continue;
697
+ }
698
+ const resultFile = path.join(csFolder, `${settingName}.json`);
699
+ if (fs.existsSync(resultFile)) {
700
+ uxLog("log", this, c.grey(`Custom Setting ${settingName} has been downloaded to ${resultFile}`));
701
+ successCs.push(settingName);
702
+ }
703
+ else {
704
+ uxLog("warning", this, c.red(`Custom Setting ${settingName} was not retrieved correctly, or has no values. No file found at ${resultFile}`));
705
+ errorCs.push(settingName);
706
+ continue;
707
+ }
708
+ }
709
+ catch (error) {
710
+ errorCs.push(settingName);
711
+ uxLog("error", this, c.red(`Error retrieving Custom Setting ${settingName}: ${error.message || error}`));
712
+ }
713
+ }
714
+ uxLog("action", this, c.cyan(`Custom Settings retrieval completed (${successCs.length} successful, ${errorCs.length} failed)`));
715
+ if (successCs.length > 0) {
716
+ const successCsNames = successCs.map(cs => "- " + cs).join('\n');
717
+ uxLog("success", this, c.green(`Successfully retrieved Custom Settings:\n${successCsNames}`));
718
+ }
719
+ if (errorCs.length > 0) {
720
+ const errorCsNames = errorCs.map(cs => "- " + cs).join('\n');
721
+ uxLog("error", this, c.red(`Failed to retrieve Custom Settings:\n${errorCsNames}`));
722
+ }
723
+ }
501
724
  }
502
725
  //# sourceMappingURL=before-refresh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"before-refresh.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/refresh/before-refresh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"before-refresh.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/refresh/before-refresh.ts"],"names":[],"mappings":"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"}
@@ -8000,7 +8000,7 @@
8000
8000
  "hardis:org:refresh:before-refresh": {
8001
8001
  "aliases": [],
8002
8002
  "args": {},
8003
- "description": "\n## Command Behavior\n\n**Backs up all Connected Apps and their secrets from a Salesforce org before a sandbox refresh, enabling full restoration after the refresh.**\n\nThis command is essential for Salesforce sandbox refresh operations where Connected Apps (and their Consumer Secrets) would otherwise be lost. It automates the extraction, secure storage, and (optionally) deletion of Connected Apps, ensuring that all credentials and configuration can be restored post-refresh.\n\nKey functionalities:\n\n- **Connected App Discovery:** Lists all Connected Apps in the org, with options to filter by name or process all.\n- **User Selection:** Allows interactive or flag-based selection of which Connected Apps to back up.\n- **Metadata Retrieval:** Retrieves Connected App metadata and saves it in a dedicated project folder for the sandbox instance.\n- **Consumer Secret Extraction:** Attempts to extract Consumer Secrets automatically using browser automation (Puppeteer), or prompts for manual entry if automation fails.\n- **Config Persistence:** Stores the list of selected apps in the project config for use during restoration.\n- **Optional Deletion:** Can delete the Connected Apps from the org after backup, as required for re-upload after refresh.\n- **Summary and Reporting:** Provides a summary of actions, including which apps were saved and whether secrets were captured.\n\nThis command is part of [sfdx-hardis Sandbox Refresh](https://sfdx-hardis.cloudity.com/salesforce-sandbox-refresh/) and is designed to be run before a sandbox refresh. It ensures that all Connected Apps and their secrets are safely stored for later restoration.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\n- **Salesforce CLI Integration:** Uses `sf org list metadata` and other CLI commands to discover and retrieve Connected Apps.\n- **Metadata Handling:** Saves Connected App XML files in a dedicated folder under `scripts / sandbox - refresh / <sandbox-folder > `.\n- **Consumer Secret Handling:** Uses Puppeteer to automate browser login and extraction of Consumer Secrets, falling back to manual prompts if needed.\n- **Config Management:** Updates `config /.sfdx - hardis.yml` with the list of selected apps for later use.\n- **Deletion Logic:** Optionally deletes Connected Apps from the org (required for re-upload after refresh), with user confirmation unless running in CI or with `--delete ` flag.\n- **Error Handling:** Provides detailed error messages and guidance if retrieval or extraction fails.\n\n</details>\n",
8003
+ "description": "\n## Command Behavior\n\n**Backs up all Connected Apps, their secrets, certificates, and custom settings from a Salesforce org before a sandbox refresh, enabling full restoration after the refresh.**\n\nThis command is essential for Salesforce sandbox refresh operations where Connected Apps (and their Consumer Secrets), certificates, and custom settings would otherwise be lost. It automates the extraction, secure storage, and (optionally) deletion of Connected Apps, ensuring that all credentials and configuration can be restored post-refresh.\n\nKey functionalities:\n\n- **Connected App Discovery:** Lists all Connected Apps in the org, with options to filter by name, process all, or interactively select.\n- **User Selection:** Allows interactive or flag-based selection of which Connected Apps to back up.\n- **Metadata Retrieval:** Retrieves Connected App metadata and saves it in a dedicated project folder for the sandbox instance.\n- **Consumer Secret Extraction:** Attempts to extract Consumer Secrets automatically using browser automation (Puppeteer), or prompts for manual entry if automation fails.\n- **Config Persistence:** Stores the list of selected apps in the project config for use during restoration.\n- **Optional Deletion:** Can delete the Connected Apps from the org after backup, as required for re-upload after refresh.\n- **Certificate Backup:** Retrieves all org certificates and their definitions, saving them for later restoration.\n- **Custom Settings Backup:** Lists all custom settings in the org, allows user selection, and exports their data to JSON files for backup.\n- **Summary and Reporting:** Provides a summary of actions, including which apps, certificates, and custom settings were saved and whether secrets were captured.\n\nThis command is part of [sfdx-hardis Sandbox Refresh](https://sfdx-hardis.cloudity.com/salesforce-sandbox-refresh/) and is designed to be run before a sandbox refresh. It ensures that all Connected Apps, secrets, certificates, and custom settings are safely stored for later restoration.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\n- **Salesforce CLI Integration:** Uses `sf org list metadata`, `sf project retrieve start`, and other CLI commands to discover and retrieve Connected Apps, certificates, and custom settings.\n- **Metadata Handling:** Saves Connected App XML files and certificate files in a dedicated folder under `scripts/sandbox-refresh/<sandbox-folder>`.\n- **Consumer Secret Handling:** Uses Puppeteer to automate browser login and extraction of Consumer Secrets, falling back to manual prompts if needed.\n- **Custom Settings Handling:** Lists all custom settings, allows user selection, and exports their data using `sf data tree export` to JSON files.\n- **Config Management:** Updates `config/.sfdx-hardis.yml` with the list of selected apps for later use.\n- **Deletion Logic:** Optionally deletes Connected Apps from the org (required for re-upload after refresh), with user confirmation unless running in CI or with `--delete` flag.\n- **Error Handling:** Provides detailed error messages and guidance if retrieval or extraction fails.\n- **Reporting:** Sends summary and configuration files to the WebSocket client for reporting and traceability.\n\n</details>\n",
8004
8004
  "examples": [
8005
8005
  "$ sf hardis:org:refresh:before-refresh",
8006
8006
  "$ sf hardis:org:refresh:before-refresh --name \"MyConnectedApp\"",
@@ -8081,7 +8081,6 @@
8081
8081
  "pluginType": "core",
8082
8082
  "strict": true,
8083
8083
  "enableJsonFlag": true,
8084
- "title": "Save info to restore before org refresh",
8085
8084
  "requiresProject": true,
8086
8085
  "isESM": true,
8087
8086
  "relativePath": [
@@ -15103,5 +15102,5 @@
15103
15102
  ]
15104
15103
  }
15105
15104
  },
15106
- "version": "6.0.7-beta202508172156.0"
15105
+ "version": "6.0.7-beta202508191748.0"
15107
15106
  }
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.0.7-beta202508172156.0",
6
+ "version": "6.0.7-beta202508191748.0",
7
7
  "dependencies": {
8
8
  "@actions/github": "^6.0.1",
9
9
  "@cparra/apexdocs": "^3.14.0",