sfdx-hardis 6.3.2 → 6.3.3
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 +8 -0
- package/lib/commands/hardis/org/diagnose/unsecure-connected-apps.js +33 -20
- package/lib/commands/hardis/org/diagnose/unsecure-connected-apps.js.map +1 -1
- package/lib/commands/hardis/org/monitor/all.js +6 -6
- package/lib/commands/hardis/org/monitor/all.js.map +1 -1
- package/oclif.manifest.json +637 -637
- package/package.json +1 -1
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.3.3] 2025-09-08
|
|
8
|
+
|
|
9
|
+
- [hardis:org:diagnose:unsecure-connected-apps](https://sfdx-hardis.cloudity.com/hardis/org/diagnose/unsecure-connected-apps/)
|
|
10
|
+
- Add an additional columns on OAuth Usage to:
|
|
11
|
+
- Show when the connected app has been last used
|
|
12
|
+
- Show which profiles are the users using the OAuth Tokens
|
|
13
|
+
- Run the command in the daily monitoring
|
|
14
|
+
|
|
7
15
|
## [6.3.2] 2025-09-07
|
|
8
16
|
|
|
9
17
|
- Set initPermissionSets config prop to array of strings
|
|
@@ -3,7 +3,7 @@ import { SfCommand, Flags, requiredOrgFlagWithDeprecations } from '@salesforce/s
|
|
|
3
3
|
import { Messages } from '@salesforce/core';
|
|
4
4
|
import c from 'chalk';
|
|
5
5
|
import { uxLog, uxLogTable } from '../../../../common/utils/index.js';
|
|
6
|
-
import {
|
|
6
|
+
import { bulkQuery } from '../../../../common/utils/apiUtils.js';
|
|
7
7
|
import { generateCsvFile, generateReportPath } from '../../../../common/utils/filesUtils.js';
|
|
8
8
|
import { getNotificationButtons, getOrgMarkdown } from '../../../../common/utils/notifUtils.js';
|
|
9
9
|
import { NotifProvider } from '../../../../common/notifProvider/index.js';
|
|
@@ -35,6 +35,8 @@ Key functionalities:
|
|
|
35
35
|
|
|
36
36
|
This command is part of [sfdx-hardis Monitoring](${CONSTANTS.DOC_URL_ROOT}/salesforce-monitoring-org-security/) and can output Grafana, Slack and MsTeams Notifications.
|
|
37
37
|
|
|
38
|
+
<iframe width="560" height="315" src="https://www.youtube.com/embed/jHv8yrSK8Dg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
|
39
|
+
|
|
38
40
|
<details markdown="1">
|
|
39
41
|
<summary>Technical explanations</summary>
|
|
40
42
|
|
|
@@ -86,36 +88,33 @@ The command's technical implementation involves:
|
|
|
86
88
|
const conn = flags['target-org'].getConnection();
|
|
87
89
|
// Collect all Connected Apps
|
|
88
90
|
uxLog("action", this, c.cyan(`Listing all OAuth Tokens from ${conn.instanceUrl} ...`));
|
|
89
|
-
const allOAuthTokenQuery = `SELECT AppName , AppMenuItem.IsUsingAdminAuthorization, LastUsedDate, CreatedDate, User.Name ,UseCount FROM OauthToken ORDER BY AppName ASC`;
|
|
90
|
-
const allOAuthTokenQueryRes = await
|
|
91
|
+
const allOAuthTokenQuery = `SELECT AppName , AppMenuItem.IsUsingAdminAuthorization, LastUsedDate, CreatedDate, User.Name , User.Profile.Name, UseCount FROM OauthToken ORDER BY AppName ASC`;
|
|
92
|
+
const allOAuthTokenQueryRes = await bulkQuery(allOAuthTokenQuery, conn);
|
|
91
93
|
const allOAuthTokens = allOAuthTokenQueryRes.records;
|
|
92
94
|
const allOAuthTokensWithStatus = allOAuthTokens.map(app => {
|
|
93
|
-
const
|
|
95
|
+
const adminPreApproved = app["AppMenuItem.IsUsingAdminAuthorization"] ?? false;
|
|
96
|
+
const appResult = {
|
|
94
97
|
AppName: app.AppName,
|
|
95
|
-
|
|
96
|
-
|
|
98
|
+
"Status": adminPreApproved ? '✅ Secured' : '❌ Unsecured',
|
|
99
|
+
"Admin Pre-Approved": adminPreApproved ? 'Yes' : 'No',
|
|
100
|
+
"User": app["User.Name"] ? app["User.Name"] : 'N/A',
|
|
101
|
+
"User Profile": app["User.Profile.Name"] ? app["User.Profile.Name"] : 'N/A',
|
|
102
|
+
"Last Used Date": app.LastUsedDate ? new Date(app.LastUsedDate).toISOString().split('T')[0] : 'N/A',
|
|
103
|
+
"Created Date": app.CreatedDate ? new Date(app.CreatedDate).toISOString().split('T')[0] : 'N/A',
|
|
104
|
+
"Use Count": app.UseCount ? app.UseCount : 0,
|
|
97
105
|
};
|
|
98
|
-
|
|
99
|
-
toAdd.statusIcon = '❌';
|
|
100
|
-
toAdd.status = 'Unsecured';
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
toAdd.statusIcon = '✅';
|
|
104
|
-
toAdd.status = 'Secured';
|
|
105
|
-
}
|
|
106
|
-
delete app.attributes;
|
|
107
|
-
delete app.AppMenuItem;
|
|
108
|
-
delete app.User;
|
|
109
|
-
return Object.assign(toAdd, app);
|
|
106
|
+
return appResult;
|
|
110
107
|
});
|
|
111
108
|
// Generate output CSV file
|
|
112
109
|
this.outputFile = await generateReportPath('unsecured-oauth-tokens', this.outputFile);
|
|
113
110
|
this.outputFilesRes = await generateCsvFile(allOAuthTokensWithStatus, this.outputFile, { fileTitle: "Unsecured OAuth Tokens" });
|
|
114
|
-
const unsecuredOAuthTokens = allOAuthTokensWithStatus.filter(app => app.
|
|
111
|
+
const unsecuredOAuthTokens = allOAuthTokensWithStatus.filter(app => app.Status === '❌ Unsecured');
|
|
115
112
|
// Display results
|
|
116
113
|
uxLog("action", this, `${unsecuredOAuthTokens.length} unsecured OAuth Tokens found.`);
|
|
117
114
|
uxLogTable(this, unsecuredOAuthTokens);
|
|
118
115
|
const uniqueUnsecuredAppNamesAndTokenNumber = {};
|
|
116
|
+
const uniqueUnsecuredAppNamesAndProfiles = {};
|
|
117
|
+
const uniqueUnsecuredAppNamesAndLastUsageDate = {};
|
|
119
118
|
for (const app of unsecuredOAuthTokens) {
|
|
120
119
|
if (uniqueUnsecuredAppNamesAndTokenNumber[app.AppName]) {
|
|
121
120
|
uniqueUnsecuredAppNamesAndTokenNumber[app.AppName]++;
|
|
@@ -123,12 +122,26 @@ The command's technical implementation involves:
|
|
|
123
122
|
else {
|
|
124
123
|
uniqueUnsecuredAppNamesAndTokenNumber[app.AppName] = 1;
|
|
125
124
|
}
|
|
125
|
+
if (!uniqueUnsecuredAppNamesAndProfiles[app.AppName]) {
|
|
126
|
+
uniqueUnsecuredAppNamesAndProfiles[app.AppName] = new Set();
|
|
127
|
+
}
|
|
128
|
+
if (app["User Profile"] && app["User Profile"] !== 'N/A') {
|
|
129
|
+
uniqueUnsecuredAppNamesAndProfiles[app.AppName].add(app["User Profile"]);
|
|
130
|
+
}
|
|
131
|
+
if (app["Last Used Date"] && app["Last Used Date"] !== 'N/A') {
|
|
132
|
+
const latestUsageDate = uniqueUnsecuredAppNamesAndLastUsageDate[app.AppName];
|
|
133
|
+
if (!latestUsageDate || new Date(app["Last Used Date"]) > new Date(latestUsageDate)) {
|
|
134
|
+
uniqueUnsecuredAppNamesAndLastUsageDate[app.AppName] = app["Last Used Date"];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
126
137
|
}
|
|
127
138
|
const uniqueUnsecuredAppNames = Object.keys(uniqueUnsecuredAppNamesAndTokenNumber);
|
|
128
139
|
const uniqueUnsecureConnectedAppsWithTokens = uniqueUnsecuredAppNames.map(appName => {
|
|
129
140
|
return {
|
|
130
141
|
AppName: appName,
|
|
131
|
-
NumberOfUnsecuredOAuthTokens: uniqueUnsecuredAppNamesAndTokenNumber[appName]
|
|
142
|
+
NumberOfUnsecuredOAuthTokens: uniqueUnsecuredAppNamesAndTokenNumber[appName],
|
|
143
|
+
LatestUsageDate: uniqueUnsecuredAppNamesAndLastUsageDate[appName] || "N/A",
|
|
144
|
+
ProfilesOfUsersUsingIt: Array.from(uniqueUnsecuredAppNamesAndProfiles[appName] || []).sort().join(', '),
|
|
132
145
|
};
|
|
133
146
|
});
|
|
134
147
|
this.outputFileConnectedApps = await generateReportPath('unsecured-connected-apps', this.outputFileConnectedApps);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unsecure-connected-apps.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/diagnose/unsecure-connected-apps.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,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,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,EAAE,aAAa,EAAiB,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,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,sBAAuB,SAAQ,SAAc;IACzD,MAAM,CAAC,KAAK,GAAG,iCAAiC,CAAC;IAEjD,MAAM,CAAC,WAAW,GAAG;;;;;;;;;;;;;;;;;;;mDAmBqB,SAAS,CAAC,YAAY
|
|
1
|
+
{"version":3,"file":"unsecure-connected-apps.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/diagnose/unsecure-connected-apps.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,12 @@ export default class MonitorAll extends SfCommand {
|
|
|
27
27
|
command: 'sf hardis:org:monitor:limits',
|
|
28
28
|
frequency: 'daily',
|
|
29
29
|
},
|
|
30
|
+
{
|
|
31
|
+
key: 'UNSECURED_CONNECTED_APPS',
|
|
32
|
+
title: 'Detect unsecured Connected Apps in an org',
|
|
33
|
+
command: 'sf hardis:org:diagnose:unsecure-connected-apps',
|
|
34
|
+
frequency: 'daily',
|
|
35
|
+
},
|
|
30
36
|
{
|
|
31
37
|
key: 'LICENSES',
|
|
32
38
|
title: 'Extract licenses information',
|
|
@@ -87,12 +93,6 @@ export default class MonitorAll extends SfCommand {
|
|
|
87
93
|
command: 'sf hardis:org:diagnose:unused-connected-apps',
|
|
88
94
|
frequency: 'weekly',
|
|
89
95
|
},
|
|
90
|
-
{
|
|
91
|
-
key: 'UNSECURED_CONNECTED_APPS',
|
|
92
|
-
title: 'Detect unsecured Connected Apps in an org',
|
|
93
|
-
command: 'sf hardis:org:diagnose:unsecure-connected-apps',
|
|
94
|
-
frequency: 'weekly',
|
|
95
|
-
},
|
|
96
96
|
{
|
|
97
97
|
key: 'METADATA_STATUS',
|
|
98
98
|
title: 'Detect inactive metadata',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"all.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/monitor/all.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,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,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE9E,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,UAAW,SAAQ,SAAc;IAC7C,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC;IAE7B,MAAM,CAAC,yBAAyB,GAAG;QACxC;YACE,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,2CAA2C;YAClD,OAAO,EAAE,mCAAmC;YAC5C,SAAS,EAAE,OAAO;SACnB;QACD;YACE,GAAG,EAAE,YAAY;YACjB,KAAK,EAAE,yCAAyC;YAChD,OAAO,EAAE,kCAAkC;YAC3C,SAAS,EAAE,OAAO;SACnB;QACD;YACE,GAAG,EAAE,YAAY;YACjB,KAAK,EAAE,8CAA8C;YACrD,OAAO,EAAE,8BAA8B;YACvC,SAAS,EAAE,OAAO;SACnB;QACD;YACE,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,8BAA8B;YACrC,OAAO,EAAE,iCAAiC;YAC1C,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,yEAAyE;YAChF,OAAO,EAAE,uBAAuB;YAChC,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,GAAG,EAAE,iBAAiB;YACtB,KAAK,EAAE,iFAAiF;YACxF,OAAO,EAAE,uCAAuC;YAChD,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,2CAA2C;YAClD,OAAO,EAAE,oCAAoC;YAC7C,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,wCAAwC;YAC/C,OAAO,EAAE,wDAAwD;YACjE,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,2DAA2D;YAClE,OAAO,EAAE,wCAAwC;YACjD,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,GAAG,EAAE,iBAAiB;YACtB,KAAK,EAAE,4DAA4D;YACnE,OAAO,EAAE,uCAAuC;YAChD,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,GAAG,EAAE,kBAAkB;YACvB,KAAK,EAAE,iEAAiE;YACxE,OAAO,EAAE,gCAAgC;YACzC,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,GAAG,EAAE,qBAAqB;YAC1B,KAAK,EAAE,sCAAsC;YAC7C,OAAO,EAAE,4CAA4C;YACrD,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,GAAG,EAAE,gBAAgB;YACrB,KAAK,EAAE,wCAAwC;YAC/C,OAAO,EAAE,8CAA8C;YACvD,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"all.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/monitor/all.ts"],"names":[],"mappings":"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"}
|