sfdx-hardis 6.11.0 → 6.11.2

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,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
+ ## [6.11.2] 2025-11-03
8
+
9
+ - Enhances storage stats with breakdown and filtering
10
+
11
+ ## [6.11.1] 2025-11-02
12
+
13
+ - Fix manual checkbox display in PR comments
14
+
7
15
  ## [6.11.0] 2025-11-02
8
16
 
9
17
  - New feature: [**Deployment actions**](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-work-on-task-deployment-actions/) at Pull Request level
@@ -11,8 +11,12 @@ export default class StorageStats extends SfCommand<any> {
11
11
  protected tableStorageInfos: any[];
12
12
  protected outputFile: any;
13
13
  protected outputFilesRes: any;
14
+ protected dateGranularity: 'year' | 'month' | 'day';
15
+ protected whereCondition: string;
14
16
  run(): Promise<AnyJson>;
15
17
  private getEmptyObjectsCache;
16
18
  private setEmptyObjectsCache;
19
+ private checkFieldExistenceAndType;
20
+ private checkRelatedFieldPath;
17
21
  private calculateObjectStorageStats;
18
22
  }
@@ -15,7 +15,7 @@ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
15
15
  const messages = Messages.loadMessages('sfdx-hardis', 'org');
16
16
  export default class StorageStats extends SfCommand {
17
17
  static title = 'Extract Data Storage stats';
18
- static description = `**Extracts and analyzes Data Storage usage for a Salesforce org, providing detailed per-object breakdowns with yearly trends.**
18
+ static description = `**Extracts and analyzes Data Storage usage for a Salesforce org, providing detailed per-object breakdowns with flexible grouping options.**
19
19
 
20
20
  This command provides a comprehensive overview of your Salesforce data storage consumption. It's particularly useful for:
21
21
 
@@ -28,10 +28,19 @@ Key functionalities:
28
28
 
29
29
  - **Storage Limits Analysis:** Retrieves and displays org data storage limits, including total capacity, used storage, remaining storage, and percentage used. Detects and alerts on over-usage scenarios.
30
30
  - **SObject Discovery & Filtering:** Automatically discovers all SObjects in the org and filters them to focus on production/custom objects (excludes metadata types, platform-only objects, and cached empty objects).
31
- - **Interactive Selection:** Prompts the user to select which SObjects to analyze and choose between \`CreatedDate\` or \`LastModifiedDate\` for temporal breakdown.
32
- - **Yearly Storage Breakdown:** Executes grouped SOQL queries per object to calculate record counts by year, providing historical growth trends.
31
+ - **Interactive Selection:** Prompts the user to select which SObjects to analyze and choose breakdown fields (date fields, RecordType, custom fields, or relationship fields).
32
+ - **Flexible Breakdown Field:** Supports grouping by any field including:
33
+ - Date/DateTime fields (\`CreatedDate\`, \`LastModifiedDate\`, custom date fields)
34
+ - RecordType (\`RecordType.Name\`)
35
+ - Custom fields (\`Status__c\`, picklists, text fields)
36
+ - Nested relationship fields (\`SBQQ__Quote__r.RecordType.Name\`)
37
+ - **Date Granularity Options:** For date/datetime fields, choose between:
38
+ - Year-based grouping (\`CALENDAR_YEAR\`)
39
+ - Month-based grouping (\`CALENDAR_MONTH\`)
40
+ - Day-based grouping (exact date)
41
+ - **WHERE Clause Filtering:** Apply SOQL WHERE conditions to filter records before calculating storage (e.g., only active records, records from the last year).
33
42
  - **Storage Estimation:** Estimates storage usage for each object using an average record size heuristic (2 KB per record) and calculates the percentage of org quota consumed.
34
- - **Dual CSV Reports:** Generates two CSV files: a detailed by-year breakdown and a totals-per-object summary, both suitable for spreadsheet analysis and reporting.
43
+ - **Dual CSV Reports:** Generates two CSV files: a detailed breakdown by selected field and a totals-per-object summary, both suitable for spreadsheet analysis and reporting.
35
44
  - **Empty Objects Cache:** Maintains a per-user cache of objects detected with zero records to optimize subsequent runs by skipping empty tables.
36
45
  - **Progress Tracking:** Sends WebSocket progress messages for integration with external UIs and monitoring dashboards.
37
46
 
@@ -42,12 +51,18 @@ The command's technical implementation involves:
42
51
 
43
52
  - **Limits Retrieval:** Calls \`conn.limits()\` to retrieve the \`DataStorageMB\` object containing \`Max\` and \`Remaining\` values. Handles negative \`Remaining\` values (over-usage scenarios) by calculating \`overUsageMB\` and adjusting display values.
44
53
  - **SObject Discovery:** Uses \`conn.metadata.list([{ type: 'CustomObject' }])\` to get custom objects and \`conn.describeGlobal()\` to get all SObjects. Filters by object capabilities (\`layoutable\`, \`queryable\`, \`retrieveable\`, \`createable\`, \`updateable\`, \`deletable\`) and excludes metadata types (\`__mdt\` suffix) and cached empty objects.
45
- - **User Interaction:** Uses \`prompts\` for interactive multi-select of SObjects and single-select for date field choice. All objects are pre-selected by default for user convenience.
46
- - **Yearly Aggregation Queries:** For each selected SObject, executes a grouped SOQL query: \`SELECT CALENDAR_YEAR(<DateField>) year, COUNT(Id) total FROM <SObject> GROUP BY CALENDAR_YEAR(<DateField>) ORDER BY CALENDAR_YEAR(<DateField>) DESC\`. Handles query errors gracefully (logs error and continues with next object).
47
- - **Storage Calculation:** Applies a conservative average record size of 2 KB (2048 bytes) to estimate storage consumption. Calculates both MB usage and percentage of org quota for each object and year.
54
+ - **User Interaction:** Uses \`prompts\` for interactive multi-select of SObjects, breakdown field selection, granularity choice (for date fields), and optional WHERE conditions. All objects are pre-selected by default for user convenience.
55
+ - **Field Validation:** Recursively validates breakdown fields including nested relationships (e.g., \`SBQQ__Quote__r.RecordType.Name\`) by traversing the relationship chain and checking field existence on each related object. Automatically handles special cases like \`RecordType\` -> \`RecordTypeId\` and \`__r\` -> \`__c\` conversions.
56
+ - **Dynamic Query Generation:** Builds SOQL queries based on field type and granularity:
57
+ - For date fields with year granularity: \`SELECT CALENDAR_YEAR(<Field>) breakdown, COUNT(Id) total FROM <SObject> [WHERE ...] GROUP BY CALENDAR_YEAR(<Field>) ORDER BY CALENDAR_YEAR(<Field>)\`
58
+ - For date fields with month granularity: \`SELECT CALENDAR_YEAR(<Field>) year, CALENDAR_MONTH(<Field>) month, COUNT(Id) total FROM <SObject> [WHERE ...] GROUP BY CALENDAR_YEAR(<Field>), CALENDAR_MONTH(<Field>) ORDER BY CALENDAR_YEAR(<Field>), CALENDAR_MONTH(<Field>)\`
59
+ - For non-date fields: \`SELECT <Field> breakdown, COUNT(Id) total FROM <SObject> [WHERE ...] GROUP BY <Field> ORDER BY <Field>\`
60
+ - **WHERE Clause Support:** Accepts user-provided WHERE conditions via flag (\`--where\`) or interactive prompt. Injects the condition into all SOQL queries for consistent filtering across all objects.
61
+ - **Storage Calculation:** Applies a conservative average record size of 2 KB (2048 bytes) to estimate storage consumption. Calculates both MB usage and percentage of org quota for each object and breakdown value.
48
62
  - **Report Generation:** Uses \`generateCsvFile\` and \`generateReportPath\` helpers to create two CSV files in the reports directory:
49
- - Detailed breakdown: includes all yearly statistics per object
63
+ - Detailed breakdown: includes all statistics per breakdown value per object (e.g., by year, by month, by RecordType)
50
64
  - Totals summary: includes only aggregate totals per object
65
+ - File naming includes breakdown field, granularity (for date fields), and \`-filtered\` suffix when WHERE clause is applied
51
66
  - **Caching Mechanism:** Writes a JSON cache file per authenticated username (sanitized) in the reports directory (\`<username>_empty_tables_cache.json\`) containing an array of empty object names. The cache is updated after each run with newly detected empty objects.
52
67
  - **Progress & UX:** Uses \`WebSocketClient\` to emit start/step/end progress messages for external monitoring. Outputs summary tables with \`uxLogTable\` and status messages with \`uxLog\`.
53
68
  - **Return Value:** Returns a JSON object containing \`tableStorageInfos\` (all rows), \`tableStorageInfosTotals\` (summary rows), \`storageLimits\` (org limits object), and \`outputFiles\` (paths to generated CSV/XLSX reports).
@@ -59,12 +74,25 @@ The command's technical implementation involves:
59
74
  `;
60
75
  static examples = [
61
76
  '$ sf hardis:org:diagnose:storage-stats',
77
+ '$ sf hardis:org:diagnose:storage-stats --breakdown-field "CreatedDate"',
78
+ '$ sf hardis:org:diagnose:storage-stats -b "RecordType.Name"',
79
+ '$ sf hardis:org:diagnose:storage-stats --where "CreatedDate = LAST_N_DAYS:365"',
80
+ '$ sf hardis:org:diagnose:storage-stats -w "Status__c = \'Active\'"',
81
+ '$ sf hardis:org:diagnose:storage-stats -b "LastModifiedDate" -w "IsDeleted = false"',
62
82
  ];
63
83
  static flags = {
64
84
  outputfile: Flags.string({
65
85
  char: 'f',
66
86
  description: 'Force the path and name of output report file. Must end with .csv',
67
87
  }),
88
+ 'breakdown-field': Flags.string({
89
+ char: 'b',
90
+ description: 'Field to use for storage stats breakdown. Example: "CreatedDate", "LastModifiedDate", "RecordType.Name", or custom fields like "Status__c"',
91
+ }),
92
+ where: Flags.string({
93
+ char: 'w',
94
+ description: 'WHERE clause to filter records in the query (without the WHERE keyword). Example: "CreatedDate = LAST_N_DAYS:365" or "Status__c = \'Active\'"',
95
+ }),
68
96
  debug: Flags.boolean({
69
97
  char: 'd',
70
98
  default: false,
@@ -84,11 +112,14 @@ The command's technical implementation involves:
84
112
  tableStorageInfos = [];
85
113
  outputFile;
86
114
  outputFilesRes = {};
115
+ dateGranularity = 'year';
116
+ whereCondition = '';
87
117
  /* jscpd:ignore-end */
88
118
  async run() {
89
119
  const { flags } = await this.parse(StorageStats);
90
120
  this.debugMode = flags.debug || false;
91
121
  this.outputFile = flags.outputfile || null;
122
+ this.whereCondition = flags.where || '';
92
123
  const conn = flags['target-org'].getConnection();
93
124
  // Querying storage limit
94
125
  uxLog("action", this, `Retrieving storage limits from the org...`);
@@ -145,24 +176,78 @@ The command's technical implementation involves:
145
176
  return sObjectsFiltered.find((obj) => obj.name === objName);
146
177
  });
147
178
  uxLog("log", this, `${selectedObjects.length} SObjects selected for analysis.`);
148
- // Prompt user for stats on CreatedDate or LastModifiedDate
149
- const promptDateFieldRes = await prompts({
150
- type: 'select',
151
- message: 'Select the date field to use for storage stats breakdown',
152
- description: "Choose between CreatedDate or LastModifiedDate.",
153
- choices: [
154
- { title: 'CreatedDate', value: 'CreatedDate' },
155
- { title: 'LastModifiedDate', value: 'LastModifiedDate' },
156
- ],
157
- });
158
- const dateField = promptDateFieldRes.value;
159
- uxLog("log", this, `Using ${c.cyan(dateField)} for storage stats breakdown.`);
179
+ // Get breakdown field from flag or prompt user
180
+ let breakdownField = flags['breakdown-field'];
181
+ if (!breakdownField) {
182
+ // Prompt user for stats on CreatedDate or LastModifiedDate
183
+ const promptDateFieldRes = await prompts({
184
+ type: 'select',
185
+ message: 'Select the date field to use for storage stats breakdown',
186
+ description: "Choose between CreatedDate or LastModifiedDate.",
187
+ choices: [
188
+ { title: 'Created Date', value: 'CreatedDate' },
189
+ { title: 'Last Modified Date', value: 'LastModifiedDate' },
190
+ { title: 'Record Type (if applicable)', value: 'RecordType.Name' },
191
+ { title: "Custom (will exclude objects who doesn't have the field)", value: 'custom' }
192
+ ],
193
+ });
194
+ breakdownField = promptDateFieldRes.value;
195
+ if (breakdownField === 'custom') {
196
+ const promptFieldRes = await prompts({
197
+ type: 'text',
198
+ message: 'Enter the API name of the custom date field to use for storage stats breakdown',
199
+ description: "Objects without this field will be excluded from the analysis.",
200
+ placeholder: 'My_Date_Field__c, RecordType.Name, SBQQ_Quote__r.Status__c or SBQQ__Quote__r.RecordType.Name',
201
+ });
202
+ breakdownField = promptFieldRes.value;
203
+ }
204
+ }
205
+ uxLog("log", this, `Using ${c.cyan(breakdownField)} for storage stats breakdown.`);
206
+ // Check if the selected field is a date field to prompt for granularity
207
+ // We need to check at least one object to determine the field type
208
+ let isDateFieldForGranularity = false;
209
+ if (breakdownField === 'CreatedDate' || breakdownField === 'LastModifiedDate') {
210
+ isDateFieldForGranularity = true;
211
+ }
212
+ else if (selectedObjects.length > 0) {
213
+ // Check the first selected object to determine field type
214
+ const firstObjCheck = await this.checkFieldExistenceAndType(selectedObjects[0], breakdownField, conn);
215
+ isDateFieldForGranularity = firstObjCheck.isDateField;
216
+ }
217
+ // Prompt for date granularity if the field is a date/datetime
218
+ if (isDateFieldForGranularity) {
219
+ const promptGranularityRes = await prompts({
220
+ type: 'select',
221
+ message: 'Select the breakdown granularity for the date field',
222
+ description: "Choose how you want to group the storage statistics.",
223
+ choices: [
224
+ { title: 'By Year (CALENDAR_YEAR)', value: 'year' },
225
+ { title: 'By Month (CALENDAR_MONTH)', value: 'month' },
226
+ { title: 'By Day (exact date)', value: 'day' }
227
+ ],
228
+ });
229
+ this.dateGranularity = promptGranularityRes.value;
230
+ uxLog("log", this, `Using ${c.cyan(this.dateGranularity)} granularity for date breakdown.`);
231
+ }
232
+ // Prompt for WHERE condition if not provided via flag
233
+ if (!this.whereCondition) {
234
+ const promptWhereCondRes = await prompts({
235
+ type: 'text',
236
+ message: 'Enter an optional WHERE condition to filter records (SOQL syntax)',
237
+ description: 'You can provide an optional WHERE clause to filter records for the storage stats calculation. Leave empty for no filter.',
238
+ placeholder: "Ex: CreatedDate = LAST_N_DAYS:365 or Status__c = 'Active'"
239
+ });
240
+ this.whereCondition = promptWhereCondRes.value || '';
241
+ }
242
+ if (this.whereCondition) {
243
+ uxLog("log", this, `Applying WHERE condition: ${c.cyan(this.whereCondition)}`);
244
+ }
160
245
  // Query objects to know the count of records, storage used and their year of created date
161
246
  WebSocketClient.sendProgressStartMessage(`Calculating storage stats for ${selectedObjects.length} objects...`, selectedObjects.length);
162
247
  const objectStorageStats = [];
163
248
  let step = 0;
164
249
  for (const obj of selectedObjects) {
165
- const res = await this.calculateObjectStorageStats(obj, dateField, conn);
250
+ const res = await this.calculateObjectStorageStats(obj, breakdownField, conn);
166
251
  objectStorageStats.push(res);
167
252
  step++;
168
253
  WebSocketClient.sendProgressStepMessage(step);
@@ -171,8 +256,12 @@ The command's technical implementation involves:
171
256
  uxLog("action", this, `Compiling storage stats...`);
172
257
  // Sort by total records descending
173
258
  sortArray(objectStorageStats, { by: 'totalRecords', order: 'desc' });
174
- // Create one line by year per object
259
+ // Create one line by breakdown per object
175
260
  this.tableStorageInfos = objectStorageStats.flatMap(objStats => {
261
+ // Skip objects that don't have the field
262
+ if (objStats.skipped) {
263
+ return [];
264
+ }
176
265
  const allLines = [];
177
266
  // calculate object storage usage based on record count and average record size
178
267
  const averageSalesforceRecordSizeBytes = 2 * 1024; // 2 KB average size per record
@@ -182,40 +271,49 @@ The command's technical implementation involves:
182
271
  };
183
272
  const globalLine = {
184
273
  ...tableStorageInfo,
185
- Year: 'Total',
274
+ Breakdown: 'Total',
186
275
  RecordCount: objStats.totalRecords,
187
276
  EstimatedStoragePercentage: ((objStats.totalRecords * averageSalesforceRecordSizeBytes) / (dataStorageLimit.Max * 1024 * 1024) * 100).toFixed(2) + "%",
188
277
  EstimatedStorageMB: ((objStats.totalRecords * averageSalesforceRecordSizeBytes) / (1024 * 1024)).toFixed(2),
189
278
  };
190
279
  allLines.push(globalLine);
191
- for (const yearStat of objStats.yearlyStats) {
192
- const year = yearStat.year;
193
- const recordCount = yearStat.total;
194
- const storageUsedYearBytes = (recordCount * averageSalesforceRecordSizeBytes) / (1024 * 1024);
280
+ for (const breakdownStat of objStats.breakdownStats) {
281
+ const breakdownValue = breakdownStat.breakdown;
282
+ const recordCount = breakdownStat.total;
283
+ const storageUsedBreakdownBytes = (recordCount * averageSalesforceRecordSizeBytes) / (1024 * 1024);
195
284
  const line = {
196
285
  ...tableStorageInfo,
197
- Year: year,
286
+ Breakdown: breakdownValue,
198
287
  RecordCount: recordCount,
199
- EstimatedStoragePercentage: (storageUsedYearBytes / (dataStorageLimit.Max) * 100).toFixed(2) + "%",
200
- EstimatedStorageMB: storageUsedYearBytes.toFixed(2),
288
+ EstimatedStoragePercentage: (storageUsedBreakdownBytes / (dataStorageLimit.Max) * 100).toFixed(2) + "%",
289
+ EstimatedStorageMB: storageUsedBreakdownBytes.toFixed(2),
201
290
  };
202
291
  allLines.push(line);
203
292
  }
204
293
  return allLines;
205
294
  });
206
- // Update empty objects cache
207
- const newlyEmptyObjects = objectStorageStats.filter(obj => obj.totalRecords === 0).map(obj => obj.name);
295
+ // Update empty objects cache (exclude objects that were skipped or had errors)
296
+ const newlyEmptyObjects = objectStorageStats
297
+ .filter(obj => obj.totalRecords === 0 && !obj.skipped && !obj.error)
298
+ .map(obj => obj.name);
208
299
  const updatedEmptyObjects = Array.from(new Set([...emptyObjects, ...newlyEmptyObjects]));
209
300
  await this.setEmptyObjectsCache(updatedEmptyObjects);
210
301
  uxLog("log", this, `Empty objects cache updated with ${newlyEmptyObjects.length} newly detected empty objects.`);
211
302
  // Remove objects with zero records from the report
212
303
  this.tableStorageInfos = this.tableStorageInfos.filter(info => info.RecordCount > 0);
213
- // Generate output CSV file with breakdown by year
214
- this.outputFile = await generateReportPath('storage-stats-by' + dateField, this.outputFile);
215
- this.outputFilesRes = await generateCsvFile(this.tableStorageInfos, this.outputFile, { fileTitle: "Storage stats breakdown by " + dateField });
304
+ // Generate output CSV file with breakdown
305
+ const granularitySuffix = isDateFieldForGranularity ? `-${this.dateGranularity}` : '';
306
+ const whereSuffix = this.whereCondition ? '-filtered' : '';
307
+ const fileBaseName = `storage-stats-by-${breakdownField.replace(/\./g, '_')}${granularitySuffix}${whereSuffix}`;
308
+ this.outputFile = await generateReportPath(fileBaseName, this.outputFile);
309
+ const whereInfo = this.whereCondition ? ` (WHERE ${this.whereCondition})` : '';
310
+ const fileTitleBreakdown = isDateFieldForGranularity
311
+ ? `Storage stats breakdown by ${breakdownField} (${this.dateGranularity})${whereInfo}`
312
+ : `Storage stats breakdown by ${breakdownField}${whereInfo}`;
313
+ this.outputFilesRes = await generateCsvFile(this.tableStorageInfos, this.outputFile, { fileTitle: fileTitleBreakdown });
216
314
  // Generate output CSV file with only total per object
217
315
  const outputFileTotals = this.outputFile.replace('.csv', '-totals.csv');
218
- const tableStorageInfosTotals = this.tableStorageInfos.filter(info => info.Year === 'Total');
316
+ const tableStorageInfosTotals = this.tableStorageInfos.filter(info => info.Breakdown === 'Total');
219
317
  const outputFilesResTotals = await generateCsvFile(tableStorageInfosTotals, outputFileTotals, { fileTitle: "Storage stats totals per object" });
220
318
  this.outputFilesRes.totalPerObject = outputFilesResTotals;
221
319
  // Display results
@@ -244,33 +342,216 @@ The command's technical implementation involves:
244
342
  };
245
343
  await fs.writeJSON(this.cacheFilePath, cacheContent, { spaces: 2 });
246
344
  }
247
- async calculateObjectStorageStats(obj, dateField, conn) {
345
+ async checkFieldExistenceAndType(obj, breakdownField, conn) {
346
+ // Standard date fields are always valid and are date fields
347
+ if (breakdownField === 'CreatedDate' || breakdownField === 'LastModifiedDate') {
348
+ return { isValid: true, isDateField: true };
349
+ }
350
+ const fieldPath = breakdownField.split('.');
351
+ try {
352
+ const describe = await conn.sobject(obj.name).describe();
353
+ const fieldName = fieldPath[0];
354
+ // Determine the field to check in describe
355
+ let fieldToCheck = fieldName;
356
+ // Special case: RecordType.Name -> check RecordTypeId
357
+ if (fieldName === 'RecordType') {
358
+ fieldToCheck = 'RecordTypeId';
359
+ }
360
+ // Special case: Custom relationships ending with __r -> convert to __c (e.g., SBQQ_Quote__r -> SBQQ_Quote__c)
361
+ else if (fieldName.endsWith('__r')) {
362
+ fieldToCheck = fieldName.replace(/__r$/, '__c');
363
+ }
364
+ const field = describe.fields.find((f) => f.name === fieldToCheck);
365
+ if (!field) {
366
+ uxLog("warning", this, c.yellow(`Skipping object ${c.cyan(obj.name)}: field ${c.cyan(breakdownField)} not found`));
367
+ return {
368
+ isValid: false,
369
+ isDateField: false,
370
+ errorResult: {
371
+ name: obj.name,
372
+ label: obj.label,
373
+ totalRecords: 0,
374
+ breakdownStats: [],
375
+ skipped: true,
376
+ skipReason: `Field ${breakdownField} not found on object`
377
+ }
378
+ };
379
+ }
380
+ // Navigate through relationship fields recursively
381
+ if (fieldPath.length > 1 && field.referenceTo && field.referenceTo.length > 0) {
382
+ return await this.checkRelatedFieldPath(obj, field, fieldPath.slice(1), conn, [field.referenceTo[0]]);
383
+ }
384
+ else {
385
+ // Direct field on the object, check its type
386
+ const isDateField = field.type === 'date' || field.type === 'datetime';
387
+ return { isValid: true, isDateField };
388
+ }
389
+ }
390
+ catch (error) {
391
+ uxLog("error", this, `Error describing object ${c.cyan(obj.name)}: ${error.message}`);
392
+ return {
393
+ isValid: false,
394
+ isDateField: false,
395
+ errorResult: {
396
+ name: obj.name,
397
+ label: obj.label + ' (Describe Error): ' + error.message,
398
+ totalRecords: 0,
399
+ breakdownStats: [],
400
+ error: true,
401
+ }
402
+ };
403
+ }
404
+ }
405
+ async checkRelatedFieldPath(originalObj, currentField, remainingPath, conn, relationshipChain) {
406
+ const relatedObjectName = currentField.referenceTo[0]; // Take first reference (polymorphic not fully supported)
407
+ const nextFieldName = remainingPath[0];
408
+ try {
409
+ const relatedDescribe = await conn.sobject(relatedObjectName).describe();
410
+ // Determine the field to check in describe
411
+ let fieldToCheck = nextFieldName;
412
+ // Special case: RecordType.Name -> check RecordTypeId
413
+ if (nextFieldName === 'RecordType') {
414
+ fieldToCheck = 'RecordTypeId';
415
+ }
416
+ // Special case: Custom relationships ending with __r -> convert to __c
417
+ else if (nextFieldName.endsWith('__r')) {
418
+ fieldToCheck = nextFieldName.replace(/__r$/, '__c');
419
+ }
420
+ const relatedField = relatedDescribe.fields.find((f) => f.name === fieldToCheck);
421
+ if (!relatedField) {
422
+ const relationshipPath = relationshipChain.join(' -> ');
423
+ uxLog("warning", this, c.yellow(`Skipping object ${c.cyan(originalObj.name)}: field ${c.cyan(nextFieldName)} not found on ${c.cyan(relatedObjectName)} (path: ${relationshipPath})`));
424
+ return {
425
+ isValid: false,
426
+ isDateField: false,
427
+ errorResult: {
428
+ name: originalObj.name,
429
+ label: originalObj.label,
430
+ totalRecords: 0,
431
+ breakdownStats: [],
432
+ skipped: true,
433
+ skipReason: `Field ${nextFieldName} not found on related object ${relatedObjectName} (relationship path: ${relationshipPath})`
434
+ }
435
+ };
436
+ }
437
+ // If there are more levels to traverse
438
+ if (remainingPath.length > 1 && relatedField.referenceTo && relatedField.referenceTo.length > 0) {
439
+ return await this.checkRelatedFieldPath(originalObj, relatedField, remainingPath.slice(1), conn, [...relationshipChain, relatedField.referenceTo[0]]);
440
+ }
441
+ else {
442
+ // This is the final field, check its type
443
+ const isDateField = relatedField.type === 'date' || relatedField.type === 'datetime';
444
+ return { isValid: true, isDateField };
445
+ }
446
+ }
447
+ catch (error) {
448
+ const relationshipPath = relationshipChain.join(' -> ');
449
+ uxLog("error", this, `Error describing related object ${c.cyan(relatedObjectName)}: ${error.message} (path: ${relationshipPath})`);
450
+ return {
451
+ isValid: false,
452
+ isDateField: false,
453
+ errorResult: {
454
+ name: originalObj.name,
455
+ label: originalObj.label + ` (Describe Error on ${relatedObjectName}): ` + error.message,
456
+ totalRecords: 0,
457
+ breakdownStats: [],
458
+ error: true,
459
+ }
460
+ };
461
+ }
462
+ }
463
+ async calculateObjectStorageStats(obj, breakdownField, conn) {
248
464
  uxLog("log", this, `Querying storage stats for object: ${c.cyan(obj.name)}...`);
249
- const query = `SELECT CALENDAR_YEAR(${dateField}) year, COUNT(Id) total
250
- FROM ${obj.name}
251
- GROUP BY CALENDAR_YEAR(${dateField})
252
- ORDER BY CALENDAR_YEAR(${dateField}) DESC`;
465
+ // Check if field exists on object and determine its type
466
+ const fieldCheck = await this.checkFieldExistenceAndType(obj, breakdownField, conn);
467
+ if (!fieldCheck.isValid) {
468
+ return fieldCheck.errorResult;
469
+ }
470
+ // Build query based on field type
471
+ let query;
472
+ let groupByClause;
473
+ let orderByClause;
474
+ // Use appropriate date function for date/datetime fields based on granularity
475
+ if (fieldCheck.isDateField) {
476
+ switch (this.dateGranularity) {
477
+ case 'year':
478
+ groupByClause = `CALENDAR_YEAR(${breakdownField})`;
479
+ orderByClause = `CALENDAR_YEAR(${breakdownField})`;
480
+ break;
481
+ case 'month':
482
+ groupByClause = `CALENDAR_YEAR(${breakdownField}), CALENDAR_MONTH(${breakdownField})`;
483
+ orderByClause = `CALENDAR_YEAR(${breakdownField}), CALENDAR_MONTH(${breakdownField})`;
484
+ break;
485
+ case 'day':
486
+ groupByClause = breakdownField;
487
+ orderByClause = `${breakdownField}`;
488
+ break;
489
+ default:
490
+ groupByClause = `CALENDAR_YEAR(${breakdownField})`;
491
+ orderByClause = `CALENDAR_YEAR(${breakdownField})`;
492
+ }
493
+ // Build appropriate SELECT clause based on granularity
494
+ let selectClause;
495
+ if (this.dateGranularity === 'month') {
496
+ selectClause = `CALENDAR_YEAR(${breakdownField}) year, CALENDAR_MONTH(${breakdownField}) month, COUNT(Id) total`;
497
+ }
498
+ else if (this.dateGranularity === 'day') {
499
+ selectClause = `${breakdownField} breakdown, COUNT(Id) total`;
500
+ }
501
+ else {
502
+ selectClause = `CALENDAR_YEAR(${breakdownField}) breakdown, COUNT(Id) total`;
503
+ }
504
+ // Build WHERE clause if provided
505
+ const whereClause = this.whereCondition ? `WHERE ${this.whereCondition}` : '';
506
+ query = `SELECT ${selectClause}
507
+ FROM ${obj.name}${whereClause ? ` ${whereClause}` : ''}
508
+ GROUP BY ${groupByClause}
509
+ ORDER BY ${orderByClause}`;
510
+ }
511
+ else {
512
+ // For non-date fields (RecordType.Name, picklists, text fields), use direct grouping
513
+ groupByClause = breakdownField;
514
+ // Build WHERE clause if provided
515
+ const whereClause = this.whereCondition ? `WHERE ${this.whereCondition}` : '';
516
+ query = `SELECT ${breakdownField} breakdown, COUNT(Id) total
517
+ FROM ${obj.name}${whereClause ? ` ${whereClause}` : ''}
518
+ GROUP BY ${breakdownField}
519
+ ORDER BY ${breakdownField}`;
520
+ }
253
521
  try {
254
522
  const queryRes = await soqlQuery(query, conn);
255
- const yearlyStats = queryRes.records.map((record) => ({
256
- year: record.year,
257
- total: record.total,
258
- }));
259
- const totalRecords = yearlyStats.reduce((acc, curr) => acc + curr.total, 0);
523
+ const breakdownStats = queryRes.records.map((record) => {
524
+ // Handle month granularity (year and month fields)
525
+ if (record.year !== undefined && record.month !== undefined) {
526
+ // Format as YYYY-MM for better readability
527
+ const monthStr = String(record.month).padStart(2, '0');
528
+ return {
529
+ breakdown: `${record.year}-${monthStr}`,
530
+ total: record.total,
531
+ };
532
+ }
533
+ // Handle other cases (year, day, or non-date fields)
534
+ return {
535
+ breakdown: record.breakdown || 'N/A',
536
+ total: record.total,
537
+ };
538
+ });
539
+ const totalRecords = breakdownStats.reduce((acc, curr) => acc + curr.total, 0);
260
540
  return {
261
541
  name: obj.name,
262
542
  label: obj.label,
263
543
  totalRecords,
264
- yearlyStats,
544
+ breakdownStats,
265
545
  };
266
546
  }
267
547
  catch (error) {
268
548
  uxLog("error", this, `Error querying object ${c.cyan(obj.name)}: ${error.message}`);
269
549
  return {
270
550
  name: obj.name,
271
- label: obj.label + ' (Query Error):' + error.message,
551
+ label: obj.label + ' (Query Error): ' + error.message,
272
552
  totalRecords: 0,
273
- yearlyStats: [],
553
+ breakdownStats: [],
554
+ error: true,
274
555
  };
275
556
  }
276
557
  }
@@ -1 +1 @@
1
- {"version":3,"file":"storage-stats.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/diagnose/storage-stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-stats.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/diagnose/storage-stats.ts"],"names":[],"mappings":"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"}
@@ -224,7 +224,7 @@ function buildManualActionsSection(commands, isPreDeploy, checkOnly) {
224
224
  if (!isPreDeploy && checkOnly) {
225
225
  return '';
226
226
  }
227
- const manualCommands = commands.filter(c => c.result?.statusCode === "manual");
227
+ const manualCommands = commands.filter(c => c.type === "manual");
228
228
  if (manualCommands.length === 0) {
229
229
  return '';
230
230
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prePostCommandUtils.js","sourceRoot":"","sources":["../../../src/common/utils/prePostCommandUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prePostCommandUtils.js","sourceRoot":"","sources":["../../../src/common/utils/prePostCommandUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAyB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,2DAA2D;AAC3D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,eAAe,EAAkB,MAAM,uCAAuC,CAAC;AAExF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,QAAoD,EAAE,OAA0F;IAC3L,MAAM,WAAW,GAAG,QAAQ,KAAK,mBAAmB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,yBAAyB,CAAC;IAC5G,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,+BAA+B,WAAW,KAAK,CAAC,CAAC,CAAC;IAC/E,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;IACzG,MAAM,oCAAoC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAClF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,0BAA0B,WAAW,4CAA4C,CAAC,CAAC,CAAC;QACjH,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,QAAQ,eAAe,CAAC,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IACD,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAC1B,6BAA6B,QAAQ,CAAC,MAAM,IAAI,WAAW,WAAW;QACtE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACtE,CAAC,CAAC;IACH,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACrE,IAAI,aAAa,EAAE,CAAC;YAClB,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC;YAC3B,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,8BAA8B,GAAG,CAAC,KAAK,kBAAkB,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YACpH,SAAS;QACX,CAAC;QACD,kDAAkD;QAClD,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,WAAW,KAAK,KAAK,CAAC,EAAE,CAAC;YAC/D,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,gCAAgC,GAAG,CAAC,KAAK,sBAAsB,CAAC,CAAC,CAAC;YACjG,GAAG,CAAC,MAAM,GAAG;gBACX,UAAU,EAAE,SAAS;gBACrB,aAAa,EAAE,2CAA2C;aAC3D,CAAC;YACF,SAAS;QACX,CAAC;QACD,2DAA2D;QAC3D,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC;QACxC,IAAI,UAAU,KAAK,uBAAuB,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAC1E,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,KAAK,uEAAuE,CAAC,CAAC,CAAC;YAChJ,GAAG,CAAC,MAAM,GAAG;gBACX,UAAU,EAAE,SAAS;gBACrB,aAAa,EAAE,+EAA+E;aAC/F,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,UAAU,KAAK,yBAAyB,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC3E,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,KAAK,qEAAqE,CAAC,CAAC,CAAC;YAC9I,GAAG,CAAC,MAAM,GAAG;gBACX,UAAU,EAAE,SAAS;gBACrB,aAAa,EAAE,+EAA+E;aAC/F,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,IAAI,KAAK,CAAC;QACvD,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,iBAAiB,GAAG,gEAAgE,QAAQ,iBAAiB,GAAG,CAAC,EAAE,WAAW,CAAC;YACrI,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACzE,IAAI,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,KAAK,2EAA2E,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC5L,GAAG,CAAC,MAAM,GAAG;oBACX,UAAU,EAAE,SAAS;oBACrB,aAAa,EAAE,uEAAuE;iBACvF,CAAC;gBACF,SAAS;YACX,CAAC;QACH,CAAC;QACD,cAAc;QACd,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,sCAAsC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjF,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,SAAS,IAAI,gBAAgB,EAAE,CAAC;YAC7D,MAAM,iBAAiB,GAAG;gBACxB,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE;gBAC9B,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,GAAG,CAAC,EAAE;aACf,CAAA;YACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACvF,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBACzB,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,uDAAuD,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,GAAG,CAAC,EAAE,iEAAiE,CAAC,CAAC,CAAC;YACnM,CAAC;iBACI,CAAC;gBACJ,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,8DAA8D,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACnI,CAAC;QACH,CAAC;aACI,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1E,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,8BAA8B,GAAG,CAAC,KAAK,iDAAiD,CAAC,CAAC,CAAC;YACtH,MAAM;QACR,CAAC;IACH,CAAC;IACD,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAChE,yBAAyB;IACzB,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC;IAC/E,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,uBAAuB,cAAc,CAAC,MAAM,4BAA4B,WAAW,GAAG,CAAC,CAAC,CAAC;QACpH,oDAAoD;QACpD,MAAM,wBAAwB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC;QACrF,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,MAAM,GAAG,kBAAkB,EAAE,CAAA;YACjC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;gBAC7B,KAAK,EAAE,oCAAoC;gBAC3C,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,YAAY;aAC9C,CAAC,CAAC;YACH,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM,WAAW,CAAC,4BAA4B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAClE,MAAM,IAAI,OAAO,CAAC,eAAe,WAAW,0CAA0C,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oCAAoC,CAAC,QAAoD,EAAE,QAA0B,EAAE,SAAkB;IACtJ,MAAM,yBAAyB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,MAAM,wBAAwB,EAAE,CAAC;IACtD,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;QAC9B,sEAAsE;QACtE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC;QACzF,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;gBAC7D,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAQ,CAAC;gBAClD,IAAI,cAAc,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;oBAC1F,MAAM,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAqB,CAAC;oBACtE,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;wBACnC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC;wBACrB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,uBAAuB,gBAAgB,UAAW,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACvG,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,mBAAmB,GAAmC,IAAI,CAAC;AAE/D,KAAK,UAAU,wBAAwB;IACrC,IAAI,mBAAmB,EAAE,CAAC;QACxB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;IACpD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,+EAA+E,CAAC,CAAC,CAAC;QAClH,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,kBAAkB,EAAE,CAAC;IAC/D,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,mFAAmF,CAAC,CAAC,CAAC;QACtH,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,aAAa,EAAE,CAAC;IACxC,MAAM,kBAAkB,GAAG,yBAAyB,CAClD,eAAe,CAAC,YAAY,EAC5B,SAAS,CACV,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,sCAAsC,CAC3E,eAAe,CAAC,YAAY,EAC5B,eAAe,CAAC,YAAY,EAC5B,CAAC,GAAG,kBAAkB,CAAC,CACxB,CAAC;IACF,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,kBAAkB;IAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QACjE,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC;IACD,mBAAmB,GAAG,YAAY,CAAC;IACnC,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,SAAS,yBAAyB,CAChC,UAAkB,EAClB,SAAgB,EAChB,YAAyB,IAAI,GAAG,EAAE;IAElC,MAAM,cAAc,GAAG,SAAS;SAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAClD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrB,yBAAyB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,QAAoD,EAAE,SAAkB;IAC/G,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC;IACnF,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,IAAI,iBAAiB,GAAG,6DAA6D,CAAC;QACtF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,kBAAkB,EAAE,CAAC;QACtD,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC3B,iBAAiB,GAAG,gBAAgB,MAAM,CAAC,KAAK,MAAM,CAAC;QACzD,CAAC;QACD,MAAM,YAAY,GAAG,iCAAiC,gBAAgB;;;;mDAIvB,iBAAiB;CACnE,CAAC;QACE,MAAM,iBAAiB,GAAG,QAAQ,KAAK,mBAAmB,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,sCAAsC,CAAC;QAC5I,IAAI,MAAM,GAAG,kBAAkB,EAAE,CAAA;QACjC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;YAC7B,KAAK,EAAE,8CAA8C;YACrD,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,YAAY;YAC7C,CAAC,iBAAiB,CAAC,EAAE,YAAY;SAClC,CAAC,CAAC;QACH,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,WAAW,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;QAC1D,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC,CAAC;QACnE,MAAM,IAAI,OAAO,CAAC,uBAAuB,gBAAgB,4EAA4E,CAAC,CAAC;IACzI,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAmB;IAC9C,iDAAiD;IACjD,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;IACnB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,sDAAsD,GAAG,CAAC,KAAK,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxH,GAAG,CAAC,MAAM,GAAG;YACX,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAG,CAAW,CAAC,OAAO;SAC7B,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,QAA0B,EAAE,WAAoB,EAAE,SAAkB;IACrG,IAAI,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACjE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,WAAW;QACvB,CAAC,CAAC,uEAAuE;QACzE,CAAC,CAAC,sDAAsD,CAAC;IAC3D,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW;YAC9B,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,IAAI;YACrF,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;QACd,OAAO,IAAI,SAAS,QAAQ,IAAI,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,WAAW,CAAC;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAoD,EAAE,QAA0B,EAAE,SAAkB;IACpI,IAAI,YAAY,GAAG,OAAO,QAAQ,KAAK,mBAAmB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,yBAAyB,cAAc,CAAC;IAEhI,6BAA6B;IAC7B,MAAM,WAAW,GAAG,QAAQ,KAAK,mBAAmB,CAAC;IACrD,YAAY,IAAI,yBAAyB,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAE5E,uBAAuB;IACvB,YAAY,IAAI,kDAAkD,CAAC;IACnE,YAAY,IAAI,kDAAkD,CAAC;IACnE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,CAAC;YACN,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC1C,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACzE,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC3C,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACzD,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,SAAS,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC;YACtD,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC;YAC3C,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC;gBAClE,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACpG,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;oBACjE,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBAC1B,mBAAmB,CAAC;QAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;YAChC,GAAG,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,CAAC;YACrF,GAAG,CAAC,KAAK,CAAC;QACZ,YAAY,IAAI,KAAK,UAAU,MAAM,QAAQ,MAAM,GAAG,CAAC,IAAI,IAAI,SAAS,MAAM,SAAS,MAAM,SAAS,MAAM,CAAC;IAC/G,CAAC;IACD,6GAA6G;IAC7G,YAAY,IAAI,2EAA2E,CAAC;IAC5F,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACvB,qIAAqI;YACrI,0CAA0C;YAC1C,MAAM,eAAe,GAAG,IAAI,CAAC;YAC7B,IAAI,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1C,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,iBAAiB,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;gBAC/C,iBAAiB,GAAG,iBAAiB,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;YAC9F,CAAC;YACD,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBAC5B,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,WAAW,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;oBAC1C,iBAAiB,GAAG,WAAW,CAAC;gBAClC,CAAC;YACH,CAAC;YACD,IAAI,iBAAiB,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACxD,iBAAiB,GAAG,2CAA2C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;YAC9H,CAAC;YAED,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;gBACjC,GAAG,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,GAAG,GAAG,CAAC,CAAC;gBAClD,GAAG,CAAC,KAAK,CAAC;YACZ,YAAY,IAAI,0BAA0B,GAAG,CAAC,EAAE,gBAAgB,SAAS,gBAAgB,CAAC;YAC1F,YAAY,IAAI,OAAO,CAAC;YACxB,YAAY,IAAI,iBAAiB,CAAA;YACjC,YAAY,IAAI,SAAS,CAAC;YAC1B,YAAY,IAAI,cAAc,CAAC;QACjC,CAAC;IACH,CAAC;IACD,YAAY,IAAI,gBAAgB,CAAC;IACjC,MAAM,iBAAiB,GAAG,QAAQ,KAAK,mBAAmB,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,sCAAsC,CAAC;IAC5I,MAAM,MAAM,GAAG;QACb,CAAC,iBAAiB,CAAC,EAAE,YAAY;KAClC,CAAC;IACF,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC"}
@@ -5808,121 +5808,6 @@
5808
5808
  "import:files:org:hardis"
5809
5809
  ]
5810
5810
  },
5811
- "hardis:org:fix:listviewmine": {
5812
- "aliases": [],
5813
- "args": {},
5814
- "description": "Fix listviews whose scope Mine has been replaced by Everything\n\n[![Invalid scope:Mine, not allowed ? Deploy your ListViews anyway !](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/article-invalid-scope-mine.jpg)](https://nicolas.vuillamy.fr/invalid-scope-mine-not-allowed-deploy-your-listviews-anyway-443aceca8ac7)\n\nList of ListViews can be:\n\n- read from .sfdx-hardis.yml file in property **listViewsToSetToMine**\n- sent in argument listviews\n\nNote: property **listViewsToSetToMine** can be auto-generated by command hardis:work:save if .sfdx-hardis.yml contains the following configuration\n\n```yaml\nautoCleanTypes:\n - listViewsMine\n```\n\n- Example of sfdx-hardis.yml property `listViewsToSetToMine`:\n\n```yaml\nlistViewsToSetToMine:\n - \"force-app/main/default/objects/Operation__c/listViews/MyCurrentOperations.listView-meta.xml\"\n - \"force-app/main/default/objects/Operation__c/listViews/MyFinalizedOperations.listView-meta.xml\"\n - \"force-app/main/default/objects/Opportunity/listViews/Default_Opportunity_Pipeline.listView-meta.xml\"\n - \"force-app/main/default/objects/Opportunity/listViews/MyCurrentSubscriptions.listView-meta.xml\"\n - \"force-app/main/default/objects/Opportunity/listViews/MySubscriptions.listView-meta.xml\"\n - \"force-app/main/default/objects/Account/listViews/MyActivePartners.listView-meta.xml\"\n```\n\n- If manually written, this could also be:\n\n```yaml\nlistViewsToSetToMine:\n - \"Operation__c:MyCurrentOperations\"\n - \"Operation__c:MyFinalizedOperations\"\n - \"Opportunity:Default_Opportunity_Pipeline\"\n - \"Opportunity:MyCurrentSubscriptions\"\n - \"Opportunity:MySubscriptions\"\n - \"Account:MyActivePartners\"\n```\n\nTroubleshooting: if you need to run this command from an alpine-linux based docker image, use this workaround in your dockerfile:\n\n```dockerfile\n# Do not use puppeteer embedded chromium\nRUN apk add --update --no-cache chromium\nENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=\"true\"\nENV CHROMIUM_PATH=\"/usr/bin/chromium-browser\"\nENV PUPPETEER_EXECUTABLE_PATH=\"$\\{CHROMIUM_PATH}\" // remove \\ before {\n```\n",
5815
- "examples": [
5816
- "$ sf hardis:org:fix:listviewmine",
5817
- "$ sf hardis:org:fix:listviewmine --listviews Opportunity:MySubscriptions,Account:MyActivePartners"
5818
- ],
5819
- "flags": {
5820
- "json": {
5821
- "description": "Format output as json.",
5822
- "helpGroup": "GLOBAL",
5823
- "name": "json",
5824
- "allowNo": false,
5825
- "type": "boolean"
5826
- },
5827
- "flags-dir": {
5828
- "helpGroup": "GLOBAL",
5829
- "name": "flags-dir",
5830
- "summary": "Import flag values from a directory.",
5831
- "hasDynamicHelp": false,
5832
- "multiple": false,
5833
- "type": "option"
5834
- },
5835
- "listviews": {
5836
- "char": "l",
5837
- "description": "Comma-separated list of listviews following format Object:ListViewName\nExample: Contact:MyContacts,Contact:MyActiveContacts,Opportunity:MYClosedOpportunities",
5838
- "name": "listviews",
5839
- "hasDynamicHelp": false,
5840
- "multiple": false,
5841
- "type": "option"
5842
- },
5843
- "debug": {
5844
- "char": "d",
5845
- "description": "Activate debug mode (more logs)",
5846
- "name": "debug",
5847
- "allowNo": false,
5848
- "type": "boolean"
5849
- },
5850
- "websocket": {
5851
- "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
5852
- "name": "websocket",
5853
- "hasDynamicHelp": false,
5854
- "multiple": false,
5855
- "type": "option"
5856
- },
5857
- "skipauth": {
5858
- "description": "Skip authentication check when a default username is required",
5859
- "name": "skipauth",
5860
- "allowNo": false,
5861
- "type": "boolean"
5862
- },
5863
- "target-org": {
5864
- "aliases": [
5865
- "targetusername",
5866
- "u"
5867
- ],
5868
- "char": "o",
5869
- "deprecateAliases": true,
5870
- "name": "target-org",
5871
- "noCacheDefault": true,
5872
- "required": true,
5873
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
5874
- "hasDynamicHelp": true,
5875
- "multiple": false,
5876
- "type": "option"
5877
- }
5878
- },
5879
- "hasDynamicHelp": true,
5880
- "hiddenAliases": [],
5881
- "id": "hardis:org:fix:listviewmine",
5882
- "pluginAlias": "sfdx-hardis",
5883
- "pluginName": "sfdx-hardis",
5884
- "pluginType": "core",
5885
- "strict": true,
5886
- "enableJsonFlag": true,
5887
- "title": "Fix listviews with ",
5888
- "requiresProject": true,
5889
- "isESM": true,
5890
- "relativePath": [
5891
- "lib",
5892
- "commands",
5893
- "hardis",
5894
- "org",
5895
- "fix",
5896
- "listviewmine.js"
5897
- ],
5898
- "aliasPermutations": [],
5899
- "permutations": [
5900
- "hardis:org:fix:listviewmine",
5901
- "org:hardis:fix:listviewmine",
5902
- "org:fix:hardis:listviewmine",
5903
- "org:fix:listviewmine:hardis",
5904
- "hardis:fix:org:listviewmine",
5905
- "fix:hardis:org:listviewmine",
5906
- "fix:org:hardis:listviewmine",
5907
- "fix:org:listviewmine:hardis",
5908
- "hardis:fix:listviewmine:org",
5909
- "fix:hardis:listviewmine:org",
5910
- "fix:listviewmine:hardis:org",
5911
- "fix:listviewmine:org:hardis",
5912
- "hardis:org:listviewmine:fix",
5913
- "org:hardis:listviewmine:fix",
5914
- "org:listviewmine:hardis:fix",
5915
- "org:listviewmine:fix:hardis",
5916
- "hardis:listviewmine:org:fix",
5917
- "listviewmine:hardis:org:fix",
5918
- "listviewmine:org:hardis:fix",
5919
- "listviewmine:org:fix:hardis",
5920
- "hardis:listviewmine:fix:org",
5921
- "listviewmine:hardis:fix:org",
5922
- "listviewmine:fix:hardis:org",
5923
- "listviewmine:fix:org:hardis"
5924
- ]
5925
- },
5926
5811
  "hardis:org:diagnose:audittrail": {
5927
5812
  "aliases": [],
5928
5813
  "args": {},
@@ -6535,9 +6420,14 @@
6535
6420
  "hardis:org:diagnose:storage-stats": {
6536
6421
  "aliases": [],
6537
6422
  "args": {},
6538
- "description": "**Extracts and analyzes Data Storage usage for a Salesforce org, providing detailed per-object breakdowns with yearly trends.**\n\nThis command provides a comprehensive overview of your Salesforce data storage consumption. It's particularly useful for:\n\n- **Storage Management:** Understanding which SObjects consume the most storage and how usage has evolved over time.\n- **Cost Optimization:** Identifying storage-heavy objects that could be candidates for data archival or cleanup strategies.\n- **Capacity Planning:** Tracking storage trends to predict when additional capacity will be needed.\n- **Compliance & Governance:** Monitoring data growth patterns to ensure alignment with data retention policies.\n\nKey functionalities:\n\n- **Storage Limits Analysis:** Retrieves and displays org data storage limits, including total capacity, used storage, remaining storage, and percentage used. Detects and alerts on over-usage scenarios.\n- **SObject Discovery & Filtering:** Automatically discovers all SObjects in the org and filters them to focus on production/custom objects (excludes metadata types, platform-only objects, and cached empty objects).\n- **Interactive Selection:** Prompts the user to select which SObjects to analyze and choose between `CreatedDate` or `LastModifiedDate` for temporal breakdown.\n- **Yearly Storage Breakdown:** Executes grouped SOQL queries per object to calculate record counts by year, providing historical growth trends.\n- **Storage Estimation:** Estimates storage usage for each object using an average record size heuristic (2 KB per record) and calculates the percentage of org quota consumed.\n- **Dual CSV Reports:** Generates two CSV files: a detailed by-year breakdown and a totals-per-object summary, both suitable for spreadsheet analysis and reporting.\n- **Empty Objects Cache:** Maintains a per-user cache of objects detected with zero records to optimize subsequent runs by skipping empty tables.\n- **Progress Tracking:** Sends WebSocket progress messages for integration with external UIs and monitoring dashboards.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThe command's technical implementation involves:\n\n- **Limits Retrieval:** Calls `conn.limits()` to retrieve the `DataStorageMB` object containing `Max` and `Remaining` values. Handles negative `Remaining` values (over-usage scenarios) by calculating `overUsageMB` and adjusting display values.\n- **SObject Discovery:** Uses `conn.metadata.list([{ type: 'CustomObject' }])` to get custom objects and `conn.describeGlobal()` to get all SObjects. Filters by object capabilities (`layoutable`, `queryable`, `retrieveable`, `createable`, `updateable`, `deletable`) and excludes metadata types (`__mdt` suffix) and cached empty objects.\n- **User Interaction:** Uses `prompts` for interactive multi-select of SObjects and single-select for date field choice. All objects are pre-selected by default for user convenience.\n- **Yearly Aggregation Queries:** For each selected SObject, executes a grouped SOQL query: `SELECT CALENDAR_YEAR(<DateField>) year, COUNT(Id) total FROM <SObject> GROUP BY CALENDAR_YEAR(<DateField>) ORDER BY CALENDAR_YEAR(<DateField>) DESC`. Handles query errors gracefully (logs error and continues with next object).\n- **Storage Calculation:** Applies a conservative average record size of 2 KB (2048 bytes) to estimate storage consumption. Calculates both MB usage and percentage of org quota for each object and year.\n- **Report Generation:** Uses `generateCsvFile` and `generateReportPath` helpers to create two CSV files in the reports directory:\n - Detailed breakdown: includes all yearly statistics per object\n - Totals summary: includes only aggregate totals per object\n- **Caching Mechanism:** Writes a JSON cache file per authenticated username (sanitized) in the reports directory (`<username>_empty_tables_cache.json`) containing an array of empty object names. The cache is updated after each run with newly detected empty objects.\n- **Progress & UX:** Uses `WebSocketClient` to emit start/step/end progress messages for external monitoring. Outputs summary tables with `uxLogTable` and status messages with `uxLog`.\n- **Return Value:** Returns a JSON object containing `tableStorageInfos` (all rows), `tableStorageInfosTotals` (summary rows), `storageLimits` (org limits object), and `outputFiles` (paths to generated CSV/XLSX reports).\n</details>\n\n![](https://sfdx-hardis.cloudity.com/assets/images/storage-usage-year-breakdown.png)\n\n![](https://sfdx-hardis.cloudity.com/assets/images/storage-usage-total.png)\n",
6423
+ "description": "**Extracts and analyzes Data Storage usage for a Salesforce org, providing detailed per-object breakdowns with flexible grouping options.**\n\nThis command provides a comprehensive overview of your Salesforce data storage consumption. It's particularly useful for:\n\n- **Storage Management:** Understanding which SObjects consume the most storage and how usage has evolved over time.\n- **Cost Optimization:** Identifying storage-heavy objects that could be candidates for data archival or cleanup strategies.\n- **Capacity Planning:** Tracking storage trends to predict when additional capacity will be needed.\n- **Compliance & Governance:** Monitoring data growth patterns to ensure alignment with data retention policies.\n\nKey functionalities:\n\n- **Storage Limits Analysis:** Retrieves and displays org data storage limits, including total capacity, used storage, remaining storage, and percentage used. Detects and alerts on over-usage scenarios.\n- **SObject Discovery & Filtering:** Automatically discovers all SObjects in the org and filters them to focus on production/custom objects (excludes metadata types, platform-only objects, and cached empty objects).\n- **Interactive Selection:** Prompts the user to select which SObjects to analyze and choose breakdown fields (date fields, RecordType, custom fields, or relationship fields).\n- **Flexible Breakdown Field:** Supports grouping by any field including:\n - Date/DateTime fields (`CreatedDate`, `LastModifiedDate`, custom date fields)\n - RecordType (`RecordType.Name`)\n - Custom fields (`Status__c`, picklists, text fields)\n - Nested relationship fields (`SBQQ__Quote__r.RecordType.Name`)\n- **Date Granularity Options:** For date/datetime fields, choose between:\n - Year-based grouping (`CALENDAR_YEAR`)\n - Month-based grouping (`CALENDAR_MONTH`)\n - Day-based grouping (exact date)\n- **WHERE Clause Filtering:** Apply SOQL WHERE conditions to filter records before calculating storage (e.g., only active records, records from the last year).\n- **Storage Estimation:** Estimates storage usage for each object using an average record size heuristic (2 KB per record) and calculates the percentage of org quota consumed.\n- **Dual CSV Reports:** Generates two CSV files: a detailed breakdown by selected field and a totals-per-object summary, both suitable for spreadsheet analysis and reporting.\n- **Empty Objects Cache:** Maintains a per-user cache of objects detected with zero records to optimize subsequent runs by skipping empty tables.\n- **Progress Tracking:** Sends WebSocket progress messages for integration with external UIs and monitoring dashboards.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThe command's technical implementation involves:\n\n- **Limits Retrieval:** Calls `conn.limits()` to retrieve the `DataStorageMB` object containing `Max` and `Remaining` values. Handles negative `Remaining` values (over-usage scenarios) by calculating `overUsageMB` and adjusting display values.\n- **SObject Discovery:** Uses `conn.metadata.list([{ type: 'CustomObject' }])` to get custom objects and `conn.describeGlobal()` to get all SObjects. Filters by object capabilities (`layoutable`, `queryable`, `retrieveable`, `createable`, `updateable`, `deletable`) and excludes metadata types (`__mdt` suffix) and cached empty objects.\n- **User Interaction:** Uses `prompts` for interactive multi-select of SObjects, breakdown field selection, granularity choice (for date fields), and optional WHERE conditions. All objects are pre-selected by default for user convenience.\n- **Field Validation:** Recursively validates breakdown fields including nested relationships (e.g., `SBQQ__Quote__r.RecordType.Name`) by traversing the relationship chain and checking field existence on each related object. Automatically handles special cases like `RecordType` -> `RecordTypeId` and `__r` -> `__c` conversions.\n- **Dynamic Query Generation:** Builds SOQL queries based on field type and granularity:\n - For date fields with year granularity: `SELECT CALENDAR_YEAR(<Field>) breakdown, COUNT(Id) total FROM <SObject> [WHERE ...] GROUP BY CALENDAR_YEAR(<Field>) ORDER BY CALENDAR_YEAR(<Field>)`\n - For date fields with month granularity: `SELECT CALENDAR_YEAR(<Field>) year, CALENDAR_MONTH(<Field>) month, COUNT(Id) total FROM <SObject> [WHERE ...] GROUP BY CALENDAR_YEAR(<Field>), CALENDAR_MONTH(<Field>) ORDER BY CALENDAR_YEAR(<Field>), CALENDAR_MONTH(<Field>)`\n - For non-date fields: `SELECT <Field> breakdown, COUNT(Id) total FROM <SObject> [WHERE ...] GROUP BY <Field> ORDER BY <Field>`\n- **WHERE Clause Support:** Accepts user-provided WHERE conditions via flag (`--where`) or interactive prompt. Injects the condition into all SOQL queries for consistent filtering across all objects.\n- **Storage Calculation:** Applies a conservative average record size of 2 KB (2048 bytes) to estimate storage consumption. Calculates both MB usage and percentage of org quota for each object and breakdown value.\n- **Report Generation:** Uses `generateCsvFile` and `generateReportPath` helpers to create two CSV files in the reports directory:\n - Detailed breakdown: includes all statistics per breakdown value per object (e.g., by year, by month, by RecordType)\n - Totals summary: includes only aggregate totals per object\n - File naming includes breakdown field, granularity (for date fields), and `-filtered` suffix when WHERE clause is applied\n- **Caching Mechanism:** Writes a JSON cache file per authenticated username (sanitized) in the reports directory (`<username>_empty_tables_cache.json`) containing an array of empty object names. The cache is updated after each run with newly detected empty objects.\n- **Progress & UX:** Uses `WebSocketClient` to emit start/step/end progress messages for external monitoring. Outputs summary tables with `uxLogTable` and status messages with `uxLog`.\n- **Return Value:** Returns a JSON object containing `tableStorageInfos` (all rows), `tableStorageInfosTotals` (summary rows), `storageLimits` (org limits object), and `outputFiles` (paths to generated CSV/XLSX reports).\n</details>\n\n![](https://sfdx-hardis.cloudity.com/assets/images/storage-usage-year-breakdown.png)\n\n![](https://sfdx-hardis.cloudity.com/assets/images/storage-usage-total.png)\n",
6539
6424
  "examples": [
6540
- "$ sf hardis:org:diagnose:storage-stats"
6425
+ "$ sf hardis:org:diagnose:storage-stats",
6426
+ "$ sf hardis:org:diagnose:storage-stats --breakdown-field \"CreatedDate\"",
6427
+ "$ sf hardis:org:diagnose:storage-stats -b \"RecordType.Name\"",
6428
+ "$ sf hardis:org:diagnose:storage-stats --where \"CreatedDate = LAST_N_DAYS:365\"",
6429
+ "$ sf hardis:org:diagnose:storage-stats -w \"Status__c = 'Active'\"",
6430
+ "$ sf hardis:org:diagnose:storage-stats -b \"LastModifiedDate\" -w \"IsDeleted = false\""
6541
6431
  ],
6542
6432
  "flags": {
6543
6433
  "json": {
@@ -6563,6 +6453,22 @@
6563
6453
  "multiple": false,
6564
6454
  "type": "option"
6565
6455
  },
6456
+ "breakdown-field": {
6457
+ "char": "b",
6458
+ "description": "Field to use for storage stats breakdown. Example: \"CreatedDate\", \"LastModifiedDate\", \"RecordType.Name\", or custom fields like \"Status__c\"",
6459
+ "name": "breakdown-field",
6460
+ "hasDynamicHelp": false,
6461
+ "multiple": false,
6462
+ "type": "option"
6463
+ },
6464
+ "where": {
6465
+ "char": "w",
6466
+ "description": "WHERE clause to filter records in the query (without the WHERE keyword). Example: \"CreatedDate = LAST_N_DAYS:365\" or \"Status__c = 'Active'\"",
6467
+ "name": "where",
6468
+ "hasDynamicHelp": false,
6469
+ "multiple": false,
6470
+ "type": "option"
6471
+ },
6566
6472
  "debug": {
6567
6473
  "char": "d",
6568
6474
  "description": "Activate debug mode (more logs)",
@@ -7300,6 +7206,121 @@
7300
7206
  "unusedusers:diagnose:org:hardis"
7301
7207
  ]
7302
7208
  },
7209
+ "hardis:org:fix:listviewmine": {
7210
+ "aliases": [],
7211
+ "args": {},
7212
+ "description": "Fix listviews whose scope Mine has been replaced by Everything\n\n[![Invalid scope:Mine, not allowed ? Deploy your ListViews anyway !](https://github.com/hardisgroupcom/sfdx-hardis/raw/main/docs/assets/images/article-invalid-scope-mine.jpg)](https://nicolas.vuillamy.fr/invalid-scope-mine-not-allowed-deploy-your-listviews-anyway-443aceca8ac7)\n\nList of ListViews can be:\n\n- read from .sfdx-hardis.yml file in property **listViewsToSetToMine**\n- sent in argument listviews\n\nNote: property **listViewsToSetToMine** can be auto-generated by command hardis:work:save if .sfdx-hardis.yml contains the following configuration\n\n```yaml\nautoCleanTypes:\n - listViewsMine\n```\n\n- Example of sfdx-hardis.yml property `listViewsToSetToMine`:\n\n```yaml\nlistViewsToSetToMine:\n - \"force-app/main/default/objects/Operation__c/listViews/MyCurrentOperations.listView-meta.xml\"\n - \"force-app/main/default/objects/Operation__c/listViews/MyFinalizedOperations.listView-meta.xml\"\n - \"force-app/main/default/objects/Opportunity/listViews/Default_Opportunity_Pipeline.listView-meta.xml\"\n - \"force-app/main/default/objects/Opportunity/listViews/MyCurrentSubscriptions.listView-meta.xml\"\n - \"force-app/main/default/objects/Opportunity/listViews/MySubscriptions.listView-meta.xml\"\n - \"force-app/main/default/objects/Account/listViews/MyActivePartners.listView-meta.xml\"\n```\n\n- If manually written, this could also be:\n\n```yaml\nlistViewsToSetToMine:\n - \"Operation__c:MyCurrentOperations\"\n - \"Operation__c:MyFinalizedOperations\"\n - \"Opportunity:Default_Opportunity_Pipeline\"\n - \"Opportunity:MyCurrentSubscriptions\"\n - \"Opportunity:MySubscriptions\"\n - \"Account:MyActivePartners\"\n```\n\nTroubleshooting: if you need to run this command from an alpine-linux based docker image, use this workaround in your dockerfile:\n\n```dockerfile\n# Do not use puppeteer embedded chromium\nRUN apk add --update --no-cache chromium\nENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=\"true\"\nENV CHROMIUM_PATH=\"/usr/bin/chromium-browser\"\nENV PUPPETEER_EXECUTABLE_PATH=\"$\\{CHROMIUM_PATH}\" // remove \\ before {\n```\n",
7213
+ "examples": [
7214
+ "$ sf hardis:org:fix:listviewmine",
7215
+ "$ sf hardis:org:fix:listviewmine --listviews Opportunity:MySubscriptions,Account:MyActivePartners"
7216
+ ],
7217
+ "flags": {
7218
+ "json": {
7219
+ "description": "Format output as json.",
7220
+ "helpGroup": "GLOBAL",
7221
+ "name": "json",
7222
+ "allowNo": false,
7223
+ "type": "boolean"
7224
+ },
7225
+ "flags-dir": {
7226
+ "helpGroup": "GLOBAL",
7227
+ "name": "flags-dir",
7228
+ "summary": "Import flag values from a directory.",
7229
+ "hasDynamicHelp": false,
7230
+ "multiple": false,
7231
+ "type": "option"
7232
+ },
7233
+ "listviews": {
7234
+ "char": "l",
7235
+ "description": "Comma-separated list of listviews following format Object:ListViewName\nExample: Contact:MyContacts,Contact:MyActiveContacts,Opportunity:MYClosedOpportunities",
7236
+ "name": "listviews",
7237
+ "hasDynamicHelp": false,
7238
+ "multiple": false,
7239
+ "type": "option"
7240
+ },
7241
+ "debug": {
7242
+ "char": "d",
7243
+ "description": "Activate debug mode (more logs)",
7244
+ "name": "debug",
7245
+ "allowNo": false,
7246
+ "type": "boolean"
7247
+ },
7248
+ "websocket": {
7249
+ "description": "Websocket host:port for VsCode SFDX Hardis UI integration",
7250
+ "name": "websocket",
7251
+ "hasDynamicHelp": false,
7252
+ "multiple": false,
7253
+ "type": "option"
7254
+ },
7255
+ "skipauth": {
7256
+ "description": "Skip authentication check when a default username is required",
7257
+ "name": "skipauth",
7258
+ "allowNo": false,
7259
+ "type": "boolean"
7260
+ },
7261
+ "target-org": {
7262
+ "aliases": [
7263
+ "targetusername",
7264
+ "u"
7265
+ ],
7266
+ "char": "o",
7267
+ "deprecateAliases": true,
7268
+ "name": "target-org",
7269
+ "noCacheDefault": true,
7270
+ "required": true,
7271
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
7272
+ "hasDynamicHelp": true,
7273
+ "multiple": false,
7274
+ "type": "option"
7275
+ }
7276
+ },
7277
+ "hasDynamicHelp": true,
7278
+ "hiddenAliases": [],
7279
+ "id": "hardis:org:fix:listviewmine",
7280
+ "pluginAlias": "sfdx-hardis",
7281
+ "pluginName": "sfdx-hardis",
7282
+ "pluginType": "core",
7283
+ "strict": true,
7284
+ "enableJsonFlag": true,
7285
+ "title": "Fix listviews with ",
7286
+ "requiresProject": true,
7287
+ "isESM": true,
7288
+ "relativePath": [
7289
+ "lib",
7290
+ "commands",
7291
+ "hardis",
7292
+ "org",
7293
+ "fix",
7294
+ "listviewmine.js"
7295
+ ],
7296
+ "aliasPermutations": [],
7297
+ "permutations": [
7298
+ "hardis:org:fix:listviewmine",
7299
+ "org:hardis:fix:listviewmine",
7300
+ "org:fix:hardis:listviewmine",
7301
+ "org:fix:listviewmine:hardis",
7302
+ "hardis:fix:org:listviewmine",
7303
+ "fix:hardis:org:listviewmine",
7304
+ "fix:org:hardis:listviewmine",
7305
+ "fix:org:listviewmine:hardis",
7306
+ "hardis:fix:listviewmine:org",
7307
+ "fix:hardis:listviewmine:org",
7308
+ "fix:listviewmine:hardis:org",
7309
+ "fix:listviewmine:org:hardis",
7310
+ "hardis:org:listviewmine:fix",
7311
+ "org:hardis:listviewmine:fix",
7312
+ "org:listviewmine:hardis:fix",
7313
+ "org:listviewmine:fix:hardis",
7314
+ "hardis:listviewmine:org:fix",
7315
+ "listviewmine:hardis:org:fix",
7316
+ "listviewmine:org:hardis:fix",
7317
+ "listviewmine:org:fix:hardis",
7318
+ "hardis:listviewmine:fix:org",
7319
+ "listviewmine:hardis:fix:org",
7320
+ "listviewmine:fix:hardis:org",
7321
+ "listviewmine:fix:org:hardis"
7322
+ ]
7323
+ },
7303
7324
  "hardis:org:generate:packagexmlfull": {
7304
7325
  "aliases": [],
7305
7326
  "args": {},
@@ -15484,5 +15505,5 @@
15484
15505
  ]
15485
15506
  }
15486
15507
  },
15487
- "version": "6.11.0"
15508
+ "version": "6.11.2"
15488
15509
  }
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.11.0",
6
+ "version": "6.11.2",
7
7
  "dependencies": {
8
8
  "@actions/github": "^6.0.1",
9
9
  "@cparra/apexdocs": "^3.14.1",