@simplysf/simply-permissions 1.2.20 → 1.2.26
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/LICENSE.txt +1 -1
- package/README.md +4 -0
- package/lib/commands/simply/permissions/analyze.d.ts +2 -2
- package/lib/commands/simply/permissions/analyze.js +4 -7
- package/lib/commands/simply/permissions/analyze.js.map +1 -1
- package/lib/commands/simply/permissions/build.js +1 -1
- package/lib/common/permissionSetXmlTemplate.js +1 -1
- package/lib/common/permissionsReportTemplate.js +14 -29
- package/lib/common/permissionsReportTemplate.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/schemas/build/permissionConfig.js +1 -1
- package/messages/simply.permissions.analyze.md +0 -4
- package/package.json +6 -4
package/LICENSE.txt
CHANGED
package/README.md
CHANGED
|
@@ -170,3 +170,7 @@ The `--config` flag on `sf simply permissions build` takes the path to a JSON fi
|
|
|
170
170
|
| `recordTypeVisibilities` | `Record<string, RecordTypeVisibility>` | `Object.RecordType` API name | Overrides record type visibility. Fields: `visible` (optional boolean). Only applied when `--include-record-types` is also passed. |
|
|
171
171
|
| `userPermissions` | `Record<string, boolean>` | User permission API name | Enables (`true`) or disables (`false`) individual user permissions. |
|
|
172
172
|
| `hasActivationRequired` | `boolean` | — | Whether the generated permission set requires activation before it grants access. Defaults to `false`. |
|
|
173
|
+
|
|
174
|
+
## License
|
|
175
|
+
|
|
176
|
+
Licensed under the [Apache-2.0](https://raw.githubusercontent.com/SimplySF/simply-node/main/LICENSE.txt) license.
|
|
@@ -14,10 +14,10 @@ export default class PermissionsAnalyze extends SfCommand<PermissionsAnalyzeResu
|
|
|
14
14
|
static readonly description: string;
|
|
15
15
|
static readonly examples: string[];
|
|
16
16
|
static readonly flags: {
|
|
17
|
-
'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
17
|
filter: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
19
18
|
output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
|
-
'
|
|
19
|
+
'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined>;
|
|
20
|
+
'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org>;
|
|
21
21
|
'flags-dir': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
22
22
|
};
|
|
23
23
|
/** @returns The output file path and the number of permission sets/groups reported on. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2026, Clay Chipps
|
|
2
|
+
* Copyright (c) 2026, Clay Chipps.
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
import fs from 'node:fs/promises';
|
|
17
17
|
import { Messages } from '@salesforce/core';
|
|
18
18
|
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
|
|
19
|
+
import { requireConnection, targetOrgFlags } from '@simplysf/simply-plugin-kit';
|
|
19
20
|
import { LOCAL_PACKAGE_LABEL, queryRecords, resolvePackageNamesBySubjectId } from '@simplysf/simply-core';
|
|
20
21
|
import { buildPermissionsReportHtml, } from '../../../common/permissionsReportTemplate.js';
|
|
21
22
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
@@ -43,7 +44,7 @@ export default class PermissionsAnalyze extends SfCommand {
|
|
|
43
44
|
static examples = messages.getMessages('examples');
|
|
44
45
|
static flags = {
|
|
45
46
|
...SfCommand.baseFlags,
|
|
46
|
-
|
|
47
|
+
...targetOrgFlags,
|
|
47
48
|
filter: Flags.string({
|
|
48
49
|
summary: messages.getMessage('flags.filter.summary'),
|
|
49
50
|
description: messages.getMessage('flags.filter.description'),
|
|
@@ -55,15 +56,11 @@ export default class PermissionsAnalyze extends SfCommand {
|
|
|
55
56
|
description: messages.getMessage('flags.output.description'),
|
|
56
57
|
default: 'permissions_report.html',
|
|
57
58
|
}),
|
|
58
|
-
'target-org': Flags.requiredOrg(),
|
|
59
59
|
};
|
|
60
60
|
/** @returns The output file path and the number of permission sets/groups reported on. */
|
|
61
61
|
async run() {
|
|
62
62
|
const { flags } = await this.parse(PermissionsAnalyze);
|
|
63
|
-
const connection =
|
|
64
|
-
if (!connection) {
|
|
65
|
-
throw messages.createError('error.targetOrgConnectionFailed');
|
|
66
|
-
}
|
|
63
|
+
const connection = requireConnection(flags);
|
|
67
64
|
this.spinner.start(messages.getMessage('info.fetchingPermissionSets'));
|
|
68
65
|
const psResult = await connection.autoFetchQuery('SELECT Id, Name, Label, NamespacePrefix, IsCustom, Description, Type FROM PermissionSet WHERE IsOwnedByProfile = false');
|
|
69
66
|
const psgResult = await connection.autoFetchQuery('SELECT Id, DeveloperName, MasterLabel, NamespacePrefix, Description FROM PermissionSetGroup');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../../src/commands/simply/permissions/analyze.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EACL,0BAA0B,GAM3B,MAAM,8CAA8C,CAAC;AAEtD,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,8BAA8B,EAAE,4BAA4B,CAAC,CAAC;AAsBrG,sGAAsG;AACtG,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,MAA8B;IACxD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CACjH,CAAC;AACJ,CAAC;AASD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAmC;IAC1E,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,CAAU,KAAK,GAAG;QAC7B,GAAG,SAAS,CAAC,SAAS;QACtB,
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../../src/commands/simply/permissions/analyze.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2026, Clay Chipps
|
|
2
|
+
* Copyright (c) 2026, Clay Chipps.
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -13,10 +13,8 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import
|
|
17
|
-
|
|
18
|
-
// so none of the templates below need a hand-rolled escapeHtml() call.
|
|
19
|
-
const handlebars = Handlebars.create();
|
|
16
|
+
import { COLLAPSIBLE_SECTION_CSS, createReportHandlebars, renderReportPage } from '@simplysf/simply-report';
|
|
17
|
+
const handlebars = createReportHandlebars();
|
|
20
18
|
// `Field` is the fully-qualified `Object.Field` name; the report only displays the field half.
|
|
21
19
|
handlebars.registerHelper('fieldName', (field) => field.split('.')[1] ?? field);
|
|
22
20
|
const objectPermsTableSource = `
|
|
@@ -56,27 +54,15 @@ const permissionSetGroupSource = `
|
|
|
56
54
|
{{> fieldPermsTable perms=fieldPerms}}
|
|
57
55
|
</div>
|
|
58
56
|
</details>`;
|
|
59
|
-
const reportSource =
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
h1
|
|
68
|
-
.package-section { background: white; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); margin-bottom: 20px; padding: 15px; }
|
|
69
|
-
details { margin-bottom: 10px; border: 1px solid #ddd; border-radius: 4px; }
|
|
70
|
-
summary { padding: 12px; cursor: pointer; font-weight: bold; background: #eee; outline: none; }
|
|
71
|
-
summary:hover { background: #e0e0e0; }
|
|
72
|
-
.content { padding: 15px; background: white; }
|
|
73
|
-
table { width: 100%; border-collapse: collapse; margin-top: 10px; margin-bottom: 15px; font-size: 0.9em; }
|
|
74
|
-
th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
|
|
75
|
-
th { background-color: #f8f9fa; }
|
|
76
|
-
</style>
|
|
77
|
-
</head>
|
|
78
|
-
<body>
|
|
79
|
-
<h1>Permissions Report</h1>
|
|
57
|
+
const reportSource = renderReportPage({
|
|
58
|
+
title: 'Permissions Report',
|
|
59
|
+
css: [
|
|
60
|
+
COLLAPSIBLE_SECTION_CSS,
|
|
61
|
+
' table { width: 100%; border-collapse: collapse; margin-top: 10px; margin-bottom: 15px; font-size: 0.9em; }',
|
|
62
|
+
' th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }',
|
|
63
|
+
' th { background-color: #f8f9fa; }',
|
|
64
|
+
].join('\n'),
|
|
65
|
+
body: ` <h1>Permissions Report</h1>
|
|
80
66
|
<p>Org: <strong>{{username}}</strong> | Generated: {{reportDate}}</p>
|
|
81
67
|
{{#each packages}}
|
|
82
68
|
<div class="package-section" data-package="{{name}}">
|
|
@@ -86,9 +72,8 @@ const reportSource = `<!DOCTYPE html>
|
|
|
86
72
|
<h3>Permission Set Groups ({{permissionSetGroups.length}})</h3>
|
|
87
73
|
{{#each permissionSetGroups}}{{> permissionSetGroup}}{{/each}}
|
|
88
74
|
</div>
|
|
89
|
-
{{/each}}
|
|
90
|
-
|
|
91
|
-
</html>`;
|
|
75
|
+
{{/each}}`,
|
|
76
|
+
});
|
|
92
77
|
handlebars.registerPartial('objectPermsTable', objectPermsTableSource);
|
|
93
78
|
handlebars.registerPartial('fieldPermsTable', fieldPermsTableSource);
|
|
94
79
|
handlebars.registerPartial('permissionSet', permissionSetSource);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissionsReportTemplate.js","sourceRoot":"","sources":["../../src/common/permissionsReportTemplate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"permissionsReportTemplate.js","sourceRoot":"","sources":["../../src/common/permissionsReportTemplate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAgD5G,MAAM,UAAU,GAAG,sBAAsB,EAAE,CAAC;AAE5C,+FAA+F;AAC/F,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;AAEhG,MAAM,sBAAsB,GAAG;;;;;;CAM9B,CAAC;AAEF,MAAM,qBAAqB,GAAG;;;;;;CAM7B,CAAC;AAEF,MAAM,mBAAmB,GAAG;;;;;;;;;;WAUjB,CAAC;AAEZ,MAAM,wBAAwB,GAAG;;;;;;;;;;;WAWtB,CAAC;AAEZ,MAAM,YAAY,GAAG,gBAAgB,CAAC;IACpC,KAAK,EAAE,oBAAoB;IAC3B,GAAG,EAAE;QACH,uBAAuB;QACvB,8GAA8G;QAC9G,sEAAsE;QACtE,qCAAqC;KACtC,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,IAAI,EAAE;;;;;;;;;;YAUI;CACX,CAAC,CAAC;AAEH,UAAU,CAAC,eAAe,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;AACvE,UAAU,CAAC,eAAe,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;AACrE,UAAU,CAAC,eAAe,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;AACjE,UAAU,CAAC,eAAe,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC;AAE3E,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAStD;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAI1C;IACC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEtD,MAAM,QAAQ,GAAqB,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7E,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEnC,OAAO;YACL,IAAI;YACJ,cAAc,EAAE,IAAI,EAAE,cAAc,IAAI,EAAE;YAC1C,mBAAmB,EAAE,CAAC,IAAI,EAAE,mBAAmB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACrE,GAAG,KAAK;gBACR,iBAAiB,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;aACtF,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC1D,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -28,10 +28,6 @@ One or more PermissionSet (Name) or PermissionSetGroup (DeveloperName) API names
|
|
|
28
28
|
|
|
29
29
|
- <%= config.bin %> <%= command.id %> --target-org myOrg --output reports/permissions.html --filter My_Permission_Set --filter Another_Set
|
|
30
30
|
|
|
31
|
-
# error.targetOrgConnectionFailed
|
|
32
|
-
|
|
33
|
-
Unable to establish connection to the org.
|
|
34
|
-
|
|
35
31
|
# info.fetchingPermissionSets
|
|
36
32
|
|
|
37
33
|
Fetching permission sets and groups...
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysf/simply-permissions",
|
|
3
3
|
"description": "Utilities for working with permissions",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.26",
|
|
5
5
|
"author": "@ClayChipps",
|
|
6
6
|
"homepage": "https://github.com/SimplySF/simply-node",
|
|
7
7
|
"bugs": "https://github.com/SimplySF/simply-node/issues",
|
|
@@ -61,7 +61,9 @@
|
|
|
61
61
|
"@salesforce/kit": "^3.2.6",
|
|
62
62
|
"@salesforce/sf-plugins-core": "^12.2.16",
|
|
63
63
|
"@salesforce/source-deploy-retrieve": "^12.37.2",
|
|
64
|
-
"@simplysf/simply-core": "^1.1.
|
|
64
|
+
"@simplysf/simply-core": "^1.1.17",
|
|
65
|
+
"@simplysf/simply-plugin-kit": "^1.0.4",
|
|
66
|
+
"@simplysf/simply-report": "^1.0.3",
|
|
65
67
|
"handlebars": "^4.7.9",
|
|
66
68
|
"xmlbuilder2": "^4.0.3",
|
|
67
69
|
"zod": "^4.1.12"
|
|
@@ -85,7 +87,7 @@
|
|
|
85
87
|
"readme": "oclif readme --no-aliases",
|
|
86
88
|
"test": "wireit",
|
|
87
89
|
"test:coverage": "vitest run --coverage --project simply-permissions",
|
|
88
|
-
"test:nuts": "vitest run --config vitest.nuts.config.ts --project simply-permissions",
|
|
90
|
+
"test:nuts": "vitest run --config ../../vitest.nuts.config.ts --project simply-permissions",
|
|
89
91
|
"test:only": "wireit",
|
|
90
92
|
"test:watch": "vitest watch --project simply-permissions"
|
|
91
93
|
},
|
|
@@ -210,5 +212,5 @@
|
|
|
210
212
|
"output": []
|
|
211
213
|
}
|
|
212
214
|
},
|
|
213
|
-
"gitHead": "
|
|
215
|
+
"gitHead": "c1134ddedb7cd88cfdd28e5e9596c2d28028b2f3"
|
|
214
216
|
}
|