sfdx-hardis 5.2.3 → 5.3.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.3.0] 2024-10-24
8
+
9
+ - Update default Monitoring workflow for GitHub
10
+ - Refactor file download code
11
+ - Display progress
12
+ - Better error handling
13
+ - hardis:org:diagnose:legacyapi: Fix issue with big log files: Use stream to parse CSV and perform checks
14
+ - Update default API version toto 62.0 (Winter 25 release)
15
+
16
+ ## [5.2.4] 2024-10-21
17
+
18
+ - Fix hardis:org:fix:listviewmine: Use chrome-launcher to find chrome executable to use with puppeteer-core
19
+ - Remove keyv dependency
20
+
7
21
  ## [5.2.3] 2024-10-19
8
22
 
9
23
  - Change default `.mega-linter.yml` config
@@ -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:
@@ -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,20 @@
1
+ import { Connection } from "@salesforce/core";
2
+ import { FetchOptions } from 'make-fetch-happen';
3
+ export declare class FileDownloader {
4
+ conn: Connection;
5
+ downloadUrl: string;
6
+ outputFile: string | null;
7
+ fetchOptions: any;
8
+ label: string;
9
+ constructor(downloadUrl: string, options: {
10
+ conn?: any;
11
+ outputFile?: string;
12
+ fetchOptions?: FetchOptions;
13
+ label?: 'url' | 'file' | 'both';
14
+ });
15
+ download(): Promise<{
16
+ success: boolean;
17
+ outputFile: string;
18
+ error?: any;
19
+ }>;
20
+ }
@@ -0,0 +1,86 @@
1
+ import { SfError } from "@salesforce/core";
2
+ import fs from 'fs-extra';
3
+ import ora from "ora";
4
+ import * as path from "path";
5
+ import { createTempDir } from "./index.js";
6
+ import makeFetchHappen from 'make-fetch-happen';
7
+ export class FileDownloader {
8
+ conn;
9
+ downloadUrl;
10
+ outputFile = null;
11
+ fetchOptions = {};
12
+ label;
13
+ constructor(downloadUrl, options) {
14
+ this.conn = options.conn || null;
15
+ this.downloadUrl = downloadUrl;
16
+ this.outputFile = options.outputFile || null;
17
+ this.label = options?.label === 'file'
18
+ ? (path.relative(process.cwd(), this.outputFile || "")) || this.downloadUrl
19
+ : options?.label === 'both'
20
+ ? `${this.outputFile} from ${this.downloadUrl}`
21
+ : this.downloadUrl;
22
+ // Build fetch options for HTTP calls to retrieve document files
23
+ this.fetchOptions = options.fetchOptions || {
24
+ method: 'GET',
25
+ headers: {
26
+ Authorization: 'Bearer ' + this.conn.accessToken,
27
+ 'Content-Type': 'blob',
28
+ // "X-PrettyPrint": '1'
29
+ },
30
+ retry: {
31
+ retries: 20,
32
+ factor: 3,
33
+ randomize: true,
34
+ },
35
+ };
36
+ }
37
+ async download() {
38
+ const spinnerCustom = ora({
39
+ text: `Downloading ${this.label}...`,
40
+ spinner: 'moon',
41
+ }).start();
42
+ if (this.outputFile == null) {
43
+ const tempDir = await createTempDir();
44
+ this.outputFile = path.join(tempDir, Math.random().toString(36).substring(7));
45
+ }
46
+ try {
47
+ this.fetchOptions.onRetry = (cause) => {
48
+ spinnerCustom.text = `Retrying ${this.label} (${cause})...`;
49
+ };
50
+ const fetchRes = await makeFetchHappen(this.downloadUrl, this.fetchOptions);
51
+ if (!fetchRes.ok) {
52
+ throw new SfError(`Fetch error: ${JSON.stringify(fetchRes.body)}`);
53
+ }
54
+ const stream = fs.createWriteStream(this.outputFile);
55
+ const totalSize = Number(fetchRes.headers.get('content-length'));
56
+ let downloadedSize = 0;
57
+ // Set up piping first
58
+ fetchRes.body.pipe(stream);
59
+ fetchRes.body.on('data', (chunk) => {
60
+ downloadedSize += chunk.length;
61
+ const percentComplete = totalSize ? (downloadedSize / totalSize * 100).toFixed(2) : null;
62
+ spinnerCustom.text = totalSize
63
+ ? `Downloaded ${downloadedSize} bytes of ${totalSize} bytes (${percentComplete}%) of ${this.label}`
64
+ : `Downloaded ${downloadedSize} bytes of ${this.label}`;
65
+ });
66
+ // Handle end of download, or error
67
+ await new Promise((resolve, reject) => {
68
+ fetchRes.body.on("error", reject);
69
+ stream.on("error", reject);
70
+ stream.on("finish", resolve);
71
+ });
72
+ const fileExists = await fs.exists(this.outputFile);
73
+ if (!fileExists) {
74
+ throw new SfError(`Download error: Download stream ok but no created file at ${this.outputFile}`);
75
+ }
76
+ spinnerCustom.succeed(`Downloaded ${this.label}`);
77
+ stream.destroy();
78
+ }
79
+ catch (err) {
80
+ spinnerCustom.fail(`Error while downloading ${this.downloadUrl}: ${err.message}`);
81
+ return { success: false, outputFile: this.outputFile, error: err };
82
+ }
83
+ return { success: true, outputFile: this.outputFile };
84
+ }
85
+ }
86
+ //# sourceMappingURL=fileDownloader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileDownloader.js","sourceRoot":"","sources":["../../../src/common/utils/fileDownloader.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,6 @@ export declare class FilesExporter {
7
7
  private recordsChunkSize;
8
8
  private startChunkNumber;
9
9
  private commandThis;
10
- private fetchOptions;
11
10
  private dtl;
12
11
  private exportedFilesFolder;
13
12
  private recordsChunk;
@@ -2,7 +2,6 @@
2
2
  import fs from 'fs-extra';
3
3
  import * as path from 'path';
4
4
  import c from 'chalk';
5
- import makeFetchHappen from 'make-fetch-happen';
6
5
  import * as split from 'split';
7
6
  import { PromisePool } from '@supercharge/promise-pool';
8
7
  // Salesforce Specific and Other Specific Libraries
@@ -15,7 +14,7 @@ import { bulkQuery, soqlQuery } from './apiUtils.js';
15
14
  import { prompts } from './prompts.js';
16
15
  import { CONSTANTS, getReportDirectory } from '../../config/index.js';
17
16
  import { WebSocketClient } from '../websocketClient.js';
18
- import ora from 'ora';
17
+ import { FileDownloader } from './fileDownloader.js';
19
18
  export const filesFolderRoot = path.join('.', 'scripts', 'files');
20
19
  export class FilesExporter {
21
20
  filesPath;
@@ -24,7 +23,6 @@ export class FilesExporter {
24
23
  recordsChunkSize;
25
24
  startChunkNumber;
26
25
  commandThis;
27
- fetchOptions;
28
26
  dtl = null; // export config
29
27
  exportedFilesFolder = '';
30
28
  recordsChunk = [];
@@ -54,19 +52,6 @@ export class FilesExporter {
54
52
  if (options.exportConfig) {
55
53
  this.dtl = options.exportConfig;
56
54
  }
57
- // Build fetch options for HTTP calls to retrieve document files
58
- this.fetchOptions = {
59
- method: 'GET',
60
- headers: {
61
- Authorization: 'Bearer ' + this.conn.accessToken,
62
- 'Content-Type': 'blob',
63
- },
64
- retry: {
65
- retries: 20,
66
- factor: 3,
67
- randomize: true,
68
- },
69
- };
70
55
  }
71
56
  async processExport() {
72
57
  // Get config
@@ -251,7 +236,6 @@ export class FilesExporter {
251
236
  outputFile =
252
237
  outputFile + '.' + (contentVersion.FileExtension !== 'snote' ? contentVersion.FileExtension : 'html');
253
238
  }
254
- const outputFileLabel = path.relative(process.cwd(), outputFile);
255
239
  // Check file extension
256
240
  if (this.dtl.fileTypes !== 'all' && !this.dtl.fileTypes.includes(contentVersion.FileType)) {
257
241
  uxLog(this, c.grey(`Skipped - ${outputFile.replace(this.exportedFilesFolder, '')} - File type ignored`));
@@ -267,36 +251,12 @@ export class FilesExporter {
267
251
  // Create directory if not existing
268
252
  await fs.ensureDir(parentRecordFolderForFiles);
269
253
  // Download file locally
270
- const spinnerCustom = ora({
271
- text: `(${(this.filesDownloaded + 1)}) Downloading ${outputFileLabel}...`,
272
- spinner: 'moon',
273
- }).start();
274
254
  const fetchUrl = `${this.conn.instanceUrl}/services/data/v${CONSTANTS.API_VERSION}/sobjects/ContentVersion/${contentVersion.Id}/VersionData`;
275
- try {
276
- this.fetchOptions.onRetry = (cause) => {
277
- spinnerCustom.text = `(${this.filesDownloaded}) Retrying ${outputFileLabel} (${cause})...`;
278
- };
279
- const fetchRes = await makeFetchHappen(fetchUrl, this.fetchOptions);
280
- if (fetchRes.ok !== true) {
281
- throw new SfError(`Fetch error - ${fetchUrl} - + ${JSON.stringify(fetchRes.body)}`);
282
- }
283
- // Wait for file to be written
284
- const stream = fs.createWriteStream(outputFile);
285
- fetchRes.body.pipe(stream);
286
- /*
287
- await new Promise(resolve => {
288
- stream.on('finish', function() {
289
- resolve(true);
290
- });
291
- }) */
292
- // uxLog(this, c.green(`Success - ${path.relative(process.cwd(), outputFile)}`));
255
+ const downloadResult = await new FileDownloader(fetchUrl, { conn: this.conn, outputFile: outputFile, label: 'file' }).download();
256
+ if (downloadResult.success) {
293
257
  this.filesDownloaded++;
294
- spinnerCustom.succeed(`(${this.filesDownloaded}) Downloaded ${outputFileLabel}`);
295
258
  }
296
- catch (err) {
297
- // Download failure
298
- // uxLog(this, c.red(`Error - ${path.relative(process.cwd(), outputFile)} - ${err}`));
299
- spinnerCustom.fail(`(${this.filesDownloaded}) Error while downloading ${outputFileLabel}: ${err.message}`);
259
+ else {
300
260
  this.filesErrors++;
301
261
  }
302
262
  }