@robertraaijmakers/pptb-securityplugin 0.1.0 → 0.1.1
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/README.md +6 -22
- package/dist/README.md +62 -0
- package/dist/npm-shrinkwrap.json +490 -0
- package/package.json +3 -3
- package/docs/index.md +0 -56
package/README.md
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
# Security Roles Explorer
|
|
2
|
-
|
|
3
|
-
Power Platform ToolBox tool for inspecting and managing Dataverse security roles, table privileges, and user assignments.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
Security Roles Explorer helps you quickly understand which roles grant access to which tables and lets you update privileges or user-role assignments in one place.
|
|
2
|
+
Power Platform ToolBox tool for inspecting and managing Dataverse security roles, table privileges, and user assignments. Helps you quickly understand which roles grant access to which tables and lets you update privileges or user-role assignments in one place.
|
|
8
3
|
|
|
9
4
|
## Features
|
|
10
|
-
|
|
11
5
|
- View role privileges by role or by table
|
|
12
6
|
- Batch cache of role privilege data for faster loading
|
|
13
7
|
- Sort and filter by privilege level
|
|
@@ -19,12 +13,10 @@ Security Roles Explorer helps you quickly understand which roles grant access to
|
|
|
19
13
|
- Light/dark theme support with a manual toggle
|
|
20
14
|
|
|
21
15
|
## Requirements
|
|
22
|
-
|
|
23
16
|
- Power Platform ToolBox (desktop app)
|
|
24
17
|
- Node.js 18+ (recommended)
|
|
25
18
|
|
|
26
19
|
## Development
|
|
27
|
-
|
|
28
20
|
Install dependencies:
|
|
29
21
|
|
|
30
22
|
```bash
|
|
@@ -43,24 +35,18 @@ Watch mode:
|
|
|
43
35
|
npm run build:watch
|
|
44
36
|
```
|
|
45
37
|
|
|
46
|
-
## Loading in ToolBox
|
|
47
|
-
|
|
38
|
+
## Loading in ToolBox (for developers)
|
|
48
39
|
1. Enable Debug Menu in ToolBox settings.
|
|
49
40
|
2. Use Debug > Load Local Tool and select this folder.
|
|
50
41
|
3. Close and reopen the tool to refresh changes.
|
|
51
42
|
|
|
52
43
|
## Usage
|
|
53
|
-
|
|
54
44
|
1. Select a connection in ToolBox.
|
|
55
|
-
2.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
3. Use the filters and sort controls to narrow results.
|
|
59
|
-
4. Change privilege levels in the grid and click Apply changes.
|
|
60
|
-
5. Use the Assign security roles tab to add/remove roles for users.
|
|
45
|
+
2. Use the filters and sort controls to narrow results.
|
|
46
|
+
3. Change privilege levels in the grid and click Apply changes.
|
|
47
|
+
4. Use the Assign security roles tab to add/remove roles for users.
|
|
61
48
|
|
|
62
49
|
## Contributing
|
|
63
|
-
|
|
64
50
|
1. Fork the repo.
|
|
65
51
|
2. Create a feature branch.
|
|
66
52
|
3. Make changes with small, focused commits.
|
|
@@ -68,11 +54,9 @@ npm run build:watch
|
|
|
68
54
|
5. Open a pull request with a clear description and screenshots if UI changes.
|
|
69
55
|
|
|
70
56
|
## Troubleshooting
|
|
71
|
-
|
|
72
57
|
- If the tool shows "Not connected", select a connection in ToolBox and reload.
|
|
73
58
|
- If role privileges fail to load, verify the connection user has the required security role permissions.
|
|
74
59
|
- If UI changes do not appear, ensure `npm run build` completed and reopen the tool.
|
|
75
60
|
|
|
76
61
|
## License
|
|
77
|
-
|
|
78
|
-
MIT
|
|
62
|
+
MIT
|
package/dist/README.md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Security Roles Explorer
|
|
2
|
+
Power Platform ToolBox tool for inspecting and managing Dataverse security roles, table privileges, and user assignments. Helps you quickly understand which roles grant access to which tables and lets you update privileges or user-role assignments in one place.
|
|
3
|
+
|
|
4
|
+
## Features
|
|
5
|
+
- View role privileges by role or by table
|
|
6
|
+
- Batch cache of role privilege data for faster loading
|
|
7
|
+
- Sort and filter by privilege level
|
|
8
|
+
- Rights filter (all / with rights / without rights)
|
|
9
|
+
- Role multi-select filter (entity mode)
|
|
10
|
+
- Apply or undo pending privilege changes
|
|
11
|
+
- Assign or remove roles for users (role -> users or user -> roles)
|
|
12
|
+
- Activity log with timestamps
|
|
13
|
+
- Light/dark theme support with a manual toggle
|
|
14
|
+
|
|
15
|
+
## Requirements
|
|
16
|
+
- Power Platform ToolBox (desktop app)
|
|
17
|
+
- Node.js 18+ (recommended)
|
|
18
|
+
|
|
19
|
+
## Development
|
|
20
|
+
Install dependencies:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Build once:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm run build
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Watch mode:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npm run build:watch
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Loading in ToolBox (for developers)
|
|
39
|
+
1. Enable Debug Menu in ToolBox settings.
|
|
40
|
+
2. Use Debug > Load Local Tool and select this folder.
|
|
41
|
+
3. Close and reopen the tool to refresh changes.
|
|
42
|
+
|
|
43
|
+
## Usage
|
|
44
|
+
1. Select a connection in ToolBox.
|
|
45
|
+
2. Use the filters and sort controls to narrow results.
|
|
46
|
+
3. Change privilege levels in the grid and click Apply changes.
|
|
47
|
+
4. Use the Assign security roles tab to add/remove roles for users.
|
|
48
|
+
|
|
49
|
+
## Contributing
|
|
50
|
+
1. Fork the repo.
|
|
51
|
+
2. Create a feature branch.
|
|
52
|
+
3. Make changes with small, focused commits.
|
|
53
|
+
4. Run `npm run build` and verify in ToolBox.
|
|
54
|
+
5. Open a pull request with a clear description and screenshots if UI changes.
|
|
55
|
+
|
|
56
|
+
## Troubleshooting
|
|
57
|
+
- If the tool shows "Not connected", select a connection in ToolBox and reload.
|
|
58
|
+
- If role privileges fail to load, verify the connection user has the required security role permissions.
|
|
59
|
+
- If UI changes do not appear, ensure `npm run build` completed and reopen the tool.
|
|
60
|
+
|
|
61
|
+
## License
|
|
62
|
+
MIT
|
|
@@ -0,0 +1,490 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@robertraaijmakers/pptb-securityplugin",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"lockfileVersion": 3,
|
|
5
|
+
"requires": true,
|
|
6
|
+
"packages": {
|
|
7
|
+
"": {
|
|
8
|
+
"name": "@robertraaijmakers/pptb-securityplugin",
|
|
9
|
+
"version": "0.1.0",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"chart.js": "^4.4.1"
|
|
13
|
+
},
|
|
14
|
+
"devDependencies": {
|
|
15
|
+
"@pptb/types": "1.0.19-beta.3",
|
|
16
|
+
"esbuild": "^0.20.2",
|
|
17
|
+
"typescript": "^5.4.5"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"node_modules/@esbuild/aix-ppc64": {
|
|
21
|
+
"version": "0.20.2",
|
|
22
|
+
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
|
|
23
|
+
"integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==",
|
|
24
|
+
"cpu": [
|
|
25
|
+
"ppc64"
|
|
26
|
+
],
|
|
27
|
+
"dev": true,
|
|
28
|
+
"license": "MIT",
|
|
29
|
+
"optional": true,
|
|
30
|
+
"os": [
|
|
31
|
+
"aix"
|
|
32
|
+
],
|
|
33
|
+
"engines": {
|
|
34
|
+
"node": ">=12"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"node_modules/@esbuild/android-arm": {
|
|
38
|
+
"version": "0.20.2",
|
|
39
|
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz",
|
|
40
|
+
"integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==",
|
|
41
|
+
"cpu": [
|
|
42
|
+
"arm"
|
|
43
|
+
],
|
|
44
|
+
"dev": true,
|
|
45
|
+
"license": "MIT",
|
|
46
|
+
"optional": true,
|
|
47
|
+
"os": [
|
|
48
|
+
"android"
|
|
49
|
+
],
|
|
50
|
+
"engines": {
|
|
51
|
+
"node": ">=12"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"node_modules/@esbuild/android-arm64": {
|
|
55
|
+
"version": "0.20.2",
|
|
56
|
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz",
|
|
57
|
+
"integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==",
|
|
58
|
+
"cpu": [
|
|
59
|
+
"arm64"
|
|
60
|
+
],
|
|
61
|
+
"dev": true,
|
|
62
|
+
"license": "MIT",
|
|
63
|
+
"optional": true,
|
|
64
|
+
"os": [
|
|
65
|
+
"android"
|
|
66
|
+
],
|
|
67
|
+
"engines": {
|
|
68
|
+
"node": ">=12"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"node_modules/@esbuild/android-x64": {
|
|
72
|
+
"version": "0.20.2",
|
|
73
|
+
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz",
|
|
74
|
+
"integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==",
|
|
75
|
+
"cpu": [
|
|
76
|
+
"x64"
|
|
77
|
+
],
|
|
78
|
+
"dev": true,
|
|
79
|
+
"license": "MIT",
|
|
80
|
+
"optional": true,
|
|
81
|
+
"os": [
|
|
82
|
+
"android"
|
|
83
|
+
],
|
|
84
|
+
"engines": {
|
|
85
|
+
"node": ">=12"
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"node_modules/@esbuild/darwin-arm64": {
|
|
89
|
+
"version": "0.20.2",
|
|
90
|
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz",
|
|
91
|
+
"integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==",
|
|
92
|
+
"cpu": [
|
|
93
|
+
"arm64"
|
|
94
|
+
],
|
|
95
|
+
"dev": true,
|
|
96
|
+
"license": "MIT",
|
|
97
|
+
"optional": true,
|
|
98
|
+
"os": [
|
|
99
|
+
"darwin"
|
|
100
|
+
],
|
|
101
|
+
"engines": {
|
|
102
|
+
"node": ">=12"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"node_modules/@esbuild/darwin-x64": {
|
|
106
|
+
"version": "0.20.2",
|
|
107
|
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz",
|
|
108
|
+
"integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==",
|
|
109
|
+
"cpu": [
|
|
110
|
+
"x64"
|
|
111
|
+
],
|
|
112
|
+
"dev": true,
|
|
113
|
+
"license": "MIT",
|
|
114
|
+
"optional": true,
|
|
115
|
+
"os": [
|
|
116
|
+
"darwin"
|
|
117
|
+
],
|
|
118
|
+
"engines": {
|
|
119
|
+
"node": ">=12"
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"node_modules/@esbuild/freebsd-arm64": {
|
|
123
|
+
"version": "0.20.2",
|
|
124
|
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz",
|
|
125
|
+
"integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==",
|
|
126
|
+
"cpu": [
|
|
127
|
+
"arm64"
|
|
128
|
+
],
|
|
129
|
+
"dev": true,
|
|
130
|
+
"license": "MIT",
|
|
131
|
+
"optional": true,
|
|
132
|
+
"os": [
|
|
133
|
+
"freebsd"
|
|
134
|
+
],
|
|
135
|
+
"engines": {
|
|
136
|
+
"node": ">=12"
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"node_modules/@esbuild/freebsd-x64": {
|
|
140
|
+
"version": "0.20.2",
|
|
141
|
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz",
|
|
142
|
+
"integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==",
|
|
143
|
+
"cpu": [
|
|
144
|
+
"x64"
|
|
145
|
+
],
|
|
146
|
+
"dev": true,
|
|
147
|
+
"license": "MIT",
|
|
148
|
+
"optional": true,
|
|
149
|
+
"os": [
|
|
150
|
+
"freebsd"
|
|
151
|
+
],
|
|
152
|
+
"engines": {
|
|
153
|
+
"node": ">=12"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"node_modules/@esbuild/linux-arm": {
|
|
157
|
+
"version": "0.20.2",
|
|
158
|
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz",
|
|
159
|
+
"integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==",
|
|
160
|
+
"cpu": [
|
|
161
|
+
"arm"
|
|
162
|
+
],
|
|
163
|
+
"dev": true,
|
|
164
|
+
"license": "MIT",
|
|
165
|
+
"optional": true,
|
|
166
|
+
"os": [
|
|
167
|
+
"linux"
|
|
168
|
+
],
|
|
169
|
+
"engines": {
|
|
170
|
+
"node": ">=12"
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"node_modules/@esbuild/linux-arm64": {
|
|
174
|
+
"version": "0.20.2",
|
|
175
|
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz",
|
|
176
|
+
"integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==",
|
|
177
|
+
"cpu": [
|
|
178
|
+
"arm64"
|
|
179
|
+
],
|
|
180
|
+
"dev": true,
|
|
181
|
+
"license": "MIT",
|
|
182
|
+
"optional": true,
|
|
183
|
+
"os": [
|
|
184
|
+
"linux"
|
|
185
|
+
],
|
|
186
|
+
"engines": {
|
|
187
|
+
"node": ">=12"
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
"node_modules/@esbuild/linux-ia32": {
|
|
191
|
+
"version": "0.20.2",
|
|
192
|
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz",
|
|
193
|
+
"integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==",
|
|
194
|
+
"cpu": [
|
|
195
|
+
"ia32"
|
|
196
|
+
],
|
|
197
|
+
"dev": true,
|
|
198
|
+
"license": "MIT",
|
|
199
|
+
"optional": true,
|
|
200
|
+
"os": [
|
|
201
|
+
"linux"
|
|
202
|
+
],
|
|
203
|
+
"engines": {
|
|
204
|
+
"node": ">=12"
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
"node_modules/@esbuild/linux-loong64": {
|
|
208
|
+
"version": "0.20.2",
|
|
209
|
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz",
|
|
210
|
+
"integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==",
|
|
211
|
+
"cpu": [
|
|
212
|
+
"loong64"
|
|
213
|
+
],
|
|
214
|
+
"dev": true,
|
|
215
|
+
"license": "MIT",
|
|
216
|
+
"optional": true,
|
|
217
|
+
"os": [
|
|
218
|
+
"linux"
|
|
219
|
+
],
|
|
220
|
+
"engines": {
|
|
221
|
+
"node": ">=12"
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
"node_modules/@esbuild/linux-mips64el": {
|
|
225
|
+
"version": "0.20.2",
|
|
226
|
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz",
|
|
227
|
+
"integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==",
|
|
228
|
+
"cpu": [
|
|
229
|
+
"mips64el"
|
|
230
|
+
],
|
|
231
|
+
"dev": true,
|
|
232
|
+
"license": "MIT",
|
|
233
|
+
"optional": true,
|
|
234
|
+
"os": [
|
|
235
|
+
"linux"
|
|
236
|
+
],
|
|
237
|
+
"engines": {
|
|
238
|
+
"node": ">=12"
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
"node_modules/@esbuild/linux-ppc64": {
|
|
242
|
+
"version": "0.20.2",
|
|
243
|
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz",
|
|
244
|
+
"integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==",
|
|
245
|
+
"cpu": [
|
|
246
|
+
"ppc64"
|
|
247
|
+
],
|
|
248
|
+
"dev": true,
|
|
249
|
+
"license": "MIT",
|
|
250
|
+
"optional": true,
|
|
251
|
+
"os": [
|
|
252
|
+
"linux"
|
|
253
|
+
],
|
|
254
|
+
"engines": {
|
|
255
|
+
"node": ">=12"
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
"node_modules/@esbuild/linux-riscv64": {
|
|
259
|
+
"version": "0.20.2",
|
|
260
|
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz",
|
|
261
|
+
"integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==",
|
|
262
|
+
"cpu": [
|
|
263
|
+
"riscv64"
|
|
264
|
+
],
|
|
265
|
+
"dev": true,
|
|
266
|
+
"license": "MIT",
|
|
267
|
+
"optional": true,
|
|
268
|
+
"os": [
|
|
269
|
+
"linux"
|
|
270
|
+
],
|
|
271
|
+
"engines": {
|
|
272
|
+
"node": ">=12"
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
"node_modules/@esbuild/linux-s390x": {
|
|
276
|
+
"version": "0.20.2",
|
|
277
|
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz",
|
|
278
|
+
"integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==",
|
|
279
|
+
"cpu": [
|
|
280
|
+
"s390x"
|
|
281
|
+
],
|
|
282
|
+
"dev": true,
|
|
283
|
+
"license": "MIT",
|
|
284
|
+
"optional": true,
|
|
285
|
+
"os": [
|
|
286
|
+
"linux"
|
|
287
|
+
],
|
|
288
|
+
"engines": {
|
|
289
|
+
"node": ">=12"
|
|
290
|
+
}
|
|
291
|
+
},
|
|
292
|
+
"node_modules/@esbuild/linux-x64": {
|
|
293
|
+
"version": "0.20.2",
|
|
294
|
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz",
|
|
295
|
+
"integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==",
|
|
296
|
+
"cpu": [
|
|
297
|
+
"x64"
|
|
298
|
+
],
|
|
299
|
+
"dev": true,
|
|
300
|
+
"license": "MIT",
|
|
301
|
+
"optional": true,
|
|
302
|
+
"os": [
|
|
303
|
+
"linux"
|
|
304
|
+
],
|
|
305
|
+
"engines": {
|
|
306
|
+
"node": ">=12"
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
"node_modules/@esbuild/netbsd-x64": {
|
|
310
|
+
"version": "0.20.2",
|
|
311
|
+
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz",
|
|
312
|
+
"integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==",
|
|
313
|
+
"cpu": [
|
|
314
|
+
"x64"
|
|
315
|
+
],
|
|
316
|
+
"dev": true,
|
|
317
|
+
"license": "MIT",
|
|
318
|
+
"optional": true,
|
|
319
|
+
"os": [
|
|
320
|
+
"netbsd"
|
|
321
|
+
],
|
|
322
|
+
"engines": {
|
|
323
|
+
"node": ">=12"
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
"node_modules/@esbuild/openbsd-x64": {
|
|
327
|
+
"version": "0.20.2",
|
|
328
|
+
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz",
|
|
329
|
+
"integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==",
|
|
330
|
+
"cpu": [
|
|
331
|
+
"x64"
|
|
332
|
+
],
|
|
333
|
+
"dev": true,
|
|
334
|
+
"license": "MIT",
|
|
335
|
+
"optional": true,
|
|
336
|
+
"os": [
|
|
337
|
+
"openbsd"
|
|
338
|
+
],
|
|
339
|
+
"engines": {
|
|
340
|
+
"node": ">=12"
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
"node_modules/@esbuild/sunos-x64": {
|
|
344
|
+
"version": "0.20.2",
|
|
345
|
+
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz",
|
|
346
|
+
"integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==",
|
|
347
|
+
"cpu": [
|
|
348
|
+
"x64"
|
|
349
|
+
],
|
|
350
|
+
"dev": true,
|
|
351
|
+
"license": "MIT",
|
|
352
|
+
"optional": true,
|
|
353
|
+
"os": [
|
|
354
|
+
"sunos"
|
|
355
|
+
],
|
|
356
|
+
"engines": {
|
|
357
|
+
"node": ">=12"
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
"node_modules/@esbuild/win32-arm64": {
|
|
361
|
+
"version": "0.20.2",
|
|
362
|
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz",
|
|
363
|
+
"integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==",
|
|
364
|
+
"cpu": [
|
|
365
|
+
"arm64"
|
|
366
|
+
],
|
|
367
|
+
"dev": true,
|
|
368
|
+
"license": "MIT",
|
|
369
|
+
"optional": true,
|
|
370
|
+
"os": [
|
|
371
|
+
"win32"
|
|
372
|
+
],
|
|
373
|
+
"engines": {
|
|
374
|
+
"node": ">=12"
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
"node_modules/@esbuild/win32-ia32": {
|
|
378
|
+
"version": "0.20.2",
|
|
379
|
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz",
|
|
380
|
+
"integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==",
|
|
381
|
+
"cpu": [
|
|
382
|
+
"ia32"
|
|
383
|
+
],
|
|
384
|
+
"dev": true,
|
|
385
|
+
"license": "MIT",
|
|
386
|
+
"optional": true,
|
|
387
|
+
"os": [
|
|
388
|
+
"win32"
|
|
389
|
+
],
|
|
390
|
+
"engines": {
|
|
391
|
+
"node": ">=12"
|
|
392
|
+
}
|
|
393
|
+
},
|
|
394
|
+
"node_modules/@esbuild/win32-x64": {
|
|
395
|
+
"version": "0.20.2",
|
|
396
|
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz",
|
|
397
|
+
"integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==",
|
|
398
|
+
"cpu": [
|
|
399
|
+
"x64"
|
|
400
|
+
],
|
|
401
|
+
"dev": true,
|
|
402
|
+
"license": "MIT",
|
|
403
|
+
"optional": true,
|
|
404
|
+
"os": [
|
|
405
|
+
"win32"
|
|
406
|
+
],
|
|
407
|
+
"engines": {
|
|
408
|
+
"node": ">=12"
|
|
409
|
+
}
|
|
410
|
+
},
|
|
411
|
+
"node_modules/@kurkle/color": {
|
|
412
|
+
"version": "0.3.4",
|
|
413
|
+
"resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz",
|
|
414
|
+
"integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==",
|
|
415
|
+
"license": "MIT"
|
|
416
|
+
},
|
|
417
|
+
"node_modules/@pptb/types": {
|
|
418
|
+
"version": "1.0.19-beta.3",
|
|
419
|
+
"resolved": "https://registry.npmjs.org/@pptb/types/-/types-1.0.19-beta.3.tgz",
|
|
420
|
+
"integrity": "sha512-pqHEv49UNvtSzPy2WZ6n9oVT4rXvu96/LXGolS6cDO0gOgxya2+OEZn8gLlNujoNXG2/WVI1yu52OYBvGF9/nQ==",
|
|
421
|
+
"dev": true,
|
|
422
|
+
"license": "GPL-3.0"
|
|
423
|
+
},
|
|
424
|
+
"node_modules/chart.js": {
|
|
425
|
+
"version": "4.5.1",
|
|
426
|
+
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.5.1.tgz",
|
|
427
|
+
"integrity": "sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==",
|
|
428
|
+
"license": "MIT",
|
|
429
|
+
"dependencies": {
|
|
430
|
+
"@kurkle/color": "^0.3.0"
|
|
431
|
+
},
|
|
432
|
+
"engines": {
|
|
433
|
+
"pnpm": ">=8"
|
|
434
|
+
}
|
|
435
|
+
},
|
|
436
|
+
"node_modules/esbuild": {
|
|
437
|
+
"version": "0.20.2",
|
|
438
|
+
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz",
|
|
439
|
+
"integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==",
|
|
440
|
+
"dev": true,
|
|
441
|
+
"hasInstallScript": true,
|
|
442
|
+
"license": "MIT",
|
|
443
|
+
"bin": {
|
|
444
|
+
"esbuild": "bin/esbuild"
|
|
445
|
+
},
|
|
446
|
+
"engines": {
|
|
447
|
+
"node": ">=12"
|
|
448
|
+
},
|
|
449
|
+
"optionalDependencies": {
|
|
450
|
+
"@esbuild/aix-ppc64": "0.20.2",
|
|
451
|
+
"@esbuild/android-arm": "0.20.2",
|
|
452
|
+
"@esbuild/android-arm64": "0.20.2",
|
|
453
|
+
"@esbuild/android-x64": "0.20.2",
|
|
454
|
+
"@esbuild/darwin-arm64": "0.20.2",
|
|
455
|
+
"@esbuild/darwin-x64": "0.20.2",
|
|
456
|
+
"@esbuild/freebsd-arm64": "0.20.2",
|
|
457
|
+
"@esbuild/freebsd-x64": "0.20.2",
|
|
458
|
+
"@esbuild/linux-arm": "0.20.2",
|
|
459
|
+
"@esbuild/linux-arm64": "0.20.2",
|
|
460
|
+
"@esbuild/linux-ia32": "0.20.2",
|
|
461
|
+
"@esbuild/linux-loong64": "0.20.2",
|
|
462
|
+
"@esbuild/linux-mips64el": "0.20.2",
|
|
463
|
+
"@esbuild/linux-ppc64": "0.20.2",
|
|
464
|
+
"@esbuild/linux-riscv64": "0.20.2",
|
|
465
|
+
"@esbuild/linux-s390x": "0.20.2",
|
|
466
|
+
"@esbuild/linux-x64": "0.20.2",
|
|
467
|
+
"@esbuild/netbsd-x64": "0.20.2",
|
|
468
|
+
"@esbuild/openbsd-x64": "0.20.2",
|
|
469
|
+
"@esbuild/sunos-x64": "0.20.2",
|
|
470
|
+
"@esbuild/win32-arm64": "0.20.2",
|
|
471
|
+
"@esbuild/win32-ia32": "0.20.2",
|
|
472
|
+
"@esbuild/win32-x64": "0.20.2"
|
|
473
|
+
}
|
|
474
|
+
},
|
|
475
|
+
"node_modules/typescript": {
|
|
476
|
+
"version": "5.9.3",
|
|
477
|
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
|
|
478
|
+
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
|
479
|
+
"dev": true,
|
|
480
|
+
"license": "Apache-2.0",
|
|
481
|
+
"bin": {
|
|
482
|
+
"tsc": "bin/tsc",
|
|
483
|
+
"tsserver": "bin/tsserver"
|
|
484
|
+
},
|
|
485
|
+
"engines": {
|
|
486
|
+
"node": ">=14.17"
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robertraaijmakers/pptb-securityplugin",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"displayName": "Security Roles Explorer",
|
|
5
5
|
"description": "Be fully in control of your security by quickly viewing and managing which security roles give access to which tables. And who is assigned which security role.",
|
|
6
6
|
"author": "Robert Raaijmakers",
|
|
@@ -23,11 +23,11 @@
|
|
|
23
23
|
"website": "https://robertraaijmakers.github.io/pptb.securityplugin/",
|
|
24
24
|
"readmeUrl": "https://raw.githubusercontent.com/robertraaijmakers/pptb.securityplugin/main/README.md"
|
|
25
25
|
},
|
|
26
|
-
"files": ["dist/**", "README.md"
|
|
26
|
+
"files": ["dist/**", "README.md"],
|
|
27
27
|
"scripts": {
|
|
28
28
|
"build": "npm run build:bundle && npm run build:assets",
|
|
29
29
|
"build:bundle": "esbuild src/app.ts --bundle --sourcemap --outdir=dist",
|
|
30
|
-
"build:assets": "mkdir -p dist && cp src/index.html src/index.css dist/",
|
|
30
|
+
"build:assets": "mkdir -p dist && cp src/index.html src/index.css README.md dist/",
|
|
31
31
|
"build:watch": "esbuild src/app.ts --bundle --sourcemap --outdir=dist --watch",
|
|
32
32
|
"finalize-package": "node scripts/finalize-package.js",
|
|
33
33
|
"validate:publish": "node scripts/validate-publish.js",
|
package/docs/index.md
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# Security Roles Explorer
|
|
2
|
-
|
|
3
|
-
Security Roles Explorer is a Power Platform ToolBox (PPTB) tool that helps you review and manage Dataverse security roles, table privileges, and user-role assignments.
|
|
4
|
-
|
|
5
|
-
## Install
|
|
6
|
-
|
|
7
|
-
1. Open Power Platform ToolBox.
|
|
8
|
-
2. Go to the Tool Gallery.
|
|
9
|
-
3. Search for "Security Roles Explorer".
|
|
10
|
-
4. Install the tool.
|
|
11
|
-
|
|
12
|
-
## Connect
|
|
13
|
-
|
|
14
|
-
1. Open the tool.
|
|
15
|
-
2. Select a Dataverse connection in PPTB if prompted.
|
|
16
|
-
3. The tool will load roles, tables, and privileges automatically.
|
|
17
|
-
|
|
18
|
-
## Edit Security Roles
|
|
19
|
-
|
|
20
|
-
Use this tab to view or adjust table privileges.
|
|
21
|
-
|
|
22
|
-
1. Choose a filter mode:
|
|
23
|
-
- By role: show privileges for a single role.
|
|
24
|
-
- By entity: compare multiple roles for a single table.
|
|
25
|
-
2. Use the filters or sorting to find the rows you need.
|
|
26
|
-
3. Change privilege levels in the grid.
|
|
27
|
-
4. Click Apply changes to save, or Undo changes to discard.
|
|
28
|
-
|
|
29
|
-
Tips:
|
|
30
|
-
- Use the Rights filter to show only tables with or without rights.
|
|
31
|
-
- In entity mode, use the role filter to include or exclude roles.
|
|
32
|
-
|
|
33
|
-
## Assign Security Roles
|
|
34
|
-
|
|
35
|
-
Use this tab to add or remove roles for users.
|
|
36
|
-
|
|
37
|
-
1. Choose the view:
|
|
38
|
-
- Role -> Users: see who has a role.
|
|
39
|
-
- User -> Roles: see roles for a user.
|
|
40
|
-
2. Select users or roles in the list.
|
|
41
|
-
3. Click Add or Remove.
|
|
42
|
-
|
|
43
|
-
## Notes
|
|
44
|
-
|
|
45
|
-
- Append and Append To are related. You typically need both sides for lookups to work.
|
|
46
|
-
- Changes are applied using Dataverse security APIs and may require appropriate permissions.
|
|
47
|
-
|
|
48
|
-
## Troubleshooting
|
|
49
|
-
|
|
50
|
-
- If the tool shows "Not connected", select a connection in PPTB and reopen the tool.
|
|
51
|
-
- If privileges fail to load, verify the account has security role admin permissions.
|
|
52
|
-
- If changes do not show immediately, reload the tool.
|
|
53
|
-
|
|
54
|
-
## Support
|
|
55
|
-
|
|
56
|
-
If you have issues or suggestions, open a GitHub issue in this repository.
|