sfdx-hardis 5.2.4 → 5.4.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,20 @@
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
+ ## [5.4.0] 2024-11-02
8
+
9
+ - New command hardis:org:multi-org-query allowing to execute a SOQL Bulk Query in multiple orgs and aggregate the results in a single CSV / XLS report
10
+ - New command hardis:org:community:update to Activate / Deactivate communities from command line
11
+
12
+ ## [5.3.0] 2024-10-24
13
+
14
+ - Update default Monitoring workflow for GitHub
15
+ - Refactor file download code
16
+ - Display progress
17
+ - Better error handling
18
+ - hardis:org:diagnose:legacyapi: Fix issue with big log files: Use stream to parse CSV and perform checks
19
+ - Update default API version toto 62.0 (Winter 25 release)
20
+
7
21
  ## [5.2.4] 2024-10-21
8
22
 
9
23
  - Fix hardis:org:fix:listviewmine: Use chrome-launcher to find chrome executable to use with puppeteer-core
@@ -39,9 +39,10 @@ jobs:
39
39
  runs-on: ubuntu-latest
40
40
  name: Backup metadatas
41
41
  permissions: write-all
42
+ timeout-minutes: 360
42
43
  strategy:
43
44
  fail-fast: false
44
- max-parallel: 10
45
+ max-parallel: 10 # Set to 1 if you have issues with command npm install --no-cache @salesforce/cli --global
45
46
  matrix:
46
47
  # MANUAL: Add your monitored git branches here
47
48
  branch:
@@ -126,9 +127,10 @@ jobs:
126
127
  name: Apex tests
127
128
  needs: backup
128
129
  permissions: write-all
130
+ timeout-minutes: 360
129
131
  strategy:
130
132
  fail-fast: false
131
- max-parallel: 10
133
+ max-parallel: 10 # Set to 1 if you have issues with command npm install --no-cache @salesforce/cli --global
132
134
  matrix:
133
135
  # MANUAL: Add your monitored git branches here
134
136
  branch:
@@ -206,13 +208,25 @@ jobs:
206
208
  runs-on: ubuntu-latest
207
209
  needs: backup
208
210
  permissions: read-all
211
+ timeout-minutes: 360
212
+ strategy:
213
+ fail-fast: false
214
+ max-parallel: 10 # Set to 1 if you have issues with race conditions
215
+ matrix:
216
+ # MANUAL: Add your monitored git branches here
217
+ branch:
218
+ - monitoring_myclient
219
+ - monitoring_myclient__integ_sandbox
220
+ - monitoring_myclient__recette_sandbox
221
+ - monitoring_myclient__preprod_sandbox
209
222
  steps:
210
- # Git Checkout
211
- - name: Checkout Code
223
+ # Checkout repo
224
+ - name: Checkout code
212
225
  uses: actions/checkout@v4
213
226
  with:
214
- token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }}
215
- fetch-depth: 0
227
+ fetch-depth: 0 # Faster code checkout fetching only latest commit
228
+ ref: ${{ matrix.branch }}
229
+ persist-credentials: true
216
230
 
217
231
  - name: Git pull
218
232
  run: git pull origin ${{ matrix.branch }}
@@ -253,9 +267,10 @@ jobs:
253
267
  name: Monitoring
254
268
  needs: backup
255
269
  permissions: read-all
270
+ timeout-minutes: 360
256
271
  strategy:
257
272
  fail-fast: false
258
- max-parallel: 10
273
+ max-parallel: 10 # Set to 1 if you have issues with command npm install --no-cache @salesforce/cli --global
259
274
  matrix:
260
275
  # MANUAL: Add your monitored git branches here
261
276
  branch:
@@ -0,0 +1,14 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ import { AnyJson } from '@salesforce/ts-types';
3
+ export default class HardisOrgCommunityUpdate extends SfCommand<any> {
4
+ static readonly summary: string;
5
+ static readonly description: string;
6
+ static examples: string[];
7
+ static readonly flags: {
8
+ name: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
+ status: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
+ debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
+ 'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
12
+ };
13
+ run(): Promise<AnyJson>;
14
+ }
@@ -0,0 +1,96 @@
1
+ import { SfCommand, Flags, requiredOrgFlagWithDeprecations } from '@salesforce/sf-plugins-core';
2
+ import { Messages, SfError } from '@salesforce/core';
3
+ import c from 'chalk';
4
+ import { isCI, uxLog } from '../../../../common/utils/index.js';
5
+ import { prompts } from '../../../../common/utils/prompts.js';
6
+ import { soqlQuery } from '../../../../common/utils/apiUtils.js';
7
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
8
+ const messages = Messages.loadMessages('sfdx-hardis', 'org');
9
+ export default class HardisOrgCommunityUpdate extends SfCommand {
10
+ static summary = messages.getMessage('orgCommunityUpdate');
11
+ static description = messages.getMessage('orgCommunityUpdateDesc');
12
+ static examples = [
13
+ `$ sf hardis:org:community:update --name 'MyNetworkName' --status DownForMaintenance`,
14
+ `$ sf hardis:org:community:update --name 'MyNetworkName,MySecondNetworkName' --status Live`
15
+ ];
16
+ static flags = {
17
+ name: Flags.string({
18
+ description: 'List of Networks Names that you want to update, separated by comma',
19
+ char: 'n',
20
+ required: true,
21
+ }),
22
+ status: Flags.string({
23
+ description: 'New status for the community, available values are: Live, DownForMaintenance',
24
+ char: 's',
25
+ required: true,
26
+ }),
27
+ debug: Flags.boolean({
28
+ char: 'd',
29
+ default: false,
30
+ description: messages.getMessage('debugMode'),
31
+ }),
32
+ 'target-org': requiredOrgFlagWithDeprecations,
33
+ };
34
+ async run() {
35
+ const { flags } = await this.parse(HardisOrgCommunityUpdate);
36
+ const networkNames = flags.name ? flags.name.split(',') : [];
37
+ const status = flags.status ? flags.status : '';
38
+ const debugMode = flags.debug || false;
39
+ const conn = flags['target-org'].getConnection();
40
+ if (networkNames.length === 0) {
41
+ throw new SfError(`Error: No network name(s) provided.`);
42
+ }
43
+ const networksConstraintIn = networkNames.map((networkName) => `'${networkName}'`).join(',');
44
+ const networksQuery = `SELECT Id, Name, Status FROM Network WHERE Name IN (${networksConstraintIn})`;
45
+ const networksQueryRes = await soqlQuery(networksQuery, conn);
46
+ if (debugMode) {
47
+ uxLog(this, c.grey(`Query result:\n${JSON.stringify(networksQueryRes, null, 2)}`));
48
+ }
49
+ // Check empty result
50
+ if (networksQueryRes.length === 0) {
51
+ const outputString = `No matching network records found with given names`;
52
+ uxLog(this, c.yellow(outputString));
53
+ return { outputString };
54
+ }
55
+ const idToNameMap = new Map(networksQueryRes.records.map(network => [network.Id, network.Name]));
56
+ // Request configuration from user
57
+ if (!isCI) {
58
+ const confirmUpdate = await prompts({
59
+ type: 'confirm',
60
+ name: 'value',
61
+ initial: true,
62
+ message: c.cyanBright(`Are you sure you want to update these ${c.bold(idToNameMap.size)} networks's status to '${status}' in org ${c.green(flags['target-org'].getUsername())} (y/n)?`),
63
+ });
64
+ if (confirmUpdate.value !== true) {
65
+ const outputString = 'Script cancelled by user';
66
+ uxLog(this, c.yellow(outputString));
67
+ return { outputString };
68
+ }
69
+ }
70
+ // Process Network update
71
+ const networkUpdates = networksQueryRes.records.map((network) => {
72
+ return { Id: network.Id, Status: status };
73
+ });
74
+ const updateResults = await conn.sobject("Network").update(networkUpdates, { allOrNone: false });
75
+ let updateSuccessNb = 0;
76
+ let updateErrorsNb = 0;
77
+ for (const ret of updateResults) {
78
+ if (ret.success) {
79
+ updateSuccessNb++;
80
+ uxLog(this, c.green(`'${c.bold(idToNameMap.get(ret.id))}' Network was updated.`));
81
+ }
82
+ else {
83
+ updateErrorsNb++;
84
+ uxLog(this, c.red(`Error ${updateErrorsNb}: Network '${idToNameMap.get(ret.id)}' failed to update: [${ret.errors[0].message}]`));
85
+ }
86
+ }
87
+ // Return an object to be displayed with --json
88
+ return {
89
+ orgId: flags['target-org'].getOrgId(),
90
+ communityUpdatesSuccess: updateSuccessNb,
91
+ communityUpdatesErrors: updateErrorsNb,
92
+ outputString: `${updateSuccessNb} network(s) were updated`,
93
+ };
94
+ }
95
+ }
96
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/community/update.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ export default class LegacyApi extends SfCommand<any> {
20
20
  protected ipResultsSorted: any[];
21
21
  protected outputFile: any;
22
22
  protected outputFilesRes: any;
23
+ private tempDir;
23
24
  run(): Promise<AnyJson>;
24
25
  private runJsForce;
25
26
  private collectDeprecatedApiCalls;
@@ -2,15 +2,19 @@
2
2
  import { SfCommand, Flags, requiredOrgFlagWithDeprecations } from '@salesforce/sf-plugins-core';
3
3
  import { Messages } from '@salesforce/core';
4
4
  import c from 'chalk';
5
+ import fs from 'fs-extra';
6
+ import * as path from 'path';
5
7
  import sortArray from 'sort-array';
6
- import { uxLog } from '../../../../common/utils/index.js';
8
+ import { createTempDir, uxLog } from '../../../../common/utils/index.js';
7
9
  import * as dns from 'dns';
10
+ import Papa from 'papaparse';
8
11
  import { getNotificationButtons, getOrgMarkdown, getSeverityIcon } from '../../../../common/utils/notifUtils.js';
9
12
  import { soqlQuery } from '../../../../common/utils/apiUtils.js';
10
13
  import { WebSocketClient } from '../../../../common/websocketClient.js';
11
14
  import { NotifProvider } from '../../../../common/notifProvider/index.js';
12
15
  import { generateCsvFile, generateReportPath } from '../../../../common/utils/filesUtils.js';
13
16
  import { CONSTANTS } from '../../../../config/index.js';
17
+ import { FileDownloader } from '../../../../common/utils/fileDownloader.js';
14
18
  const dnsPromises = dns.promises;
15
19
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
16
20
  const messages = Messages.loadMessages('sfdx-hardis', 'org');
@@ -93,6 +97,7 @@ This command is part of [sfdx-hardis Monitoring](${CONSTANTS.DOC_URL_ROOT}/sales
93
97
  outputFile;
94
98
  outputFilesRes = {};
95
99
  /* jscpd:ignore-end */
100
+ tempDir;
96
101
  async run() {
97
102
  const { flags } = await this.parse(LegacyApi);
98
103
  this.debugMode = flags.debug || false;
@@ -105,6 +110,7 @@ This command is part of [sfdx-hardis Monitoring](${CONSTANTS.DOC_URL_ROOT}/sales
105
110
  this.outputFile = flags.outputfile || null;
106
111
  const limitConstraint = limit ? ` LIMIT ${limit}` : '';
107
112
  const conn = flags['target-org'].getConnection();
113
+ this.tempDir = await createTempDir();
108
114
  // Get EventLogFile records with EventType = 'ApiTotalUsage'
109
115
  const logCountQuery = `SELECT COUNT() FROM EventLogFile WHERE EventType = '${eventType}'`;
110
116
  const logCountRes = await soqlQuery(logCountQuery, conn);
@@ -119,7 +125,7 @@ This command is part of [sfdx-hardis Monitoring](${CONSTANTS.DOC_URL_ROOT}/sales
119
125
  uxLog(this, c.yellow(`There are more than ${limit} results, you may consider to increase limit using --limit argument`));
120
126
  }
121
127
  // Fetch EventLogFiles with ApiTotalUsage entries
122
- const logCollectQuery = `SELECT LogFile FROM EventLogFile WHERE EventType = '${eventType}' ORDER BY CreatedDate DESC` + limitConstraint;
128
+ const logCollectQuery = `SELECT LogFile FROM EventLogFile WHERE EventType = '${eventType}' ORDER BY LogDate DESC` + limitConstraint;
123
129
  uxLog(this, c.grey('Query: ' + c.italic(logCollectQuery)));
124
130
  const eventLogRes = await soqlQuery(logCollectQuery, conn);
125
131
  // Collect legacy api calls from logs
@@ -232,39 +238,63 @@ See article to solve issue before it's too late:
232
238
  }
233
239
  // GET csv log file and check for legacy API calls within
234
240
  async collectDeprecatedApiCalls(logFileUrl, conn) {
235
- uxLog(this, c.grey(`- Request info for ${logFileUrl} ...`));
236
- const logEntries = await conn.request(logFileUrl);
237
- uxLog(this, c.grey(`-- Processing ${logEntries.length} returned entries...`));
241
+ // Load icons
238
242
  const severityIconError = getSeverityIcon('error');
239
243
  const severityIconWarning = getSeverityIcon('warning');
240
244
  const severityIconInfo = getSeverityIcon('info');
241
- for (const logEntry of logEntries) {
242
- const apiVersion = logEntry.API_VERSION ? parseFloat(logEntry.API_VERSION) : parseFloat('999.0');
243
- // const apiType = logEntry.API_TYPE || null ;
244
- const apiFamily = logEntry.API_FAMILY || null;
245
- for (const legacyApiDescriptor of this.legacyApiDescriptors) {
246
- if (legacyApiDescriptor.apiFamily.includes(apiFamily) &&
247
- legacyApiDescriptor.minApiVersion <= apiVersion &&
248
- legacyApiDescriptor.maxApiVersion >= apiVersion) {
249
- logEntry.SFDX_HARDIS_DEPRECATION_RELEASE = legacyApiDescriptor.deprecationRelease;
250
- logEntry.SFDX_HARDIS_SEVERITY = legacyApiDescriptor.severity;
251
- if (legacyApiDescriptor.severity === 'ERROR') {
252
- logEntry.severity = 'error';
253
- logEntry.severityIcon = severityIconError;
254
- }
255
- else if (legacyApiDescriptor.severity === 'WARNING') {
256
- logEntry.severity = 'warning';
257
- logEntry.severityIcon = severityIconWarning;
258
- }
259
- else {
260
- // severity === 'INFO'
261
- logEntry.severity = 'info';
262
- logEntry.severityIcon = severityIconInfo;
263
- }
264
- legacyApiDescriptor.errors.push(logEntry);
265
- break;
266
- }
267
- }
245
+ // Download file as stream, and process chuck by chuck
246
+ uxLog(this, c.grey(`- processing ${logFileUrl}...`));
247
+ const fetchUrl = `${conn.instanceUrl}${logFileUrl}`;
248
+ const outputFile = path.join(this.tempDir, Math.random().toString(36).substring(7) + ".csv");
249
+ const downloadResult = await new FileDownloader(fetchUrl, { conn: conn, outputFile: outputFile }).download();
250
+ if (downloadResult.success) {
251
+ uxLog(this, c.grey(`-- parsing downloaded CSV from ${outputFile} and check for deprecated calls...`));
252
+ const outputFileStream = fs.createReadStream(outputFile, { encoding: 'utf8' });
253
+ await new Promise((resolve, reject) => {
254
+ Papa.parse(outputFileStream, {
255
+ header: true,
256
+ worker: true,
257
+ chunk: (results) => {
258
+ // Look in check the entries that match a deprecation description
259
+ for (const logEntry of results.data) {
260
+ const apiVersion = logEntry.API_VERSION ? parseFloat(logEntry.API_VERSION) : parseFloat('999.0');
261
+ const apiFamily = logEntry.API_FAMILY || null;
262
+ for (const legacyApiDescriptor of this.legacyApiDescriptors) {
263
+ if (legacyApiDescriptor.apiFamily.includes(apiFamily) &&
264
+ legacyApiDescriptor.minApiVersion <= apiVersion &&
265
+ legacyApiDescriptor.maxApiVersion >= apiVersion) {
266
+ logEntry.SFDX_HARDIS_DEPRECATION_RELEASE = legacyApiDescriptor.deprecationRelease;
267
+ logEntry.SFDX_HARDIS_SEVERITY = legacyApiDescriptor.severity;
268
+ if (legacyApiDescriptor.severity === 'ERROR') {
269
+ logEntry.severity = 'error';
270
+ logEntry.severityIcon = severityIconError;
271
+ }
272
+ else if (legacyApiDescriptor.severity === 'WARNING') {
273
+ logEntry.severity = 'warning';
274
+ logEntry.severityIcon = severityIconWarning;
275
+ }
276
+ else {
277
+ // severity === 'INFO'
278
+ logEntry.severity = 'info';
279
+ logEntry.severityIcon = severityIconInfo;
280
+ }
281
+ legacyApiDescriptor.errors.push(logEntry);
282
+ break;
283
+ }
284
+ }
285
+ }
286
+ },
287
+ complete: function () {
288
+ resolve(true);
289
+ },
290
+ error: function (error) {
291
+ reject(error);
292
+ },
293
+ });
294
+ });
295
+ }
296
+ else {
297
+ uxLog(this, c.yellow(`Warning: Unable to process logs of ${logFileUrl}`));
268
298
  }
269
299
  }
270
300
  async generateSummaryLog(errors, severity) {
@@ -1 +1 @@
1
- {"version":3,"file":"legacyapi.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/diagnose/legacyapi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"legacyapi.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/diagnose/legacyapi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ import { AnyJson } from '@salesforce/ts-types';
3
+ export default class MultiOrgQuery extends SfCommand<any> {
4
+ static title: string;
5
+ static description: string;
6
+ static examples: string[];
7
+ static flags: any;
8
+ protected query: string;
9
+ protected targetOrgsIds: string[];
10
+ protected targetOrgs: any[];
11
+ protected outputFile: any;
12
+ protected debugMode: boolean;
13
+ protected allRecords: any[];
14
+ protected successOrgs: any[];
15
+ protected errorOrgs: any[];
16
+ run(): Promise<AnyJson>;
17
+ private displayResults;
18
+ private performQueries;
19
+ private manageSelectOrgs;
20
+ private defineSoqlQuery;
21
+ }
@@ -0,0 +1,179 @@
1
+ /* jscpd:ignore-start */
2
+ import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
3
+ import { AuthInfo, Connection, Messages } from '@salesforce/core';
4
+ import c from "chalk";
5
+ import { makeSureOrgIsConnected, promptOrgList } from '../../../common/utils/orgUtils.js';
6
+ import { uxLog } from '../../../common/utils/index.js';
7
+ import { bulkQuery } from '../../../common/utils/apiUtils.js';
8
+ import { generateCsvFile, generateReportPath } from '../../../common/utils/filesUtils.js';
9
+ import { prompts } from '../../../common/utils/prompts.js';
10
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
11
+ const messages = Messages.loadMessages('sfdx-hardis', 'org');
12
+ export default class MultiOrgQuery extends SfCommand {
13
+ static title = 'Multiple Orgs SOQL Query';
14
+ static description = `Executes a SOQL query in multiple orgs and generate a single report from it`;
15
+ static examples = [
16
+ '$ sf hardis:org:multi-org-query',
17
+ '$ sf hardis:org:multi-org-query --query "SELECT Id,Username FROM User"',
18
+ '$ sf hardis:org:multi-org-query --query "SELECT Id,Username FROM User" --target-orgs nico@cloudity.com nico@cloudity.com.preprod nico@cloudity.com.uat'
19
+ ];
20
+ static flags = {
21
+ query: Flags.string({
22
+ char: 'q',
23
+ description: 'SOQL Query to run on multiple orgs',
24
+ }),
25
+ "target-orgs": Flags.string({
26
+ char: "x",
27
+ description: "List of org usernames or aliases.",
28
+ multiple: true
29
+ }),
30
+ outputfile: Flags.string({
31
+ char: 'f',
32
+ description: 'Force the path and name of output report file. Must end with .csv',
33
+ }),
34
+ debug: Flags.boolean({
35
+ char: 'd',
36
+ default: false,
37
+ description: messages.getMessage('debugMode'),
38
+ }),
39
+ websocket: Flags.string({
40
+ description: messages.getMessage('websocket'),
41
+ }),
42
+ skipauth: Flags.boolean({
43
+ description: 'Skip authentication check when a default username is required',
44
+ }),
45
+ };
46
+ query;
47
+ targetOrgsIds = [];
48
+ targetOrgs = [];
49
+ outputFile;
50
+ debugMode = false;
51
+ allRecords = [];
52
+ successOrgs = [];
53
+ errorOrgs = [];
54
+ /* jscpd:ignore-end */
55
+ async run() {
56
+ const { flags } = await this.parse(MultiOrgQuery);
57
+ this.query = flags.query || null;
58
+ this.targetOrgsIds = flags["target-orgs"] || [];
59
+ this.outputFile = flags.outputfile || null;
60
+ this.debugMode = flags.debug || false;
61
+ // Prompt query if not specified as input argument
62
+ await this.defineSoqlQuery();
63
+ // List org if not sent as input parameter
64
+ await this.manageSelectOrgs();
65
+ // Perform the request on orgs
66
+ await this.performQueries();
67
+ // Display results
68
+ this.displayResults();
69
+ // Generate output CSV & XLS
70
+ this.outputFile = await generateReportPath('multi-org-query', this.outputFile);
71
+ const outputFilesRes = await generateCsvFile(this.allRecords, this.outputFile);
72
+ return {
73
+ allRecords: this.allRecords,
74
+ successOrgs: this.successOrgs,
75
+ errorOrgs: this.errorOrgs,
76
+ csvLogFile: this.outputFile,
77
+ xlsxLogFile: outputFilesRes.xlsxFile,
78
+ };
79
+ }
80
+ displayResults() {
81
+ if (this.successOrgs.length > 0) {
82
+ uxLog(this, c.green(`Successfully performed query on ${this.successOrgs.length} orgs`));
83
+ for (const org of this.successOrgs) {
84
+ uxLog(this, c.grey(`- ${org.instanceUrl}`));
85
+ }
86
+ }
87
+ if (this.errorOrgs.length > 0) {
88
+ uxLog(this, c.green(`Error while performing query on ${this.errorOrgs.length} orgs`));
89
+ for (const org of this.successOrgs) {
90
+ uxLog(this, c.grey(`- ${org.instanceUrl}: ${org?.error?.message}`));
91
+ }
92
+ }
93
+ }
94
+ async performQueries() {
95
+ for (const orgId of this.targetOrgsIds) {
96
+ const matchOrgs = this.targetOrgs.filter(org => (org.username === orgId || org.alias === orgId) && org.accessToken);
97
+ if (matchOrgs.length === 0) {
98
+ uxLog(this, c.yellow(`Skipped ${orgId}: Unable to find authentication. Run "sf org login web" to authenticate.`));
99
+ continue;
100
+ }
101
+ const accessToken = matchOrgs[0].accessToken;
102
+ const username = matchOrgs[0].username;
103
+ const instanceUrl = matchOrgs[0].instanceUrl;
104
+ const loginUrl = matchOrgs[0].loginUrl || instanceUrl;
105
+ uxLog(this, c.yellow(`Performing query on ${orgId}...`));
106
+ try {
107
+ const authInfo = await AuthInfo.create({
108
+ username: username
109
+ });
110
+ const connectionConfig = {
111
+ loginUrl: loginUrl,
112
+ instanceUrl: instanceUrl,
113
+ accessToken: accessToken
114
+ };
115
+ const conn = await Connection.create({ authInfo: authInfo, connectionOptions: connectionConfig });
116
+ const bulkQueryRes = await bulkQuery(this.query, conn, 5);
117
+ // Add org info to results
118
+ const records = bulkQueryRes.records.map(record => {
119
+ record.orgInstanceUrl = matchOrgs[0].instanceUrl;
120
+ record.orgAlias = matchOrgs[0].alias || "";
121
+ record.orgUser = matchOrgs[0].username || "";
122
+ return record;
123
+ });
124
+ this.allRecords.push(...records);
125
+ this.successOrgs.push({ orgId: orgId, instanceUrl: instanceUrl, username: username });
126
+ }
127
+ catch (e) {
128
+ uxLog(this, c.red(`Error while querying ${orgId}: ${e.message}`));
129
+ this.errorOrgs.push({ org: orgId, error: e });
130
+ }
131
+ }
132
+ }
133
+ async manageSelectOrgs() {
134
+ if (this.targetOrgsIds.length === 0) {
135
+ this.targetOrgs = await promptOrgList();
136
+ this.targetOrgsIds = this.targetOrgs.map(org => org.alias || org.username);
137
+ }
138
+ // Check orgs are connected
139
+ for (const orgId of this.targetOrgsIds) {
140
+ const matchOrgs = this.targetOrgs.filter(org => (org.username === orgId || org.alias === orgId) && org.accessToken && org.connectedStatus === 'Connected');
141
+ if (matchOrgs.length === 0) {
142
+ const orgRes = await makeSureOrgIsConnected(orgId);
143
+ this.targetOrgs.push(orgRes);
144
+ }
145
+ }
146
+ }
147
+ async defineSoqlQuery() {
148
+ if (this.query == null) {
149
+ const activeUsersQuery = `SELECT Id, LastLoginDate, User.LastName, User.Firstname, Profile.UserLicense.Name, Profile.Name, Username, Profile.UserLicense.LicenseDefinitionKey, IsActive, CreatedDate FROM User WHERE IsActive = true ORDER BY Username ASC`;
150
+ const baseQueryPromptRes = await prompts({
151
+ type: "select",
152
+ message: "Please select a predefined query, or custom option",
153
+ choices: [
154
+ {
155
+ title: "Active users",
156
+ description: activeUsersQuery,
157
+ value: activeUsersQuery
158
+ },
159
+ {
160
+ title: "Custom SOQL Query",
161
+ description: "Enter a custom SOQL query to run",
162
+ value: "custom"
163
+ }
164
+ ]
165
+ });
166
+ if (baseQueryPromptRes.value === "custom") {
167
+ const queryPromptRes = await prompts({
168
+ type: 'text',
169
+ message: 'Please input the SOQL Query to run in multiple orgs',
170
+ });
171
+ this.query = queryPromptRes.value;
172
+ }
173
+ else {
174
+ this.query = baseQueryPromptRes.value;
175
+ }
176
+ }
177
+ }
178
+ }
179
+ //# sourceMappingURL=multi-org-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-org-query.js","sourceRoot":"","sources":["../../../../src/commands/hardis/org/multi-org-query.ts"],"names":[],"mappings":"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"}