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