@northern.tech/testing 0.8.1 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/baseTestConfig.json +17 -0
  2. package/dist/chunk-3CVNBMEF.js +161 -0
  3. package/dist/chunk-3CVNBMEF.js.map +1 -0
  4. package/dist/chunk-7GNK7IRV.js +29 -0
  5. package/dist/chunk-7GNK7IRV.js.map +1 -0
  6. package/dist/chunk-AP4MOFMD.js +239 -0
  7. package/dist/chunk-AP4MOFMD.js.map +1 -0
  8. package/dist/chunk-DOHA53UH.js +301 -0
  9. package/dist/chunk-DOHA53UH.js.map +1 -0
  10. package/dist/chunk-H4J7L3HX.js +188 -0
  11. package/dist/chunk-H4J7L3HX.js.map +1 -0
  12. package/dist/chunk-HRGVXWMH.js +17 -0
  13. package/dist/chunk-HRGVXWMH.js.map +1 -0
  14. package/dist/chunk-KCLTR6QS.js +34 -0
  15. package/dist/chunk-KCLTR6QS.js.map +1 -0
  16. package/dist/chunk-M2TKDOPD.js +266 -0
  17. package/dist/chunk-M2TKDOPD.js.map +1 -0
  18. package/dist/chunk-O42KIJXJ.js +933 -0
  19. package/dist/chunk-O42KIJXJ.js.map +1 -0
  20. package/dist/mockData.cjs +967 -0
  21. package/dist/mockData.cjs.map +1 -0
  22. package/dist/mockData.d.cts +636 -0
  23. package/dist/mockData.d.ts +636 -0
  24. package/dist/mockData.js +47 -0
  25. package/dist/mockData.js.map +1 -0
  26. package/dist/requestHandlers/deploymentHandlers.cjs +1044 -0
  27. package/dist/requestHandlers/deploymentHandlers.cjs.map +1 -0
  28. package/dist/requestHandlers/deploymentHandlers.d.cts +5 -0
  29. package/dist/requestHandlers/deploymentHandlers.d.ts +5 -0
  30. package/dist/requestHandlers/deploymentHandlers.js +8 -0
  31. package/dist/requestHandlers/deploymentHandlers.js.map +1 -0
  32. package/dist/requestHandlers/deviceHandlers.cjs +1096 -0
  33. package/dist/requestHandlers/deviceHandlers.cjs.map +1 -0
  34. package/dist/requestHandlers/deviceHandlers.d.cts +20 -0
  35. package/dist/requestHandlers/deviceHandlers.d.ts +20 -0
  36. package/dist/requestHandlers/deviceHandlers.js +12 -0
  37. package/dist/requestHandlers/deviceHandlers.js.map +1 -0
  38. package/dist/requestHandlers/monitorHandlers.cjs +834 -0
  39. package/dist/requestHandlers/monitorHandlers.cjs.map +1 -0
  40. package/dist/requestHandlers/monitorHandlers.d.cts +5 -0
  41. package/dist/requestHandlers/monitorHandlers.d.ts +5 -0
  42. package/dist/requestHandlers/monitorHandlers.js +8 -0
  43. package/dist/requestHandlers/monitorHandlers.js.map +1 -0
  44. package/dist/requestHandlers/organizationHandlers.cjs +1129 -0
  45. package/dist/requestHandlers/organizationHandlers.cjs.map +1 -0
  46. package/dist/requestHandlers/organizationHandlers.d.cts +5 -0
  47. package/dist/requestHandlers/organizationHandlers.d.ts +5 -0
  48. package/dist/requestHandlers/organizationHandlers.js +8 -0
  49. package/dist/requestHandlers/organizationHandlers.js.map +1 -0
  50. package/dist/requestHandlers/releaseHandlers.cjs +965 -0
  51. package/dist/requestHandlers/releaseHandlers.cjs.map +1 -0
  52. package/dist/requestHandlers/releaseHandlers.d.cts +5 -0
  53. package/dist/requestHandlers/releaseHandlers.d.ts +5 -0
  54. package/dist/requestHandlers/releaseHandlers.js +8 -0
  55. package/dist/requestHandlers/releaseHandlers.js.map +1 -0
  56. package/dist/requestHandlers/requestHandlers.cjs +2002 -0
  57. package/dist/requestHandlers/requestHandlers.cjs.map +1 -0
  58. package/dist/requestHandlers/requestHandlers.d.cts +5 -0
  59. package/dist/requestHandlers/requestHandlers.d.ts +5 -0
  60. package/dist/requestHandlers/requestHandlers.js +35 -0
  61. package/dist/requestHandlers/requestHandlers.js.map +1 -0
  62. package/dist/requestHandlers/userHandlers.cjs +993 -0
  63. package/dist/requestHandlers/userHandlers.cjs.map +1 -0
  64. package/dist/requestHandlers/userHandlers.d.cts +5 -0
  65. package/dist/requestHandlers/userHandlers.d.ts +5 -0
  66. package/dist/requestHandlers/userHandlers.js +8 -0
  67. package/dist/requestHandlers/userHandlers.js.map +1 -0
  68. package/dist/setupTests.cjs +995 -0
  69. package/dist/setupTests.cjs.map +1 -0
  70. package/dist/setupTests.d.cts +77 -0
  71. package/dist/setupTests.d.ts +77 -0
  72. package/dist/setupTests.js +138 -0
  73. package/dist/setupTests.js.map +1 -0
  74. package/dist/theme/light.cjs +41 -0
  75. package/dist/theme/light.cjs.map +1 -0
  76. package/dist/theme/light.d.cts +12 -0
  77. package/dist/theme/light.d.ts +12 -0
  78. package/dist/theme/light.js +7 -0
  79. package/dist/theme/light.js.map +1 -0
  80. package/dist/utils.cjs +71 -0
  81. package/dist/utils.cjs.map +1 -0
  82. package/dist/utils.d.cts +69 -0
  83. package/dist/utils.d.ts +69 -0
  84. package/dist/utils.js +12 -0
  85. package/dist/utils.js.map +1 -0
  86. package/package.json +1 -1
@@ -0,0 +1,933 @@
1
+ // src/mockData.ts
2
+ import {
3
+ ALL_DEVICES,
4
+ ALL_RELEASES,
5
+ defaultPermissionSets,
6
+ emptyRole,
7
+ emptyUiPermissions,
8
+ maxSessionAge,
9
+ rolesById,
10
+ scopedPermissionAreas,
11
+ uiPermissionsById
12
+ } from "@northern.tech/utils/constants";
13
+ var undefineds = /undefined|\[object Object\]/;
14
+ var menderEnvironment = {
15
+ features: {
16
+ hasMultitenancy: true
17
+ },
18
+ integrationVersion: "saas-123.34",
19
+ menderVersion: "next",
20
+ metaMenderVersion: "saas-123.34",
21
+ services: {
22
+ deploymentsVersion: "1.2.3",
23
+ deviceauthVersion: null,
24
+ inventoryVersion: null
25
+ }
26
+ };
27
+ var TEST_SESSION_DATETIME = "2019-01-13T13:00:00.000Z";
28
+ var testDate = new Date(TEST_SESSION_DATETIME);
29
+ var mockDate = new Date(testDate.setMilliseconds(testDate.getMilliseconds() + maxSessionAge));
30
+ var defaultPassword = "mysecretpassword!123";
31
+ var defaultCreationDate = "2019-01-13T06:25:00.000Z";
32
+ var defaultMacAddress = "dc:a6:32:12:ad:bf";
33
+ var testSsoId = "sso_id";
34
+ var permissionSetObjectTypes = {
35
+ any: "Any",
36
+ artifacts: "Artifacts",
37
+ empty: "",
38
+ groups: "Device groups",
39
+ releases: "Releases",
40
+ tenantManagement: "Tenant management",
41
+ userManagement: "User management"
42
+ };
43
+ var commonEndpoints = {
44
+ artifacts: "^/api/management/v1/deployments/artifacts",
45
+ artifactDetails: "^/api/management/v1/deployments/artifacts/[^/]+",
46
+ deviceManagement: "^/api/management/(v[1-9])/(devauth|inventory)/"
47
+ };
48
+ var token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJjZTNkMGY4Yy1hZWRlLTQwMzAtYjM5MS03ZDUwMjBlYjg3M2UiLCJzdWIiOiJhMzBhNzgwYi1iODQzLTUzNDQtODBlMy0wZmQ5NWE0ZjZmYzMiLCJleHAiOjE2MDY4MTUzNjksImlhdCI6MTYwNjIxMDU2OSwibWVuZGVyLnRlbmFudCI6IjVmODVjMTdiY2U2MmI3ZmE3ZjVmNzA0MCIsIm1lbmRlci51c2VyIjp0cnVlLCJpc3MiOiJNZW5kZXIgVXNlcnMiLCJzY3AiOiJtZW5kZXIuKiIsIm1lbmRlci5wbGFuIjoicHJvZmVzc2lvbmFsIiwibmJmIjoxNjA2MjEwNTY5fQ.qVgYdCzLTf8OdK9uUctqqaY_HWkIiwpekuGvuGQAXCEgOv4bRNDlZRN_ZRSbxQoARG3pquhScbQrjBV9tcF4irTUPlTn3yrsXNO17DpcbTVeKRkb88RDtIKiRw3orVZ_GlIb-ckTQ5dS-Nqlyyf3Fmrhca-gwt6m_xv2UrmJK6eYYTMfggdRRWb-4u7mEkBI_pHPMTQrT8kJ2BeX-vHgazH9AoH0k85LHtFZQXD7pXHlDZRnLxJXukncwMGDmF17374gavYAIyDIzcC8sEBMDnVXgpikeA1sauzirqix6mAVs6XmxdQO7aF0wfXO1_PTYUA3Nk1oQfMYNlEI3U9uLRJRZIq2L8fmrrBryhstKd4y0KlBbGAQrx8NtRkgajjd1ljMfPBUEZrb7uSerVjneiO-aIBO76CuH0zdklphIjpGJeogkBhe8pAYNggp1XsZHgpZfl7IE5faKaDkMGnutaea--Czor6bhqUNCuY4tR0cpQJbNwy6LS9o1CFy4Log";
49
+ var accessTokens = [
50
+ { id: "some-id-1", expiration_date: "2022-06-02T11:11:21.725Z", name: "some-name-1" },
51
+ { id: "some-id-2", expiration_date: "2022-06-02T11:11:21.725Z", last_used: "2022-06-02T11:05:21.725Z", name: "some-name-2" }
52
+ ];
53
+ var webhookEvents = [
54
+ {
55
+ id: "1",
56
+ type: "device-status-changed",
57
+ data: { id: "1", status: "accepted" },
58
+ time: "2020-09-01T12:00:00.000Z",
59
+ delivery_statuses: [{ integration_id: "1", success: true, status_code: 200 }]
60
+ },
61
+ {
62
+ id: "2",
63
+ type: "device-status-changed",
64
+ data: { id: "3", status: "accepted" },
65
+ time: "2020-09-01T12:00:05.000Z",
66
+ delivery_statuses: [{ integration_id: "1", success: true, status_code: 200 }]
67
+ }
68
+ ];
69
+ var spTenantLimits = {
70
+ max_devices: {
71
+ current_value: 0,
72
+ name: "max_devices",
73
+ tenant_id: "699f07a3e783def54cf6201f",
74
+ value: 200
75
+ },
76
+ max_micro_devices: {
77
+ current_value: 0,
78
+ name: "max_micro_devices",
79
+ tenant_id: "699f07a3e783def54cf6201f",
80
+ value: 280
81
+ },
82
+ max_system_devices: {
83
+ current_value: 0,
84
+ name: "max_system_devices",
85
+ tenant_id: "699f07a3e783def54cf6201f",
86
+ value: 20
87
+ }
88
+ };
89
+ var tenants = [
90
+ {
91
+ id: "671a0f1dd58c813118fe8622",
92
+ parent_tenant_id: "6718de64b42e08dea2a2065d",
93
+ name: "child2",
94
+ tenant_token: "mQDYRCr-tGbDuJhPp7fArbfTA5htVTWE9G204AzhDUM",
95
+ status: "active",
96
+ additional_info: {
97
+ marketing: false,
98
+ campaign: ""
99
+ },
100
+ plan: "enterprise",
101
+ trial: false,
102
+ trial_expiration: null,
103
+ service_provider: false,
104
+ created_at: "2024-10-24T09:10:53.281Z",
105
+ cancelled_at: null,
106
+ children_tenants: null,
107
+ max_child_tenants: 0,
108
+ device_count: 0,
109
+ device_limit: 100,
110
+ device_limits: {
111
+ max_devices: {
112
+ current_value: 0,
113
+ name: "max_devices",
114
+ tenant_id: "699f07a3e783def54cf6201f",
115
+ value: 200
116
+ },
117
+ max_micro_devices: {
118
+ current_value: 0,
119
+ name: "max_micro_devices",
120
+ tenant_id: "699f07a3e783def54cf6201f",
121
+ value: 280
122
+ },
123
+ max_system_devices: {
124
+ current_value: 0,
125
+ name: "max_system_devices",
126
+ tenant_id: "699f07a3e783def54cf6201f",
127
+ value: 20
128
+ }
129
+ },
130
+ binary_delta: true
131
+ }
132
+ ];
133
+ var adminUserCapabilities = {
134
+ canAuditlog: true,
135
+ canConfigure: true,
136
+ canDeploy: true,
137
+ canManageDevices: true,
138
+ canManageReleases: true,
139
+ canManageUsers: true,
140
+ canReadDeployments: true,
141
+ canReadDevices: true,
142
+ canReadReleases: true,
143
+ canReadUsers: true,
144
+ canTroubleshoot: true,
145
+ canUploadReleases: true,
146
+ canWriteDevices: true
147
+ };
148
+ var userId = "a30a780b-b843-5344-80e3-0fd95a4f6fc3";
149
+ var defaultUser = {
150
+ created_ts: "2019-01-01T10:30:00.000Z",
151
+ email: "a@b.com",
152
+ id: "a1",
153
+ roles: ["RBAC_ROLE_PERMIT_ALL"],
154
+ tfa_status: "enabled",
155
+ verified: true
156
+ };
157
+ var deviceTypes = { qemu: "qemux86-64" };
158
+ var checkInTimeRounded = "2019-01-01T00:00:00.000Z";
159
+ var checkInTimeExact = "2019-01-01T10:25:00.000Z";
160
+ var mockApiResponses = {
161
+ deployments: {
162
+ byId: {
163
+ d1: {
164
+ id: "d1",
165
+ name: "test deployment",
166
+ created: "2019-01-01T12:30:00.000Z",
167
+ devices: {
168
+ a1: {
169
+ id: "a1",
170
+ status: "installing",
171
+ attributes: {},
172
+ image: { size: 123 }
173
+ }
174
+ },
175
+ statistics: {
176
+ status: {
177
+ "already-installed": 0,
178
+ decommissioned: 0,
179
+ downloading: 0,
180
+ failure: 0,
181
+ installing: 1,
182
+ noartifact: 0,
183
+ pending: 0,
184
+ rebooting: 0,
185
+ success: 0
186
+ },
187
+ total_size: 1234
188
+ }
189
+ },
190
+ d2: {
191
+ id: "d2",
192
+ name: "test deployment 2",
193
+ artifact_name: "r1",
194
+ artifacts: ["123"],
195
+ created: "2019-01-01T12:25:00.000Z",
196
+ device_count: 1,
197
+ devices: {
198
+ b1: {
199
+ attributes: {},
200
+ id: "b1",
201
+ status: "pending"
202
+ }
203
+ },
204
+ filter: void 0,
205
+ group: void 0,
206
+ statistics: {
207
+ status: {
208
+ downloading: 0,
209
+ decommissioned: 0,
210
+ failure: 0,
211
+ installing: 0,
212
+ noartifact: 0,
213
+ pending: 1,
214
+ rebooting: 0,
215
+ success: 0,
216
+ "already-installed": 0
217
+ }
218
+ }
219
+ },
220
+ d3: {
221
+ id: "d3",
222
+ name: "Test",
223
+ phases: [
224
+ { id: "0", batch_size: 2, device_count: 2 },
225
+ { id: "1", start_ts: "2019-02-04T11:45:10.002Z", batch_size: 3, device_count: 3 },
226
+ { id: "2", start_ts: "2019-02-05T11:45:10.002Z", batch_size: 5, device_count: 5 },
227
+ { id: "3", start_ts: "2019-02-06T11:45:10.002Z", batch_size: 5, device_count: 5 },
228
+ { id: "4", start_ts: "2019-02-21T11:45:10.002Z", batch_size: 5, device_count: 0 }
229
+ ],
230
+ max_devices: 0,
231
+ created: "2019-01-31T12:59:30.020Z",
232
+ devices: {},
233
+ filter: void 0,
234
+ group: void 0,
235
+ stats: {
236
+ pending: 3,
237
+ decommissioned: 0,
238
+ failure: 23,
239
+ pause_before_committing: 0,
240
+ pause_before_rebooting: 0,
241
+ installing: 0,
242
+ rebooting: 0,
243
+ "already-installed": 0,
244
+ pause_before_installing: 0,
245
+ downloading: 0,
246
+ success: 6,
247
+ aborted: 0,
248
+ noartifact: 0
249
+ },
250
+ statistics: { total_size: "1234" },
251
+ status: "inprogress",
252
+ active: true,
253
+ device_count: 100,
254
+ retries: "0",
255
+ type: "software"
256
+ }
257
+ },
258
+ byStatus: {
259
+ pending: { deploymentIds: ["d2"] },
260
+ inprogress: { deploymentIds: ["d3"] }
261
+ }
262
+ },
263
+ devices: {
264
+ byId: {
265
+ a1: {
266
+ id: "a1",
267
+ auth_sets: [
268
+ {
269
+ id: "auth1",
270
+ identity_data: { mac: defaultMacAddress },
271
+ pubkey: "-----BEGIN PUBLIC KEY-----\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\n-----END PUBLIC KEY-----\n",
272
+ status: "accepted",
273
+ ts: defaultCreationDate
274
+ }
275
+ ],
276
+ updated_ts: "2019-01-01T09:25:00.000Z"
277
+ },
278
+ b1: {
279
+ id: "b1",
280
+ attributes: {
281
+ ipv4_wlan0: "192.168.10.141/24",
282
+ device_type: [deviceTypes.qemu]
283
+ },
284
+ system: {
285
+ check_in_time: checkInTimeRounded
286
+ },
287
+ check_in_time: checkInTimeExact,
288
+ check_in_time_exact: checkInTimeExact,
289
+ check_in_time_rounded: checkInTimeRounded,
290
+ identity_data: { mac: defaultMacAddress },
291
+ status: "accepted",
292
+ decommissioning: false,
293
+ created_ts: defaultCreationDate,
294
+ updated_ts: "2019-01-01T09:25:00.000Z",
295
+ auth_sets: [
296
+ {
297
+ id: "auth1",
298
+ identity_data: { mac: defaultMacAddress },
299
+ pubkey: "-----BEGIN PUBLIC KEY-----\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\n-----END PUBLIC KEY-----\n",
300
+ ts: defaultCreationDate,
301
+ status: "accepted"
302
+ }
303
+ ]
304
+ }
305
+ },
306
+ groups: {
307
+ byId: {
308
+ testGroup: {
309
+ deviceIds: ["a1", "b1"],
310
+ filters: [],
311
+ total: 2
312
+ },
313
+ testGroupDynamic: {
314
+ id: "filter1",
315
+ name: "filter1",
316
+ filters: [{ scope: "system", key: "group", operator: "$eq", value: "things" }]
317
+ }
318
+ }
319
+ },
320
+ limits: { standard: 500, micro: 0, system: 0 },
321
+ byStatus: {
322
+ accepted: { deviceIds: ["a1", "b1"], total: 2 },
323
+ active: { deviceIds: [], total: 0 },
324
+ inactive: { deviceIds: [], total: 0 },
325
+ pending: { deviceIds: ["c1"], total: 1 },
326
+ preauthorized: { deviceIds: [], total: 0 },
327
+ rejected: { deviceIds: [], total: 0 }
328
+ }
329
+ },
330
+ organization: {
331
+ organization: {
332
+ id: "1",
333
+ addons: [],
334
+ name: "test",
335
+ plan: "os",
336
+ trial: false
337
+ },
338
+ products: [
339
+ {
340
+ name: "mender_standard",
341
+ billing_unit: "devices",
342
+ prices: [
343
+ {
344
+ plan: "os",
345
+ constraints: {
346
+ min: 50,
347
+ max: 1e3,
348
+ div: 50
349
+ }
350
+ },
351
+ {
352
+ plan: "professional",
353
+ constraints: {
354
+ min: 250,
355
+ max: 1e4,
356
+ div: 50
357
+ }
358
+ }
359
+ ],
360
+ addons: [
361
+ {
362
+ name: "troubleshoot",
363
+ prices: [{ plan: "os" }, { plan: "professional" }]
364
+ },
365
+ {
366
+ name: "configure",
367
+ prices: [{ plan: "os" }, { plan: "professional" }]
368
+ },
369
+ {
370
+ name: "monitor",
371
+ prices: [{ plan: "professional" }]
372
+ }
373
+ ]
374
+ },
375
+ {
376
+ name: "mender_micro",
377
+ billing_unit: "devices",
378
+ prices: [
379
+ {
380
+ plan: "os",
381
+ constraints: {
382
+ min: 50,
383
+ max: 5e3,
384
+ div: 50
385
+ }
386
+ },
387
+ {
388
+ plan: "professional",
389
+ constraints: {
390
+ min: 500,
391
+ max: 1e5,
392
+ div: 50
393
+ }
394
+ }
395
+ ]
396
+ }
397
+ ],
398
+ intentId: "testIntent",
399
+ auditlog: {
400
+ events: [
401
+ {
402
+ actor: {
403
+ id: "string",
404
+ type: "user",
405
+ email: "string@example.com"
406
+ },
407
+ time: "2019-01-01T12:10:22.667Z",
408
+ action: "create",
409
+ object: {
410
+ id: "string",
411
+ type: "user",
412
+ user: {
413
+ email: "user@acme.com"
414
+ }
415
+ },
416
+ change: "change1"
417
+ },
418
+ {
419
+ actor: {
420
+ id: "string",
421
+ type: "user",
422
+ email: "string",
423
+ identity_data: "string"
424
+ },
425
+ time: "2019-01-01T12:16:22.667Z",
426
+ action: "create",
427
+ object: {
428
+ id: "string",
429
+ type: "deployment",
430
+ deployment: {
431
+ name: "production",
432
+ artifact_name: "Application 0.0.1"
433
+ }
434
+ },
435
+ change: "change2"
436
+ },
437
+ {
438
+ actor: {
439
+ id: "string",
440
+ type: "user",
441
+ email: "string@example.com"
442
+ },
443
+ time: "2019-01-01T12:10:22.669Z",
444
+ action: "open_terminal",
445
+ meta: {
446
+ session_id: ["abd313a8-ee88-48ab-9c99-fbcd80048e6e"]
447
+ },
448
+ object: {
449
+ id: "a1",
450
+ type: "device"
451
+ },
452
+ change: "change3"
453
+ }
454
+ ]
455
+ }
456
+ },
457
+ releases: {
458
+ byId: {
459
+ r1: {
460
+ name: "r1",
461
+ artifacts: [
462
+ {
463
+ id: "art1",
464
+ description: "test description",
465
+ device_types_compatible: [deviceTypes.qemu],
466
+ modified: "2020-09-10T12:16:22.667Z",
467
+ updates: [{ type_info: { type: "testtype" } }],
468
+ artifact_depends: {
469
+ device_type: [deviceTypes.qemu]
470
+ },
471
+ artifact_provides: {
472
+ artifact_name: "myapp",
473
+ "data-partition.myapp.version": "v2020.10",
474
+ list_of_fancy: [deviceTypes.qemu, "x172"]
475
+ },
476
+ clears_artifact_provides: ["data-partition.myapp.*"]
477
+ }
478
+ ],
479
+ device_types_compatible: [deviceTypes.qemu],
480
+ modified: "2020-09-10T12:16:22.667Z",
481
+ metaData: {}
482
+ }
483
+ }
484
+ },
485
+ users: {
486
+ byId: {
487
+ a1: defaultUser,
488
+ [userId]: { ...defaultUser, id: userId, email: "a2@b.com", created_ts: "2019-01-01T12:30:00.000Z" }
489
+ },
490
+ rolesById: {
491
+ admin: {
492
+ name: "admin",
493
+ description: "Administrator role",
494
+ permissions: []
495
+ },
496
+ test: { name: "test", description: "test description", permissions: [] }
497
+ },
498
+ globalSettings: {
499
+ "2fa": "enabled",
500
+ id_attribute: void 0,
501
+ previousFilters: []
502
+ },
503
+ userSettings: {
504
+ "2fa": "disabled",
505
+ columnSelection: [],
506
+ onboarding: { something: "here" },
507
+ tooltips: {},
508
+ previousFilters: []
509
+ }
510
+ }
511
+ };
512
+ var releasesList = Array.from({ length: 5e3 }, (x, i) => ({
513
+ artifacts: [
514
+ {
515
+ id: "art1",
516
+ description: "test description",
517
+ device_types_compatible: [deviceTypes.qemu],
518
+ modified: "2020-09-10T12:16:22.667Z",
519
+ updates: [{ type_info: { type: "testtype" } }],
520
+ artifact_depends: {
521
+ device_type: [deviceTypes.qemu]
522
+ },
523
+ artifact_provides: {
524
+ artifact_name: "myapp",
525
+ "data-partition.myapp.version": "v2020.10",
526
+ list_of_fancy: [deviceTypes.qemu, "x172"]
527
+ },
528
+ clears_artifact_provides: ["data-partition.myapp.*"]
529
+ }
530
+ ],
531
+ device_types_compatible: [deviceTypes.qemu],
532
+ metaData: {},
533
+ name: `release-${i + 1}`,
534
+ modified: i
535
+ }));
536
+ var permissionSets = [
537
+ {
538
+ ...defaultPermissionSets.Basic,
539
+ object: permissionSetObjectTypes.empty,
540
+ description: "Set containing basic permissions.",
541
+ permissions: [
542
+ { action: "http", object: { type: "any", value: "^/api/management/v1/useradm/settings$" } },
543
+ { action: "http", object: { type: "any", value: "^/api/management/v1/useradm/users/me$" } },
544
+ { action: "http", object: { type: "any", value: "^/api/management/1.0/auth/verify$" } },
545
+ { action: "http", object: { type: "PUT", value: "^/api/management/v1/useradm/2faverify$" } },
546
+ { action: "http", object: { type: "POST", value: "^/api/management/v1/useradm/users/me/2fa/(enable|disable)$" } },
547
+ { action: "http", object: { type: "GET", value: "^/api/management/(v[1-9])/useradm/roles" } },
548
+ { action: "http", object: { type: "GET", value: "^/api/management/(v[1-9])/tenantadm/user/tenant" } }
549
+ ]
550
+ },
551
+ {
552
+ ...defaultPermissionSets.ManageReleases,
553
+ action: uiPermissionsById.manage.title,
554
+ object: permissionSetObjectTypes.releases,
555
+ description: "Set of permissions which allows user to manage releases",
556
+ permissions: [
557
+ { action: "http", object: { type: "GET", value: commonEndpoints.artifacts } },
558
+ { action: "http", object: { type: "GET", value: commonEndpoints.artifactDetails } },
559
+ { action: "http", object: { type: "PUT", value: commonEndpoints.artifactDetails } },
560
+ { action: "http", object: { type: "DELETE", value: commonEndpoints.artifactDetails } },
561
+ { action: "http", object: { type: "GET", value: "^/api/management/v1/deployments/artifacts/[^/]+/download" } }
562
+ ]
563
+ },
564
+ {
565
+ ...defaultPermissionSets.ReadUsers,
566
+ action: uiPermissionsById.read.title,
567
+ object: permissionSetObjectTypes.userManagement,
568
+ description: "Set of permissions which allows user to view other users",
569
+ permissions: [{ action: "http", object: { type: "GET", value: "^/api/management/(v[1-9])/useradm/" } }]
570
+ },
571
+ {
572
+ ...defaultPermissionSets.ManageUsers,
573
+ action: uiPermissionsById.manage.title,
574
+ object: permissionSetObjectTypes.userManagement,
575
+ description: "Set of permissions which allows user manage other user accounts",
576
+ permissions: [{ action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/useradm/" } }]
577
+ },
578
+ {
579
+ ...defaultPermissionSets.ReadTenants,
580
+ action: uiPermissionsById.read.title,
581
+ object: permissionSetObjectTypes.tenantManagement,
582
+ description: "Set of permissions which allows user to list other tenants and their config",
583
+ permissions: [
584
+ { action: "http", object: { type: "GET", value: "^/api/management/(v[1-9])/tenantadm/" } },
585
+ { action: "http", object: { type: "POST", value: "^/api/management/(v[1-9])/tenantadm/" } }
586
+ ]
587
+ },
588
+ {
589
+ ...defaultPermissionSets.ManageTenants,
590
+ action: uiPermissionsById.manage.title,
591
+ object: permissionSetObjectTypes.tenantManagement,
592
+ description: "Set of permissions which allows user to manage other tenants and their config",
593
+ permissions: [
594
+ { action: "http", object: { type: "GET", value: "^/api/management/(v[1-9])/tenantadm/" } },
595
+ { action: "http", object: { type: "POST", value: "^/api/management/(v[1-9])/tenantadm/" } },
596
+ { action: "http", object: { type: "PUT", value: "^/api/management/(v[1-9])/tenantadm/" } }
597
+ ]
598
+ },
599
+ {
600
+ ...defaultPermissionSets.ReadAuditLogs,
601
+ action: uiPermissionsById.read.title,
602
+ object: "System Audit Log",
603
+ description: "Set of permissions which allows user to view system audit log",
604
+ permissions: [{ action: "http", object: { type: "GET", value: "^/api/management/(v[1-9]|0.1.0)/auditlogs/logs" } }]
605
+ },
606
+ {
607
+ ...defaultPermissionSets.DeployToDevices,
608
+ action: "Deploy",
609
+ object: permissionSetObjectTypes.groups,
610
+ description: "Set of permissions which allows user to deploy to devices",
611
+ permissions: [{ action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/(deployments|deviceconfig)/" } }],
612
+ supported_scope_types: [scopedPermissionAreas.groups.scopeType]
613
+ },
614
+ {
615
+ ...defaultPermissionSets.ConfigureDevices,
616
+ action: "Configure",
617
+ object: permissionSetObjectTypes.groups,
618
+ description: "Set of permissions which allows user to manage configuration of the devices",
619
+ permissions: [{ action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/deviceconfig/" } }],
620
+ supported_scope_types: [scopedPermissionAreas.groups.scopeType]
621
+ },
622
+ {
623
+ ...defaultPermissionSets.ConnectToDevices,
624
+ action: "Connect",
625
+ object: permissionSetObjectTypes.groups,
626
+ description: "Set of permissions which allows user to use remote terminal and file transfer",
627
+ permissions: [
628
+ { action: "http", object: { type: "GET", value: "^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/connect$" } },
629
+ { action: "http", object: { type: "GET", value: "^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/download\\?path=[^&]+$" } },
630
+ { action: "http", object: { type: "PUT", value: "^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/upload$" } }
631
+ ],
632
+ supported_scope_types: [scopedPermissionAreas.groups.scopeType]
633
+ },
634
+ {
635
+ ...defaultPermissionSets.SuperUser,
636
+ action: "Any",
637
+ object: permissionSetObjectTypes.any,
638
+ description: "Set of permissions which allows user to do anything",
639
+ permissions: [{ action: "any", object: { type: "any", value: "any" } }]
640
+ },
641
+ {
642
+ ...defaultPermissionSets.UploadArtifacts,
643
+ action: "Upload",
644
+ object: permissionSetObjectTypes.artifacts,
645
+ description: "Set of permissions which allows user to upload artifacts",
646
+ permissions: [
647
+ { action: "http", object: { type: "POST", value: commonEndpoints.artifacts } },
648
+ { action: "http", object: { type: "POST", value: "^/api/management/v1/deployments/artifacts/generate" } }
649
+ ]
650
+ },
651
+ {
652
+ ...defaultPermissionSets.ReadDevices,
653
+ action: uiPermissionsById.read.title,
654
+ object: permissionSetObjectTypes.groups,
655
+ description: "Set of permissions which allows user to view devices",
656
+ permissions: [
657
+ { action: "http", object: { type: "POST", value: "^/api/management/v2/inventory/filters/search" } },
658
+ { action: "http", object: { type: "GET", value: "^/api/management/(v[1-9])/(deployments|devauth|inventory|deviceconfig|devicemonitor)/" } },
659
+ { action: "http", object: { type: "GET", value: "^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+$" } }
660
+ ],
661
+ supported_scope_types: [scopedPermissionAreas.groups.scopeType]
662
+ },
663
+ {
664
+ ...defaultPermissionSets.ManageDevices,
665
+ action: uiPermissionsById.manage.title,
666
+ object: permissionSetObjectTypes.groups,
667
+ description: "Set of permissions which allows user to manage devices",
668
+ permissions: [
669
+ { action: "http", object: { type: "POST", value: commonEndpoints.deviceManagement } },
670
+ { action: "http", object: { type: "PUT", value: commonEndpoints.deviceManagement } },
671
+ { action: "http", object: { type: "DELETE", value: commonEndpoints.deviceManagement } }
672
+ ],
673
+ supported_scope_types: [scopedPermissionAreas.groups.scopeType]
674
+ },
675
+ {
676
+ ...defaultPermissionSets.ReadReleases,
677
+ action: uiPermissionsById.read.title,
678
+ object: permissionSetObjectTypes.releases,
679
+ description: "Set of permissions which allows user to view releases",
680
+ permissions: [
681
+ { action: "http", object: { type: "GET", value: commonEndpoints.artifacts } },
682
+ { action: "http", object: { type: "GET", value: commonEndpoints.artifactDetails } },
683
+ { action: "http", object: { type: "GET", value: "^/api/management/v1/deployments/artifacts/[^/]+/download" } }
684
+ ]
685
+ },
686
+ {
687
+ name: "almostAdmin",
688
+ object: permissionSetObjectTypes.empty,
689
+ description: "Set containing all the permissions.",
690
+ permissions: [
691
+ { action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/auditlogs/.*" } },
692
+ { action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/deployments/.*" } },
693
+ { action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/deployments/config/.*" } },
694
+ { action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/deployments/deployments/.*" } },
695
+ { action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/deployments/deployments/releases/.*" } },
696
+ { action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/devauth/.*" } },
697
+ { action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/deviceconfig/.*" } },
698
+ { action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/deviceconnect/.*" } },
699
+ { action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/deviceconnect/devices" } },
700
+ { action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/inventory/.*" } },
701
+ { action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/iot-manager/.*" } },
702
+ { action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/monitor/.*" } },
703
+ { action: "http", object: { type: "any", value: "^/api/management/(v[1-9])/useradm/.*" } }
704
+ ]
705
+ }
706
+ ];
707
+ var rbacRoles = [
708
+ {
709
+ name: "dyn",
710
+ description: "",
711
+ permissions: [
712
+ { action: "CREATE_DEPLOYMENT", object: { type: "DEVICE_GROUP", value: "dyn" } },
713
+ { action: "VIEW_DEVICE", object: { type: "DEVICE_GROUP", value: "dyn" } }
714
+ ]
715
+ },
716
+ { name: "asdasd", description: "123", permissions: [{ action: "http", object: { type: "any", value: "/api/management/v1/useradm/.*" } }] },
717
+ {
718
+ name: "141sasd",
719
+ description: "1313adg",
720
+ permission_sets_with_scope: [
721
+ { ...defaultPermissionSets.ReadDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ["bestgroup"] } },
722
+ { ...defaultPermissionSets.ConnectToDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ["bestgroup"] } },
723
+ { ...defaultPermissionSets.ManageUsers }
724
+ ]
725
+ },
726
+ {
727
+ name: "kljlkk",
728
+ description: "lkl",
729
+ permission_sets_with_scope: [{ ...defaultPermissionSets.ConnectToDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ["bestgroup"] } }]
730
+ },
731
+ {
732
+ name: "yyyyy",
733
+ description: "asd",
734
+ permission_sets_with_scope: [
735
+ { ...defaultPermissionSets.ManageDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ["dockerclient"] } },
736
+ { ...defaultPermissionSets.ManageReleases }
737
+ ]
738
+ },
739
+ {
740
+ name: "RBAC_ROLE_DEPLOYMENTS_MANAGER",
741
+ description: "Intended for users responsible for managing deployments, this role can create and abort deployments",
742
+ permission_sets_with_scope: [{ ...defaultPermissionSets.DeployToDevices }]
743
+ },
744
+ {
745
+ name: "RBAC_ROLE_REMOTE_TERMINAL",
746
+ description: `Intended for tech support accounts, this role can access the devices' Remote Terminal.`,
747
+ permission_sets_with_scope: [{ ...defaultPermissionSets.ConnectToDevices }]
748
+ },
749
+ { name: "RBAC_ROLE_PERMIT_ALL", description: "", permission_sets_with_scope: [{ ...defaultPermissionSets.SuperUser }] },
750
+ {
751
+ name: "RBAC_ROLE_OBSERVER",
752
+ 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.",
753
+ permission_sets_with_scope: [{ ...defaultPermissionSets.ReadReleases }, { ...defaultPermissionSets.ReadDevices }]
754
+ },
755
+ {
756
+ name: "RBAC_ROLE_CI",
757
+ 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.",
758
+ permission_sets_with_scope: [
759
+ { ...defaultPermissionSets.ReadReleases },
760
+ { ...defaultPermissionSets.ManageReleases },
761
+ { ...defaultPermissionSets.UploadArtifacts }
762
+ ]
763
+ },
764
+ {
765
+ name: "almostAdmin",
766
+ description: "almost admin rights",
767
+ permissions: permissionSets.find((item) => item.name === "almostAdmin")?.permissions
768
+ },
769
+ {
770
+ name: "almostAdminNew",
771
+ description: "almost admin rights",
772
+ permission_sets_with_scope: Object.values(defaultPermissionSets)
773
+ }
774
+ ];
775
+ var expectedParsedRoles = {
776
+ "141sasd": {
777
+ editable: true,
778
+ isCustom: void 0,
779
+ uiPermissions: {
780
+ ...emptyUiPermissions,
781
+ groups: { bestgroup: [uiPermissionsById.read.value, uiPermissionsById.connect.value] },
782
+ userManagement: [uiPermissionsById.manage.value]
783
+ }
784
+ },
785
+ asdasd: {
786
+ editable: false,
787
+ isCustom: true,
788
+ uiPermissions: { ...emptyUiPermissions, userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value] }
789
+ },
790
+ dyn: {
791
+ editable: false,
792
+ isCustom: true,
793
+ uiPermissions: {
794
+ ...emptyUiPermissions,
795
+ deployments: [uiPermissionsById.deploy.value],
796
+ groups: { dyn: [uiPermissionsById.read.value, uiPermissionsById.deploy.value] }
797
+ }
798
+ },
799
+ kljlkk: {
800
+ editable: true,
801
+ isCustom: false,
802
+ uiPermissions: { ...emptyUiPermissions, groups: { bestgroup: [uiPermissionsById.read.value, uiPermissionsById.connect.value] } }
803
+ },
804
+ yyyyy: {
805
+ editable: true,
806
+ isCustom: void 0,
807
+ uiPermissions: {
808
+ ...emptyUiPermissions,
809
+ groups: { dockerclient: [uiPermissionsById.read.value, uiPermissionsById.manage.value] },
810
+ releases: { [ALL_RELEASES]: [uiPermissionsById.manage.value] }
811
+ }
812
+ },
813
+ almostAdmin: {
814
+ editable: false,
815
+ isCustom: true,
816
+ uiPermissions: {
817
+ ...emptyUiPermissions,
818
+ auditlog: [uiPermissionsById.read.value],
819
+ deployments: [uiPermissionsById.manage.value, uiPermissionsById.deploy.value, uiPermissionsById.read.value],
820
+ groups: {
821
+ [ALL_DEVICES]: [
822
+ uiPermissionsById.read.value,
823
+ // we can't assign deployment permissions to devices here, since the old path based rbac controls don't allow the scoped permissions
824
+ // uiPermissionsById.deploy.value,
825
+ uiPermissionsById.manage.value,
826
+ uiPermissionsById.connect.value,
827
+ uiPermissionsById.configure.value
828
+ ]
829
+ },
830
+ releases: {
831
+ [ALL_RELEASES]: [uiPermissionsById.read.value, uiPermissionsById.upload.value, uiPermissionsById.manage.value]
832
+ },
833
+ userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value]
834
+ }
835
+ },
836
+ almostAdminNew: {
837
+ editable: true,
838
+ isCustom: void 0,
839
+ uiPermissions: {
840
+ ...emptyUiPermissions,
841
+ auditlog: [uiPermissionsById.read.value],
842
+ deployments: [uiPermissionsById.read.value, uiPermissionsById.deploy.value, uiPermissionsById.manage.value],
843
+ groups: {
844
+ [ALL_DEVICES]: [
845
+ uiPermissionsById.read.value,
846
+ uiPermissionsById.manage.value,
847
+ uiPermissionsById.deploy.value,
848
+ uiPermissionsById.connect.value,
849
+ uiPermissionsById.configure.value
850
+ ]
851
+ },
852
+ releases: {
853
+ [ALL_RELEASES]: [uiPermissionsById.manage.value, uiPermissionsById.upload.value, uiPermissionsById.read.value]
854
+ },
855
+ tenantManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value],
856
+ userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value]
857
+ }
858
+ }
859
+ };
860
+ var defaultRolesById = {
861
+ ...rolesById,
862
+ test: {
863
+ ...emptyRole,
864
+ name: "test",
865
+ description: "test description",
866
+ editable: true,
867
+ uiPermissions: {
868
+ ...emptyUiPermissions,
869
+ groups: { testGroup: [uiPermissionsById.read.value] },
870
+ releases: { bar: [uiPermissionsById.read.value] }
871
+ }
872
+ }
873
+ };
874
+ var receivedRoles = rbacRoles.reduce(
875
+ (accu, role) => {
876
+ const { name, description, ...roleRemainder } = role;
877
+ if (name.startsWith("RBAC")) {
878
+ accu[name] = {
879
+ ...defaultRolesById[name],
880
+ ...roleRemainder,
881
+ editable: false,
882
+ isCustom: false,
883
+ description: defaultRolesById[name].description ? defaultRolesById[name].description : description
884
+ };
885
+ } else {
886
+ const result = expectedParsedRoles[name] ?? {};
887
+ accu[name] = {
888
+ ...emptyRole,
889
+ ...role,
890
+ ...result,
891
+ name
892
+ };
893
+ }
894
+ return accu;
895
+ },
896
+ { ...defaultRolesById }
897
+ );
898
+ var receivedPermissionSets = permissionSets.reduce((accu, set) => {
899
+ const result = defaultPermissionSets[set.name]?.result ?? {};
900
+ accu[set.name] = {
901
+ ...set,
902
+ result: {
903
+ ...emptyUiPermissions,
904
+ ...result
905
+ }
906
+ };
907
+ return accu;
908
+ }, {});
909
+
910
+ export {
911
+ undefineds,
912
+ menderEnvironment,
913
+ TEST_SESSION_DATETIME,
914
+ mockDate,
915
+ defaultPassword,
916
+ defaultCreationDate,
917
+ defaultMacAddress,
918
+ testSsoId,
919
+ token,
920
+ accessTokens,
921
+ webhookEvents,
922
+ spTenantLimits,
923
+ tenants,
924
+ adminUserCapabilities,
925
+ userId,
926
+ mockApiResponses,
927
+ releasesList,
928
+ permissionSets,
929
+ rbacRoles,
930
+ receivedRoles,
931
+ receivedPermissionSets
932
+ };
933
+ //# sourceMappingURL=chunk-O42KIJXJ.js.map