sfdx-hardis 7.21.0 → 7.22.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.
Files changed (35) hide show
  1. package/lib/commands/hardis/config/monitoring-defaults.js +2 -1
  2. package/lib/commands/hardis/config/monitoring-defaults.js.map +1 -1
  3. package/lib/commands/hardis/org/diagnose/unsecure-permissions.d.ts +10 -0
  4. package/lib/commands/hardis/org/diagnose/unsecure-permissions.js +165 -0
  5. package/lib/commands/hardis/org/diagnose/unsecure-permissions.js.map +1 -0
  6. package/lib/commands/hardis/org/test/agents.d.ts +13 -0
  7. package/lib/commands/hardis/org/test/agents.js +235 -0
  8. package/lib/commands/hardis/org/test/agents.js.map +1 -0
  9. package/lib/common/monitoring/monitoringDefaults.d.ts +2 -0
  10. package/lib/common/monitoring/monitoringDefaults.js +52 -2
  11. package/lib/common/monitoring/monitoringDefaults.js.map +1 -1
  12. package/lib/common/notifProvider/types.d.ts +1 -1
  13. package/lib/common/notifProvider/types.js +14 -0
  14. package/lib/common/notifProvider/types.js.map +1 -1
  15. package/lib/common/utils/agentTestUtils.d.ts +35 -0
  16. package/lib/common/utils/agentTestUtils.js +139 -0
  17. package/lib/common/utils/agentTestUtils.js.map +1 -0
  18. package/lib/common/utils/filesUtils.d.ts +4 -0
  19. package/lib/common/utils/filesUtils.js +41 -3
  20. package/lib/common/utils/filesUtils.js.map +1 -1
  21. package/lib/common/utils/permissionsAuditUtils.d.ts +54 -0
  22. package/lib/common/utils/permissionsAuditUtils.js +564 -0
  23. package/lib/common/utils/permissionsAuditUtils.js.map +1 -0
  24. package/lib/i18n/de.json +33 -0
  25. package/lib/i18n/en.json +33 -0
  26. package/lib/i18n/es.json +33 -0
  27. package/lib/i18n/fr.json +33 -0
  28. package/lib/i18n/it.json +33 -0
  29. package/lib/i18n/ja.json +33 -0
  30. package/lib/i18n/nl.json +33 -0
  31. package/lib/i18n/pl.json +33 -0
  32. package/lib/i18n/pt-BR.json +33 -0
  33. package/oclif.lock +23 -26
  34. package/oclif.manifest.json +10193 -9906
  35. package/package.json +6 -6
@@ -38,7 +38,8 @@ The data is assembled in \`getMonitoringConfigDefaults()\` (\`src/common/monitor
38
38
 
39
39
  - Each entry in \`monitoringCommandsDefault\` becomes a \`monitoringCommands[]\` entry. Its category and icon are inherited from the first notification type it emits (via \`notificationTypesDefault\` in \`src/common/notifProvider/types.ts\`), unless the command entry declares its own \`category\` / \`icon\` (used by aggregate commands like \`APEX_FLOW_ERRORS\`).
40
40
  - Every key in \`notificationTypesDefault\` becomes a \`notificationConfig[]\` entry. \`notificationTypesDefault\` is the single source of truth for per-type metadata -- it carries \`category\`, \`icon\` (SLDS), \`emittedSeverities\` (which drives the \`availableThresholds\` array), and \`defaults\` (per-channel routing thresholds). When a channel is missing from a type's \`defaults\` block, fallbacks of \`messaging: info\`, \`email: info\`, \`api: log\` apply. Defaults are clamped through \`clampThresholdToAvailable()\` so the payload never reports a threshold a channel cannot honour at runtime.
41
- - Titles and descriptions are resolved via \`t()\` using keys named \`notifTypeTitle<PascalCaseKey>\` / \`notifTypeDesc<PascalCaseKey>\` for both lists and \`notifCategoryTitle<PascalCaseKey>\` / \`notifCategoryDesc<PascalCaseKey>\` for categories. The active language is governed by the \`SFDX_HARDIS_LANG\` environment variable.
41
+ - Notification titles and descriptions are resolved via \`t()\` using keys named \`notifTypeTitle<PascalCaseKey>\` / \`notifTypeDesc<PascalCaseKey>\`, and category labels via \`notifCategoryTitle<PascalCaseKey>\` / \`notifCategoryDesc<PascalCaseKey>\`. The active language is governed by the \`SFDX_HARDIS_LANG\` environment variable.
42
+ - \`monitoringCommands[]\` titles/descriptions describe the *check that runs*, which differs from the notification it emits. They are resolved from \`monitoringCommandTitle<PascalCaseKey>\` / \`monitoringCommandDesc<PascalCaseKey>\` when defined, then from the entry's literal \`title\`, then falling back to the command's \`notifTypeTitle\` / \`notifTypeDesc\` so commands without a dedicated label keep working.
42
43
  </details>
43
44
  `;
44
45
  static examples = [
@@ -1 +1 @@
1
- {"version":3,"file":"monitoring-defaults.js","sourceRoot":"","sources":["../../../../src/commands/hardis/config/monitoring-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAE/F,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,SAAc;IAC3D,MAAM,CAAC,KAAK,GAAG,wCAAwC,CAAC;IAExD,MAAM,CAAC,WAAW,GAAG;;;;wIAI0G,wFAAwF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B/N,CAAC;IAEO,MAAM,CAAC,QAAQ,GAAG;QACvB,+CAA+C;QAC/C,uDAAuD;KACxD,CAAC;IAEK,MAAM,CAAC,KAAK,GAAQ;QACzB,wBAAwB;QACxB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,uDAAuD;SACrE,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;SAC9C,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;SAC9C,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,WAAW,EAAE,+DAA+D;SAC7E,CAAC;QACF,sBAAsB;KACvB,CAAC;IAEK,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAE/B,KAAK,CAAC,GAAG;QACd,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,2BAA2B,EAAE,CAAC;QAC9C,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,OAAO,OAA6B,CAAC;IACvC,CAAC"}
1
+ {"version":3,"file":"monitoring-defaults.js","sourceRoot":"","sources":["../../../../src/commands/hardis/config/monitoring-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAE/F,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,SAAc;IAC3D,MAAM,CAAC,KAAK,GAAG,wCAAwC,CAAC;IAExD,MAAM,CAAC,WAAW,GAAG;;;;wIAI0G,wFAAwF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B/N,CAAC;IAEO,MAAM,CAAC,QAAQ,GAAG;QACvB,+CAA+C;QAC/C,uDAAuD;KACxD,CAAC;IAEK,MAAM,CAAC,KAAK,GAAQ;QACzB,wBAAwB;QACxB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,uDAAuD;SACrE,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;SAC9C,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;SAC9C,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,WAAW,EAAE,+DAA+D;SAC7E,CAAC;QACF,sBAAsB;KACvB,CAAC;IAEK,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAE/B,KAAK,CAAC,GAAG;QACd,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,2BAA2B,EAAE,CAAC;QAC9C,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,OAAO,OAA6B,CAAC;IACvC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ import { AnyJson } from '@salesforce/ts-types';
3
+ export default class DiagnoseUnsecurePermissions extends SfCommand<any> {
4
+ static title: string;
5
+ static description: string;
6
+ static examples: string[];
7
+ static flags: any;
8
+ static requiresProject: boolean;
9
+ run(): Promise<AnyJson>;
10
+ }
@@ -0,0 +1,165 @@
1
+ /* jscpd:ignore-start */
2
+ import { SfCommand, Flags, optionalOrgFlagWithDeprecations } from '@salesforce/sf-plugins-core';
3
+ import { Messages, SfError } from '@salesforce/core';
4
+ import c from 'chalk';
5
+ import { uxLog, uxLogTable } from '../../../../common/utils/index.js';
6
+ import { isSfdxProject } from '../../../../common/utils/projectUtils.js';
7
+ import { t } from '../../../../common/utils/i18n.js';
8
+ import { buildPermissionsAuditReport, collectFromLocal, collectFromOrg, getEffectiveDangerousUserPermissions, DANGEROUS_OBJECT_PERMISSIONS, } from '../../../../common/utils/permissionsAuditUtils.js';
9
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
10
+ const messages = Messages.loadMessages('sfdx-hardis', 'org');
11
+ export default class DiagnoseUnsecurePermissions extends SfCommand {
12
+ static title = 'Audit dangerous permissions';
13
+ static description = `
14
+ ## Command Behavior
15
+
16
+ **Audits dangerous permissions granted through Profiles, Permission Sets and Permission Set Groups, and resolves which active users hold them.**
17
+
18
+ Dangerous permissions are broad administrative, identity, sharing-bypass, data-theft or control-weakening rights (for example Modify All Data, Author Apex, Manage Users, View All Data, Weekly Data Export). They are grouped into criticality tiers, from Tier 0 (full org compromise) to Tier 4 (control weakening).
19
+
20
+ Key functionalities:
21
+
22
+ - **Two sources:** Analyze a connected org via SOQL (\`--source org\`, default), local metadata files (\`--source local\`), or both (\`--source both\`).
23
+ - **User and object permissions:** Detects both user permissions (\`Permissions*\`) and object permissions (View All / Modify All per object).
24
+ - **Assignments:** In org mode, resolves which active users hold each dangerous permission and through which container, with their last login date.
25
+ - **Configurable list:** The built-in list is additive: use \`dangerousPermissionsExtra\` (or \`DANGEROUS_PERMISSIONS_EXTRA\`) to add permissions and \`dangerousPermissionsIgnore\` (or \`DANGEROUS_PERMISSIONS_IGNORE\`) to remove them.
26
+ - **Excel report:** Generates a multi-sheet Excel file with an Index sheet linking to a Tiers Legend, Profiles, Permission Sets, Permission Set Groups and Assignments sheets. Columns and rows are auto-sized.
27
+
28
+ <details markdown="1">
29
+ <summary>Technical explanations</summary>
30
+
31
+ - **Field availability:** Describes the \`PermissionSet\` object and keeps only the dangerous permission fields that exist in the org, so a missing field never breaks the query.
32
+ - **Containers:** Queries \`PermissionSet\` (profile-owned and standalone) for user permissions and \`ObjectPermissions\` for View All / Modify All. Permission Set Groups are resolved through \`PermissionSetGroupComponent\`.
33
+ - **Assignments:** Queries \`PermissionSetAssignment\` for active users, resolving group membership so permissions granted through a Permission Set Group are attributed to their users.
34
+ - **Local mode:** Parses \`.profile-meta.xml\`, \`.permissionset-meta.xml\` and \`.permissionsetgroup-meta.xml\` files. Assignments cannot be resolved offline and the Assignments sheet is omitted.
35
+ - **Report:** Uses \`createXlsxFromCsvFiles\` with a post-processing step that turns Index cells into internal hyperlinks and adds a "Back to Index" link on every other sheet.
36
+ </details>
37
+
38
+ ### Agent Mode
39
+
40
+ Supports non-interactive execution with \`--agent\`:
41
+
42
+ \`\`\`sh
43
+ sf hardis:org:diagnose:unsecure-permissions --agent --target-org myorg@example.com
44
+ \`\`\`
45
+
46
+ The command has no interactive prompts, so agent mode behaves like a normal run. Use \`--source\` to control what is analyzed and \`--outputfile\` to set the report path.`;
47
+ static examples = [
48
+ '$ sf hardis:org:diagnose:unsecure-permissions',
49
+ '$ sf hardis:org:diagnose:unsecure-permissions --source local',
50
+ '$ sf hardis:org:diagnose:unsecure-permissions --source both',
51
+ '$ sf hardis:org:diagnose:unsecure-permissions --agent --target-org myorg@example.com',
52
+ ];
53
+ static flags = {
54
+ source: Flags.string({
55
+ char: 's',
56
+ options: ['org', 'local', 'both'],
57
+ default: 'org',
58
+ description: 'Where to read permission definitions from: org (SOQL), local (metadata files) or both',
59
+ }),
60
+ outputfile: Flags.string({
61
+ char: 'f',
62
+ description: 'Force the path and name of output report file. Must end with .csv',
63
+ }),
64
+ debug: Flags.boolean({
65
+ char: 'd',
66
+ default: false,
67
+ description: messages.getMessage('debugMode'),
68
+ }),
69
+ websocket: Flags.string({
70
+ description: messages.getMessage('websocket'),
71
+ }),
72
+ skipauth: Flags.boolean({
73
+ description: 'Skip authentication check when a default username is required',
74
+ }),
75
+ agent: Flags.boolean({
76
+ default: false,
77
+ description: 'Run in non-interactive mode for agents and automation',
78
+ }),
79
+ 'target-org': optionalOrgFlagWithDeprecations,
80
+ };
81
+ static requiresProject = false;
82
+ /* jscpd:ignore-end */
83
+ async run() {
84
+ const { flags } = await this.parse(DiagnoseUnsecurePermissions);
85
+ const source = flags.source;
86
+ const outputFile = flags.outputfile || null;
87
+ const needsProject = source === 'local' || source === 'both';
88
+ const needsOrg = source === 'org' || source === 'both';
89
+ if (needsProject && !isSfdxProject()) {
90
+ throw new SfError(t('unsecurePermissionsProjectRequired', { source }));
91
+ }
92
+ if (needsOrg && !flags['target-org']) {
93
+ throw new SfError(t('unsecurePermissionsOrgRequired', { source }));
94
+ }
95
+ uxLog('action', this, c.cyan(t('unsecurePermissionsHeader', { source })));
96
+ const userPerms = await getEffectiveDangerousUserPermissions();
97
+ const objectPerms = DANGEROUS_OBJECT_PERMISSIONS;
98
+ let grants = [];
99
+ let permSetGroupGrants = [];
100
+ let assignments = [];
101
+ if (needsOrg) {
102
+ const conn = flags['target-org'].getConnection();
103
+ const orgResult = await collectFromOrg(conn, userPerms, objectPerms, this);
104
+ grants = grants.concat(orgResult.grants);
105
+ permSetGroupGrants = permSetGroupGrants.concat(orgResult.permSetGroupGrants);
106
+ assignments = orgResult.assignments;
107
+ }
108
+ if (needsProject) {
109
+ const localResult = await collectFromLocal(userPerms, objectPerms, this);
110
+ grants = grants.concat(localResult.grants);
111
+ permSetGroupGrants = permSetGroupGrants.concat(localResult.permSetGroupGrants);
112
+ }
113
+ if (source === 'local') {
114
+ uxLog('warning', this, c.yellow(t('unsecurePermissionsAssignmentsNeedOrg')));
115
+ }
116
+ const profileGrants = grants.filter((g) => g.containerType === 'Profile');
117
+ const permSetGrants = grants.filter((g) => g.containerType === 'PermissionSet');
118
+ const containersCount = new Set(grants.map((g) => `${g.origin}:${g.containerName}`)).size;
119
+ const auditData = {
120
+ profileGrants,
121
+ permSetGrants,
122
+ permSetGroupGrants,
123
+ assignments,
124
+ containersCount,
125
+ usersCount: assignments.length,
126
+ };
127
+ const totalGrants = grants.length;
128
+ let statusCode = 0;
129
+ if (totalGrants === 0) {
130
+ uxLog('success', this, c.green(t('unsecurePermissionsNoneFound')));
131
+ }
132
+ else {
133
+ statusCode = 1;
134
+ uxLog('action', this, c.cyan(t('unsecurePermissionsFoundSummary', {
135
+ grants: totalGrants,
136
+ containers: containersCount,
137
+ users: assignments.length,
138
+ })));
139
+ const summaryRows = [
140
+ { Sheet: 'Profiles', Count: profileGrants.length },
141
+ { Sheet: 'Permission Sets', Count: permSetGrants.length },
142
+ { Sheet: 'Permission Set Groups', Count: permSetGroupGrants.length },
143
+ { Sheet: 'Assignments', Count: assignments.length },
144
+ ];
145
+ uxLogTable(this, summaryRows);
146
+ const report = await buildPermissionsAuditReport(this, auditData, outputFile, source);
147
+ uxLog('action', this, c.cyan(t('unsecurePermissionsReportGenerated', { file: report.xlsxFile })));
148
+ }
149
+ if ((this.argv || []).includes('unsecure-permissions')) {
150
+ process.exitCode = statusCode;
151
+ }
152
+ return {
153
+ status: statusCode,
154
+ source,
155
+ dangerousGrants: totalGrants,
156
+ containers: containersCount,
157
+ usersWithDangerousPermissions: assignments.length,
158
+ profileGrants: profileGrants,
159
+ permSetGrants: permSetGrants,
160
+ permSetGroupGrants,
161
+ assignments,
162
+ };
163
+ }
164
+ }
165
+ //# sourceMappingURL=unsecure-permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unsecure-permissions.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/diagnose/unsecure-permissions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ import { AnyJson } from '@salesforce/ts-types';
3
+ export default class OrgTestAgents extends SfCommand<any> {
4
+ static title: string;
5
+ static description: string;
6
+ static examples: string[];
7
+ static flags: any;
8
+ static requiresProject: boolean;
9
+ protected debugMode: boolean;
10
+ protected outputFile: any;
11
+ protected outputFilesRes: any;
12
+ run(): Promise<AnyJson>;
13
+ }
@@ -0,0 +1,235 @@
1
+ import { SfCommand, Flags, requiredOrgFlagWithDeprecations } from '@salesforce/sf-plugins-core';
2
+ import { Messages } from '@salesforce/core';
3
+ import c from 'chalk';
4
+ import { isCI, uxLog, uxLogTable } from '../../../../common/utils/index.js';
5
+ import { prompts } from '../../../../common/utils/prompts.js';
6
+ import { generateCsvFile, generateReportPath } from '../../../../common/utils/filesUtils.js';
7
+ import { getSeverityIcon } from '../../../../common/utils/notifUtils.js';
8
+ import { prepareOrgNotificationContext } from '../../../../common/utils/orgNotificationContext.js';
9
+ import { NotifProvider } from '../../../../common/notifProvider/index.js';
10
+ import { CONSTANTS } from '../../../../config/index.js';
11
+ import { t } from '../../../../common/utils/i18n.js';
12
+ import { listAgentTestDefinitions, runAgentTest, } from '../../../../common/utils/agentTestUtils.js';
13
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
14
+ const messages = Messages.loadMessages('sfdx-hardis', 'org');
15
+ export default class OrgTestAgents extends SfCommand {
16
+ static title = 'Run agent tests';
17
+ static description = `Run Agentforce agent tests (AiEvaluationDefinition metadata) in a Salesforce org.
18
+
19
+ ## Command Behavior
20
+
21
+ - **Discovers all agent tests:** Lists every AiEvaluationDefinition available in the org using \`sf agent test list\`.
22
+ - **Runs each test:** Executes \`sf agent test run\` for each definition and waits for completion (override the wait with env var \`SFDX_TEST_WAIT_MINUTES\`, default 60 minutes).
23
+ - **Aggregates results:** Reports pass/fail at the test-case and assertion level. The command fails (exit code 1) if any assertion does not pass.
24
+ - **CSV report:** Generates a report listing every assertion with its expected and actual values.
25
+ - **Notifications:** Sends alerts to Grafana, Slack and MS Teams when agent tests fail.
26
+
27
+ Use \`--tests\` to run only specific agent tests (comma-separated API names) instead of all of them. In interactive mode (not \`--agent\`, not in CI), a prompt lets you unselect the agent tests you want to skip, with all of them selected by default.
28
+
29
+ This command requires the \`@salesforce/plugin-agent\` Salesforce CLI plugin. Install it with \`sf plugins install @salesforce/plugin-agent\`.
30
+
31
+ This command is part of [sfdx-hardis Monitoring](${CONSTANTS.DOC_URL_ROOT}/salesforce-monitoring-agent-tests/) and can output Grafana, Slack and MsTeams Notifications.
32
+
33
+ <details markdown="1">
34
+ <summary>Technical explanations</summary>
35
+
36
+ - Calls \`sf agent test list --json\` to enumerate AiEvaluationDefinition components, then \`sf agent test run --api-name <name> --wait <minutes> --json\` for each one (synchronous, no polling).
37
+ - Parses the \`testCases[].testResults[]\` array of each run: an assertion passes when its \`result\` is \`PASS\`; a test case passes when all its assertions pass.
38
+ - A run whose overall status is not \`COMPLETED\` is treated as an error and flips the notification severity.
39
+ </details>
40
+
41
+ ### Agent Mode
42
+
43
+ Supports non-interactive execution with \`--agent\`:
44
+
45
+ \`\`\`sh
46
+ sf hardis:org:test:agents --agent
47
+ \`\`\`
48
+
49
+ In agent mode the command runs fully automatically. There are no interactive prompts; the wait time defaults to \`SFDX_TEST_WAIT_MINUTES\` (60 minutes) and all agent tests found in the org are run unless \`--tests\` is provided.
50
+ `;
51
+ static examples = [
52
+ '$ sf hardis:org:test:agents',
53
+ '$ sf hardis:org:test:agents --tests Mercury_Referral_Agent_Eval',
54
+ '$ sf hardis:org:test:agents --outputfile ./reports/agent-tests.csv',
55
+ '$ sf hardis:org:test:agents --agent',
56
+ ];
57
+ static flags = {
58
+ tests: Flags.string({
59
+ char: 't',
60
+ description: 'Comma-separated list of agent test API names to run. Runs all tests found in the org when not provided.',
61
+ }),
62
+ outputfile: Flags.string({
63
+ char: 'f',
64
+ description: 'Force the path and name of output report file. Must end with .csv',
65
+ }),
66
+ agent: Flags.boolean({
67
+ default: false,
68
+ description: 'Run in non-interactive mode for agents and automation',
69
+ }),
70
+ debug: Flags.boolean({
71
+ char: 'd',
72
+ default: false,
73
+ description: messages.getMessage('debugMode'),
74
+ }),
75
+ websocket: Flags.string({
76
+ description: messages.getMessage('websocket'),
77
+ }),
78
+ skipauth: Flags.boolean({
79
+ description: 'Skip authentication check when a default username is required',
80
+ }),
81
+ 'target-org': requiredOrgFlagWithDeprecations,
82
+ };
83
+ static requiresProject = false;
84
+ debugMode = false;
85
+ outputFile = null;
86
+ outputFilesRes = {};
87
+ /* jscpd:ignore-start */
88
+ async run() {
89
+ const { flags } = await this.parse(OrgTestAgents);
90
+ this.debugMode = flags.debug || false;
91
+ this.outputFile = flags.outputfile || null;
92
+ const agentMode = flags.agent === true;
93
+ const conn = flags['target-org'].getConnection();
94
+ const orgUsername = flags['target-org']?.getUsername() || null;
95
+ const orgInstanceUrl = conn?.instanceUrl || '';
96
+ const { orgMarkdown, notifButtons } = await prepareOrgNotificationContext(conn);
97
+ /* jscpd:ignore-end */
98
+ uxLog('action', this, c.cyan(t('runningAgentTestsInOrg', { orgInstanceUrl })));
99
+ // Discover agent test definitions (throws AgentPluginMissingError with an actionable message if the plugin is absent)
100
+ const definitions = await listAgentTestDefinitions(orgUsername, this, this.debugMode);
101
+ // No agent tests in the org: mirror the apex "NoApex" path (informational, no failure)
102
+ if (definitions.length === 0) {
103
+ const statusMessage = t('noAgentTestsFound');
104
+ uxLog('log', this, c.grey(statusMessage));
105
+ await NotifProvider.postNotifications({
106
+ type: 'AGENT_TESTS',
107
+ text: `${statusMessage} (${orgMarkdown})`,
108
+ buttons: notifButtons,
109
+ severity: 'log',
110
+ logElements: [],
111
+ data: { metric: 0 },
112
+ metrics: { AgentTestsFailingCases: 0, AgentTestsTotalCases: 0 },
113
+ });
114
+ return { orgId: flags['target-org'].getOrgId(), outputString: statusMessage, statusCode: 0 };
115
+ }
116
+ // Select which agent tests to run: --tests flag, then interactive prompt, else all
117
+ let definitionsToRun = definitions;
118
+ if (flags.tests) {
119
+ // Explicit --tests flag: run only the named definitions
120
+ const requested = flags.tests.split(',').map((s) => s.trim()).filter((s) => s.length > 0);
121
+ const availableNames = definitions.map((d) => d.apiName);
122
+ for (const name of requested) {
123
+ if (!availableNames.includes(name)) {
124
+ uxLog('warning', this, c.yellow(t('agentTestDefinitionNotFound', { definition: name })));
125
+ }
126
+ }
127
+ definitionsToRun = definitions.filter((d) => requested.includes(d.apiName));
128
+ }
129
+ else if (!isCI && !agentMode) {
130
+ // Interactive mode: let the user unselect the agent tests to skip (all selected by default)
131
+ const promptRes = await prompts({
132
+ type: 'multiselect',
133
+ name: 'value',
134
+ message: t('selectAgentTestsToRun'),
135
+ description: t('unselectAgentTestsToSkip'),
136
+ choices: definitions.map((d) => ({ title: d.apiName, value: d.apiName, selected: true })),
137
+ });
138
+ const selected = promptRes.value || [];
139
+ if (selected.length === 0) {
140
+ const statusMessage = t('noAgentTestsSelected');
141
+ uxLog('warning', this, c.yellow(statusMessage));
142
+ return { orgId: flags['target-org'].getOrgId(), outputString: statusMessage, statusCode: 0 };
143
+ }
144
+ definitionsToRun = definitions.filter((d) => selected.includes(d.apiName));
145
+ }
146
+ // Run each agent test definition
147
+ const summaries = [];
148
+ for (const definition of definitionsToRun) {
149
+ const summary = await runAgentTest(definition.apiName, orgUsername, this, this.debugMode);
150
+ if (summary.parseError) {
151
+ uxLog('warning', this, c.yellow(t('warningUnableToParseAgentTestResults', { definition: summary.definition }) + (summary.rawError || '')));
152
+ }
153
+ summaries.push(summary);
154
+ }
155
+ // Aggregate results
156
+ const allAssertions = summaries.flatMap((s) => s.assertions);
157
+ const totalCases = summaries.reduce((acc, s) => acc + s.totalCases, 0);
158
+ const passedCases = summaries.reduce((acc, s) => acc + s.passedCases, 0);
159
+ const failedCases = summaries.reduce((acc, s) => acc + s.failedCases, 0);
160
+ const failedAssertions = summaries.reduce((acc, s) => acc + s.failedAssertions, 0);
161
+ const hasError = summaries.some((s) => s.outcome === 'Error');
162
+ const hasFailure = failedCases > 0 || failedAssertions > 0 || hasError;
163
+ uxLog('action', this, c.cyan(t('agentTestsCompletedWithOutcome', { passed: passedCases, total: totalCases })));
164
+ // Display failing assertions
165
+ const failingAssertions = allAssertions.filter((a) => a.Result !== 'PASS');
166
+ if (failingAssertions.length > 0) {
167
+ uxLog('warning', this, c.yellow(t('failingAgentTests')));
168
+ uxLogTable(this, failingAssertions);
169
+ }
170
+ else if (!hasError) {
171
+ uxLog('success', this, c.green(t('agentTestsPassed', { total: totalCases })));
172
+ }
173
+ // Generate CSV report
174
+ this.outputFile = await generateReportPath('agent-tests', this.outputFile);
175
+ this.outputFilesRes = await generateCsvFile(allAssertions, this.outputFile, {
176
+ fileTitle: 'Agent Tests Results',
177
+ });
178
+ // Notifications
179
+ let notifSeverity = 'log';
180
+ let notifText = `All agent tests passed (**${passedCases}/${totalCases}** test cases) in ${orgMarkdown}`;
181
+ const notifAttachments = [];
182
+ if (hasFailure) {
183
+ notifSeverity = 'error';
184
+ notifText = `Agent tests failed (**${failedCases}/${totalCases}** test cases) in ${orgMarkdown}`;
185
+ const detailText = failingAssertions
186
+ .slice(0, 20)
187
+ .map((a) => `- **${a.Definition}** (test ${a.TestCaseNumber}) ${a.Expectation}: expected \`${a.ExpectedValue}\`, got \`${a.ActualValue}\``)
188
+ .join('\n');
189
+ if (detailText) {
190
+ notifAttachments.push({
191
+ text: failingAssertions.length > 20 ? `${detailText}\n... and ${failingAssertions.length - 20} more` : detailText,
192
+ });
193
+ }
194
+ }
195
+ const logElements = failingAssertions.map((a) => ({
196
+ ...a,
197
+ severity: 'error',
198
+ severityIcon: getSeverityIcon('error'),
199
+ }));
200
+ await NotifProvider.postNotifications({
201
+ type: 'AGENT_TESTS',
202
+ text: notifText,
203
+ attachments: notifAttachments,
204
+ buttons: notifButtons,
205
+ severity: notifSeverity,
206
+ attachedFiles: this.outputFilesRes.xlsxFile ? [this.outputFilesRes.xlsxFile] : [],
207
+ logElements: logElements,
208
+ data: { metric: failedCases },
209
+ metrics: {
210
+ AgentTestsFailingCases: failedCases,
211
+ AgentTestsTotalCases: totalCases,
212
+ AgentTestsFailingAssertions: failedAssertions,
213
+ },
214
+ });
215
+ // Handle output message & exit code
216
+ if (hasFailure) {
217
+ process.exitCode = 1;
218
+ uxLog('error', this, c.red(`Agent tests failed (${failedCases}/${totalCases} test cases)`));
219
+ }
220
+ else {
221
+ uxLog('success', this, c.green(`Agent tests passed (${passedCases}/${totalCases} test cases)`));
222
+ }
223
+ return {
224
+ orgId: flags['target-org'].getOrgId(),
225
+ outputString: notifText,
226
+ statusCode: process.exitCode,
227
+ totalCases,
228
+ passedCases,
229
+ failedCases,
230
+ failedAssertions,
231
+ outputFile: this.outputFile,
232
+ };
233
+ }
234
+ }
235
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/test/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,aAAa,EAAiB,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,CAAC,EAAE,MAAM,kCAAkC,CAAC;AACrD,OAAO,EAGL,wBAAwB,EACxB,YAAY,GACb,MAAM,4CAA4C,CAAC;AAEpD,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAc;IAChD,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC;IAEjC,MAAM,CAAC,WAAW,GAAG;;;;;;;;;;;;;;mDAcqB,SAAS,CAAC,YAAY;;;;;;;;;;;;;;;;;;;CAmBxE,CAAC;IAEO,MAAM,CAAC,QAAQ,GAAG;QACvB,6BAA6B;QAC7B,iEAAiE;QACjE,oEAAoE;QACpE,qCAAqC;KACtC,CAAC;IAEK,MAAM,CAAC,KAAK,GAAQ;QACzB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,yGAAyG;SACvH,CAAC;QACF,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,mEAAmE;SACjF,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,uDAAuD;SACrE,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;SAC9C,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;SAC9C,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,WAAW,EAAE,+DAA+D;SAC7E,CAAC;QACF,YAAY,EAAE,+BAA+B;KAC9C,CAAC;IAEK,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC;IAE5B,SAAS,GAAG,KAAK,CAAC;IAClB,UAAU,GAAQ,IAAI,CAAC;IACvB,cAAc,GAAQ,EAAE,CAAC;IAEnC,wBAAwB;IACjB,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;QAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;QACjD,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC;QAC/D,MAAM,cAAc,GAAG,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;QAC/C,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,MAAM,6BAA6B,CAAC,IAAI,CAAC,CAAC;QAChF,sBAAsB;QAEtB,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/E,sHAAsH;QACtH,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEtF,uFAAuF;QACvF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,CAAC,CAAC,mBAAmB,CAAC,CAAC;YAC7C,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1C,MAAM,aAAa,CAAC,iBAAiB,CAAC;gBACpC,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,GAAG,aAAa,KAAK,WAAW,GAAG;gBACzC,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,EAAE;gBACf,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;gBACnB,OAAO,EAAE,EAAE,sBAAsB,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE;aAChE,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QAC/F,CAAC;QAED,mFAAmF;QACnF,IAAI,gBAAgB,GAAG,WAAW,CAAC;QACnC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,wDAAwD;YACxD,MAAM,SAAS,GAAI,KAAK,CAAC,KAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtG,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACzD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3F,CAAC;YACH,CAAC;YACD,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,CAAC;aAAM,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,4FAA4F;YAC5F,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;gBAC9B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,CAAC,CAAC,uBAAuB,CAAC;gBACnC,WAAW,EAAE,CAAC,CAAC,0BAA0B,CAAC;gBAC1C,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;aAC1F,CAAC,CAAC;YACH,MAAM,QAAQ,GAAa,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,aAAa,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAAC;gBAChD,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;gBAChD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;YAC/F,CAAC;YACD,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,iCAAiC;QACjC,MAAM,SAAS,GAA0B,EAAE,CAAC;QAC5C,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1F,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,sCAAsC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7I,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QAED,oBAAoB;QACpB,MAAM,aAAa,GAA+B,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACnF,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,WAAW,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,IAAI,QAAQ,CAAC;QAEvE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/G,6BAA6B;QAC7B,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC3E,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACzD,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrB,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,UAAU,GAAG,MAAM,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3E,IAAI,CAAC,cAAc,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1E,SAAS,EAAE,qBAAqB;SACjC,CAAC,CAAC;QAEH,gBAAgB;QAChB,IAAI,aAAa,GAAkB,KAAK,CAAC;QACzC,IAAI,SAAS,GAAG,6BAA6B,WAAW,IAAI,UAAU,qBAAqB,WAAW,EAAE,CAAC;QACzG,MAAM,gBAAgB,GAAU,EAAE,CAAC;QACnC,IAAI,UAAU,EAAE,CAAC;YACf,aAAa,GAAG,OAAO,CAAC;YACxB,SAAS,GAAG,yBAAyB,WAAW,IAAI,UAAU,qBAAqB,WAAW,EAAE,CAAC;YACjG,MAAM,UAAU,GAAG,iBAAiB;iBACjC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;iBACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,YAAY,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,WAAW,gBAAgB,CAAC,CAAC,aAAa,aAAa,CAAC,CAAC,WAAW,IAAI,CAAC;iBAC1I,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,IAAI,UAAU,EAAE,CAAC;gBACf,gBAAgB,CAAC,IAAI,CAAC;oBACpB,IAAI,EAAE,iBAAiB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,aAAa,iBAAiB,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU;iBAClH,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChD,GAAG,CAAC;YACJ,QAAQ,EAAE,OAAO;YACjB,YAAY,EAAE,eAAe,CAAC,OAAO,CAAC;SACvC,CAAC,CAAC,CAAC;QAEJ,MAAM,aAAa,CAAC,iBAAiB,CAAC;YACpC,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,aAAa;YACvB,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YACjF,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;YAC7B,OAAO,EAAE;gBACP,sBAAsB,EAAE,WAAW;gBACnC,oBAAoB,EAAE,UAAU;gBAChC,2BAA2B,EAAE,gBAAgB;aAC9C;SACF,CAAC,CAAC;QAEH,oCAAoC;QACpC,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,uBAAuB,WAAW,IAAI,UAAU,cAAc,CAAC,CAAC,CAAC;QAC9F,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,WAAW,IAAI,UAAU,cAAc,CAAC,CAAC,CAAC;QAClG,CAAC;QAED,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;YACrC,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,OAAO,CAAC,QAAQ;YAC5B,UAAU;YACV,WAAW;YACX,WAAW;YACX,gBAAgB;YAChB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC"}
@@ -2,6 +2,8 @@ import type { MonitoringCommandEntry, MonitoringFrequency, NotificationCategory,
2
2
  export declare const monitoringCommandsDefault: MonitoringCommandEntry[];
3
3
  export declare function getTitleI18nKey(key: string): string;
4
4
  export declare function getDescriptionI18nKey(key: string): string;
5
+ export declare function getMonitoringCommandTitleI18nKey(key: string): string;
6
+ export declare function getMonitoringCommandDescriptionI18nKey(key: string): string;
5
7
  export declare function getCategoryTitleI18nKey(key: string): string;
6
8
  export declare function getCategoryDescriptionI18nKey(key: string): string;
7
9
  export interface MonitoringCommandDefaultEntry {
@@ -48,6 +48,14 @@ export const monitoringCommandsDefault = [
48
48
  category: "orgActivity",
49
49
  icon: "utility:warning",
50
50
  },
51
+ {
52
+ key: "AGENT_TESTS",
53
+ command: "sf hardis:org:test:agents",
54
+ frequency: "weekly",
55
+ notificationTypes: ["AGENT_TESTS"],
56
+ category: "apexTestsSecurity",
57
+ icon: "utility:einstein",
58
+ },
51
59
  {
52
60
  key: "UNSECURED_CONNECTED_APPS",
53
61
  command: "sf hardis:org:diagnose:unsecure-connected-apps",
@@ -64,6 +72,16 @@ export const monitoringCommandsDefault = [
64
72
  category: "apexTestsSecurity",
65
73
  icon: "utility:shield",
66
74
  },
75
+ {
76
+ key: "DANGEROUS_PERMISSIONS",
77
+ command: "sf hardis:org:diagnose:unsecure-permissions",
78
+ // Off by default: this audit is opt-in. It still appears in the monitoring UI so users can
79
+ // switch it on (e.g. to weekly) when they want it scheduled by hardis:org:monitor:all.
80
+ frequency: "off",
81
+ notificationTypes: ["DANGEROUS_PERMISSIONS"],
82
+ category: "apexTestsSecurity",
83
+ icon: "utility:lock",
84
+ },
67
85
  {
68
86
  key: "DEPLOYMENTS",
69
87
  command: "sf hardis:org:diagnose:deployments --period weekly",
@@ -238,6 +256,38 @@ export function getTitleI18nKey(key) {
238
256
  export function getDescriptionI18nKey(key) {
239
257
  return `notifTypeDesc${toPascalSlug(key)}`;
240
258
  }
259
+ // A monitoring command describes the *check that runs* (e.g. "Agent tests"), which is a different
260
+ // thing from the notification it emits (e.g. "Agent tests run results"). These keys let a command
261
+ // carry its own label/description; when absent, the resolvers below fall back to the command's
262
+ // notification-type label so existing commands keep working without new keys.
263
+ export function getMonitoringCommandTitleI18nKey(key) {
264
+ return `monitoringCommandTitle${toPascalSlug(key)}`;
265
+ }
266
+ export function getMonitoringCommandDescriptionI18nKey(key) {
267
+ return `monitoringCommandDesc${toPascalSlug(key)}`;
268
+ }
269
+ // t() returns the key itself when the translation is missing, so an unchanged result means "no
270
+ // command-specific label defined". In that case we fall back to the entry's literal title, then to
271
+ // the notification-type label.
272
+ function resolveMonitoringCommandTitle(cmd) {
273
+ const commandKey = getMonitoringCommandTitleI18nKey(cmd.key);
274
+ const commandTitle = t(commandKey);
275
+ if (commandTitle && commandTitle !== commandKey) {
276
+ return commandTitle;
277
+ }
278
+ if (cmd.title) {
279
+ return cmd.title;
280
+ }
281
+ return t(getTitleI18nKey(cmd.key));
282
+ }
283
+ function resolveMonitoringCommandDescription(cmd) {
284
+ const commandKey = getMonitoringCommandDescriptionI18nKey(cmd.key);
285
+ const commandDescription = t(commandKey);
286
+ if (commandDescription && commandDescription !== commandKey) {
287
+ return commandDescription;
288
+ }
289
+ return t(getDescriptionI18nKey(cmd.key));
290
+ }
241
291
  // Converts a category key like "orgActivity" to the PascalCase slug used in i18n keys.
242
292
  function toCategoryPascalSlug(key) {
243
293
  return key.length ? key[0].toUpperCase() + key.slice(1) : "";
@@ -353,8 +403,8 @@ export function getMonitoringConfigDefaults() {
353
403
  const category = resolveMonitoringCommandCategory(cmd);
354
404
  return {
355
405
  key: cmd.key,
356
- title: t(getTitleI18nKey(cmd.key)),
357
- description: t(getDescriptionI18nKey(cmd.key)),
406
+ title: resolveMonitoringCommandTitle(cmd),
407
+ description: resolveMonitoringCommandDescription(cmd),
358
408
  category,
359
409
  icon: resolveMonitoringCommandIcon(cmd),
360
410
  colorClass: resolveMonitoringCommandColorClass(cmd, category),
@@ -1 +1 @@
1
- {"version":3,"file":"monitoringDefaults.js","sourceRoot":"","sources":["../../../src/common/monitoring/monitoringDefaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitoringDefaults.js","sourceRoot":"","sources":["../../../src/common/monitoring/monitoringDefaults.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ export interface NotifButton {
35
35
  url?: string;
36
36
  style?: "primary" | "danger";
37
37
  }
38
- export type NotifMessageType = "ACTIVE_USERS" | "ACTIVE_USERS_CRM_WEEKLY" | "ACTIVE_USERS_EXPERIENCE_MONTHLY" | "UNUSED_USERS" | "UNUSED_USERS_CRM_6_MONTHS" | "UNUSED_USERS_EXPERIENCE_6_MONTHS" | "AUDIT_TRAIL" | "APEX_TESTS" | "BACKUP" | "DEPLOYMENT" | "LEGACY_API" | "LICENSES" | "LINT_ACCESS" | "MFA_CONFIG" | "SECURITY_KEY_UNLINK" | "UNUSED_METADATAS" | "METADATA_STATUS" | "MISSING_ATTRIBUTES" | "SERVICENOW_REPORT" | "UNUSED_LICENSES" | "UNDERUSED_PERMSETS" | "MINIMAL_PERMSETS" | "UNUSED_APEX_CLASSES" | "APEX_API_VERSION" | "APEX_FLEX_QUEUE" | "CONNECTED_APPS" | "UNSECURED_CONNECTED_APPS" | "ORG_HEALTH_CHECK" | "ORG_INFO" | "ORG_LIMITS" | "RELEASE_UPDATES" | "AGENTFORCE_CONVERSATIONS" | "AGENTFORCE_FEEDBACK" | "APEX_ERROR" | "FLOW_ERROR" | "DEPLOYMENTS" | "DORA_REPORT" | "MONITORING_SUMMARY" | "RELEASE_NOTES";
38
+ export type NotifMessageType = "ACTIVE_USERS" | "ACTIVE_USERS_CRM_WEEKLY" | "ACTIVE_USERS_EXPERIENCE_MONTHLY" | "UNUSED_USERS" | "UNUSED_USERS_CRM_6_MONTHS" | "UNUSED_USERS_EXPERIENCE_6_MONTHS" | "AUDIT_TRAIL" | "APEX_TESTS" | "AGENT_TESTS" | "BACKUP" | "DEPLOYMENT" | "LEGACY_API" | "LICENSES" | "LINT_ACCESS" | "MFA_CONFIG" | "SECURITY_KEY_UNLINK" | "UNUSED_METADATAS" | "METADATA_STATUS" | "MISSING_ATTRIBUTES" | "SERVICENOW_REPORT" | "UNUSED_LICENSES" | "UNDERUSED_PERMSETS" | "MINIMAL_PERMSETS" | "UNUSED_APEX_CLASSES" | "APEX_API_VERSION" | "APEX_FLEX_QUEUE" | "CONNECTED_APPS" | "UNSECURED_CONNECTED_APPS" | "DANGEROUS_PERMISSIONS" | "ORG_HEALTH_CHECK" | "ORG_INFO" | "ORG_LIMITS" | "RELEASE_UPDATES" | "AGENTFORCE_CONVERSATIONS" | "AGENTFORCE_FEEDBACK" | "APEX_ERROR" | "FLOW_ERROR" | "DEPLOYMENTS" | "DORA_REPORT" | "MONITORING_SUMMARY" | "RELEASE_NOTES";
39
39
  export type NotificationCategory = "orgActivity" | "userActivity" | "apexTestsSecurity" | "orgInfo" | "technicalDebt" | "licensesPackages" | "other";
40
40
  export interface NotificationCategoryDefault {
41
41
  key: NotificationCategory;