@northern.tech/testing 0.8.3 → 0.9.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 (101) hide show
  1. package/dist/chunk-CKQMccvm.cjs +28 -0
  2. package/dist/mockData.cjs +1288 -953
  3. package/dist/mockData.cjs.map +1 -1
  4. package/dist/mockData.d.cts +595 -569
  5. package/dist/mockData.d.ts +595 -569
  6. package/dist/mockData.js +1278 -45
  7. package/dist/mockData.js.map +1 -1
  8. package/dist/openapi.yaml.d.cjs +0 -0
  9. package/dist/openapi.yaml.d.cts +4 -0
  10. package/dist/openapi.yaml.d.ts +5 -0
  11. package/dist/requestHandlers/deploymentHandlers.cjs +181 -1031
  12. package/dist/requestHandlers/deploymentHandlers.cjs.map +1 -1
  13. package/dist/requestHandlers/deploymentHandlers.d.cts +5 -3
  14. package/dist/requestHandlers/deploymentHandlers.d.ts +5 -3
  15. package/dist/requestHandlers/deploymentHandlers.js +190 -6
  16. package/dist/requestHandlers/deploymentHandlers.js.map +1 -1
  17. package/dist/requestHandlers/deviceHandlers.cjs +427 -1090
  18. package/dist/requestHandlers/deviceHandlers.cjs.map +1 -1
  19. package/dist/requestHandlers/deviceHandlers.d.cts +17 -15
  20. package/dist/requestHandlers/deviceHandlers.d.ts +17 -15
  21. package/dist/requestHandlers/deviceHandlers.js +427 -10
  22. package/dist/requestHandlers/deviceHandlers.js.map +1 -1
  23. package/dist/requestHandlers/monitorHandlers.cjs +21 -831
  24. package/dist/requestHandlers/monitorHandlers.cjs.map +1 -1
  25. package/dist/requestHandlers/monitorHandlers.d.cts +5 -3
  26. package/dist/requestHandlers/monitorHandlers.d.ts +5 -3
  27. package/dist/requestHandlers/monitorHandlers.js +21 -7
  28. package/dist/requestHandlers/monitorHandlers.js.map +1 -1
  29. package/dist/requestHandlers/organizationHandlers.cjs +296 -1113
  30. package/dist/requestHandlers/organizationHandlers.cjs.map +1 -1
  31. package/dist/requestHandlers/organizationHandlers.d.cts +5 -3
  32. package/dist/requestHandlers/organizationHandlers.d.ts +5 -3
  33. package/dist/requestHandlers/organizationHandlers.js +308 -6
  34. package/dist/requestHandlers/organizationHandlers.js.map +1 -1
  35. package/dist/requestHandlers/releaseHandlers.cjs +157 -960
  36. package/dist/requestHandlers/releaseHandlers.cjs.map +1 -1
  37. package/dist/requestHandlers/releaseHandlers.d.cts +5 -3
  38. package/dist/requestHandlers/releaseHandlers.d.ts +5 -3
  39. package/dist/requestHandlers/releaseHandlers.js +158 -6
  40. package/dist/requestHandlers/releaseHandlers.js.map +1 -1
  41. package/dist/requestHandlers/requestHandlers.cjs +26 -2000
  42. package/dist/requestHandlers/requestHandlers.cjs.map +1 -1
  43. package/dist/requestHandlers/requestHandlers.d.cts +5 -4
  44. package/dist/requestHandlers/requestHandlers.d.ts +5 -3
  45. package/dist/requestHandlers/requestHandlers.js +24 -32
  46. package/dist/requestHandlers/requestHandlers.js.map +1 -1
  47. package/dist/requestHandlers/userHandlers.cjs +139 -990
  48. package/dist/requestHandlers/userHandlers.cjs.map +1 -1
  49. package/dist/requestHandlers/userHandlers.d.cts +5 -3
  50. package/dist/requestHandlers/userHandlers.d.ts +5 -3
  51. package/dist/requestHandlers/userHandlers.js +139 -7
  52. package/dist/requestHandlers/userHandlers.js.map +1 -1
  53. package/dist/requestHandlers/validation.cjs +4 -0
  54. package/dist/requestHandlers/validation.d.cts +6 -0
  55. package/dist/requestHandlers/validation.d.ts +6 -0
  56. package/dist/requestHandlers/validation.js +2 -0
  57. package/dist/setupTests.cjs +148 -992
  58. package/dist/setupTests.cjs.map +1 -1
  59. package/dist/setupTests.d.cts +68 -66
  60. package/dist/setupTests.d.ts +68 -66
  61. package/dist/setupTests.js +114 -117
  62. package/dist/setupTests.js.map +1 -1
  63. package/dist/theme/light.cjs +7 -39
  64. package/dist/theme/light.cjs.map +1 -1
  65. package/dist/theme/light.d.cts +5 -10
  66. package/dist/theme/light.d.ts +5 -10
  67. package/dist/theme/light.js +7 -6
  68. package/dist/theme/light.js.map +1 -1
  69. package/dist/theme/mui.d.cjs +0 -0
  70. package/dist/theme/mui.d.cts +11 -0
  71. package/dist/theme/mui.d.ts +11 -0
  72. package/dist/utils.cjs +18 -68
  73. package/dist/utils.cjs.map +1 -1
  74. package/dist/utils.d.cts +6 -67
  75. package/dist/utils.d.ts +6 -67
  76. package/dist/utils.js +16 -10
  77. package/dist/utils.js.map +1 -1
  78. package/dist/validation-CsEFO-Cv.cjs +77 -0
  79. package/dist/validation-CsEFO-Cv.cjs.map +1 -0
  80. package/dist/validation-JDM_vsFz.js +64 -0
  81. package/dist/validation-JDM_vsFz.js.map +1 -0
  82. package/package.json +8 -6
  83. package/dist/chunk-3CVNBMEF.js +0 -161
  84. package/dist/chunk-3CVNBMEF.js.map +0 -1
  85. package/dist/chunk-7GNK7IRV.js +0 -29
  86. package/dist/chunk-7GNK7IRV.js.map +0 -1
  87. package/dist/chunk-AP4MOFMD.js +0 -239
  88. package/dist/chunk-AP4MOFMD.js.map +0 -1
  89. package/dist/chunk-DOHA53UH.js +0 -301
  90. package/dist/chunk-DOHA53UH.js.map +0 -1
  91. package/dist/chunk-H4J7L3HX.js +0 -188
  92. package/dist/chunk-H4J7L3HX.js.map +0 -1
  93. package/dist/chunk-HRGVXWMH.js +0 -17
  94. package/dist/chunk-HRGVXWMH.js.map +0 -1
  95. package/dist/chunk-KCLTR6QS.js +0 -34
  96. package/dist/chunk-KCLTR6QS.js.map +0 -1
  97. package/dist/chunk-M2TKDOPD.js +0 -266
  98. package/dist/chunk-M2TKDOPD.js.map +0 -1
  99. package/dist/chunk-O42KIJXJ.js +0 -933
  100. package/dist/chunk-O42KIJXJ.js.map +0 -1
  101. /package/dist/{baseTestConfig.json → public/baseTestConfig.json} +0 -0
package/dist/mockData.js CHANGED
@@ -1,47 +1,1280 @@
1
- import {
2
- TEST_SESSION_DATETIME,
3
- accessTokens,
4
- adminUserCapabilities,
5
- defaultCreationDate,
6
- defaultMacAddress,
7
- defaultPassword,
8
- menderEnvironment,
9
- mockApiResponses,
10
- mockDate,
11
- permissionSets,
12
- rbacRoles,
13
- receivedPermissionSets,
14
- receivedRoles,
15
- releasesList,
16
- spTenantLimits,
17
- tenants,
18
- testSsoId,
19
- token,
20
- undefineds,
21
- userId,
22
- webhookEvents
23
- } from "./chunk-O42KIJXJ.js";
24
- export {
25
- TEST_SESSION_DATETIME,
26
- accessTokens,
27
- adminUserCapabilities,
28
- defaultCreationDate,
29
- defaultMacAddress,
30
- defaultPassword,
31
- menderEnvironment,
32
- mockApiResponses,
33
- mockDate,
34
- permissionSets,
35
- rbacRoles,
36
- receivedPermissionSets,
37
- receivedRoles,
38
- releasesList,
39
- spTenantLimits,
40
- tenants,
41
- testSsoId,
42
- token,
43
- undefineds,
44
- userId,
45
- webhookEvents
1
+ import { ALL_DEVICES, ALL_RELEASES, defaultPermissionSets, emptyRole, emptyUiPermissions, maxSessionAge, rolesById, scopedPermissionAreas, uiPermissionsById } from "@northern.tech/utils/constants";
2
+ //#region src/mockData.ts
3
+ const undefineds = /undefined|\[object Object\]/;
4
+ const menderEnvironment = {
5
+ features: { hasMultitenancy: true },
6
+ integrationVersion: "saas-123.34",
7
+ menderVersion: "next",
8
+ metaMenderVersion: "saas-123.34",
9
+ services: {
10
+ deploymentsVersion: "1.2.3",
11
+ deviceauthVersion: null,
12
+ inventoryVersion: null
13
+ }
46
14
  };
15
+ const TEST_SESSION_DATETIME = "2019-01-13T13:00:00.000Z";
16
+ const testDate = new Date(TEST_SESSION_DATETIME);
17
+ const mockDate = new Date(testDate.setMilliseconds(testDate.getMilliseconds() + maxSessionAge));
18
+ const defaultPassword = "mysecretpassword!123";
19
+ const defaultCreationDate = "2019-01-13T06:25:00.000Z";
20
+ const defaultMacAddress = "dc:a6:32:12:ad:bf";
21
+ const testSsoId = "sso_id";
22
+ const permissionSetObjectTypes = {
23
+ any: "Any",
24
+ artifacts: "Artifacts",
25
+ empty: "",
26
+ groups: "Device groups",
27
+ releases: "Releases",
28
+ tenantManagement: "Tenant management",
29
+ userManagement: "User management"
30
+ };
31
+ const commonEndpoints = {
32
+ artifacts: "^/api/management/v1/deployments/artifacts",
33
+ artifactDetails: "^/api/management/v1/deployments/artifacts/[^/]+",
34
+ deviceManagement: "^/api/management/(v[1-9])/(devauth|inventory)/"
35
+ };
36
+ const token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJjZTNkMGY4Yy1hZWRlLTQwMzAtYjM5MS03ZDUwMjBlYjg3M2UiLCJzdWIiOiJhMzBhNzgwYi1iODQzLTUzNDQtODBlMy0wZmQ5NWE0ZjZmYzMiLCJleHAiOjE2MDY4MTUzNjksImlhdCI6MTYwNjIxMDU2OSwibWVuZGVyLnRlbmFudCI6IjVmODVjMTdiY2U2MmI3ZmE3ZjVmNzA0MCIsIm1lbmRlci51c2VyIjp0cnVlLCJpc3MiOiJNZW5kZXIgVXNlcnMiLCJzY3AiOiJtZW5kZXIuKiIsIm1lbmRlci5wbGFuIjoicHJvZmVzc2lvbmFsIiwibmJmIjoxNjA2MjEwNTY5fQ.qVgYdCzLTf8OdK9uUctqqaY_HWkIiwpekuGvuGQAXCEgOv4bRNDlZRN_ZRSbxQoARG3pquhScbQrjBV9tcF4irTUPlTn3yrsXNO17DpcbTVeKRkb88RDtIKiRw3orVZ_GlIb-ckTQ5dS-Nqlyyf3Fmrhca-gwt6m_xv2UrmJK6eYYTMfggdRRWb-4u7mEkBI_pHPMTQrT8kJ2BeX-vHgazH9AoH0k85LHtFZQXD7pXHlDZRnLxJXukncwMGDmF17374gavYAIyDIzcC8sEBMDnVXgpikeA1sauzirqix6mAVs6XmxdQO7aF0wfXO1_PTYUA3Nk1oQfMYNlEI3U9uLRJRZIq2L8fmrrBryhstKd4y0KlBbGAQrx8NtRkgajjd1ljMfPBUEZrb7uSerVjneiO-aIBO76CuH0zdklphIjpGJeogkBhe8pAYNggp1XsZHgpZfl7IE5faKaDkMGnutaea--Czor6bhqUNCuY4tR0cpQJbNwy6LS9o1CFy4Log";
37
+ const accessTokens = [{
38
+ id: "some-id-1",
39
+ expiration_date: "2022-06-02T11:11:21.725Z",
40
+ name: "some-name-1"
41
+ }, {
42
+ id: "some-id-2",
43
+ expiration_date: "2022-06-02T11:11:21.725Z",
44
+ last_used: "2022-06-02T11:05:21.725Z",
45
+ name: "some-name-2"
46
+ }];
47
+ const webhookEvents = [{
48
+ id: "1",
49
+ type: "device-status-changed",
50
+ data: {
51
+ id: "1",
52
+ status: "accepted"
53
+ },
54
+ time: "2020-09-01T12:00:00.000Z",
55
+ delivery_statuses: [{
56
+ integration_id: "1",
57
+ success: true,
58
+ status_code: 200
59
+ }]
60
+ }, {
61
+ id: "2",
62
+ type: "device-status-changed",
63
+ data: {
64
+ id: "3",
65
+ status: "accepted"
66
+ },
67
+ time: "2020-09-01T12:00:05.000Z",
68
+ delivery_statuses: [{
69
+ integration_id: "1",
70
+ success: true,
71
+ status_code: 200
72
+ }]
73
+ }];
74
+ const spTenantLimits = {
75
+ max_devices: {
76
+ current_value: 0,
77
+ name: "max_devices",
78
+ tenant_id: "699f07a3e783def54cf6201f",
79
+ value: 200
80
+ },
81
+ max_micro_devices: {
82
+ current_value: 0,
83
+ name: "max_micro_devices",
84
+ tenant_id: "699f07a3e783def54cf6201f",
85
+ value: 280
86
+ },
87
+ max_system_devices: {
88
+ current_value: 0,
89
+ name: "max_system_devices",
90
+ tenant_id: "699f07a3e783def54cf6201f",
91
+ value: 20
92
+ }
93
+ };
94
+ const tenants = [{
95
+ id: "671a0f1dd58c813118fe8622",
96
+ parent_tenant_id: "6718de64b42e08dea2a2065d",
97
+ name: "child2",
98
+ tenant_token: "mQDYRCr-tGbDuJhPp7fArbfTA5htVTWE9G204AzhDUM",
99
+ status: "active",
100
+ additional_info: {
101
+ marketing: false,
102
+ campaign: ""
103
+ },
104
+ plan: "enterprise",
105
+ trial: false,
106
+ trial_expiration: null,
107
+ service_provider: false,
108
+ created_at: "2024-10-24T09:10:53.281Z",
109
+ cancelled_at: null,
110
+ children_tenants: null,
111
+ max_child_tenants: 0,
112
+ device_count: 0,
113
+ device_limit: 100,
114
+ device_limits: {
115
+ max_devices: {
116
+ current_value: 0,
117
+ name: "max_devices",
118
+ tenant_id: "699f07a3e783def54cf6201f",
119
+ value: 200
120
+ },
121
+ max_micro_devices: {
122
+ current_value: 0,
123
+ name: "max_micro_devices",
124
+ tenant_id: "699f07a3e783def54cf6201f",
125
+ value: 280
126
+ },
127
+ max_system_devices: {
128
+ current_value: 0,
129
+ name: "max_system_devices",
130
+ tenant_id: "699f07a3e783def54cf6201f",
131
+ value: 20
132
+ }
133
+ },
134
+ binary_delta: true
135
+ }];
136
+ const adminUserCapabilities = {
137
+ canAuditlog: true,
138
+ canConfigure: true,
139
+ canDeploy: true,
140
+ canManageDevices: true,
141
+ canManageReleases: true,
142
+ canManageUsers: true,
143
+ canReadDeployments: true,
144
+ canReadDevices: true,
145
+ canReadReleases: true,
146
+ canReadUsers: true,
147
+ canTroubleshoot: true,
148
+ canUploadReleases: true,
149
+ canWriteDevices: true
150
+ };
151
+ const userId = "a30a780b-b843-5344-80e3-0fd95a4f6fc3";
152
+ const defaultUser = {
153
+ created_ts: "2019-01-01T10:30:00.000Z",
154
+ email: "a@b.com",
155
+ id: "a1",
156
+ roles: ["RBAC_ROLE_PERMIT_ALL"],
157
+ tfa_status: "enabled",
158
+ verified: true
159
+ };
160
+ const deviceTypes = { qemu: "qemux86-64" };
161
+ const checkInTimeRounded = "2019-01-01T00:00:00.000Z";
162
+ const checkInTimeExact = "2019-01-01T10:25:00.000Z";
163
+ const mockApiResponses = {
164
+ deployments: {
165
+ byId: {
166
+ d1: {
167
+ id: "d1",
168
+ name: "test deployment",
169
+ created: "2019-01-01T12:30:00.000Z",
170
+ devices: { a1: {
171
+ id: "a1",
172
+ status: "installing",
173
+ attributes: {},
174
+ image: { size: 123 }
175
+ } },
176
+ statistics: {
177
+ status: {
178
+ "already-installed": 0,
179
+ decommissioned: 0,
180
+ downloading: 0,
181
+ failure: 0,
182
+ installing: 1,
183
+ noartifact: 0,
184
+ pending: 0,
185
+ rebooting: 0,
186
+ success: 0
187
+ },
188
+ total_size: 1234
189
+ }
190
+ },
191
+ d2: {
192
+ id: "d2",
193
+ name: "test deployment 2",
194
+ artifact_name: "r1",
195
+ artifacts: ["123"],
196
+ created: "2019-01-01T12:25:00.000Z",
197
+ device_count: 1,
198
+ devices: { b1: {
199
+ attributes: {},
200
+ id: "b1",
201
+ status: "pending"
202
+ } },
203
+ filter: void 0,
204
+ group: void 0,
205
+ statistics: { status: {
206
+ downloading: 0,
207
+ decommissioned: 0,
208
+ failure: 0,
209
+ installing: 0,
210
+ noartifact: 0,
211
+ pending: 1,
212
+ rebooting: 0,
213
+ success: 0,
214
+ "already-installed": 0
215
+ } }
216
+ },
217
+ d3: {
218
+ id: "d3",
219
+ name: "Test",
220
+ phases: [
221
+ {
222
+ id: "0",
223
+ batch_size: 2,
224
+ device_count: 2
225
+ },
226
+ {
227
+ id: "1",
228
+ start_ts: "2019-02-04T11:45:10.002Z",
229
+ batch_size: 3,
230
+ device_count: 3
231
+ },
232
+ {
233
+ id: "2",
234
+ start_ts: "2019-02-05T11:45:10.002Z",
235
+ batch_size: 5,
236
+ device_count: 5
237
+ },
238
+ {
239
+ id: "3",
240
+ start_ts: "2019-02-06T11:45:10.002Z",
241
+ batch_size: 5,
242
+ device_count: 5
243
+ },
244
+ {
245
+ id: "4",
246
+ start_ts: "2019-02-21T11:45:10.002Z",
247
+ batch_size: 5,
248
+ device_count: 0
249
+ }
250
+ ],
251
+ max_devices: 0,
252
+ created: "2019-01-31T12:59:30.020Z",
253
+ devices: {},
254
+ filter: void 0,
255
+ group: void 0,
256
+ stats: {
257
+ pending: 3,
258
+ decommissioned: 0,
259
+ failure: 23,
260
+ pause_before_committing: 0,
261
+ pause_before_rebooting: 0,
262
+ installing: 0,
263
+ rebooting: 0,
264
+ "already-installed": 0,
265
+ pause_before_installing: 0,
266
+ downloading: 0,
267
+ success: 6,
268
+ aborted: 0,
269
+ noartifact: 0
270
+ },
271
+ statistics: { total_size: "1234" },
272
+ status: "inprogress",
273
+ active: true,
274
+ device_count: 100,
275
+ retries: "0",
276
+ type: "software"
277
+ }
278
+ },
279
+ byStatus: {
280
+ pending: { deploymentIds: ["d2"] },
281
+ inprogress: { deploymentIds: ["d3"] }
282
+ }
283
+ },
284
+ devices: {
285
+ byId: {
286
+ a1: {
287
+ id: "a1",
288
+ auth_sets: [{
289
+ id: "auth1",
290
+ identity_data: { mac: defaultMacAddress },
291
+ pubkey: "-----BEGIN PUBLIC KEY-----\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\n-----END PUBLIC KEY-----\n",
292
+ status: "accepted",
293
+ ts: defaultCreationDate
294
+ }],
295
+ updated_ts: "2019-01-01T09:25:00.000Z"
296
+ },
297
+ b1: {
298
+ id: "b1",
299
+ attributes: {
300
+ ipv4_wlan0: "192.168.10.141/24",
301
+ device_type: [deviceTypes.qemu]
302
+ },
303
+ system: { check_in_time: checkInTimeRounded },
304
+ check_in_time: checkInTimeExact,
305
+ check_in_time_exact: checkInTimeExact,
306
+ check_in_time_rounded: checkInTimeRounded,
307
+ identity_data: { mac: defaultMacAddress },
308
+ status: "accepted",
309
+ decommissioning: false,
310
+ created_ts: defaultCreationDate,
311
+ updated_ts: "2019-01-01T09:25:00.000Z",
312
+ auth_sets: [{
313
+ id: "auth1",
314
+ identity_data: { mac: defaultMacAddress },
315
+ pubkey: "-----BEGIN PUBLIC KEY-----\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\n-----END PUBLIC KEY-----\n",
316
+ ts: defaultCreationDate,
317
+ status: "accepted"
318
+ }]
319
+ }
320
+ },
321
+ groups: { byId: {
322
+ testGroup: {
323
+ deviceIds: ["a1", "b1"],
324
+ filters: [],
325
+ total: 2
326
+ },
327
+ testGroupDynamic: {
328
+ id: "filter1",
329
+ name: "filter1",
330
+ filters: [{
331
+ scope: "system",
332
+ key: "group",
333
+ operator: "$eq",
334
+ value: "things"
335
+ }]
336
+ }
337
+ } },
338
+ limits: {
339
+ standard: 500,
340
+ micro: 0,
341
+ system: 0
342
+ },
343
+ byStatus: {
344
+ accepted: {
345
+ deviceIds: ["a1", "b1"],
346
+ total: 2
347
+ },
348
+ active: {
349
+ deviceIds: [],
350
+ total: 0
351
+ },
352
+ inactive: {
353
+ deviceIds: [],
354
+ total: 0
355
+ },
356
+ pending: {
357
+ deviceIds: ["c1"],
358
+ total: 1
359
+ },
360
+ preauthorized: {
361
+ deviceIds: [],
362
+ total: 0
363
+ },
364
+ rejected: {
365
+ deviceIds: [],
366
+ total: 0
367
+ }
368
+ }
369
+ },
370
+ organization: {
371
+ organization: {
372
+ id: "1",
373
+ addons: [],
374
+ name: "test",
375
+ plan: "os",
376
+ trial: false
377
+ },
378
+ products: [{
379
+ name: "mender_standard",
380
+ billing_unit: "devices",
381
+ prices: [{
382
+ plan: "os",
383
+ constraints: {
384
+ min: 50,
385
+ max: 1e3,
386
+ div: 50
387
+ }
388
+ }, {
389
+ plan: "professional",
390
+ constraints: {
391
+ min: 250,
392
+ max: 1e4,
393
+ div: 50
394
+ }
395
+ }],
396
+ addons: [
397
+ {
398
+ name: "troubleshoot",
399
+ prices: [{ plan: "os" }, { plan: "professional" }]
400
+ },
401
+ {
402
+ name: "configure",
403
+ prices: [{ plan: "os" }, { plan: "professional" }]
404
+ },
405
+ {
406
+ name: "monitor",
407
+ prices: [{ plan: "professional" }]
408
+ }
409
+ ]
410
+ }, {
411
+ name: "mender_micro",
412
+ billing_unit: "devices",
413
+ prices: [{
414
+ plan: "os",
415
+ constraints: {
416
+ min: 50,
417
+ max: 5e3,
418
+ div: 50
419
+ }
420
+ }, {
421
+ plan: "professional",
422
+ constraints: {
423
+ min: 500,
424
+ max: 1e5,
425
+ div: 50
426
+ }
427
+ }]
428
+ }],
429
+ intentId: "testIntent",
430
+ auditlog: { events: [
431
+ {
432
+ actor: {
433
+ id: "string",
434
+ type: "user",
435
+ email: "string@example.com"
436
+ },
437
+ time: "2019-01-01T12:10:22.667Z",
438
+ action: "create",
439
+ object: {
440
+ id: "string",
441
+ type: "user",
442
+ user: { email: "user@acme.com" }
443
+ },
444
+ change: "change1"
445
+ },
446
+ {
447
+ actor: {
448
+ id: "string",
449
+ type: "user",
450
+ email: "string",
451
+ identity_data: "string"
452
+ },
453
+ time: "2019-01-01T12:16:22.667Z",
454
+ action: "create",
455
+ object: {
456
+ id: "string",
457
+ type: "deployment",
458
+ deployment: {
459
+ name: "production",
460
+ artifact_name: "Application 0.0.1"
461
+ }
462
+ },
463
+ change: "change2"
464
+ },
465
+ {
466
+ actor: {
467
+ id: "string",
468
+ type: "user",
469
+ email: "string@example.com"
470
+ },
471
+ time: "2019-01-01T12:10:22.669Z",
472
+ action: "open_terminal",
473
+ meta: { session_id: ["abd313a8-ee88-48ab-9c99-fbcd80048e6e"] },
474
+ object: {
475
+ id: "a1",
476
+ type: "device"
477
+ },
478
+ change: "change3"
479
+ }
480
+ ] }
481
+ },
482
+ releases: { byId: { r1: {
483
+ name: "r1",
484
+ artifacts: [{
485
+ id: "art1",
486
+ description: "test description",
487
+ device_types_compatible: [deviceTypes.qemu],
488
+ modified: "2020-09-10T12:16:22.667Z",
489
+ updates: [{ type_info: { type: "testtype" } }],
490
+ artifact_depends: { device_type: [deviceTypes.qemu] },
491
+ artifact_provides: {
492
+ artifact_name: "myapp",
493
+ "data-partition.myapp.version": "v2020.10",
494
+ list_of_fancy: [deviceTypes.qemu, "x172"]
495
+ },
496
+ clears_artifact_provides: ["data-partition.myapp.*"]
497
+ }],
498
+ device_types_compatible: [deviceTypes.qemu],
499
+ modified: "2020-09-10T12:16:22.667Z",
500
+ metaData: {}
501
+ } } },
502
+ users: {
503
+ byId: {
504
+ a1: defaultUser,
505
+ [userId]: {
506
+ ...defaultUser,
507
+ id: userId,
508
+ email: "a2@b.com",
509
+ created_ts: "2019-01-01T12:30:00.000Z"
510
+ }
511
+ },
512
+ rolesById: {
513
+ admin: {
514
+ name: "admin",
515
+ description: "Administrator role",
516
+ permissions: []
517
+ },
518
+ test: {
519
+ name: "test",
520
+ description: "test description",
521
+ permissions: []
522
+ }
523
+ },
524
+ globalSettings: {
525
+ "2fa": "enabled",
526
+ id_attribute: void 0,
527
+ previousFilters: []
528
+ },
529
+ userSettings: {
530
+ "2fa": "disabled",
531
+ columnSelection: [],
532
+ onboarding: { something: "here" },
533
+ tooltips: {},
534
+ previousFilters: []
535
+ }
536
+ }
537
+ };
538
+ const releasesList = Array.from({ length: 5e3 }, (x, i) => ({
539
+ artifacts: [{
540
+ id: "art1",
541
+ description: "test description",
542
+ device_types_compatible: [deviceTypes.qemu],
543
+ modified: "2020-09-10T12:16:22.667Z",
544
+ updates: [{ type_info: { type: "testtype" } }],
545
+ artifact_depends: { device_type: [deviceTypes.qemu] },
546
+ artifact_provides: {
547
+ artifact_name: "myapp",
548
+ "data-partition.myapp.version": "v2020.10",
549
+ list_of_fancy: [deviceTypes.qemu, "x172"]
550
+ },
551
+ clears_artifact_provides: ["data-partition.myapp.*"]
552
+ }],
553
+ device_types_compatible: [deviceTypes.qemu],
554
+ metaData: {},
555
+ name: `release-${i + 1}`,
556
+ modified: i
557
+ }));
558
+ const permissionSets = [
559
+ {
560
+ ...defaultPermissionSets.Basic,
561
+ object: permissionSetObjectTypes.empty,
562
+ description: "Set containing basic permissions.",
563
+ permissions: [
564
+ {
565
+ action: "http",
566
+ object: {
567
+ type: "any",
568
+ value: "^/api/management/v1/useradm/settings$"
569
+ }
570
+ },
571
+ {
572
+ action: "http",
573
+ object: {
574
+ type: "any",
575
+ value: "^/api/management/v1/useradm/users/me$"
576
+ }
577
+ },
578
+ {
579
+ action: "http",
580
+ object: {
581
+ type: "any",
582
+ value: "^/api/management/1.0/auth/verify$"
583
+ }
584
+ },
585
+ {
586
+ action: "http",
587
+ object: {
588
+ type: "PUT",
589
+ value: "^/api/management/v1/useradm/2faverify$"
590
+ }
591
+ },
592
+ {
593
+ action: "http",
594
+ object: {
595
+ type: "POST",
596
+ value: "^/api/management/v1/useradm/users/me/2fa/(enable|disable)$"
597
+ }
598
+ },
599
+ {
600
+ action: "http",
601
+ object: {
602
+ type: "GET",
603
+ value: "^/api/management/(v[1-9])/useradm/roles"
604
+ }
605
+ },
606
+ {
607
+ action: "http",
608
+ object: {
609
+ type: "GET",
610
+ value: "^/api/management/(v[1-9])/tenantadm/user/tenant"
611
+ }
612
+ }
613
+ ]
614
+ },
615
+ {
616
+ ...defaultPermissionSets.ManageReleases,
617
+ action: uiPermissionsById.manage.title,
618
+ object: permissionSetObjectTypes.releases,
619
+ description: "Set of permissions which allows user to manage releases",
620
+ permissions: [
621
+ {
622
+ action: "http",
623
+ object: {
624
+ type: "GET",
625
+ value: commonEndpoints.artifacts
626
+ }
627
+ },
628
+ {
629
+ action: "http",
630
+ object: {
631
+ type: "GET",
632
+ value: commonEndpoints.artifactDetails
633
+ }
634
+ },
635
+ {
636
+ action: "http",
637
+ object: {
638
+ type: "PUT",
639
+ value: commonEndpoints.artifactDetails
640
+ }
641
+ },
642
+ {
643
+ action: "http",
644
+ object: {
645
+ type: "DELETE",
646
+ value: commonEndpoints.artifactDetails
647
+ }
648
+ },
649
+ {
650
+ action: "http",
651
+ object: {
652
+ type: "GET",
653
+ value: "^/api/management/v1/deployments/artifacts/[^/]+/download"
654
+ }
655
+ }
656
+ ]
657
+ },
658
+ {
659
+ ...defaultPermissionSets.ReadUsers,
660
+ action: uiPermissionsById.read.title,
661
+ object: permissionSetObjectTypes.userManagement,
662
+ description: "Set of permissions which allows user to view other users",
663
+ permissions: [{
664
+ action: "http",
665
+ object: {
666
+ type: "GET",
667
+ value: "^/api/management/(v[1-9])/useradm/"
668
+ }
669
+ }]
670
+ },
671
+ {
672
+ ...defaultPermissionSets.ManageUsers,
673
+ action: uiPermissionsById.manage.title,
674
+ object: permissionSetObjectTypes.userManagement,
675
+ description: "Set of permissions which allows user manage other user accounts",
676
+ permissions: [{
677
+ action: "http",
678
+ object: {
679
+ type: "any",
680
+ value: "^/api/management/(v[1-9])/useradm/"
681
+ }
682
+ }]
683
+ },
684
+ {
685
+ ...defaultPermissionSets.ReadTenants,
686
+ action: uiPermissionsById.read.title,
687
+ object: permissionSetObjectTypes.tenantManagement,
688
+ description: "Set of permissions which allows user to list other tenants and their config",
689
+ permissions: [{
690
+ action: "http",
691
+ object: {
692
+ type: "GET",
693
+ value: "^/api/management/(v[1-9])/tenantadm/"
694
+ }
695
+ }, {
696
+ action: "http",
697
+ object: {
698
+ type: "POST",
699
+ value: "^/api/management/(v[1-9])/tenantadm/"
700
+ }
701
+ }]
702
+ },
703
+ {
704
+ ...defaultPermissionSets.ManageTenants,
705
+ action: uiPermissionsById.manage.title,
706
+ object: permissionSetObjectTypes.tenantManagement,
707
+ description: "Set of permissions which allows user to manage other tenants and their config",
708
+ permissions: [
709
+ {
710
+ action: "http",
711
+ object: {
712
+ type: "GET",
713
+ value: "^/api/management/(v[1-9])/tenantadm/"
714
+ }
715
+ },
716
+ {
717
+ action: "http",
718
+ object: {
719
+ type: "POST",
720
+ value: "^/api/management/(v[1-9])/tenantadm/"
721
+ }
722
+ },
723
+ {
724
+ action: "http",
725
+ object: {
726
+ type: "PUT",
727
+ value: "^/api/management/(v[1-9])/tenantadm/"
728
+ }
729
+ }
730
+ ]
731
+ },
732
+ {
733
+ ...defaultPermissionSets.ReadAuditLogs,
734
+ action: uiPermissionsById.read.title,
735
+ object: "System Audit Log",
736
+ description: "Set of permissions which allows user to view system audit log",
737
+ permissions: [{
738
+ action: "http",
739
+ object: {
740
+ type: "GET",
741
+ value: "^/api/management/(v[1-9]|0.1.0)/auditlogs/logs"
742
+ }
743
+ }]
744
+ },
745
+ {
746
+ ...defaultPermissionSets.DeployToDevices,
747
+ action: "Deploy",
748
+ object: permissionSetObjectTypes.groups,
749
+ description: "Set of permissions which allows user to deploy to devices",
750
+ permissions: [{
751
+ action: "http",
752
+ object: {
753
+ type: "any",
754
+ value: "^/api/management/(v[1-9])/(deployments|deviceconfig)/"
755
+ }
756
+ }],
757
+ supported_scope_types: [scopedPermissionAreas.groups.scopeType]
758
+ },
759
+ {
760
+ ...defaultPermissionSets.ConfigureDevices,
761
+ action: "Configure",
762
+ object: permissionSetObjectTypes.groups,
763
+ description: "Set of permissions which allows user to manage configuration of the devices",
764
+ permissions: [{
765
+ action: "http",
766
+ object: {
767
+ type: "any",
768
+ value: "^/api/management/(v[1-9])/deviceconfig/"
769
+ }
770
+ }],
771
+ supported_scope_types: [scopedPermissionAreas.groups.scopeType]
772
+ },
773
+ {
774
+ ...defaultPermissionSets.ConnectToDevices,
775
+ action: "Connect",
776
+ object: permissionSetObjectTypes.groups,
777
+ description: "Set of permissions which allows user to use remote terminal and file transfer",
778
+ permissions: [
779
+ {
780
+ action: "http",
781
+ object: {
782
+ type: "GET",
783
+ value: "^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/connect$"
784
+ }
785
+ },
786
+ {
787
+ action: "http",
788
+ object: {
789
+ type: "GET",
790
+ value: "^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/download\\?path=[^&]+$"
791
+ }
792
+ },
793
+ {
794
+ action: "http",
795
+ object: {
796
+ type: "PUT",
797
+ value: "^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/upload$"
798
+ }
799
+ }
800
+ ],
801
+ supported_scope_types: [scopedPermissionAreas.groups.scopeType]
802
+ },
803
+ {
804
+ ...defaultPermissionSets.SuperUser,
805
+ action: "Any",
806
+ object: permissionSetObjectTypes.any,
807
+ description: "Set of permissions which allows user to do anything",
808
+ permissions: [{
809
+ action: "any",
810
+ object: {
811
+ type: "any",
812
+ value: "any"
813
+ }
814
+ }]
815
+ },
816
+ {
817
+ ...defaultPermissionSets.UploadArtifacts,
818
+ action: "Upload",
819
+ object: permissionSetObjectTypes.artifacts,
820
+ description: "Set of permissions which allows user to upload artifacts",
821
+ permissions: [{
822
+ action: "http",
823
+ object: {
824
+ type: "POST",
825
+ value: commonEndpoints.artifacts
826
+ }
827
+ }, {
828
+ action: "http",
829
+ object: {
830
+ type: "POST",
831
+ value: "^/api/management/v1/deployments/artifacts/generate"
832
+ }
833
+ }]
834
+ },
835
+ {
836
+ ...defaultPermissionSets.ReadDevices,
837
+ action: uiPermissionsById.read.title,
838
+ object: permissionSetObjectTypes.groups,
839
+ description: "Set of permissions which allows user to view devices",
840
+ permissions: [
841
+ {
842
+ action: "http",
843
+ object: {
844
+ type: "POST",
845
+ value: "^/api/management/v2/inventory/filters/search"
846
+ }
847
+ },
848
+ {
849
+ action: "http",
850
+ object: {
851
+ type: "GET",
852
+ value: "^/api/management/(v[1-9])/(deployments|devauth|inventory|deviceconfig|devicemonitor)/"
853
+ }
854
+ },
855
+ {
856
+ action: "http",
857
+ object: {
858
+ type: "GET",
859
+ value: "^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+$"
860
+ }
861
+ }
862
+ ],
863
+ supported_scope_types: [scopedPermissionAreas.groups.scopeType]
864
+ },
865
+ {
866
+ ...defaultPermissionSets.ManageDevices,
867
+ action: uiPermissionsById.manage.title,
868
+ object: permissionSetObjectTypes.groups,
869
+ description: "Set of permissions which allows user to manage devices",
870
+ permissions: [
871
+ {
872
+ action: "http",
873
+ object: {
874
+ type: "POST",
875
+ value: commonEndpoints.deviceManagement
876
+ }
877
+ },
878
+ {
879
+ action: "http",
880
+ object: {
881
+ type: "PUT",
882
+ value: commonEndpoints.deviceManagement
883
+ }
884
+ },
885
+ {
886
+ action: "http",
887
+ object: {
888
+ type: "DELETE",
889
+ value: commonEndpoints.deviceManagement
890
+ }
891
+ }
892
+ ],
893
+ supported_scope_types: [scopedPermissionAreas.groups.scopeType]
894
+ },
895
+ {
896
+ ...defaultPermissionSets.ReadReleases,
897
+ action: uiPermissionsById.read.title,
898
+ object: permissionSetObjectTypes.releases,
899
+ description: "Set of permissions which allows user to view releases",
900
+ permissions: [
901
+ {
902
+ action: "http",
903
+ object: {
904
+ type: "GET",
905
+ value: commonEndpoints.artifacts
906
+ }
907
+ },
908
+ {
909
+ action: "http",
910
+ object: {
911
+ type: "GET",
912
+ value: commonEndpoints.artifactDetails
913
+ }
914
+ },
915
+ {
916
+ action: "http",
917
+ object: {
918
+ type: "GET",
919
+ value: "^/api/management/v1/deployments/artifacts/[^/]+/download"
920
+ }
921
+ }
922
+ ]
923
+ },
924
+ {
925
+ name: "almostAdmin",
926
+ object: permissionSetObjectTypes.empty,
927
+ description: "Set containing all the permissions.",
928
+ permissions: [
929
+ {
930
+ action: "http",
931
+ object: {
932
+ type: "any",
933
+ value: "^/api/management/(v[1-9])/auditlogs/.*"
934
+ }
935
+ },
936
+ {
937
+ action: "http",
938
+ object: {
939
+ type: "any",
940
+ value: "^/api/management/(v[1-9])/deployments/.*"
941
+ }
942
+ },
943
+ {
944
+ action: "http",
945
+ object: {
946
+ type: "any",
947
+ value: "^/api/management/(v[1-9])/deployments/config/.*"
948
+ }
949
+ },
950
+ {
951
+ action: "http",
952
+ object: {
953
+ type: "any",
954
+ value: "^/api/management/(v[1-9])/deployments/deployments/.*"
955
+ }
956
+ },
957
+ {
958
+ action: "http",
959
+ object: {
960
+ type: "any",
961
+ value: "^/api/management/(v[1-9])/deployments/deployments/releases/.*"
962
+ }
963
+ },
964
+ {
965
+ action: "http",
966
+ object: {
967
+ type: "any",
968
+ value: "^/api/management/(v[1-9])/devauth/.*"
969
+ }
970
+ },
971
+ {
972
+ action: "http",
973
+ object: {
974
+ type: "any",
975
+ value: "^/api/management/(v[1-9])/deviceconfig/.*"
976
+ }
977
+ },
978
+ {
979
+ action: "http",
980
+ object: {
981
+ type: "any",
982
+ value: "^/api/management/(v[1-9])/deviceconnect/.*"
983
+ }
984
+ },
985
+ {
986
+ action: "http",
987
+ object: {
988
+ type: "any",
989
+ value: "^/api/management/(v[1-9])/deviceconnect/devices"
990
+ }
991
+ },
992
+ {
993
+ action: "http",
994
+ object: {
995
+ type: "any",
996
+ value: "^/api/management/(v[1-9])/inventory/.*"
997
+ }
998
+ },
999
+ {
1000
+ action: "http",
1001
+ object: {
1002
+ type: "any",
1003
+ value: "^/api/management/(v[1-9])/iot-manager/.*"
1004
+ }
1005
+ },
1006
+ {
1007
+ action: "http",
1008
+ object: {
1009
+ type: "any",
1010
+ value: "^/api/management/(v[1-9])/monitor/.*"
1011
+ }
1012
+ },
1013
+ {
1014
+ action: "http",
1015
+ object: {
1016
+ type: "any",
1017
+ value: "^/api/management/(v[1-9])/useradm/.*"
1018
+ }
1019
+ }
1020
+ ]
1021
+ }
1022
+ ];
1023
+ const rbacRoles = [
1024
+ {
1025
+ name: "dyn",
1026
+ description: "",
1027
+ permissions: [{
1028
+ action: "CREATE_DEPLOYMENT",
1029
+ object: {
1030
+ type: "DEVICE_GROUP",
1031
+ value: "dyn"
1032
+ }
1033
+ }, {
1034
+ action: "VIEW_DEVICE",
1035
+ object: {
1036
+ type: "DEVICE_GROUP",
1037
+ value: "dyn"
1038
+ }
1039
+ }]
1040
+ },
1041
+ {
1042
+ name: "asdasd",
1043
+ description: "123",
1044
+ permissions: [{
1045
+ action: "http",
1046
+ object: {
1047
+ type: "any",
1048
+ value: "/api/management/v1/useradm/.*"
1049
+ }
1050
+ }]
1051
+ },
1052
+ {
1053
+ name: "141sasd",
1054
+ description: "1313adg",
1055
+ permission_sets_with_scope: [
1056
+ {
1057
+ ...defaultPermissionSets.ReadDevices,
1058
+ scope: {
1059
+ type: scopedPermissionAreas.groups.scopeType,
1060
+ value: ["bestgroup"]
1061
+ }
1062
+ },
1063
+ {
1064
+ ...defaultPermissionSets.ConnectToDevices,
1065
+ scope: {
1066
+ type: scopedPermissionAreas.groups.scopeType,
1067
+ value: ["bestgroup"]
1068
+ }
1069
+ },
1070
+ { ...defaultPermissionSets.ManageUsers }
1071
+ ]
1072
+ },
1073
+ {
1074
+ name: "kljlkk",
1075
+ description: "lkl",
1076
+ permission_sets_with_scope: [{
1077
+ ...defaultPermissionSets.ConnectToDevices,
1078
+ scope: {
1079
+ type: scopedPermissionAreas.groups.scopeType,
1080
+ value: ["bestgroup"]
1081
+ }
1082
+ }]
1083
+ },
1084
+ {
1085
+ name: "yyyyy",
1086
+ description: "asd",
1087
+ permission_sets_with_scope: [{
1088
+ ...defaultPermissionSets.ManageDevices,
1089
+ scope: {
1090
+ type: scopedPermissionAreas.groups.scopeType,
1091
+ value: ["dockerclient"]
1092
+ }
1093
+ }, { ...defaultPermissionSets.ManageReleases }]
1094
+ },
1095
+ {
1096
+ name: "RBAC_ROLE_DEPLOYMENTS_MANAGER",
1097
+ description: "Intended for users responsible for managing deployments, this role can create and abort deployments",
1098
+ permission_sets_with_scope: [{ ...defaultPermissionSets.DeployToDevices }]
1099
+ },
1100
+ {
1101
+ name: "RBAC_ROLE_REMOTE_TERMINAL",
1102
+ description: `Intended for tech support accounts, this role can access the devices' Remote Terminal.`,
1103
+ permission_sets_with_scope: [{ ...defaultPermissionSets.ConnectToDevices }]
1104
+ },
1105
+ {
1106
+ name: "RBAC_ROLE_PERMIT_ALL",
1107
+ description: "",
1108
+ permission_sets_with_scope: [{ ...defaultPermissionSets.SuperUser }]
1109
+ },
1110
+ {
1111
+ name: "RBAC_ROLE_OBSERVER",
1112
+ description: "Intended for team leaders or limited tech support accounts, this role can see all Devices, Artifacts and Deployment reports but not make any changes.",
1113
+ permission_sets_with_scope: [{ ...defaultPermissionSets.ReadReleases }, { ...defaultPermissionSets.ReadDevices }]
1114
+ },
1115
+ {
1116
+ name: "RBAC_ROLE_CI",
1117
+ description: "Intended for automation accounts building software (e.g. CI/CD systems), this role can only manage Artifacts, including upload new Artifacts and delete Artifacts. It does not have access to Devices or Deployments.",
1118
+ permission_sets_with_scope: [
1119
+ { ...defaultPermissionSets.ReadReleases },
1120
+ { ...defaultPermissionSets.ManageReleases },
1121
+ { ...defaultPermissionSets.UploadArtifacts }
1122
+ ]
1123
+ },
1124
+ {
1125
+ name: "almostAdmin",
1126
+ description: "almost admin rights",
1127
+ permissions: permissionSets.find((item) => item.name === "almostAdmin")?.permissions
1128
+ },
1129
+ {
1130
+ name: "almostAdminNew",
1131
+ description: "almost admin rights",
1132
+ permission_sets_with_scope: Object.values(defaultPermissionSets)
1133
+ }
1134
+ ];
1135
+ const expectedParsedRoles = {
1136
+ "141sasd": {
1137
+ editable: true,
1138
+ isCustom: void 0,
1139
+ uiPermissions: {
1140
+ ...emptyUiPermissions,
1141
+ groups: { bestgroup: [uiPermissionsById.read.value, uiPermissionsById.connect.value] },
1142
+ userManagement: [uiPermissionsById.manage.value]
1143
+ }
1144
+ },
1145
+ asdasd: {
1146
+ editable: false,
1147
+ isCustom: true,
1148
+ uiPermissions: {
1149
+ ...emptyUiPermissions,
1150
+ userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value]
1151
+ }
1152
+ },
1153
+ dyn: {
1154
+ editable: false,
1155
+ isCustom: true,
1156
+ uiPermissions: {
1157
+ ...emptyUiPermissions,
1158
+ deployments: [uiPermissionsById.deploy.value],
1159
+ groups: { dyn: [uiPermissionsById.read.value, uiPermissionsById.deploy.value] }
1160
+ }
1161
+ },
1162
+ kljlkk: {
1163
+ editable: true,
1164
+ isCustom: false,
1165
+ uiPermissions: {
1166
+ ...emptyUiPermissions,
1167
+ groups: { bestgroup: [uiPermissionsById.read.value, uiPermissionsById.connect.value] }
1168
+ }
1169
+ },
1170
+ yyyyy: {
1171
+ editable: true,
1172
+ isCustom: void 0,
1173
+ uiPermissions: {
1174
+ ...emptyUiPermissions,
1175
+ groups: { dockerclient: [uiPermissionsById.read.value, uiPermissionsById.manage.value] },
1176
+ releases: { [ALL_RELEASES]: [uiPermissionsById.manage.value] }
1177
+ }
1178
+ },
1179
+ almostAdmin: {
1180
+ editable: false,
1181
+ isCustom: true,
1182
+ uiPermissions: {
1183
+ ...emptyUiPermissions,
1184
+ auditlog: [uiPermissionsById.read.value],
1185
+ deployments: [
1186
+ uiPermissionsById.manage.value,
1187
+ uiPermissionsById.deploy.value,
1188
+ uiPermissionsById.read.value
1189
+ ],
1190
+ groups: { [ALL_DEVICES]: [
1191
+ uiPermissionsById.read.value,
1192
+ uiPermissionsById.manage.value,
1193
+ uiPermissionsById.connect.value,
1194
+ uiPermissionsById.configure.value
1195
+ ] },
1196
+ releases: { [ALL_RELEASES]: [
1197
+ uiPermissionsById.read.value,
1198
+ uiPermissionsById.upload.value,
1199
+ uiPermissionsById.manage.value
1200
+ ] },
1201
+ userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value]
1202
+ }
1203
+ },
1204
+ almostAdminNew: {
1205
+ editable: true,
1206
+ isCustom: void 0,
1207
+ uiPermissions: {
1208
+ ...emptyUiPermissions,
1209
+ auditlog: [uiPermissionsById.read.value],
1210
+ deployments: [
1211
+ uiPermissionsById.read.value,
1212
+ uiPermissionsById.deploy.value,
1213
+ uiPermissionsById.manage.value
1214
+ ],
1215
+ groups: { [ALL_DEVICES]: [
1216
+ uiPermissionsById.read.value,
1217
+ uiPermissionsById.manage.value,
1218
+ uiPermissionsById.deploy.value,
1219
+ uiPermissionsById.connect.value,
1220
+ uiPermissionsById.configure.value
1221
+ ] },
1222
+ releases: { [ALL_RELEASES]: [
1223
+ uiPermissionsById.manage.value,
1224
+ uiPermissionsById.upload.value,
1225
+ uiPermissionsById.read.value
1226
+ ] },
1227
+ tenantManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value],
1228
+ userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value]
1229
+ }
1230
+ }
1231
+ };
1232
+ const defaultRolesById = {
1233
+ ...rolesById,
1234
+ test: {
1235
+ ...emptyRole,
1236
+ name: "test",
1237
+ description: "test description",
1238
+ editable: true,
1239
+ uiPermissions: {
1240
+ ...emptyUiPermissions,
1241
+ groups: { testGroup: [uiPermissionsById.read.value] },
1242
+ releases: { bar: [uiPermissionsById.read.value] }
1243
+ }
1244
+ }
1245
+ };
1246
+ const receivedRoles = rbacRoles.reduce((accu, role) => {
1247
+ const { name, description, ...roleRemainder } = role;
1248
+ if (name.startsWith("RBAC")) accu[name] = {
1249
+ ...defaultRolesById[name],
1250
+ ...roleRemainder,
1251
+ editable: false,
1252
+ isCustom: false,
1253
+ description: defaultRolesById[name].description ? defaultRolesById[name].description : description
1254
+ };
1255
+ else {
1256
+ const result = expectedParsedRoles[name] ?? {};
1257
+ accu[name] = {
1258
+ ...emptyRole,
1259
+ ...role,
1260
+ ...result,
1261
+ name
1262
+ };
1263
+ }
1264
+ return accu;
1265
+ }, { ...defaultRolesById });
1266
+ const receivedPermissionSets = permissionSets.reduce((accu, set) => {
1267
+ const result = defaultPermissionSets[set.name]?.result ?? {};
1268
+ accu[set.name] = {
1269
+ ...set,
1270
+ result: {
1271
+ ...emptyUiPermissions,
1272
+ ...result
1273
+ }
1274
+ };
1275
+ return accu;
1276
+ }, {});
1277
+ //#endregion
1278
+ export { TEST_SESSION_DATETIME, accessTokens, adminUserCapabilities, defaultCreationDate, defaultMacAddress, defaultPassword, menderEnvironment, mockApiResponses, mockDate, permissionSets, rbacRoles, receivedPermissionSets, receivedRoles, releasesList, spTenantLimits, tenants, testSsoId, token, undefineds, userId, webhookEvents };
1279
+
47
1280
  //# sourceMappingURL=mockData.js.map