sfdx-hardis 7.4.0 → 7.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/defaults/monitoring/.github/workflows/org-monitoring.yml +3 -3
- package/defaults/monitoring/.gitlab-ci.yml +2 -2
- package/defaults/monitoring/azure-pipelines.yml +3 -3
- package/defaults/monitoring/bitbucket-pipelines.yml +3 -3
- package/lib/commands/hardis/org/diagnose/unsecure-connected-apps.d.ts +1 -0
- package/lib/commands/hardis/org/diagnose/unsecure-connected-apps.js +180 -59
- package/lib/commands/hardis/org/diagnose/unsecure-connected-apps.js.map +1 -1
- package/lib/common/metadata-utils/metadataList.js +42 -0
- package/lib/common/metadata-utils/metadataList.js.map +1 -1
- package/lib/i18n/de.json +9 -2
- package/lib/i18n/en.json +9 -2
- package/lib/i18n/es.json +9 -2
- package/lib/i18n/fr.json +9 -2
- package/lib/i18n/it.json +9 -1
- package/lib/i18n/ja.json +9 -2
- package/lib/i18n/nl.json +9 -1
- package/lib/i18n/pl.json +9 -2
- package/lib/i18n/pt-BR.json +9 -2
- package/oclif.manifest.json +2586 -2586
- package/package.json +1 -1
|
@@ -194,7 +194,7 @@ jobs:
|
|
|
194
194
|
NOTIF_API_METRICS_BASIC_AUTH_PASSWORD: ${{ secrets.NOTIF_API_METRICS_BASIC_AUTH_PASSWORD }}
|
|
195
195
|
run: |
|
|
196
196
|
echo "Run apex tests against \"$CONFIG_BRANCH\""
|
|
197
|
-
git pull origin ${{ matrix.branch }}
|
|
197
|
+
git pull origin ${{ matrix.branch }} || echo "Issue when pulling latest branch state, but that should be ok"
|
|
198
198
|
sf hardis:auth:login
|
|
199
199
|
sf hardis:org:test:apex
|
|
200
200
|
|
|
@@ -236,7 +236,7 @@ jobs:
|
|
|
236
236
|
persist-credentials: true
|
|
237
237
|
|
|
238
238
|
- name: Git pull
|
|
239
|
-
run: git pull origin ${{ matrix.branch }}
|
|
239
|
+
run: git pull origin ${{ matrix.branch }} || echo "Issue when pulling latest branch state, but that should be ok"
|
|
240
240
|
|
|
241
241
|
# Mega-Linter
|
|
242
242
|
- name: Mega-Linter
|
|
@@ -335,7 +335,7 @@ jobs:
|
|
|
335
335
|
|
|
336
336
|
run: |
|
|
337
337
|
echo "Run Monitoring checks against \"$CONFIG_BRANCH\""
|
|
338
|
-
git pull origin ${{ matrix.branch }}
|
|
338
|
+
git pull origin ${{ matrix.branch }} || echo "Issue when pulling latest branch state, but that should be ok"
|
|
339
339
|
sf hardis:auth:login
|
|
340
340
|
sf hardis:org:monitor:all
|
|
341
341
|
|
|
@@ -77,7 +77,7 @@ monitoring_tools:
|
|
|
77
77
|
before_script:
|
|
78
78
|
- git config --global user.name "${GITLAB_USER_NAME}"
|
|
79
79
|
- git config --global user.email "${GITLAB_USER_EMAIL}"
|
|
80
|
-
- git pull origin "${CI_COMMIT_REF_NAME}"
|
|
80
|
+
- git pull origin "${CI_COMMIT_REF_NAME}" || echo "Issue when pulling latest branch state, but that should be ok"
|
|
81
81
|
script:
|
|
82
82
|
# Login & run apex tests
|
|
83
83
|
- sf hardis:auth:login
|
|
@@ -102,7 +102,7 @@ megalinter:
|
|
|
102
102
|
before_script:
|
|
103
103
|
- git config --global user.name "${GITLAB_USER_NAME}"
|
|
104
104
|
- git config --global user.email "${GITLAB_USER_EMAIL}"
|
|
105
|
-
- git pull origin "${CI_COMMIT_REF_NAME}"
|
|
105
|
+
- git pull origin "${CI_COMMIT_REF_NAME}" || echo "Issue when pulling latest branch state, but that should be ok"
|
|
106
106
|
variables:
|
|
107
107
|
# All available variables are described in documentation
|
|
108
108
|
# https://megalinter.io/latest/config-file/
|
|
@@ -143,7 +143,7 @@ jobs:
|
|
|
143
143
|
displayName: Install @salesforce/cli & sfdx-hardis
|
|
144
144
|
|
|
145
145
|
- script: |
|
|
146
|
-
git pull origin "${BRANCH_NAME}"
|
|
146
|
+
git pull origin "${BRANCH_NAME}" || echo "Issue when pulling latest branch state, but that should be ok"
|
|
147
147
|
displayName: Pull git branch latest commit
|
|
148
148
|
env:
|
|
149
149
|
CI: "true"
|
|
@@ -206,7 +206,7 @@ jobs:
|
|
|
206
206
|
- script: |
|
|
207
207
|
git config --global user.email "contact@cloudity.com"
|
|
208
208
|
git config --global user.name "sfdx-hardis monitoring"
|
|
209
|
-
git pull origin "${BRANCH_NAME}"
|
|
209
|
+
git pull origin "${BRANCH_NAME}" || echo "Issue when pulling latest branch state, but that should be ok"
|
|
210
210
|
workingDirectory: $(System.DefaultWorkingDirectory)
|
|
211
211
|
displayName: Git config & pull latest commit
|
|
212
212
|
|
|
@@ -262,7 +262,7 @@ jobs:
|
|
|
262
262
|
- script: |
|
|
263
263
|
git config --global user.email "contact@cloudity.com"
|
|
264
264
|
git config --global user.name "sfdx-hardis monitoring"
|
|
265
|
-
git pull origin "${BRANCH_NAME}"
|
|
265
|
+
git pull origin "${BRANCH_NAME}" || echo "Issue when pulling latest branch state, but that should be ok"
|
|
266
266
|
displayName: Pull git branch latest commit
|
|
267
267
|
env:
|
|
268
268
|
CI: "true"
|
|
@@ -61,7 +61,7 @@ pipelines:
|
|
|
61
61
|
- export ORG_ALIAS=$BRANCH_NAME
|
|
62
62
|
- export FORCE_COLOR=1
|
|
63
63
|
# Get latest commit of the branch
|
|
64
|
-
- git pull origin "${BRANCH_NAME}"
|
|
64
|
+
- git pull origin "${BRANCH_NAME}" || echo "Issue when pulling latest branch state, but that should be ok"
|
|
65
65
|
# Login
|
|
66
66
|
- sf hardis:auth:login
|
|
67
67
|
# Apex tests
|
|
@@ -79,7 +79,7 @@ pipelines:
|
|
|
79
79
|
script:
|
|
80
80
|
# Get latest commit of the branch
|
|
81
81
|
- export BRANCH_NAME=$(echo "$BITBUCKET_BRANCH" | sed 's/refs\/heads\///')
|
|
82
|
-
- git pull origin "${BRANCH_NAME}"
|
|
82
|
+
- git pull origin "${BRANCH_NAME}" || echo "Issue when pulling latest branch state, but that should be ok"
|
|
83
83
|
- export DEFAULT_WORKSPACE=$BITBUCKET_CLONE_DIR && bash /entrypoint.sh
|
|
84
84
|
artifacts:
|
|
85
85
|
- megalinter-reports/**
|
|
@@ -100,7 +100,7 @@ pipelines:
|
|
|
100
100
|
- export ORG_ALIAS=$BRANCH_NAME
|
|
101
101
|
- export FORCE_COLOR=1
|
|
102
102
|
# Get latest commit of the branch
|
|
103
|
-
- git pull origin "${BRANCH_NAME}"
|
|
103
|
+
- git pull origin "${BRANCH_NAME}" || echo "Issue when pulling latest branch state, but that should be ok"
|
|
104
104
|
# Login
|
|
105
105
|
- sf hardis:auth:login
|
|
106
106
|
# Other monitoring tools
|
|
@@ -20,22 +20,25 @@ export default class UnsecuredConnectedApps extends SfCommand {
|
|
|
20
20
|
static description = `
|
|
21
21
|
## Command Behavior
|
|
22
22
|
|
|
23
|
-
**Detects unsecured Connected Apps in a Salesforce org and generates detailed reports for security analysis.**
|
|
23
|
+
**Detects unsecured Connected Apps and External Client Apps in a Salesforce org and generates detailed reports for security analysis.**
|
|
24
24
|
|
|
25
|
-
This command is a critical security diagnostic tool that helps administrators identify Connected Apps that may pose security risks due to improper configuration. It provides comprehensive analysis of OAuth tokens and
|
|
25
|
+
This command is a critical security diagnostic tool that helps administrators identify Connected Apps and External Client Apps that may pose security risks due to improper OAuth authorization configuration. It provides comprehensive analysis of OAuth tokens and app security settings to ensure proper access control.
|
|
26
26
|
|
|
27
27
|
Key functionalities:
|
|
28
28
|
|
|
29
29
|
- **OAuth Token Analysis:** Queries all OAuth tokens in the org using SOQL to retrieve comprehensive token information including app names, users, authorization status, and usage statistics.
|
|
30
|
-
- **
|
|
31
|
-
- **
|
|
32
|
-
- **
|
|
33
|
-
- **
|
|
30
|
+
- **Connected App and External Client App Coverage:** Checks both Connected Apps (via \`AppMenuItem.IsUsingAdminAuthorization\`) and External Client Apps (via \`ExtlClntAppOauthPlcyCnfg.PermittedUsersPolicyType\`) for proper admin pre-approval settings.
|
|
31
|
+
- **App Type Column:** Each report row includes an \`App Type\` column indicating whether the app is a \`Connected App\` or \`Ext Client App\`.
|
|
32
|
+
- **AppName-based Fallback Matching:** When an OAuth token has no \`AppMenuItem\` link (common for External Client App tokens), the command falls back to matching by \`AppName\` against \`ExternalClientApplication.MasterLabel\` or \`DeveloperName\`.
|
|
33
|
+
- **Ignore List Support:** Skips warning/escalation for apps configured in \`monitoringUnsecureConnectedAppsIgnore\` (project config) or \`MONITORING_UNSECURE_CONNECTED_APPS_IGNORE\` (environment variable). Matching OAuth tokens are marked as *Ignored*.
|
|
34
|
+
- **Unsecured App Detection:** Identifies apps that allow users to authorize themselves without admin approval, which can pose security risks.
|
|
35
|
+
- **Phantom App Cleanup (Optional):** Detects unsecured apps not present in the installed Connected Apps or External Client Apps list and offers an interactive option to revoke their OAuth tokens (forces re-authentication if still needed).
|
|
36
|
+
- **Stale Token Cleanup (Optional):** Detects secured apps that still have old unsecured OAuth tokens (authorized before proper hardening) and offers an interactive option to delete them.
|
|
34
37
|
- **Detailed Reporting:** Generates two comprehensive CSV reports:
|
|
35
|
-
- **OAuth Tokens Report:** Lists all OAuth tokens with security status, user information, and usage data
|
|
36
|
-
- **Connected Apps Summary:** Aggregates unsecured
|
|
38
|
+
- **OAuth Tokens Report:** Lists all OAuth tokens with security status, app type, user information, and usage data
|
|
39
|
+
- **Connected Apps Summary:** Aggregates unsecured apps with counts of associated OAuth tokens and app type
|
|
37
40
|
- **Visual Indicators:** Uses status icons (❌ for unsecured, ✅ for secured, ⚪ for ignored) to provide immediate visual feedback on security status.
|
|
38
|
-
- **Security Recommendations:** Provides actionable guidance on how to secure Connected Apps through proper configuration.
|
|
41
|
+
- **Security Recommendations:** Provides actionable guidance on how to secure Connected Apps and External Client Apps through proper configuration.
|
|
39
42
|
- **Notifications:** Sends alerts to configured channels (Grafana, Slack, MS Teams) with security findings and attached reports.
|
|
40
43
|
|
|
41
44
|
This command is part of [sfdx-hardis Monitoring](${CONSTANTS.DOC_URL_ROOT}/salesforce-monitoring-org-security/) and can output Grafana, Slack and MsTeams Notifications.
|
|
@@ -48,13 +51,14 @@ This command is part of [sfdx-hardis Monitoring](${CONSTANTS.DOC_URL_ROOT}/sales
|
|
|
48
51
|
The command's technical implementation involves:
|
|
49
52
|
|
|
50
53
|
- **SOQL Query Execution:** Executes a comprehensive SOQL query on the \`OauthToken\` object, joining with \`AppMenuItem\` and \`User\` objects to gather complete security context.
|
|
51
|
-
- **Security
|
|
52
|
-
- **
|
|
53
|
-
- **
|
|
54
|
-
- **
|
|
55
|
-
- **
|
|
54
|
+
- **Connected App Security Logic:** Analyzes the \`AppMenuItem.IsUsingAdminAuthorization\` field to determine if a Connected App requires admin pre-approval for user authorization.
|
|
55
|
+
- **External Client App Security Logic:** Queries \`ExtlClntAppOauthPlcyCnfg\` for each External Client App and checks \`PermittedUsersPolicyType === 'AdminApprovedPreAuthorized'\` to determine if admin pre-approval is required. Falls back to AppName-based matching when \`AppMenuItem.ApplicationId\` is not populated.
|
|
56
|
+
- **Ignore Handling:** Normalizes app names and marks matching OAuth tokens as *Ignored* so they do not contribute to unsecured app counts and notifications.
|
|
57
|
+
- **Data Transformation:** Processes raw SOQL results to add security status indicators, app type, and reorganizes data for optimal reporting and analysis.
|
|
58
|
+
- **Aggregation Processing:** Groups OAuth tokens by app name to provide summary statistics and identify the most problematic applications.
|
|
59
|
+
- **Token Revocation:** Optionally calls Salesforce OAuth revoke endpoint using each token's \`DeleteToken\` value to revoke OAuth tokens for selected phantom apps or stale unsecured tokens on secured apps.
|
|
56
60
|
- **Report Generation:** Uses \`generateCsvFile\` to create structured CSV reports with proper formatting and metadata for easy analysis and sharing.
|
|
57
|
-
- **Notification Integration:** Integrates with the \`NotifProvider\` to send security alerts with detailed metrics, including the number of unsecured
|
|
61
|
+
- **Notification Integration:** Integrates with the \`NotifProvider\` to send security alerts with detailed metrics, including the number of unsecured apps and associated OAuth tokens.
|
|
58
62
|
- **File Management:** Generates multiple output formats (CSV, XLSX) and manages file paths using \`generateReportPath\` for consistent report organization.
|
|
59
63
|
- **Connection Management:** Uses \`setConnectionVariables\` to ensure proper authentication context for notification providers that require org connection details.
|
|
60
64
|
</details>
|
|
@@ -111,6 +115,39 @@ The command's technical implementation involves:
|
|
|
111
115
|
const connectedAppQueryRes = await bulkQuery(connectedAppQuery, conn);
|
|
112
116
|
const allConnectedApps = connectedAppQueryRes.records;
|
|
113
117
|
uxLog("log", this, t('connectedAppsFound', { count: allConnectedApps.length }));
|
|
118
|
+
// List available External Client Apps
|
|
119
|
+
uxLog("action", this, c.cyan(t('listingAllExternalClientAppsFrom', { conn: conn.instanceUrl })));
|
|
120
|
+
const externalClientAppQuery = `SELECT Id, MasterLabel, DeveloperName FROM ExternalClientApplication ORDER BY MasterLabel ASC`;
|
|
121
|
+
let allExternalClientApps = [];
|
|
122
|
+
try {
|
|
123
|
+
const externalClientAppQueryRes = await soqlQuery(externalClientAppQuery, conn);
|
|
124
|
+
allExternalClientApps = externalClientAppQueryRes.records;
|
|
125
|
+
}
|
|
126
|
+
catch (_e) {
|
|
127
|
+
// ExternalClientApplication may not be available in all orgs or API versions
|
|
128
|
+
}
|
|
129
|
+
uxLog("log", this, t('externalClientAppsFound', { count: allExternalClientApps.length }));
|
|
130
|
+
const allExternalClientAppsById = new Map(allExternalClientApps.map(app => [app.Id, app]));
|
|
131
|
+
// Also index by MasterLabel and DeveloperName for AppName-based matching (tokens without AppMenuItem link)
|
|
132
|
+
const allExternalClientAppsByName = new Map();
|
|
133
|
+
for (const app of allExternalClientApps) {
|
|
134
|
+
if (app.MasterLabel)
|
|
135
|
+
allExternalClientAppsByName.set(app.MasterLabel.toLowerCase(), app);
|
|
136
|
+
if (app.DeveloperName)
|
|
137
|
+
allExternalClientAppsByName.set(app.DeveloperName.toLowerCase(), app);
|
|
138
|
+
}
|
|
139
|
+
// Query External Client App OAuth Policies to check admin pre-approval setting
|
|
140
|
+
// PermittedUsersPolicyType === 'AdminApprovedPreAuthorized' means admin pre-approved
|
|
141
|
+
const ecaOauthPoliciesQuery = `SELECT Id, ExternalClientApplicationId, PermittedUsersPolicyType FROM ExtlClntAppOauthPlcyCnfg`;
|
|
142
|
+
let allEcaOauthPolicies = [];
|
|
143
|
+
try {
|
|
144
|
+
const ecaOauthPoliciesQueryRes = await soqlQuery(ecaOauthPoliciesQuery, conn);
|
|
145
|
+
allEcaOauthPolicies = ecaOauthPoliciesQueryRes.records;
|
|
146
|
+
}
|
|
147
|
+
catch (_e) {
|
|
148
|
+
// ExtlClntAppOauthConfigurablePolicies may not be available in all orgs or API versions
|
|
149
|
+
}
|
|
150
|
+
const ecaOauthPoliciesByAppId = new Map(allEcaOauthPolicies.map(policy => [policy.ExternalClientApplicationId, policy]));
|
|
114
151
|
// Collect all OAuth Tokens
|
|
115
152
|
uxLog("action", this, c.cyan(t('extractingAllOauthTokensFrom', { conn: conn.instanceUrl })));
|
|
116
153
|
const tokensCountQuery = `SELECT count() FROM OauthToken`;
|
|
@@ -146,20 +183,47 @@ The command's technical implementation involves:
|
|
|
146
183
|
uxLog("log", this, t('oauthTokensRetrieved', { count: allOAuthTokens.length }));
|
|
147
184
|
sortArray(allOAuthTokens, { by: 'AppName' });
|
|
148
185
|
const allOAuthTokensWithStatus = allOAuthTokens.map(oAuthToken => {
|
|
149
|
-
|
|
186
|
+
let adminPreApproved = oAuthToken["AppMenuItem.IsUsingAdminAuthorization"] ?? false;
|
|
150
187
|
let appName = oAuthToken.AppName ? oAuthToken.AppName : 'N/A';
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
188
|
+
let appType = 'Connected App';
|
|
189
|
+
const applicationId = oAuthToken["AppMenuItem.ApplicationId"];
|
|
190
|
+
if (applicationId) {
|
|
191
|
+
if (applicationId.startsWith("0xI")) {
|
|
192
|
+
// External Client App (matched via AppMenuItem.ApplicationId)
|
|
193
|
+
appType = 'Ext Client App';
|
|
194
|
+
const matchingExtClientApp = allExternalClientAppsById.get(applicationId);
|
|
195
|
+
if (matchingExtClientApp) {
|
|
196
|
+
appName = matchingExtClientApp.MasterLabel || matchingExtClientApp.DeveloperName;
|
|
197
|
+
}
|
|
198
|
+
// Use the actual ECA OAuth policy to determine admin pre-approval
|
|
199
|
+
const ecaPolicy = ecaOauthPoliciesByAppId.get(applicationId);
|
|
200
|
+
adminPreApproved = ecaPolicy?.PermittedUsersPolicyType === 'AdminApprovedPreAuthorized';
|
|
155
201
|
}
|
|
156
202
|
else {
|
|
157
|
-
|
|
203
|
+
// Connected App
|
|
204
|
+
const matchingConnectedApp = allConnectedApps.find(app => app.Id === applicationId);
|
|
205
|
+
if (matchingConnectedApp) {
|
|
206
|
+
appName = matchingConnectedApp.Name;
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
throw new SfError(`Connected App with Id ${applicationId} not found among installed Connected Apps.`);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
else if (appName !== 'N/A') {
|
|
214
|
+
// No AppMenuItem link — try to match by AppName against External Client Apps
|
|
215
|
+
const matchingExtClientApp = allExternalClientAppsByName.get(appName.toLowerCase());
|
|
216
|
+
if (matchingExtClientApp) {
|
|
217
|
+
appType = 'Ext Client App';
|
|
218
|
+
appName = matchingExtClientApp.MasterLabel || matchingExtClientApp.DeveloperName;
|
|
219
|
+
const ecaPolicy = ecaOauthPoliciesByAppId.get(matchingExtClientApp.Id);
|
|
220
|
+
adminPreApproved = ecaPolicy?.PermittedUsersPolicyType === 'AdminApprovedPreAuthorized';
|
|
158
221
|
}
|
|
159
222
|
}
|
|
160
223
|
const isIgnored = unsecuredConnectedAppsToIgnoreSet.has(normalizeAppName(appName));
|
|
161
224
|
const appResult = {
|
|
162
225
|
AppName: appName,
|
|
226
|
+
"App Type": appType,
|
|
163
227
|
"Status": isIgnored ? '⚪ Ignored' : (adminPreApproved ? '✅ Secured' : '❌ Unsecured'),
|
|
164
228
|
"Admin Pre-Approved": adminPreApproved ? 'Yes' : 'No',
|
|
165
229
|
"User": oAuthToken["User.Name"] ? oAuthToken["User.Name"] : 'N/A',
|
|
@@ -185,6 +249,7 @@ The command's technical implementation involves:
|
|
|
185
249
|
const uniqueUnsecuredAppNamesAndTokenNumber = {};
|
|
186
250
|
const uniqueUnsecuredAppNamesAndProfiles = {};
|
|
187
251
|
const uniqueUnsecuredAppNamesAndLastUsageDate = {};
|
|
252
|
+
const uniqueUnsecuredAppNamesAndType = {};
|
|
188
253
|
for (const app of unsecuredOAuthTokens) {
|
|
189
254
|
if (uniqueUnsecuredAppNamesAndTokenNumber[app.AppName]) {
|
|
190
255
|
uniqueUnsecuredAppNamesAndTokenNumber[app.AppName]++;
|
|
@@ -192,6 +257,9 @@ The command's technical implementation involves:
|
|
|
192
257
|
else {
|
|
193
258
|
uniqueUnsecuredAppNamesAndTokenNumber[app.AppName] = 1;
|
|
194
259
|
}
|
|
260
|
+
if (!uniqueUnsecuredAppNamesAndType[app.AppName]) {
|
|
261
|
+
uniqueUnsecuredAppNamesAndType[app.AppName] = app["App Type"] || 'Connected App';
|
|
262
|
+
}
|
|
195
263
|
if (!uniqueUnsecuredAppNamesAndProfiles[app.AppName]) {
|
|
196
264
|
uniqueUnsecuredAppNamesAndProfiles[app.AppName] = new Set();
|
|
197
265
|
}
|
|
@@ -209,6 +277,7 @@ The command's technical implementation involves:
|
|
|
209
277
|
const uniqueUnsecureConnectedAppsWithTokens = uniqueUnsecuredAppNames.map(appName => {
|
|
210
278
|
return {
|
|
211
279
|
AppName: appName,
|
|
280
|
+
"App Type": uniqueUnsecuredAppNamesAndType[appName] || 'Connected App',
|
|
212
281
|
NumberOfUnsecuredOAuthTokens: uniqueUnsecuredAppNamesAndTokenNumber[appName],
|
|
213
282
|
LatestUsageDate: uniqueUnsecuredAppNamesAndLastUsageDate[appName] || "N/A",
|
|
214
283
|
ProfilesOfUsersUsingIt: Array.from(uniqueUnsecuredAppNamesAndProfiles[appName] || []).sort().join(', '),
|
|
@@ -252,11 +321,12 @@ The command's technical implementation involves:
|
|
|
252
321
|
const OAuthUsageSetupUrl = `${conn.instanceUrl}/lightning/setup/ConnectedAppsUsage/home`;
|
|
253
322
|
WebSocketClient.sendReportFileMessage(OAuthUsageSetupUrl, t('reviewOAuthConnectedApps'), "actionUrl");
|
|
254
323
|
}
|
|
255
|
-
// Suggest to ignore connected apps that we are not able to find in either Connected Apps, either in OAuthUsage setup page
|
|
324
|
+
// Suggest to ignore connected apps that we are not able to find in either Connected Apps, External Client Apps, either in OAuthUsage setup page
|
|
256
325
|
const uniqueUnsecureConnectedAppsWithTokensNotInConnectedApps = [];
|
|
257
326
|
for (const appName of uniqueUnsecuredAppNames) {
|
|
258
327
|
const matchingConnectedApp = allConnectedApps.find(app => app.Name === appName);
|
|
259
|
-
|
|
328
|
+
const matchingExtClientApp = allExternalClientApps.find(app => app.MasterLabel === appName || app.DeveloperName === appName);
|
|
329
|
+
if (!matchingConnectedApp && !matchingExtClientApp) {
|
|
260
330
|
uniqueUnsecureConnectedAppsWithTokensNotInConnectedApps.push(appName);
|
|
261
331
|
}
|
|
262
332
|
}
|
|
@@ -293,51 +363,74 @@ The command's technical implementation involves:
|
|
|
293
363
|
}
|
|
294
364
|
// Suggest to delete tokens for some connected apps using https://MyDomainName.my.salesforce.com/services/oauth2/revoke?token=(the Delete Token)
|
|
295
365
|
if (!isCI && unsecuredOAuthTokens.length > 0) {
|
|
296
|
-
const
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
choices: uniqueUnsecureConnectedAppsWithTokensNotInConnectedApps.map(appName => ({ title: appName, value: appName })),
|
|
308
|
-
description: t('oauthTokensForSelectedAppsWillBeDeleted'),
|
|
366
|
+
const deletableOAuthTokens = unsecuredOAuthTokens.filter(token => uniqueUnsecureConnectedAppsWithTokensNotInConnectedApps.includes(token.AppName));
|
|
367
|
+
if (deletableOAuthTokens.length > 0) {
|
|
368
|
+
uxLog("action", this, c.cyan(t('reviewingDeletableAuthTokens', { count: deletableOAuthTokens.length })));
|
|
369
|
+
uxLogTable(this, deletableOAuthTokens);
|
|
370
|
+
const outputFileDeletableAuthTokens = await generateReportPath('deletable-auth-tokens', '');
|
|
371
|
+
await generateCsvFile(deletableOAuthTokens, outputFileDeletableAuthTokens, { fileTitle: t('deletableAuthTokensFiletitle') });
|
|
372
|
+
const confirmDeleteRes = await prompts({
|
|
373
|
+
type: 'confirm',
|
|
374
|
+
message: t('doYouWantToDeleteAuthTokens'),
|
|
375
|
+
description: t('deletePhantomAppsTokensDescription'),
|
|
376
|
+
initial: false,
|
|
309
377
|
});
|
|
310
|
-
if (
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
378
|
+
if (confirmDeleteRes.value === true) {
|
|
379
|
+
// Prompt user to select the apps
|
|
380
|
+
const deleteTokensPromptRes = await prompts({
|
|
381
|
+
type: 'multiselect',
|
|
382
|
+
message: t('selectTheAppsForWhichYouWant'),
|
|
383
|
+
choices: uniqueUnsecureConnectedAppsWithTokensNotInConnectedApps.map(appName => {
|
|
384
|
+
const tokenCount = uniqueUnsecuredAppNamesAndTokenNumber[appName] || 0;
|
|
385
|
+
return {
|
|
386
|
+
title: `${appName} (${tokenCount} token${tokenCount > 1 ? 's' : ''})`,
|
|
387
|
+
value: appName,
|
|
388
|
+
};
|
|
389
|
+
}),
|
|
390
|
+
description: t('oauthTokensForSelectedAppsWillBeDeleted'),
|
|
391
|
+
});
|
|
392
|
+
if (deleteTokensPromptRes?.value.length > 0) {
|
|
393
|
+
const tokensToDelete = unsecuredOAuthTokens.filter(token => deleteTokensPromptRes.value.includes(token.AppName));
|
|
394
|
+
const deletedOAuthTokens = await this.revokeOAuthTokens(tokensToDelete, allOAuthTokens, conn);
|
|
395
|
+
if (deletedOAuthTokens.length > 0) {
|
|
396
|
+
const outputFileDeletedAuthTokens = await generateReportPath('deleted-auth-tokens', '');
|
|
397
|
+
await generateCsvFile(deletedOAuthTokens, outputFileDeletedAuthTokens, { fileTitle: t('deletedAuthTokensFiletitle') });
|
|
329
398
|
}
|
|
330
|
-
counter++;
|
|
331
|
-
WebSocketClient.sendProgressStepMessage(counter, tokensToDelete.length);
|
|
332
399
|
}
|
|
333
|
-
WebSocketClient.sendProgressEndMessage(tokensToDelete.length);
|
|
334
|
-
uxLog("action", this, c.green(t('oauthTokenDeletionCompleted')));
|
|
335
400
|
}
|
|
336
401
|
}
|
|
337
402
|
}
|
|
338
403
|
if ((this.argv || []).includes('unsecure-connected-apps')) {
|
|
339
404
|
process.exitCode = numberWarnings > 0 ? 1 : 0;
|
|
340
405
|
}
|
|
406
|
+
// Handle secured apps that also have stale unsecured tokens (mixed-status apps)
|
|
407
|
+
if (!isCI && unsecuredOAuthTokens.length > 0) {
|
|
408
|
+
const securedAppsWithUnsecuredTokensMap = new Map();
|
|
409
|
+
for (const token of unsecuredOAuthTokens) {
|
|
410
|
+
const hasSecuredToken = allOAuthTokensWithStatus.some(t => t.AppName === token.AppName && t.Status === '✅ Secured');
|
|
411
|
+
if (hasSecuredToken) {
|
|
412
|
+
const existing = securedAppsWithUnsecuredTokensMap.get(token.AppName) ?? [];
|
|
413
|
+
existing.push(token);
|
|
414
|
+
securedAppsWithUnsecuredTokensMap.set(token.AppName, existing);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
for (const [appName, staleTokens] of securedAppsWithUnsecuredTokensMap) {
|
|
418
|
+
uxLog("action", this, c.yellow(t('securedAppHasUnsecuredTokens', { appName, count: staleTokens.length })));
|
|
419
|
+
uxLogTable(this, staleTokens);
|
|
420
|
+
const safeAppName = appName.replace(/[^a-zA-Z0-9_-]/g, '_');
|
|
421
|
+
const outputFileStaleTokens = await generateReportPath(`unsecured-tokens-secured-app-${safeAppName}`, '');
|
|
422
|
+
await generateCsvFile(staleTokens, outputFileStaleTokens, { fileTitle: t('unsecuredTokensForSecuredAppFiletitle', { appName }) });
|
|
423
|
+
const confirmDeleteStaleRes = await prompts({
|
|
424
|
+
type: 'confirm',
|
|
425
|
+
message: t('doYouWantToDeleteStaleTokensForApp', { appName, count: staleTokens.length, total: allOAuthTokensWithStatus.filter(t => t.AppName === appName).length }),
|
|
426
|
+
description: t('deletePhantomAppsTokensDescription'),
|
|
427
|
+
initial: false,
|
|
428
|
+
});
|
|
429
|
+
if (confirmDeleteStaleRes.value === true) {
|
|
430
|
+
await this.revokeOAuthTokens(staleTokens, allOAuthTokens, conn);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
341
434
|
return {
|
|
342
435
|
status: numberWarnings === 0 ? 'success' : 'warning',
|
|
343
436
|
allOAuthTokensWithStatus: allOAuthTokensWithStatus,
|
|
@@ -345,5 +438,33 @@ The command's technical implementation involves:
|
|
|
345
438
|
unsecuredConnectedApps: uniqueUnsecuredAppNames,
|
|
346
439
|
};
|
|
347
440
|
}
|
|
441
|
+
async revokeOAuthTokens(tokensToRevoke, allOAuthTokens, conn) {
|
|
442
|
+
WebSocketClient.sendProgressStartMessage(t('deletingOAuthTokens', { count: tokensToRevoke.length }), tokensToRevoke.length);
|
|
443
|
+
const revokedTokens = [];
|
|
444
|
+
let counter = 0;
|
|
445
|
+
for (const tokenToDelete of tokensToRevoke) {
|
|
446
|
+
const deleteTokenRecord = allOAuthTokens.find(tok => tok.Id === tokenToDelete["x-Token-Id"]);
|
|
447
|
+
if (!deleteTokenRecord) {
|
|
448
|
+
uxLog("error", this, c.red(t('oauthTokenNotFoundSkipping', { tokenId: tokenToDelete["x-Token-Id"], appName: tokenToDelete.AppName })));
|
|
449
|
+
counter++;
|
|
450
|
+
continue;
|
|
451
|
+
}
|
|
452
|
+
const deleteTokenUrl = `${conn.instanceUrl}/services/oauth2/revoke?token=${encodeURIComponent(deleteTokenRecord.DeleteToken)}`;
|
|
453
|
+
uxLog("log", this, t('deletingOAuthTokenForApp', { tokenId: tokenToDelete["x-Token-Id"], appName: tokenToDelete.AppName }));
|
|
454
|
+
try {
|
|
455
|
+
await conn.requestPost(deleteTokenUrl, {});
|
|
456
|
+
uxLog("success", this, c.green(t('oauthTokenDeleted', { tokenId: tokenToDelete["x-Token-Id"], appName: tokenToDelete.AppName })));
|
|
457
|
+
revokedTokens.push(tokenToDelete);
|
|
458
|
+
}
|
|
459
|
+
catch (error) {
|
|
460
|
+
uxLog("error", this, c.red(t('failedToDeleteOAuthToken', { tokenId: tokenToDelete["x-Token-Id"], appName: tokenToDelete.AppName, error: error })));
|
|
461
|
+
}
|
|
462
|
+
counter++;
|
|
463
|
+
WebSocketClient.sendProgressStepMessage(counter, tokensToRevoke.length);
|
|
464
|
+
}
|
|
465
|
+
WebSocketClient.sendProgressEndMessage(tokensToRevoke.length);
|
|
466
|
+
uxLog("action", this, c.green(t('oauthTokenDeletionCompleted')));
|
|
467
|
+
return revokedTokens;
|
|
468
|
+
}
|
|
348
469
|
}
|
|
349
470
|
//# sourceMappingURL=unsecure-connected-apps.js.map
|
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
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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"}
|
|
@@ -2564,6 +2564,13 @@ export function listMetadataTypes() {
|
|
|
2564
2564
|
suffix: 'mcpServerDefinition',
|
|
2565
2565
|
xmlName: 'McpServerDefinition',
|
|
2566
2566
|
},
|
|
2567
|
+
{
|
|
2568
|
+
directoryName: 'meetingPlaybookDefinitions',
|
|
2569
|
+
inFolder: false,
|
|
2570
|
+
metaFile: false,
|
|
2571
|
+
suffix: 'meetingPlaybookDefinition',
|
|
2572
|
+
xmlName: 'MeetingPlaybookDefinition',
|
|
2573
|
+
},
|
|
2567
2574
|
{
|
|
2568
2575
|
directoryName: 'messagingChannels',
|
|
2569
2576
|
inFolder: false,
|
|
@@ -3601,6 +3608,41 @@ export function listMetadataTypes() {
|
|
|
3601
3608
|
suffix: 'synonymDictionary',
|
|
3602
3609
|
xmlName: 'SynonymDictionary',
|
|
3603
3610
|
},
|
|
3611
|
+
{
|
|
3612
|
+
directoryName: 'TelemetryActionDefinitions',
|
|
3613
|
+
inFolder: false,
|
|
3614
|
+
metaFile: false,
|
|
3615
|
+
suffix: 'TelemetryActionDefinition',
|
|
3616
|
+
xmlName: 'TelemetryActionDefinition',
|
|
3617
|
+
},
|
|
3618
|
+
{
|
|
3619
|
+
directoryName: 'TelemetryActionDefSteps',
|
|
3620
|
+
inFolder: false,
|
|
3621
|
+
metaFile: false,
|
|
3622
|
+
suffix: 'TelemetryActionDefStep',
|
|
3623
|
+
xmlName: 'TelemetryActionDefStep',
|
|
3624
|
+
},
|
|
3625
|
+
{
|
|
3626
|
+
directoryName: 'TelemetryActnDefStepAttrs',
|
|
3627
|
+
inFolder: false,
|
|
3628
|
+
metaFile: false,
|
|
3629
|
+
suffix: 'TelemetryActnDefStepAttr',
|
|
3630
|
+
xmlName: 'TelemetryActnDefStepAttr',
|
|
3631
|
+
},
|
|
3632
|
+
{
|
|
3633
|
+
directoryName: 'TelemetryDefinitions',
|
|
3634
|
+
inFolder: false,
|
|
3635
|
+
metaFile: false,
|
|
3636
|
+
suffix: 'TelemetryDefinition',
|
|
3637
|
+
xmlName: 'TelemetryDefinition',
|
|
3638
|
+
},
|
|
3639
|
+
{
|
|
3640
|
+
directoryName: 'TelemetryDefinitionVersions',
|
|
3641
|
+
inFolder: false,
|
|
3642
|
+
metaFile: false,
|
|
3643
|
+
suffix: 'TelemetryDefinitionVersion',
|
|
3644
|
+
xmlName: 'TelemetryDefinitionVersion',
|
|
3645
|
+
},
|
|
3604
3646
|
{
|
|
3605
3647
|
directoryName: 'territories',
|
|
3606
3648
|
inFolder: false,
|