@northern.tech/testing 0.14.1 → 0.15.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.
- package/dist/mockData.cjs +6 -0
- package/dist/mockData.cjs.map +1 -1
- package/dist/mockData.d.cts +6 -1
- package/dist/mockData.d.ts +6 -1
- package/dist/mockData.js +6 -1
- package/dist/mockData.js.map +1 -1
- package/dist/requestHandlers/deploymentHandlers.cjs +1 -1
- package/dist/requestHandlers/deploymentHandlers.js +1 -1
- package/dist/requestHandlers/deviceHandlers.cjs +1 -1
- package/dist/requestHandlers/deviceHandlers.js +1 -1
- package/dist/requestHandlers/monitorHandlers.cjs +1 -1
- package/dist/requestHandlers/monitorHandlers.js +1 -1
- package/dist/requestHandlers/organizationHandlers.cjs +1 -1
- package/dist/requestHandlers/organizationHandlers.js +1 -1
- package/dist/requestHandlers/releaseHandlers.cjs +1 -1
- package/dist/requestHandlers/releaseHandlers.js +1 -1
- package/dist/requestHandlers/userHandlers.cjs +12 -1
- package/dist/requestHandlers/userHandlers.cjs.map +1 -1
- package/dist/requestHandlers/userHandlers.js +13 -2
- package/dist/requestHandlers/userHandlers.js.map +1 -1
- package/dist/requestHandlers/validation.cjs +1 -1
- package/dist/requestHandlers/validation.js +1 -1
- package/dist/validation-DgN6L81e.js +64 -0
- package/dist/validation-DgN6L81e.js.map +1 -0
- package/dist/validation-wpXX0Zy5.cjs +75 -0
- package/dist/validation-wpXX0Zy5.cjs.map +1 -0
- package/package.json +1 -1
- package/dist/validation-Co8NhPBf.js +0 -64
- package/dist/validation-Co8NhPBf.js.map +0 -1
- package/dist/validation-Cow1Jq9r.cjs +0 -75
- package/dist/validation-Cow1Jq9r.cjs.map +0 -1
package/dist/mockData.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockData.js","names":[],"sources":["../src/mockData.ts"],"sourcesContent":["// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport {\n ALL_DEVICES,\n ALL_RELEASES,\n defaultPermissionSets,\n emptyRole,\n emptyUiPermissions,\n maxSessionAge,\n rolesById,\n scopedPermissionAreas,\n uiPermissionsById\n} from '@northern.tech/utils/constants';\n\nexport const undefineds = /undefined|\\[object Object\\]/;\n\nexport const menderEnvironment = {\n features: {\n hasMultitenancy: true\n },\n version: 'saas-123.34'\n};\nexport const TEST_SESSION_DATETIME = '2019-01-13T13:00:00.000Z';\nconst testDate = new Date(TEST_SESSION_DATETIME);\nexport const mockDate = new Date(testDate.setMilliseconds(testDate.getMilliseconds() + maxSessionAge));\n\nexport const defaultPassword = 'mysecretpassword!123';\nexport const defaultCreationDate = '2019-01-13T06:25:00.000Z';\nexport const defaultMacAddress = 'dc:a6:32:12:ad:bf';\n\nexport const testSsoId = 'sso_id';\n\nconst permissionSetObjectTypes = {\n any: 'Any',\n artifacts: 'Artifacts',\n empty: '',\n groups: 'Device groups',\n releases: 'Releases',\n tenantManagement: 'Tenant management',\n userManagement: 'User management'\n};\n\nconst commonEndpoints = {\n artifacts: '^/api/management/v1/deployments/artifacts',\n artifactDetails: '^/api/management/v1/deployments/artifacts/[^/]+',\n deviceManagement: '^/api/management/(v[1-9])/(devauth|inventory)/'\n};\n\nexport const token =\n 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJjZTNkMGY4Yy1hZWRlLTQwMzAtYjM5MS03ZDUwMjBlYjg3M2UiLCJzdWIiOiJhMzBhNzgwYi1iODQzLTUzNDQtODBlMy0wZmQ5NWE0ZjZmYzMiLCJleHAiOjE2MDY4MTUzNjksImlhdCI6MTYwNjIxMDU2OSwibWVuZGVyLnRlbmFudCI6IjVmODVjMTdiY2U2MmI3ZmE3ZjVmNzA0MCIsIm1lbmRlci51c2VyIjp0cnVlLCJpc3MiOiJNZW5kZXIgVXNlcnMiLCJzY3AiOiJtZW5kZXIuKiIsIm1lbmRlci5wbGFuIjoicHJvZmVzc2lvbmFsIiwibmJmIjoxNjA2MjEwNTY5fQ.qVgYdCzLTf8OdK9uUctqqaY_HWkIiwpekuGvuGQAXCEgOv4bRNDlZRN_ZRSbxQoARG3pquhScbQrjBV9tcF4irTUPlTn3yrsXNO17DpcbTVeKRkb88RDtIKiRw3orVZ_GlIb-ckTQ5dS-Nqlyyf3Fmrhca-gwt6m_xv2UrmJK6eYYTMfggdRRWb-4u7mEkBI_pHPMTQrT8kJ2BeX-vHgazH9AoH0k85LHtFZQXD7pXHlDZRnLxJXukncwMGDmF17374gavYAIyDIzcC8sEBMDnVXgpikeA1sauzirqix6mAVs6XmxdQO7aF0wfXO1_PTYUA3Nk1oQfMYNlEI3U9uLRJRZIq2L8fmrrBryhstKd4y0KlBbGAQrx8NtRkgajjd1ljMfPBUEZrb7uSerVjneiO-aIBO76CuH0zdklphIjpGJeogkBhe8pAYNggp1XsZHgpZfl7IE5faKaDkMGnutaea--Czor6bhqUNCuY4tR0cpQJbNwy6LS9o1CFy4Log';\n\nexport const accessTokens = [\n { id: 'some-id-1', expiration_date: '2022-06-02T11:11:21.725Z', name: 'some-name-1' },\n { id: 'some-id-2', expiration_date: '2022-06-02T11:11:21.725Z', last_used: '2022-06-02T11:05:21.725Z', name: 'some-name-2' }\n];\n\nexport const webhookEvents = [\n {\n id: '1',\n type: 'device-status-changed',\n data: { id: '1', status: 'accepted' },\n time: '2020-09-01T12:00:00.000Z',\n delivery_statuses: [{ integration_id: '1', success: true, status_code: 200 }]\n },\n {\n id: '2',\n type: 'device-status-changed',\n data: { id: '3', status: 'accepted' },\n time: '2020-09-01T12:00:05.000Z',\n delivery_statuses: [{ integration_id: '1', success: true, status_code: 200 }]\n }\n];\n\nexport const spTenantLimits = {\n max_devices: {\n current_value: 0,\n name: 'max_devices',\n tenant_id: '699f07a3e783def54cf6201f',\n value: 200\n },\n max_micro_devices: {\n current_value: 0,\n name: 'max_micro_devices',\n tenant_id: '699f07a3e783def54cf6201f',\n value: 280\n },\n max_system_devices: {\n current_value: 0,\n name: 'max_system_devices',\n tenant_id: '699f07a3e783def54cf6201f',\n value: 20\n }\n};\n\nexport const tenants = [\n {\n id: '671a0f1dd58c813118fe8622',\n parent_tenant_id: '6718de64b42e08dea2a2065d',\n name: 'child2',\n tenant_token: 'mQDYRCr-tGbDuJhPp7fArbfTA5htVTWE9G204AzhDUM',\n status: 'active',\n additional_info: {\n marketing: false,\n campaign: ''\n },\n plan: 'enterprise',\n trial: false,\n trial_expiration: null,\n service_provider: false,\n created_at: '2024-10-24T09:10:53.281Z',\n cancelled_at: null,\n children_tenants: null,\n max_child_tenants: 0,\n device_count: 0,\n device_limit: 100,\n device_limits: {\n max_devices: {\n current_value: 0,\n name: 'max_devices',\n tenant_id: '699f07a3e783def54cf6201f',\n value: 200\n },\n max_micro_devices: {\n current_value: 0,\n name: 'max_micro_devices',\n tenant_id: '699f07a3e783def54cf6201f',\n value: 280\n },\n max_system_devices: {\n current_value: 0,\n name: 'max_system_devices',\n tenant_id: '699f07a3e783def54cf6201f',\n value: 20\n }\n },\n binary_delta: true\n }\n];\n\nexport const adminUserCapabilities = {\n canAuditlog: true,\n canConfigure: true,\n canDeploy: true,\n canManageDevices: true,\n canManageReleases: true,\n canManageUsers: true,\n canReadDeployments: true,\n canReadDevices: true,\n canReadReleases: true,\n canReadUsers: true,\n canTroubleshoot: true,\n canUploadReleases: true,\n canWriteDevices: true\n};\n\nexport const userId = 'a30a780b-b843-5344-80e3-0fd95a4f6fc3';\n\nconst defaultUser = {\n created_ts: '2019-01-01T10:30:00.000Z',\n email: 'a@b.com',\n id: 'a1',\n roles: ['RBAC_ROLE_PERMIT_ALL'],\n tfa_status: 'enabled',\n verified: true\n};\n\nconst deviceTypes = { qemu: 'qemux86-64' };\n\nconst checkInTimeRounded = '2019-01-01T00:00:00.000Z';\nconst checkInTimeExact = '2019-01-01T10:25:00.000Z';\n\nexport const mockApiResponses = {\n deployments: {\n byId: {\n d1: {\n id: 'd1',\n name: 'test deployment',\n created: '2019-01-01T12:30:00.000Z',\n devices: {\n a1: {\n id: 'a1',\n status: 'installing',\n attributes: {},\n image: { size: 123 }\n }\n },\n statistics: {\n status: {\n 'already-installed': 0,\n decommissioned: 0,\n downloading: 0,\n failure: 0,\n installing: 1,\n noartifact: 0,\n pending: 0,\n rebooting: 0,\n success: 0\n },\n total_size: 1234\n }\n },\n d2: {\n id: 'd2',\n name: 'test deployment 2',\n artifact_name: 'r1',\n artifacts: ['123'],\n created: '2019-01-01T12:25:00.000Z',\n device_count: 1,\n devices: {\n b1: {\n attributes: {},\n id: 'b1',\n status: 'pending'\n }\n },\n filter: undefined,\n group: undefined,\n statistics: {\n status: {\n downloading: 0,\n decommissioned: 0,\n failure: 0,\n installing: 0,\n noartifact: 0,\n pending: 1,\n rebooting: 0,\n success: 0,\n 'already-installed': 0\n }\n }\n },\n d3: {\n id: 'd3',\n name: 'Test',\n phases: [\n { id: '0', batch_size: 2, device_count: 2 },\n { id: '1', start_ts: '2019-02-04T11:45:10.002Z', batch_size: 3, device_count: 3 },\n { id: '2', start_ts: '2019-02-05T11:45:10.002Z', batch_size: 5, device_count: 5 },\n { id: '3', start_ts: '2019-02-06T11:45:10.002Z', batch_size: 5, device_count: 5 },\n { id: '4', start_ts: '2019-02-21T11:45:10.002Z', batch_size: 5, device_count: 0 }\n ],\n max_devices: 0,\n created: '2019-01-31T12:59:30.020Z',\n devices: {},\n filter: undefined,\n group: undefined,\n stats: {\n pending: 3,\n decommissioned: 0,\n failure: 23,\n pause_before_committing: 0,\n pause_before_rebooting: 0,\n installing: 0,\n rebooting: 0,\n 'already-installed': 0,\n pause_before_installing: 0,\n downloading: 0,\n success: 6,\n aborted: 0,\n noartifact: 0\n },\n statistics: { total_size: '1234' },\n status: 'inprogress',\n active: true,\n device_count: 100,\n retries: 0,\n type: 'software'\n }\n },\n byStatus: {\n pending: { deploymentIds: ['d2'] },\n inprogress: { deploymentIds: ['d3'] }\n }\n },\n devices: {\n byId: {\n a1: {\n id: 'a1',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n status: 'accepted',\n ts: defaultCreationDate\n }\n ],\n updated_ts: '2019-01-01T09:25:00.000Z'\n },\n b1: {\n id: 'b1',\n attributes: {\n ipv4_wlan0: '192.168.10.141/24',\n device_type: [deviceTypes.qemu]\n },\n system: {\n check_in_time: checkInTimeRounded\n },\n check_in_time: checkInTimeExact,\n check_in_time_exact: checkInTimeExact,\n check_in_time_rounded: checkInTimeRounded,\n identity_data: { mac: defaultMacAddress },\n status: 'accepted',\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: 'accepted'\n }\n ]\n }\n },\n groups: {\n byId: {\n testGroup: {\n deviceIds: ['a1', 'b1'],\n filters: [],\n total: 2\n },\n testGroupDynamic: {\n id: 'filter1',\n name: 'filter1',\n filters: [{ scope: 'system', key: 'group', operator: '$eq', value: 'things' }]\n }\n }\n },\n limits: { standard: 500, micro: 0, system: 0 },\n byStatus: {\n accepted: { deviceIds: ['a1', 'b1'], total: 2 },\n active: { deviceIds: [], total: 0 },\n inactive: { deviceIds: [], total: 0 },\n pending: { deviceIds: ['c1'], total: 1 },\n preauthorized: { deviceIds: [], total: 0 },\n rejected: { deviceIds: [], total: 0 }\n }\n },\n organization: {\n organization: {\n id: '1',\n addons: [],\n name: 'test',\n plan: 'os',\n trial: false\n },\n products: [\n {\n name: 'mender_standard',\n billing_unit: 'devices',\n prices: [\n {\n plan: 'os',\n constraints: {\n min: 50,\n max: 1000,\n div: 50\n }\n },\n {\n plan: 'professional',\n constraints: {\n min: 250,\n max: 10000,\n div: 50\n }\n }\n ],\n addons: [\n {\n name: 'troubleshoot',\n prices: [{ plan: 'os' }, { plan: 'professional' }]\n },\n {\n name: 'configure',\n prices: [{ plan: 'os' }, { plan: 'professional' }]\n },\n {\n name: 'monitor',\n prices: [{ plan: 'professional' }]\n }\n ]\n },\n {\n name: 'mender_micro',\n billing_unit: 'devices',\n prices: [\n {\n plan: 'os',\n constraints: {\n min: 50,\n max: 5000,\n div: 50\n }\n },\n {\n plan: 'professional',\n constraints: {\n min: 500,\n max: 100000,\n div: 50\n }\n }\n ]\n }\n ],\n intentId: 'testIntent',\n auditlog: {\n events: [\n {\n actor: {\n id: 'string',\n type: 'user',\n email: 'string@example.com'\n },\n time: '2019-01-01T12:10:22.667Z',\n action: 'create',\n object: {\n id: 'string',\n type: 'user',\n user: {\n email: 'user@acme.com'\n }\n },\n change: 'change1'\n },\n {\n actor: {\n id: 'string',\n type: 'user',\n email: 'string',\n identity_data: 'string'\n },\n time: '2019-01-01T12:16:22.667Z',\n action: 'create',\n object: {\n id: 'string',\n type: 'deployment',\n deployment: {\n name: 'production',\n artifact_name: 'Application 0.0.1'\n }\n },\n change: 'change2'\n },\n {\n actor: {\n id: 'string',\n type: 'user',\n email: 'string@example.com'\n },\n time: '2019-01-01T12:10:22.669Z',\n action: 'open_terminal',\n meta: {\n session_id: ['abd313a8-ee88-48ab-9c99-fbcd80048e6e']\n },\n object: {\n id: 'a1',\n type: 'device'\n },\n change: 'change3'\n }\n ]\n }\n },\n releases: {\n byId: {\n r1: {\n name: 'r1',\n artifacts: [\n {\n id: 'art1',\n description: 'test description',\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n updates: [{ type_info: { type: 'testtype' } }],\n artifact_depends: {\n device_type: [deviceTypes.qemu]\n },\n artifact_provides: {\n artifact_name: 'myapp',\n 'data-partition.myapp.version': 'v2020.10',\n list_of_fancy: [deviceTypes.qemu, 'x172']\n },\n clears_artifact_provides: ['data-partition.myapp.*']\n }\n ],\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n metaData: {}\n }\n }\n },\n manifests: {\n byId: {\n m1000: {\n name: 'm1000',\n modified: '2020-01-01T00:16:39.000Z',\n artifact: {\n id: 'art-m1000',\n name: 'm1000',\n description: 'test manifest description',\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-01-01T00:16:39.000Z'\n },\n manifest: {\n api_version: 'mender/v1',\n kind: 'manifest',\n name: 'm1000',\n system_types_compatible: [deviceTypes.qemu],\n component_types: {\n 'component-a': {\n artifact_name: 'art-m1000-component',\n update_strategy: { order: 10 }\n }\n }\n },\n tags: [],\n notes: ''\n }\n }\n },\n users: {\n byId: {\n a1: defaultUser,\n [userId]: { ...defaultUser, id: userId, email: 'a2@b.com', created_ts: '2019-01-01T12:30:00.000Z' }\n },\n rolesById: {\n admin: {\n name: 'admin',\n description: 'Administrator role',\n permissions: []\n },\n test: { name: 'test', description: 'test description', permissions: [] }\n },\n globalSettings: {\n '2fa': 'enabled',\n id_attribute: undefined,\n previousFilters: []\n },\n userSettings: {\n '2fa': 'disabled',\n columnSelection: [],\n onboarding: { something: 'here' },\n tooltips: {},\n previousFilters: []\n }\n }\n};\n\nexport const manifestsList = Array.from({ length: 1000 }, (_, i) => ({\n name: `m${i + 1}`,\n modified: new Date(2020, 0, 1, 0, 0, i).toISOString(),\n artifact: {\n id: `art-m${i + 1}`,\n name: `m${i + 1}`,\n description: 'test manifest description',\n device_types_compatible: [deviceTypes.qemu],\n modified: new Date(2020, 0, 1, 0, 0, i).toISOString()\n },\n manifest: {\n api_version: 'mender/v1',\n kind: 'manifest',\n name: `m${i + 1}`,\n system_types_compatible: [deviceTypes.qemu],\n component_types: {\n 'component-a': {\n artifact_name: `art-m${i + 1}-component`,\n update_strategy: { order: 10 }\n }\n }\n },\n tags: [],\n notes: ''\n}));\n\nexport const softwareList = [\n ...Array.from({ length: 500 }, (_, i) => ({\n name: `release-${i + 1}`,\n modified: new Date(2020, 8, 10, 12, 16, i).toISOString(),\n kind: 'release' as const,\n tags: i < 5 ? ['some-tag'] : [],\n update_type: i < 5 ? 'single-file' : undefined,\n compatible_types: ['raspberrypi4', 'qemux86-64'],\n notes: ''\n })),\n ...Array.from({ length: 500 }, (_, i) => ({\n name: `m${i + 1}`,\n modified: new Date(2020, 0, 1, 0, 0, i).toISOString(),\n kind: 'manifest' as const,\n tags: i < 3 ? ['some-tag'] : [],\n update_type: i < 2 ? 'single-file' : undefined,\n compatible_types: ['system-core'],\n notes: ''\n }))\n];\n\nexport const releasesList = Array.from({ length: 5000 }, (x, i) => ({\n artifacts: [\n {\n id: 'art1',\n description: 'test description',\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n updates: [{ type_info: { type: 'testtype' } }],\n artifact_depends: {\n device_type: [deviceTypes.qemu]\n },\n artifact_provides: {\n artifact_name: 'myapp',\n 'data-partition.myapp.version': 'v2020.10',\n list_of_fancy: [deviceTypes.qemu, 'x172']\n },\n clears_artifact_provides: ['data-partition.myapp.*']\n }\n ],\n device_types_compatible: [deviceTypes.qemu],\n metaData: {},\n name: `release-${i + 1}`,\n modified: i\n}));\n\nexport const permissionSets = [\n {\n ...defaultPermissionSets.Basic,\n object: permissionSetObjectTypes.empty,\n description: 'Set containing basic permissions.',\n permissions: [\n { action: 'http', object: { type: 'any', value: '^/api/management/v1/useradm/settings$' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/v1/useradm/users/me$' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/1.0/auth/verify$' } },\n { action: 'http', object: { type: 'PUT', value: '^/api/management/v1/useradm/2faverify$' } },\n { action: 'http', object: { type: 'POST', value: '^/api/management/v1/useradm/users/me/2fa/(enable|disable)$' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/useradm/roles' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/tenantadm/user/tenant' } }\n ]\n },\n {\n ...defaultPermissionSets.ManageReleases,\n action: uiPermissionsById.manage.title,\n object: permissionSetObjectTypes.releases,\n description: 'Set of permissions which allows user to manage releases',\n permissions: [\n { action: 'http', object: { type: 'GET', value: commonEndpoints.artifacts } },\n { action: 'http', object: { type: 'GET', value: commonEndpoints.artifactDetails } },\n { action: 'http', object: { type: 'PUT', value: commonEndpoints.artifactDetails } },\n { action: 'http', object: { type: 'DELETE', value: commonEndpoints.artifactDetails } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/v1/deployments/artifacts/[^/]+/download' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/v1alpha1/deployments/software' } }\n ]\n },\n {\n ...defaultPermissionSets.ReadUsers,\n action: uiPermissionsById.read.title,\n object: permissionSetObjectTypes.userManagement,\n description: 'Set of permissions which allows user to view other users',\n permissions: [{ action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/useradm/' } }]\n },\n {\n ...defaultPermissionSets.ManageUsers,\n action: uiPermissionsById.manage.title,\n object: permissionSetObjectTypes.userManagement,\n description: 'Set of permissions which allows user manage other user accounts',\n permissions: [{ action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/useradm/' } }]\n },\n {\n ...defaultPermissionSets.ReadTenants,\n action: uiPermissionsById.read.title,\n object: permissionSetObjectTypes.tenantManagement,\n description: 'Set of permissions which allows user to list other tenants and their config',\n permissions: [\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/tenantadm/' } },\n { action: 'http', object: { type: 'POST', value: '^/api/management/(v[1-9])/tenantadm/' } }\n ]\n },\n {\n ...defaultPermissionSets.ManageTenants,\n action: uiPermissionsById.manage.title,\n object: permissionSetObjectTypes.tenantManagement,\n description: 'Set of permissions which allows user to manage other tenants and their config',\n permissions: [\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/tenantadm/' } },\n { action: 'http', object: { type: 'POST', value: '^/api/management/(v[1-9])/tenantadm/' } },\n { action: 'http', object: { type: 'PUT', value: '^/api/management/(v[1-9])/tenantadm/' } }\n ]\n },\n {\n ...defaultPermissionSets.ReadAuditLogs,\n action: uiPermissionsById.read.title,\n object: 'System Audit Log',\n description: 'Set of permissions which allows user to view system audit log',\n permissions: [{ action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9]|0.1.0)/auditlogs/logs' } }]\n },\n {\n ...defaultPermissionSets.DeployToDevices,\n action: 'Deploy',\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to deploy to devices',\n permissions: [{ action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/(deployments|deviceconfig)/' } }],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.ConfigureDevices,\n action: 'Configure',\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to manage configuration of the devices',\n permissions: [{ action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deviceconfig/' } }],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.ConnectToDevices,\n action: 'Connect',\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to use remote terminal and file transfer',\n permissions: [\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/connect$' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/download\\\\?path=[^\\u0026]+$' } },\n { action: 'http', object: { type: 'PUT', value: '^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/upload$' } }\n ],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.SuperUser,\n action: 'Any',\n object: permissionSetObjectTypes.any,\n description: 'Set of permissions which allows user to do anything',\n permissions: [{ action: 'any', object: { type: 'any', value: 'any' } }]\n },\n {\n ...defaultPermissionSets.UploadArtifacts,\n action: 'Upload',\n object: permissionSetObjectTypes.artifacts,\n description: 'Set of permissions which allows user to upload artifacts',\n permissions: [\n { action: 'http', object: { type: 'POST', value: commonEndpoints.artifacts } },\n { action: 'http', object: { type: 'POST', value: '^/api/management/v1/deployments/artifacts/generate' } }\n ]\n },\n {\n ...defaultPermissionSets.ReadDevices,\n action: uiPermissionsById.read.title,\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to view devices',\n permissions: [\n { action: 'http', object: { type: 'POST', value: '^/api/management/v2/inventory/filters/search' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/(deployments|devauth|inventory|deviceconfig|devicemonitor)/' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+$' } }\n ],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.ManageDevices,\n action: uiPermissionsById.manage.title,\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to manage devices',\n permissions: [\n { action: 'http', object: { type: 'POST', value: commonEndpoints.deviceManagement } },\n { action: 'http', object: { type: 'PUT', value: commonEndpoints.deviceManagement } },\n { action: 'http', object: { type: 'DELETE', value: commonEndpoints.deviceManagement } }\n ],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.ReadReleases,\n action: uiPermissionsById.read.title,\n object: permissionSetObjectTypes.releases,\n description: 'Set of permissions which allows user to view releases',\n permissions: [\n { action: 'http', object: { type: 'GET', value: commonEndpoints.artifacts } },\n { action: 'http', object: { type: 'GET', value: commonEndpoints.artifactDetails } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/v1/deployments/artifacts/[^/]+/download' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/v1alpha1/deployments/software' } }\n ]\n },\n {\n name: 'almostAdmin',\n object: permissionSetObjectTypes.empty,\n description: 'Set containing all the permissions.',\n permissions: [\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/auditlogs/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deployments/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deployments/config/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deployments/deployments/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deployments/deployments/releases/.*' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/v1alpha1/deployments/*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/devauth/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deviceconfig/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deviceconnect/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deviceconnect/devices' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/inventory/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/iot-manager/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/monitor/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/useradm/.*' } }\n ]\n }\n];\n\nexport const rbacRoles = [\n {\n name: 'dyn',\n description: '',\n permissions: [\n { action: 'CREATE_DEPLOYMENT', object: { type: 'DEVICE_GROUP', value: 'dyn' } },\n { action: 'VIEW_DEVICE', object: { type: 'DEVICE_GROUP', value: 'dyn' } }\n ]\n },\n { name: 'asdasd', description: '123', permissions: [{ action: 'http', object: { type: 'any', value: '/api/management/v1/useradm/.*' } }] },\n {\n name: '141sasd',\n description: '1313adg',\n permission_sets_with_scope: [\n { ...defaultPermissionSets.ReadDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ['bestgroup'] } },\n { ...defaultPermissionSets.ConnectToDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ['bestgroup'] } },\n { ...defaultPermissionSets.ManageUsers }\n ]\n },\n {\n name: 'kljlkk',\n description: 'lkl',\n permission_sets_with_scope: [{ ...defaultPermissionSets.ConnectToDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ['bestgroup'] } }]\n },\n {\n name: 'yyyyy',\n description: 'asd',\n permission_sets_with_scope: [\n { ...defaultPermissionSets.ManageDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ['dockerclient'] } },\n { ...defaultPermissionSets.ManageReleases }\n ]\n },\n {\n name: 'RBAC_ROLE_DEPLOYMENTS_MANAGER',\n description: 'Intended for users responsible for managing deployments, this role can create and abort deployments',\n permission_sets_with_scope: [{ ...defaultPermissionSets.DeployToDevices }]\n },\n {\n name: 'RBAC_ROLE_REMOTE_TERMINAL',\n description: `Intended for tech support accounts, this role can access the devices' Remote Terminal.`,\n permission_sets_with_scope: [{ ...defaultPermissionSets.ConnectToDevices }]\n },\n { name: 'RBAC_ROLE_PERMIT_ALL', description: '', permission_sets_with_scope: [{ ...defaultPermissionSets.SuperUser }] },\n {\n name: 'RBAC_ROLE_OBSERVER',\n description:\n 'Intended for team leaders or limited tech support accounts, this role can see all Devices, Artifacts and Deployment reports but not make any changes.',\n permission_sets_with_scope: [{ ...defaultPermissionSets.ReadReleases }, { ...defaultPermissionSets.ReadDevices }]\n },\n {\n name: 'RBAC_ROLE_CI',\n description:\n '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.',\n permission_sets_with_scope: [\n { ...defaultPermissionSets.ReadReleases },\n { ...defaultPermissionSets.ManageReleases },\n { ...defaultPermissionSets.UploadArtifacts }\n ]\n },\n {\n name: 'almostAdmin',\n description: 'almost admin rights',\n permissions: permissionSets.find(item => item.name === 'almostAdmin')?.permissions\n },\n {\n name: 'almostAdminNew',\n description: 'almost admin rights',\n permission_sets_with_scope: Object.values(defaultPermissionSets)\n }\n];\n\nconst expectedParsedRoles = {\n '141sasd': {\n editable: true,\n isCustom: undefined,\n uiPermissions: {\n ...emptyUiPermissions,\n groups: { bestgroup: [uiPermissionsById.read.value, uiPermissionsById.connect.value] },\n userManagement: [uiPermissionsById.manage.value]\n }\n },\n asdasd: {\n editable: false,\n isCustom: true,\n uiPermissions: { ...emptyUiPermissions, userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value] }\n },\n dyn: {\n editable: false,\n isCustom: true,\n uiPermissions: {\n ...emptyUiPermissions,\n deployments: [uiPermissionsById.deploy.value],\n groups: { dyn: [uiPermissionsById.read.value, uiPermissionsById.deploy.value] }\n }\n },\n kljlkk: {\n editable: true,\n isCustom: false,\n uiPermissions: { ...emptyUiPermissions, groups: { bestgroup: [uiPermissionsById.read.value, uiPermissionsById.connect.value] } }\n },\n yyyyy: {\n editable: true,\n isCustom: undefined,\n uiPermissions: {\n ...emptyUiPermissions,\n groups: { dockerclient: [uiPermissionsById.read.value, uiPermissionsById.manage.value] },\n releases: { [ALL_RELEASES]: [uiPermissionsById.manage.value] }\n }\n },\n almostAdmin: {\n editable: false,\n isCustom: true,\n uiPermissions: {\n ...emptyUiPermissions,\n auditlog: [uiPermissionsById.read.value],\n deployments: [uiPermissionsById.manage.value, uiPermissionsById.deploy.value, uiPermissionsById.read.value],\n groups: {\n [ALL_DEVICES]: [\n uiPermissionsById.read.value,\n // we can't assign deployment permissions to devices here, since the old path based rbac controls don't allow the scoped permissions\n // uiPermissionsById.deploy.value,\n uiPermissionsById.manage.value,\n uiPermissionsById.connect.value,\n uiPermissionsById.configure.value\n ]\n },\n releases: {\n [ALL_RELEASES]: [uiPermissionsById.read.value, uiPermissionsById.upload.value, uiPermissionsById.manage.value]\n },\n userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value]\n }\n },\n almostAdminNew: {\n editable: true,\n isCustom: undefined,\n uiPermissions: {\n ...emptyUiPermissions,\n auditlog: [uiPermissionsById.read.value],\n deployments: [uiPermissionsById.read.value, uiPermissionsById.deploy.value, uiPermissionsById.manage.value],\n groups: {\n [ALL_DEVICES]: [\n uiPermissionsById.read.value,\n uiPermissionsById.manage.value,\n uiPermissionsById.deploy.value,\n uiPermissionsById.connect.value,\n uiPermissionsById.configure.value\n ]\n },\n releases: {\n [ALL_RELEASES]: [uiPermissionsById.manage.value, uiPermissionsById.upload.value, uiPermissionsById.read.value]\n },\n tenantManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value],\n userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value]\n }\n }\n};\n\nconst defaultRolesById = {\n ...rolesById,\n test: {\n ...emptyRole,\n name: 'test',\n description: 'test description',\n editable: true,\n uiPermissions: {\n ...emptyUiPermissions,\n groups: { testGroup: [uiPermissionsById.read.value] },\n releases: { bar: [uiPermissionsById.read.value] }\n }\n }\n};\n\nexport const receivedRoles = rbacRoles.reduce(\n (accu, role) => {\n const { name, description, ...roleRemainder } = role;\n if (name.startsWith('RBAC')) {\n accu[name] = {\n ...defaultRolesById[name],\n ...roleRemainder,\n editable: false,\n isCustom: false,\n description: defaultRolesById[name].description ? defaultRolesById[name].description : description\n };\n } else {\n const result = expectedParsedRoles[name] ?? {};\n accu[name] = {\n ...emptyRole,\n ...role,\n ...result,\n name\n };\n }\n return accu;\n },\n { ...defaultRolesById }\n);\n\nexport const receivedPermissionSets = permissionSets.reduce((accu, set) => {\n const result = defaultPermissionSets[set.name]?.result ?? {};\n accu[set.name] = {\n ...set,\n result: {\n ...emptyUiPermissions,\n ...result\n }\n };\n return accu;\n}, {});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mockData.js","names":[],"sources":["../src/mockData.ts"],"sourcesContent":["// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport {\n ALL_DEVICES,\n ALL_RELEASES,\n defaultPermissionSets,\n emptyRole,\n emptyUiPermissions,\n maxSessionAge,\n rolesById,\n scopedPermissionAreas,\n uiPermissionsById\n} from '@northern.tech/utils/constants';\n\nexport const undefineds = /undefined|\\[object Object\\]/;\n\nexport const menderEnvironment = {\n features: {\n hasMultitenancy: true\n },\n version: 'saas-123.34'\n};\nexport const TEST_SESSION_DATETIME = '2019-01-13T13:00:00.000Z';\nconst testDate = new Date(TEST_SESSION_DATETIME);\nexport const mockDate = new Date(testDate.setMilliseconds(testDate.getMilliseconds() + maxSessionAge));\n\nexport const defaultPassword = 'mysecretpassword!123';\nexport const defaultCreationDate = '2019-01-13T06:25:00.000Z';\nexport const defaultMacAddress = 'dc:a6:32:12:ad:bf';\n\nexport const testSsoId = 'sso_id';\n\nconst permissionSetObjectTypes = {\n any: 'Any',\n artifacts: 'Artifacts',\n empty: '',\n groups: 'Device groups',\n releases: 'Releases',\n tenantManagement: 'Tenant management',\n userManagement: 'User management'\n};\n\nconst commonEndpoints = {\n artifacts: '^/api/management/v1/deployments/artifacts',\n artifactDetails: '^/api/management/v1/deployments/artifacts/[^/]+',\n deviceManagement: '^/api/management/(v[1-9])/(devauth|inventory)/'\n};\n\nexport const token =\n 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJjZTNkMGY4Yy1hZWRlLTQwMzAtYjM5MS03ZDUwMjBlYjg3M2UiLCJzdWIiOiJhMzBhNzgwYi1iODQzLTUzNDQtODBlMy0wZmQ5NWE0ZjZmYzMiLCJleHAiOjE2MDY4MTUzNjksImlhdCI6MTYwNjIxMDU2OSwibWVuZGVyLnRlbmFudCI6IjVmODVjMTdiY2U2MmI3ZmE3ZjVmNzA0MCIsIm1lbmRlci51c2VyIjp0cnVlLCJpc3MiOiJNZW5kZXIgVXNlcnMiLCJzY3AiOiJtZW5kZXIuKiIsIm1lbmRlci5wbGFuIjoicHJvZmVzc2lvbmFsIiwibmJmIjoxNjA2MjEwNTY5fQ.qVgYdCzLTf8OdK9uUctqqaY_HWkIiwpekuGvuGQAXCEgOv4bRNDlZRN_ZRSbxQoARG3pquhScbQrjBV9tcF4irTUPlTn3yrsXNO17DpcbTVeKRkb88RDtIKiRw3orVZ_GlIb-ckTQ5dS-Nqlyyf3Fmrhca-gwt6m_xv2UrmJK6eYYTMfggdRRWb-4u7mEkBI_pHPMTQrT8kJ2BeX-vHgazH9AoH0k85LHtFZQXD7pXHlDZRnLxJXukncwMGDmF17374gavYAIyDIzcC8sEBMDnVXgpikeA1sauzirqix6mAVs6XmxdQO7aF0wfXO1_PTYUA3Nk1oQfMYNlEI3U9uLRJRZIq2L8fmrrBryhstKd4y0KlBbGAQrx8NtRkgajjd1ljMfPBUEZrb7uSerVjneiO-aIBO76CuH0zdklphIjpGJeogkBhe8pAYNggp1XsZHgpZfl7IE5faKaDkMGnutaea--Czor6bhqUNCuY4tR0cpQJbNwy6LS9o1CFy4Log';\n\nexport const accessTokens = [\n { id: 'some-id-1', expiration_date: '2022-06-02T11:11:21.725Z', name: 'some-name-1' },\n { id: 'some-id-2', expiration_date: '2022-06-02T11:11:21.725Z', last_used: '2022-06-02T11:05:21.725Z', name: 'some-name-2' }\n];\n\nexport const pendingEmailChange = {\n new_email: 'new_email@acme.com',\n created_ts: '2019-01-13T07:25:00.000Z',\n valid_until: '2019-01-13T08:25:00.000Z'\n};\n\nexport const webhookEvents = [\n {\n id: '1',\n type: 'device-status-changed',\n data: { id: '1', status: 'accepted' },\n time: '2020-09-01T12:00:00.000Z',\n delivery_statuses: [{ integration_id: '1', success: true, status_code: 200 }]\n },\n {\n id: '2',\n type: 'device-status-changed',\n data: { id: '3', status: 'accepted' },\n time: '2020-09-01T12:00:05.000Z',\n delivery_statuses: [{ integration_id: '1', success: true, status_code: 200 }]\n }\n];\n\nexport const spTenantLimits = {\n max_devices: {\n current_value: 0,\n name: 'max_devices',\n tenant_id: '699f07a3e783def54cf6201f',\n value: 200\n },\n max_micro_devices: {\n current_value: 0,\n name: 'max_micro_devices',\n tenant_id: '699f07a3e783def54cf6201f',\n value: 280\n },\n max_system_devices: {\n current_value: 0,\n name: 'max_system_devices',\n tenant_id: '699f07a3e783def54cf6201f',\n value: 20\n }\n};\n\nexport const tenants = [\n {\n id: '671a0f1dd58c813118fe8622',\n parent_tenant_id: '6718de64b42e08dea2a2065d',\n name: 'child2',\n tenant_token: 'mQDYRCr-tGbDuJhPp7fArbfTA5htVTWE9G204AzhDUM',\n status: 'active',\n additional_info: {\n marketing: false,\n campaign: ''\n },\n plan: 'enterprise',\n trial: false,\n trial_expiration: null,\n service_provider: false,\n created_at: '2024-10-24T09:10:53.281Z',\n cancelled_at: null,\n children_tenants: null,\n max_child_tenants: 0,\n device_count: 0,\n device_limit: 100,\n device_limits: {\n max_devices: {\n current_value: 0,\n name: 'max_devices',\n tenant_id: '699f07a3e783def54cf6201f',\n value: 200\n },\n max_micro_devices: {\n current_value: 0,\n name: 'max_micro_devices',\n tenant_id: '699f07a3e783def54cf6201f',\n value: 280\n },\n max_system_devices: {\n current_value: 0,\n name: 'max_system_devices',\n tenant_id: '699f07a3e783def54cf6201f',\n value: 20\n }\n },\n binary_delta: true\n }\n];\n\nexport const adminUserCapabilities = {\n canAuditlog: true,\n canConfigure: true,\n canDeploy: true,\n canManageDevices: true,\n canManageReleases: true,\n canManageUsers: true,\n canReadDeployments: true,\n canReadDevices: true,\n canReadReleases: true,\n canReadUsers: true,\n canTroubleshoot: true,\n canUploadReleases: true,\n canWriteDevices: true\n};\n\nexport const userId = 'a30a780b-b843-5344-80e3-0fd95a4f6fc3';\n\nconst defaultUser = {\n created_ts: '2019-01-01T10:30:00.000Z',\n email: 'a@b.com',\n id: 'a1',\n roles: ['RBAC_ROLE_PERMIT_ALL'],\n tfa_status: 'enabled',\n verified: true\n};\n\nconst deviceTypes = { qemu: 'qemux86-64' };\n\nconst checkInTimeRounded = '2019-01-01T00:00:00.000Z';\nconst checkInTimeExact = '2019-01-01T10:25:00.000Z';\n\nexport const mockApiResponses = {\n deployments: {\n byId: {\n d1: {\n id: 'd1',\n name: 'test deployment',\n created: '2019-01-01T12:30:00.000Z',\n devices: {\n a1: {\n id: 'a1',\n status: 'installing',\n attributes: {},\n image: { size: 123 }\n }\n },\n statistics: {\n status: {\n 'already-installed': 0,\n decommissioned: 0,\n downloading: 0,\n failure: 0,\n installing: 1,\n noartifact: 0,\n pending: 0,\n rebooting: 0,\n success: 0\n },\n total_size: 1234\n }\n },\n d2: {\n id: 'd2',\n name: 'test deployment 2',\n artifact_name: 'r1',\n artifacts: ['123'],\n created: '2019-01-01T12:25:00.000Z',\n device_count: 1,\n devices: {\n b1: {\n attributes: {},\n id: 'b1',\n status: 'pending'\n }\n },\n filter: undefined,\n group: undefined,\n statistics: {\n status: {\n downloading: 0,\n decommissioned: 0,\n failure: 0,\n installing: 0,\n noartifact: 0,\n pending: 1,\n rebooting: 0,\n success: 0,\n 'already-installed': 0\n }\n }\n },\n d3: {\n id: 'd3',\n name: 'Test',\n phases: [\n { id: '0', batch_size: 2, device_count: 2 },\n { id: '1', start_ts: '2019-02-04T11:45:10.002Z', batch_size: 3, device_count: 3 },\n { id: '2', start_ts: '2019-02-05T11:45:10.002Z', batch_size: 5, device_count: 5 },\n { id: '3', start_ts: '2019-02-06T11:45:10.002Z', batch_size: 5, device_count: 5 },\n { id: '4', start_ts: '2019-02-21T11:45:10.002Z', batch_size: 5, device_count: 0 }\n ],\n max_devices: 0,\n created: '2019-01-31T12:59:30.020Z',\n devices: {},\n filter: undefined,\n group: undefined,\n stats: {\n pending: 3,\n decommissioned: 0,\n failure: 23,\n pause_before_committing: 0,\n pause_before_rebooting: 0,\n installing: 0,\n rebooting: 0,\n 'already-installed': 0,\n pause_before_installing: 0,\n downloading: 0,\n success: 6,\n aborted: 0,\n noartifact: 0\n },\n statistics: { total_size: '1234' },\n status: 'inprogress',\n active: true,\n device_count: 100,\n retries: 0,\n type: 'software'\n }\n },\n byStatus: {\n pending: { deploymentIds: ['d2'] },\n inprogress: { deploymentIds: ['d3'] }\n }\n },\n devices: {\n byId: {\n a1: {\n id: 'a1',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n status: 'accepted',\n ts: defaultCreationDate\n }\n ],\n updated_ts: '2019-01-01T09:25:00.000Z'\n },\n b1: {\n id: 'b1',\n attributes: {\n ipv4_wlan0: '192.168.10.141/24',\n device_type: [deviceTypes.qemu]\n },\n system: {\n check_in_time: checkInTimeRounded\n },\n check_in_time: checkInTimeExact,\n check_in_time_exact: checkInTimeExact,\n check_in_time_rounded: checkInTimeRounded,\n identity_data: { mac: defaultMacAddress },\n status: 'accepted',\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: 'accepted'\n }\n ]\n }\n },\n groups: {\n byId: {\n testGroup: {\n deviceIds: ['a1', 'b1'],\n filters: [],\n total: 2\n },\n testGroupDynamic: {\n id: 'filter1',\n name: 'filter1',\n filters: [{ scope: 'system', key: 'group', operator: '$eq', value: 'things' }]\n }\n }\n },\n limits: { standard: 500, micro: 0, system: 0 },\n byStatus: {\n accepted: { deviceIds: ['a1', 'b1'], total: 2 },\n active: { deviceIds: [], total: 0 },\n inactive: { deviceIds: [], total: 0 },\n pending: { deviceIds: ['c1'], total: 1 },\n preauthorized: { deviceIds: [], total: 0 },\n rejected: { deviceIds: [], total: 0 }\n }\n },\n organization: {\n organization: {\n id: '1',\n addons: [],\n name: 'test',\n plan: 'os',\n trial: false\n },\n products: [\n {\n name: 'mender_standard',\n billing_unit: 'devices',\n prices: [\n {\n plan: 'os',\n constraints: {\n min: 50,\n max: 1000,\n div: 50\n }\n },\n {\n plan: 'professional',\n constraints: {\n min: 250,\n max: 10000,\n div: 50\n }\n }\n ],\n addons: [\n {\n name: 'troubleshoot',\n prices: [{ plan: 'os' }, { plan: 'professional' }]\n },\n {\n name: 'configure',\n prices: [{ plan: 'os' }, { plan: 'professional' }]\n },\n {\n name: 'monitor',\n prices: [{ plan: 'professional' }]\n }\n ]\n },\n {\n name: 'mender_micro',\n billing_unit: 'devices',\n prices: [\n {\n plan: 'os',\n constraints: {\n min: 50,\n max: 5000,\n div: 50\n }\n },\n {\n plan: 'professional',\n constraints: {\n min: 500,\n max: 100000,\n div: 50\n }\n }\n ]\n }\n ],\n intentId: 'testIntent',\n auditlog: {\n events: [\n {\n actor: {\n id: 'string',\n type: 'user',\n email: 'string@example.com'\n },\n time: '2019-01-01T12:10:22.667Z',\n action: 'create',\n object: {\n id: 'string',\n type: 'user',\n user: {\n email: 'user@acme.com'\n }\n },\n change: 'change1'\n },\n {\n actor: {\n id: 'string',\n type: 'user',\n email: 'string',\n identity_data: 'string'\n },\n time: '2019-01-01T12:16:22.667Z',\n action: 'create',\n object: {\n id: 'string',\n type: 'deployment',\n deployment: {\n name: 'production',\n artifact_name: 'Application 0.0.1'\n }\n },\n change: 'change2'\n },\n {\n actor: {\n id: 'string',\n type: 'user',\n email: 'string@example.com'\n },\n time: '2019-01-01T12:10:22.669Z',\n action: 'open_terminal',\n meta: {\n session_id: ['abd313a8-ee88-48ab-9c99-fbcd80048e6e']\n },\n object: {\n id: 'a1',\n type: 'device'\n },\n change: 'change3'\n }\n ]\n }\n },\n releases: {\n byId: {\n r1: {\n name: 'r1',\n artifacts: [\n {\n id: 'art1',\n description: 'test description',\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n updates: [{ type_info: { type: 'testtype' } }],\n artifact_depends: {\n device_type: [deviceTypes.qemu]\n },\n artifact_provides: {\n artifact_name: 'myapp',\n 'data-partition.myapp.version': 'v2020.10',\n list_of_fancy: [deviceTypes.qemu, 'x172']\n },\n clears_artifact_provides: ['data-partition.myapp.*']\n }\n ],\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n metaData: {}\n }\n }\n },\n manifests: {\n byId: {\n m1000: {\n name: 'm1000',\n modified: '2020-01-01T00:16:39.000Z',\n artifact: {\n id: 'art-m1000',\n name: 'm1000',\n description: 'test manifest description',\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-01-01T00:16:39.000Z'\n },\n manifest: {\n api_version: 'mender/v1',\n kind: 'manifest',\n name: 'm1000',\n system_types_compatible: [deviceTypes.qemu],\n component_types: {\n 'component-a': {\n artifact_name: 'art-m1000-component',\n update_strategy: { order: 10 }\n }\n }\n },\n tags: [],\n notes: ''\n }\n }\n },\n users: {\n byId: {\n a1: defaultUser,\n [userId]: { ...defaultUser, id: userId, email: 'a2@b.com', created_ts: '2019-01-01T12:30:00.000Z' }\n },\n rolesById: {\n admin: {\n name: 'admin',\n description: 'Administrator role',\n permissions: []\n },\n test: { name: 'test', description: 'test description', permissions: [] }\n },\n globalSettings: {\n '2fa': 'enabled',\n id_attribute: undefined,\n previousFilters: []\n },\n userSettings: {\n '2fa': 'disabled',\n columnSelection: [],\n onboarding: { something: 'here' },\n tooltips: {},\n previousFilters: []\n }\n }\n};\n\nexport const manifestsList = Array.from({ length: 1000 }, (_, i) => ({\n name: `m${i + 1}`,\n modified: new Date(2020, 0, 1, 0, 0, i).toISOString(),\n artifact: {\n id: `art-m${i + 1}`,\n name: `m${i + 1}`,\n description: 'test manifest description',\n device_types_compatible: [deviceTypes.qemu],\n modified: new Date(2020, 0, 1, 0, 0, i).toISOString()\n },\n manifest: {\n api_version: 'mender/v1',\n kind: 'manifest',\n name: `m${i + 1}`,\n system_types_compatible: [deviceTypes.qemu],\n component_types: {\n 'component-a': {\n artifact_name: `art-m${i + 1}-component`,\n update_strategy: { order: 10 }\n }\n }\n },\n tags: [],\n notes: ''\n}));\n\nexport const softwareList = [\n ...Array.from({ length: 500 }, (_, i) => ({\n name: `release-${i + 1}`,\n modified: new Date(2020, 8, 10, 12, 16, i).toISOString(),\n kind: 'release' as const,\n tags: i < 5 ? ['some-tag'] : [],\n update_type: i < 5 ? 'single-file' : undefined,\n compatible_types: ['raspberrypi4', 'qemux86-64'],\n notes: ''\n })),\n ...Array.from({ length: 500 }, (_, i) => ({\n name: `m${i + 1}`,\n modified: new Date(2020, 0, 1, 0, 0, i).toISOString(),\n kind: 'manifest' as const,\n tags: i < 3 ? ['some-tag'] : [],\n update_type: i < 2 ? 'single-file' : undefined,\n compatible_types: ['system-core'],\n notes: ''\n }))\n];\n\nexport const releasesList = Array.from({ length: 5000 }, (x, i) => ({\n artifacts: [\n {\n id: 'art1',\n description: 'test description',\n device_types_compatible: [deviceTypes.qemu],\n modified: '2020-09-10T12:16:22.667Z',\n updates: [{ type_info: { type: 'testtype' } }],\n artifact_depends: {\n device_type: [deviceTypes.qemu]\n },\n artifact_provides: {\n artifact_name: 'myapp',\n 'data-partition.myapp.version': 'v2020.10',\n list_of_fancy: [deviceTypes.qemu, 'x172']\n },\n clears_artifact_provides: ['data-partition.myapp.*']\n }\n ],\n device_types_compatible: [deviceTypes.qemu],\n metaData: {},\n name: `release-${i + 1}`,\n modified: i\n}));\n\nexport const permissionSets = [\n {\n ...defaultPermissionSets.Basic,\n object: permissionSetObjectTypes.empty,\n description: 'Set containing basic permissions.',\n permissions: [\n { action: 'http', object: { type: 'any', value: '^/api/management/v1/useradm/settings$' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/v1/useradm/users/me$' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/1.0/auth/verify$' } },\n { action: 'http', object: { type: 'PUT', value: '^/api/management/v1/useradm/2faverify$' } },\n { action: 'http', object: { type: 'POST', value: '^/api/management/v1/useradm/users/me/2fa/(enable|disable)$' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/useradm/roles' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/tenantadm/user/tenant' } }\n ]\n },\n {\n ...defaultPermissionSets.ManageReleases,\n action: uiPermissionsById.manage.title,\n object: permissionSetObjectTypes.releases,\n description: 'Set of permissions which allows user to manage releases',\n permissions: [\n { action: 'http', object: { type: 'GET', value: commonEndpoints.artifacts } },\n { action: 'http', object: { type: 'GET', value: commonEndpoints.artifactDetails } },\n { action: 'http', object: { type: 'PUT', value: commonEndpoints.artifactDetails } },\n { action: 'http', object: { type: 'DELETE', value: commonEndpoints.artifactDetails } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/v1/deployments/artifacts/[^/]+/download' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/v1alpha1/deployments/software' } }\n ]\n },\n {\n ...defaultPermissionSets.ReadUsers,\n action: uiPermissionsById.read.title,\n object: permissionSetObjectTypes.userManagement,\n description: 'Set of permissions which allows user to view other users',\n permissions: [{ action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/useradm/' } }]\n },\n {\n ...defaultPermissionSets.ManageUsers,\n action: uiPermissionsById.manage.title,\n object: permissionSetObjectTypes.userManagement,\n description: 'Set of permissions which allows user manage other user accounts',\n permissions: [{ action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/useradm/' } }]\n },\n {\n ...defaultPermissionSets.ReadTenants,\n action: uiPermissionsById.read.title,\n object: permissionSetObjectTypes.tenantManagement,\n description: 'Set of permissions which allows user to list other tenants and their config',\n permissions: [\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/tenantadm/' } },\n { action: 'http', object: { type: 'POST', value: '^/api/management/(v[1-9])/tenantadm/' } }\n ]\n },\n {\n ...defaultPermissionSets.ManageTenants,\n action: uiPermissionsById.manage.title,\n object: permissionSetObjectTypes.tenantManagement,\n description: 'Set of permissions which allows user to manage other tenants and their config',\n permissions: [\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/tenantadm/' } },\n { action: 'http', object: { type: 'POST', value: '^/api/management/(v[1-9])/tenantadm/' } },\n { action: 'http', object: { type: 'PUT', value: '^/api/management/(v[1-9])/tenantadm/' } }\n ]\n },\n {\n ...defaultPermissionSets.ReadAuditLogs,\n action: uiPermissionsById.read.title,\n object: 'System Audit Log',\n description: 'Set of permissions which allows user to view system audit log',\n permissions: [{ action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9]|0.1.0)/auditlogs/logs' } }]\n },\n {\n ...defaultPermissionSets.DeployToDevices,\n action: 'Deploy',\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to deploy to devices',\n permissions: [{ action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/(deployments|deviceconfig)/' } }],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.ConfigureDevices,\n action: 'Configure',\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to manage configuration of the devices',\n permissions: [{ action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deviceconfig/' } }],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.ConnectToDevices,\n action: 'Connect',\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to use remote terminal and file transfer',\n permissions: [\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/connect$' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/download\\\\?path=[^\\u0026]+$' } },\n { action: 'http', object: { type: 'PUT', value: '^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+/upload$' } }\n ],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.SuperUser,\n action: 'Any',\n object: permissionSetObjectTypes.any,\n description: 'Set of permissions which allows user to do anything',\n permissions: [{ action: 'any', object: { type: 'any', value: 'any' } }]\n },\n {\n ...defaultPermissionSets.UploadArtifacts,\n action: 'Upload',\n object: permissionSetObjectTypes.artifacts,\n description: 'Set of permissions which allows user to upload artifacts',\n permissions: [\n { action: 'http', object: { type: 'POST', value: commonEndpoints.artifacts } },\n { action: 'http', object: { type: 'POST', value: '^/api/management/v1/deployments/artifacts/generate' } }\n ]\n },\n {\n ...defaultPermissionSets.ReadDevices,\n action: uiPermissionsById.read.title,\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to view devices',\n permissions: [\n { action: 'http', object: { type: 'POST', value: '^/api/management/v2/inventory/filters/search' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9])/(deployments|devauth|inventory|deviceconfig|devicemonitor)/' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/(v[1-9]|0.1.0)/deviceconnect/devices/[^/]+$' } }\n ],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.ManageDevices,\n action: uiPermissionsById.manage.title,\n object: permissionSetObjectTypes.groups,\n description: 'Set of permissions which allows user to manage devices',\n permissions: [\n { action: 'http', object: { type: 'POST', value: commonEndpoints.deviceManagement } },\n { action: 'http', object: { type: 'PUT', value: commonEndpoints.deviceManagement } },\n { action: 'http', object: { type: 'DELETE', value: commonEndpoints.deviceManagement } }\n ],\n supported_scope_types: [scopedPermissionAreas.groups.scopeType]\n },\n {\n ...defaultPermissionSets.ReadReleases,\n action: uiPermissionsById.read.title,\n object: permissionSetObjectTypes.releases,\n description: 'Set of permissions which allows user to view releases',\n permissions: [\n { action: 'http', object: { type: 'GET', value: commonEndpoints.artifacts } },\n { action: 'http', object: { type: 'GET', value: commonEndpoints.artifactDetails } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/v1/deployments/artifacts/[^/]+/download' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/v1alpha1/deployments/software' } }\n ]\n },\n {\n name: 'almostAdmin',\n object: permissionSetObjectTypes.empty,\n description: 'Set containing all the permissions.',\n permissions: [\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/auditlogs/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deployments/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deployments/config/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deployments/deployments/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deployments/deployments/releases/.*' } },\n { action: 'http', object: { type: 'GET', value: '^/api/management/v1alpha1/deployments/*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/devauth/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deviceconfig/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deviceconnect/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/deviceconnect/devices' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/inventory/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/iot-manager/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/monitor/.*' } },\n { action: 'http', object: { type: 'any', value: '^/api/management/(v[1-9])/useradm/.*' } }\n ]\n }\n];\n\nexport const rbacRoles = [\n {\n name: 'dyn',\n description: '',\n permissions: [\n { action: 'CREATE_DEPLOYMENT', object: { type: 'DEVICE_GROUP', value: 'dyn' } },\n { action: 'VIEW_DEVICE', object: { type: 'DEVICE_GROUP', value: 'dyn' } }\n ]\n },\n { name: 'asdasd', description: '123', permissions: [{ action: 'http', object: { type: 'any', value: '/api/management/v1/useradm/.*' } }] },\n {\n name: '141sasd',\n description: '1313adg',\n permission_sets_with_scope: [\n { ...defaultPermissionSets.ReadDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ['bestgroup'] } },\n { ...defaultPermissionSets.ConnectToDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ['bestgroup'] } },\n { ...defaultPermissionSets.ManageUsers }\n ]\n },\n {\n name: 'kljlkk',\n description: 'lkl',\n permission_sets_with_scope: [{ ...defaultPermissionSets.ConnectToDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ['bestgroup'] } }]\n },\n {\n name: 'yyyyy',\n description: 'asd',\n permission_sets_with_scope: [\n { ...defaultPermissionSets.ManageDevices, scope: { type: scopedPermissionAreas.groups.scopeType, value: ['dockerclient'] } },\n { ...defaultPermissionSets.ManageReleases }\n ]\n },\n {\n name: 'RBAC_ROLE_DEPLOYMENTS_MANAGER',\n description: 'Intended for users responsible for managing deployments, this role can create and abort deployments',\n permission_sets_with_scope: [{ ...defaultPermissionSets.DeployToDevices }]\n },\n {\n name: 'RBAC_ROLE_REMOTE_TERMINAL',\n description: `Intended for tech support accounts, this role can access the devices' Remote Terminal.`,\n permission_sets_with_scope: [{ ...defaultPermissionSets.ConnectToDevices }]\n },\n { name: 'RBAC_ROLE_PERMIT_ALL', description: '', permission_sets_with_scope: [{ ...defaultPermissionSets.SuperUser }] },\n {\n name: 'RBAC_ROLE_OBSERVER',\n description:\n 'Intended for team leaders or limited tech support accounts, this role can see all Devices, Artifacts and Deployment reports but not make any changes.',\n permission_sets_with_scope: [{ ...defaultPermissionSets.ReadReleases }, { ...defaultPermissionSets.ReadDevices }]\n },\n {\n name: 'RBAC_ROLE_CI',\n description:\n '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.',\n permission_sets_with_scope: [\n { ...defaultPermissionSets.ReadReleases },\n { ...defaultPermissionSets.ManageReleases },\n { ...defaultPermissionSets.UploadArtifacts }\n ]\n },\n {\n name: 'almostAdmin',\n description: 'almost admin rights',\n permissions: permissionSets.find(item => item.name === 'almostAdmin')?.permissions\n },\n {\n name: 'almostAdminNew',\n description: 'almost admin rights',\n permission_sets_with_scope: Object.values(defaultPermissionSets)\n }\n];\n\nconst expectedParsedRoles = {\n '141sasd': {\n editable: true,\n isCustom: undefined,\n uiPermissions: {\n ...emptyUiPermissions,\n groups: { bestgroup: [uiPermissionsById.read.value, uiPermissionsById.connect.value] },\n userManagement: [uiPermissionsById.manage.value]\n }\n },\n asdasd: {\n editable: false,\n isCustom: true,\n uiPermissions: { ...emptyUiPermissions, userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value] }\n },\n dyn: {\n editable: false,\n isCustom: true,\n uiPermissions: {\n ...emptyUiPermissions,\n deployments: [uiPermissionsById.deploy.value],\n groups: { dyn: [uiPermissionsById.read.value, uiPermissionsById.deploy.value] }\n }\n },\n kljlkk: {\n editable: true,\n isCustom: false,\n uiPermissions: { ...emptyUiPermissions, groups: { bestgroup: [uiPermissionsById.read.value, uiPermissionsById.connect.value] } }\n },\n yyyyy: {\n editable: true,\n isCustom: undefined,\n uiPermissions: {\n ...emptyUiPermissions,\n groups: { dockerclient: [uiPermissionsById.read.value, uiPermissionsById.manage.value] },\n releases: { [ALL_RELEASES]: [uiPermissionsById.manage.value] }\n }\n },\n almostAdmin: {\n editable: false,\n isCustom: true,\n uiPermissions: {\n ...emptyUiPermissions,\n auditlog: [uiPermissionsById.read.value],\n deployments: [uiPermissionsById.manage.value, uiPermissionsById.deploy.value, uiPermissionsById.read.value],\n groups: {\n [ALL_DEVICES]: [\n uiPermissionsById.read.value,\n // we can't assign deployment permissions to devices here, since the old path based rbac controls don't allow the scoped permissions\n // uiPermissionsById.deploy.value,\n uiPermissionsById.manage.value,\n uiPermissionsById.connect.value,\n uiPermissionsById.configure.value\n ]\n },\n releases: {\n [ALL_RELEASES]: [uiPermissionsById.read.value, uiPermissionsById.upload.value, uiPermissionsById.manage.value]\n },\n userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value]\n }\n },\n almostAdminNew: {\n editable: true,\n isCustom: undefined,\n uiPermissions: {\n ...emptyUiPermissions,\n auditlog: [uiPermissionsById.read.value],\n deployments: [uiPermissionsById.read.value, uiPermissionsById.deploy.value, uiPermissionsById.manage.value],\n groups: {\n [ALL_DEVICES]: [\n uiPermissionsById.read.value,\n uiPermissionsById.manage.value,\n uiPermissionsById.deploy.value,\n uiPermissionsById.connect.value,\n uiPermissionsById.configure.value\n ]\n },\n releases: {\n [ALL_RELEASES]: [uiPermissionsById.manage.value, uiPermissionsById.upload.value, uiPermissionsById.read.value]\n },\n tenantManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value],\n userManagement: [uiPermissionsById.read.value, uiPermissionsById.manage.value]\n }\n }\n};\n\nconst defaultRolesById = {\n ...rolesById,\n test: {\n ...emptyRole,\n name: 'test',\n description: 'test description',\n editable: true,\n uiPermissions: {\n ...emptyUiPermissions,\n groups: { testGroup: [uiPermissionsById.read.value] },\n releases: { bar: [uiPermissionsById.read.value] }\n }\n }\n};\n\nexport const receivedRoles = rbacRoles.reduce(\n (accu, role) => {\n const { name, description, ...roleRemainder } = role;\n if (name.startsWith('RBAC')) {\n accu[name] = {\n ...defaultRolesById[name],\n ...roleRemainder,\n editable: false,\n isCustom: false,\n description: defaultRolesById[name].description ? defaultRolesById[name].description : description\n };\n } else {\n const result = expectedParsedRoles[name] ?? {};\n accu[name] = {\n ...emptyRole,\n ...role,\n ...result,\n name\n };\n }\n return accu;\n },\n { ...defaultRolesById }\n);\n\nexport const receivedPermissionSets = permissionSets.reduce((accu, set) => {\n const result = defaultPermissionSets[set.name]?.result ?? {};\n accu[set.name] = {\n ...set,\n result: {\n ...emptyUiPermissions,\n ...result\n }\n };\n return accu;\n}, {});\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_mockData = require("../mockData.cjs");
|
|
3
|
-
const require_validation = require("../validation-
|
|
3
|
+
const require_validation = require("../validation-wpXX0Zy5.cjs");
|
|
4
4
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
|
5
5
|
let msw = require("msw");
|
|
6
6
|
//#region src/requestHandlers/deploymentHandlers.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mockApiResponses } from "../mockData.js";
|
|
2
|
-
import { n as validated } from "../validation-
|
|
2
|
+
import { n as validated } from "../validation-DgN6L81e.js";
|
|
3
3
|
import { deploymentsApiUrl, deploymentsApiUrlV2, headerNames, limitDefault } from "@northern.tech/utils/constants";
|
|
4
4
|
import { HttpResponse, http } from "msw";
|
|
5
5
|
//#region src/requestHandlers/deploymentHandlers.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_mockData = require("../mockData.cjs");
|
|
3
|
-
const require_validation = require("../validation-
|
|
3
|
+
const require_validation = require("../validation-wpXX0Zy5.cjs");
|
|
4
4
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
|
5
5
|
let msw = require("msw");
|
|
6
6
|
//#region src/requestHandlers/deviceHandlers.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defaultCreationDate, defaultMacAddress, mockApiResponses } from "../mockData.js";
|
|
2
|
-
import { n as validated } from "../validation-
|
|
2
|
+
import { n as validated } from "../validation-DgN6L81e.js";
|
|
3
3
|
import { DEVICE_FILTERING_OPTIONS, DEVICE_STATES, deviceAuthV2, deviceConfig, deviceConnect, headerNames, inventoryApiUrl, inventoryApiUrlV2, iotManagerBaseURL } from "@northern.tech/utils/constants";
|
|
4
4
|
import { HttpResponse, http } from "msw";
|
|
5
5
|
//#region src/requestHandlers/deviceHandlers.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_mockData = require("../mockData.cjs");
|
|
3
|
-
const require_validation = require("../validation-
|
|
3
|
+
const require_validation = require("../validation-wpXX0Zy5.cjs");
|
|
4
4
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
|
5
5
|
let msw = require("msw");
|
|
6
6
|
//#region src/requestHandlers/monitorHandlers.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mockApiResponses } from "../mockData.js";
|
|
2
|
-
import { n as validated } from "../validation-
|
|
2
|
+
import { n as validated } from "../validation-DgN6L81e.js";
|
|
3
3
|
import { alertChannels, headerNames, monitorApiUrlv1 } from "@northern.tech/utils/constants";
|
|
4
4
|
import { HttpResponse, http } from "msw";
|
|
5
5
|
//#region src/requestHandlers/monitorHandlers.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_mockData = require("../mockData.cjs");
|
|
3
|
-
const require_validation = require("../validation-
|
|
3
|
+
const require_validation = require("../validation-wpXX0Zy5.cjs");
|
|
4
4
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
|
5
5
|
let msw = require("msw");
|
|
6
6
|
//#region src/requestHandlers/organizationHandlers.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mockApiResponses, tenants, webhookEvents } from "../mockData.js";
|
|
2
|
-
import { n as validated } from "../validation-
|
|
2
|
+
import { n as validated } from "../validation-DgN6L81e.js";
|
|
3
3
|
import { auditLogsApiUrl, headerNames, iotManagerBaseURL, ssoIdpApiUrlv1, tenantadmApiUrlv1, tenantadmApiUrlv2 } from "@northern.tech/utils/constants";
|
|
4
4
|
import { HttpResponse, http } from "msw";
|
|
5
5
|
//#region src/requestHandlers/organizationHandlers.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_mockData = require("../mockData.cjs");
|
|
3
|
-
const require_validation = require("../validation-
|
|
3
|
+
const require_validation = require("../validation-wpXX0Zy5.cjs");
|
|
4
4
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
|
5
5
|
let _northern_tech_utils_helpers = require("@northern.tech/utils/helpers");
|
|
6
6
|
let msw = require("msw");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { manifestsList, mockApiResponses, releasesList, softwareList } from "../mockData.js";
|
|
2
|
-
import { n as validated } from "../validation-
|
|
2
|
+
import { n as validated } from "../validation-DgN6L81e.js";
|
|
3
3
|
import { SORTING_OPTIONS, deploymentsApiUrl, deploymentsApiUrlV1alpha1, deploymentsApiUrlV2, headerNames } from "@northern.tech/utils/constants";
|
|
4
4
|
import { customSort } from "@northern.tech/utils/helpers";
|
|
5
5
|
import { HttpResponse, http } from "msw";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_mockData = require("../mockData.cjs");
|
|
3
|
-
const require_validation = require("../validation-
|
|
3
|
+
const require_validation = require("../validation-wpXX0Zy5.cjs");
|
|
4
4
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
|
5
5
|
let msw = require("msw");
|
|
6
6
|
//#region src/requestHandlers/userHandlers.ts
|
|
@@ -128,6 +128,17 @@ const userHandlers = [
|
|
|
128
128
|
const { secret_hash } = await request.json();
|
|
129
129
|
return new msw.HttpResponse(null, { status: secret_hash === "superSecret" ? 200 : 576 });
|
|
130
130
|
})),
|
|
131
|
+
msw.http.get(`${_northern_tech_utils_constants.useradmApiUrl}/users/me/email-change/pending`, () => msw.HttpResponse.json(require_mockData.pendingEmailChange)),
|
|
132
|
+
msw.http.post(`${_northern_tech_utils_constants.useradmApiUrl}/users/me/email-change/start`, require_validation.validated(async ({ request }) => {
|
|
133
|
+
const { email, current_password } = await request.json();
|
|
134
|
+
if (current_password === "bad_password") return new msw.HttpResponse(null, { status: 401 });
|
|
135
|
+
return new msw.HttpResponse(null, { status: email ? 202 : 579 });
|
|
136
|
+
})),
|
|
137
|
+
msw.http.post(`${_northern_tech_utils_constants.useradmApiUrl}/users/me/email-change/complete`, require_validation.validated(async ({ request }) => {
|
|
138
|
+
const { secret_hash } = await request.json();
|
|
139
|
+
return new msw.HttpResponse(null, { status: secret_hash === "superSecret" ? 204 : 400 });
|
|
140
|
+
})),
|
|
141
|
+
msw.http.post(`${_northern_tech_utils_constants.useradmApiUrl}/users/me/email-change/cancel`, () => new msw.HttpResponse(null, { status: 204 })),
|
|
131
142
|
msw.http.get(`${_northern_tech_utils_constants.useradmApiUrlv2}/permission_sets`, () => msw.HttpResponse.json(require_mockData.permissionSets)),
|
|
132
143
|
msw.http.post(`${_northern_tech_utils_constants.useradmApiUrl}/users/:userId/assign`, require_validation.validated(async ({ request }) => {
|
|
133
144
|
const { tenant_ids } = await request.json();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userHandlers.cjs","names":["http","useradmApiUrl","HttpResponse","testSsoId","APPLICATION_JWT_CONTENT_TYPE","token","validated","mockApiResponses","defaultUserId","userId","rbacRoles","useradmApiUrlv2","permissionSets","accessTokens"],"sources":["../../src/requestHandlers/userHandlers.ts"],"sourcesContent":["// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//@ts-nocheck\nimport { APPLICATION_JWT_CONTENT_TYPE, useradmApiUrl, useradmApiUrlv2 } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { accessTokens, defaultPassword, userId as defaultUserId, mockApiResponses, permissionSets, rbacRoles, testSsoId, token } from '../mockData';\nimport { validated } from './validation';\n\nexport const userHandlers = [\n http.post(`${useradmApiUrl}/auth/login`, ({ request }) => {\n const authHeader = request.headers.get('authorization');\n const authInfo = atob(authHeader?.split(' ')[1]);\n const [user, password] = authInfo.split(':');\n\n if (!password) {\n return HttpResponse.json({ id: testSsoId, kind: 'sso/saml' });\n } else if (password !== defaultPassword) {\n return new HttpResponse(null, { status: 401 });\n } else if (user.includes('limited')) {\n return new HttpResponse('limitedToken', { headers: { 'Content-Type': APPLICATION_JWT_CONTENT_TYPE } });\n } else if (user.includes('2fa')) {\n return new HttpResponse(JSON.stringify({ error: '2fa needed' }), { status: 401 });\n }\n\n return new HttpResponse(token, { headers: { 'Content-Type': APPLICATION_JWT_CONTENT_TYPE } });\n }),\n http.get(`https://hosted.mender.io${useradmApiUrl}/auth/magic/:id`, ({ params: { id } }) => {\n if (id) {\n return new HttpResponse('test', { headers: { 'Set-Cookie': 'JWT=test' } });\n }\n return new HttpResponse(null, { status: 400 });\n }),\n http.post(`${useradmApiUrl}/auth/logout`, () => new HttpResponse(null, { status: 200 })),\n http.post(\n `${useradmApiUrl}/auth/password-reset/:status`,\n validated(async ({ params: { status }, request }) => {\n const { email, secret_hash, password } = await request.json();\n if (!['start', 'complete'].includes(status) && ![email, secret_hash, password].some(item => item)) {\n return new HttpResponse(null, { status: 560 });\n }\n if (status === 'start' && email) {\n return new HttpResponse(null, { status: 200 });\n }\n if (status === 'complete' && secret_hash && password) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 561 });\n })\n ),\n http.put(\n `${useradmApiUrl}/2faverify`,\n validated(async ({ request }) => {\n const { token2fa } = await request.json();\n if (!token2fa) {\n return new HttpResponse(null, { status: 562 });\n }\n return new HttpResponse(null, { status: 200 });\n })\n ),\n http.get(`${useradmApiUrl}/users`, () => HttpResponse.json(Object.values(mockApiResponses.users.byId))),\n http.get(`${useradmApiUrl}/users/me`, ({ request }) => {\n const authHeader = request.headers.get('authorization');\n if (authHeader?.includes('limited')) {\n return new HttpResponse(JSON.stringify({ error: 'forbidden by role-based access control' }), { status: 403 });\n }\n return HttpResponse.json(mockApiResponses.users.byId[defaultUserId]);\n }),\n http.get(`${useradmApiUrl}/users/exists`, ({ request }) => {\n const url = new URL(request.url);\n const email = url.searchParams.get('email');\n if (!decodeURIComponent(email).includes('child+123')) {\n return new HttpResponse(null, { status: 578 });\n }\n return HttpResponse.json({ exists: true });\n }),\n http.get(`${useradmApiUrl}/users/:userId`, ({ params: { userId } }) => {\n if (userId === 'me' || mockApiResponses.users.byId[userId]) {\n const user = userId === 'me' ? defaultUserId : userId;\n return HttpResponse.json(mockApiResponses.users.byId[user]);\n }\n return new HttpResponse(null, { status: 563 });\n }),\n http.post(\n `${useradmApiUrl}/users`,\n validated(async ({ request }) => {\n const { email, password } = await request.json();\n if (email === 'test@test.com' || [email, password].every(value => value)) {\n return HttpResponse.json(mockApiResponses.users.byId.a1);\n }\n return new HttpResponse(null, { status: 564 });\n })\n ),\n http.put(\n `${useradmApiUrl}/users/:userId`,\n validated(async ({ params: { userId }, request }) => {\n const { email, password, current_password } = await request.json();\n if (current_password === 'bad_password') {\n return new HttpResponse(null, { status: 401 });\n }\n if (\n (mockApiResponses.users.byId[userId] && [email, password].some(value => Object.values(mockApiResponses.users.byId[userId]).includes(value))) ||\n email === 'test@test.com'\n ) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 565 });\n })\n ),\n http.delete(\n `${useradmApiUrl}/users/:userId`,\n ({ params: { userId } }) => new HttpResponse(null, { status: mockApiResponses.users.byId[userId] ? 200 : 566 })\n ),\n http.get(`${useradmApiUrl}/roles`, () => HttpResponse.json(rbacRoles)),\n http.post(\n `${useradmApiUrl}/roles`,\n validated(async ({ request }) => {\n const { name, permissions } = await request.json();\n if (\n [name, permissions].every(value => value) &&\n permissions.every(permission => permission.action && permission.object && permission.object.type && permission.object.value)\n ) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 567 });\n })\n ),\n http.put(\n `${useradmApiUrl}/roles/:roleId`,\n validated(async ({ params: { roleId }, request }) => {\n const { description, name, permissions } = await request.json();\n if (mockApiResponses.users.rolesById[roleId] && [description, name, permissions].some(value => value)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 568 });\n })\n ),\n http.post(`${useradmApiUrlv2}/support/feedback/product`, async () => new HttpResponse(null, { status: 200 })),\n http.delete(\n `${useradmApiUrl}/roles/:roleId`,\n ({ params: { roleId } }) => new HttpResponse(null, { status: mockApiResponses.users.rolesById[roleId] ? 200 : 569 })\n ),\n http.get(`${useradmApiUrlv2}/roles`, () => HttpResponse.json(rbacRoles)),\n http.get(`${useradmApiUrlv2}/roles/:roleId`, async ({ params: { roleId } }) => {\n if (mockApiResponses.users.rolesById[roleId]) {\n return HttpResponse.json(mockApiResponses.users.rolesById[roleId]);\n }\n return new HttpResponse(null, { status: 571 });\n }),\n http.post(\n `${useradmApiUrlv2}/roles`,\n validated(async ({ request }) => {\n const { name, permission_sets_with_scope } = await request.json();\n if (\n !!name &&\n permission_sets_with_scope.every(permission => permission.name && permissionSets.find(permissionSet => permissionSet.name === permission.name))\n ) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 572 });\n })\n ),\n http.put(\n `${useradmApiUrlv2}/roles/:roleId`,\n validated(async ({ params: { roleId }, request }) => {\n const { description, name, permission_sets_with_scope } = await request.json();\n if (mockApiResponses.users.rolesById[roleId] && [description, name, permission_sets_with_scope].some(value => value)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 573 });\n })\n ),\n http.delete(`${useradmApiUrlv2}/roles/:roleId`, ({ params: { roleId } }) => {\n if (mockApiResponses.users.rolesById[roleId]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 574 });\n }),\n http.get(`${useradmApiUrl}/settings`, () => HttpResponse.json(mockApiResponses.users.globalSettings)),\n http.post(`${useradmApiUrl}/settings`, () => new HttpResponse(null, { status: 200 })),\n http.get(`${useradmApiUrl}/settings/me`, () => HttpResponse.json(mockApiResponses.users.userSettings)),\n http.post(`${useradmApiUrl}/settings/me`, () => new HttpResponse(null, { status: 200 })),\n http.get(`${useradmApiUrl}/settings/tokens`, () => HttpResponse.json(accessTokens)),\n http.post(`${useradmApiUrl}/settings/tokens`, () => HttpResponse.json('aNewToken')),\n http.delete(\n `${useradmApiUrl}/settings/tokens/:tokenId`,\n ({ params: { tokenId } }) => new HttpResponse(null, { status: tokenId === 'some-id-1' ? 200 : 577 })\n ),\n http.get(`${useradmApiUrl}/2faqr`, () => HttpResponse.json({ qr: btoa('test') })),\n http.post(`${useradmApiUrl}/users/:userId/2fa/enable`, ({ params: { userId } }) => {\n if (mockApiResponses.users.byId[userId] || userId === 'me') {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 570 });\n }),\n http.post(`${useradmApiUrl}/users/:userId/2fa/disable`, ({ params: { userId } }) => {\n if (mockApiResponses.users.byId[userId] || userId === 'me') {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 571 });\n }),\n http.post(`${useradmApiUrl}/auth/verify-email/start`, () => new HttpResponse(null, { status: 200 })),\n http.post(\n `${useradmApiUrl}/auth/verify-email/complete`,\n validated(async ({ request }) => {\n const { secret_hash } = await request.json();\n return new HttpResponse(null, { status: secret_hash === 'superSecret' ? 200 : 576 });\n })\n ),\n http.get(`${useradmApiUrlv2}/permission_sets`, () => HttpResponse.json(permissionSets)),\n http.post(\n `${useradmApiUrl}/users/:userId/assign`,\n validated(async ({ request }) => {\n const { tenant_ids } = await request.json();\n return new HttpResponse(null, { status: tenant_ids.length ? 200 : 577 });\n })\n ),\n http.get(`${useradmApiUrl}/users/tenants/:tenantId/token`, () => HttpResponse.text('differentToken')),\n http.post(`${useradmApiUrl}/oauth2/link`, ({ request }) => {\n const authHeader = request.headers.get('authorization');\n const authInfo = atob(authHeader?.split(' ')[1]);\n const [user, password] = authInfo.split(':');\n\n if (password !== defaultPassword) {\n return new HttpResponse(null, { status: 401 });\n } else if (user.includes('2fa')) {\n return new HttpResponse(JSON.stringify({ error: '2fa needed' }), { status: 401 });\n }\n\n return new HttpResponse(token, { headers: { 'Content-Type': APPLICATION_JWT_CONTENT_TYPE } });\n })\n];\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"userHandlers.cjs","names":["http","useradmApiUrl","HttpResponse","testSsoId","APPLICATION_JWT_CONTENT_TYPE","token","validated","mockApiResponses","defaultUserId","userId","rbacRoles","useradmApiUrlv2","permissionSets","accessTokens","pendingEmailChange"],"sources":["../../src/requestHandlers/userHandlers.ts"],"sourcesContent":["// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//@ts-nocheck\nimport { APPLICATION_JWT_CONTENT_TYPE, useradmApiUrl, useradmApiUrlv2 } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport {\n accessTokens,\n defaultPassword,\n userId as defaultUserId,\n mockApiResponses,\n pendingEmailChange,\n permissionSets,\n rbacRoles,\n testSsoId,\n token\n} from '../mockData';\nimport { validated } from './validation';\n\nexport const userHandlers = [\n http.post(`${useradmApiUrl}/auth/login`, ({ request }) => {\n const authHeader = request.headers.get('authorization');\n const authInfo = atob(authHeader?.split(' ')[1]);\n const [user, password] = authInfo.split(':');\n\n if (!password) {\n return HttpResponse.json({ id: testSsoId, kind: 'sso/saml' });\n } else if (password !== defaultPassword) {\n return new HttpResponse(null, { status: 401 });\n } else if (user.includes('limited')) {\n return new HttpResponse('limitedToken', { headers: { 'Content-Type': APPLICATION_JWT_CONTENT_TYPE } });\n } else if (user.includes('2fa')) {\n return new HttpResponse(JSON.stringify({ error: '2fa needed' }), { status: 401 });\n }\n\n return new HttpResponse(token, { headers: { 'Content-Type': APPLICATION_JWT_CONTENT_TYPE } });\n }),\n http.get(`https://hosted.mender.io${useradmApiUrl}/auth/magic/:id`, ({ params: { id } }) => {\n if (id) {\n return new HttpResponse('test', { headers: { 'Set-Cookie': 'JWT=test' } });\n }\n return new HttpResponse(null, { status: 400 });\n }),\n http.post(`${useradmApiUrl}/auth/logout`, () => new HttpResponse(null, { status: 200 })),\n http.post(\n `${useradmApiUrl}/auth/password-reset/:status`,\n validated(async ({ params: { status }, request }) => {\n const { email, secret_hash, password } = await request.json();\n if (!['start', 'complete'].includes(status) && ![email, secret_hash, password].some(item => item)) {\n return new HttpResponse(null, { status: 560 });\n }\n if (status === 'start' && email) {\n return new HttpResponse(null, { status: 200 });\n }\n if (status === 'complete' && secret_hash && password) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 561 });\n })\n ),\n http.put(\n `${useradmApiUrl}/2faverify`,\n validated(async ({ request }) => {\n const { token2fa } = await request.json();\n if (!token2fa) {\n return new HttpResponse(null, { status: 562 });\n }\n return new HttpResponse(null, { status: 200 });\n })\n ),\n http.get(`${useradmApiUrl}/users`, () => HttpResponse.json(Object.values(mockApiResponses.users.byId))),\n http.get(`${useradmApiUrl}/users/me`, ({ request }) => {\n const authHeader = request.headers.get('authorization');\n if (authHeader?.includes('limited')) {\n return new HttpResponse(JSON.stringify({ error: 'forbidden by role-based access control' }), { status: 403 });\n }\n return HttpResponse.json(mockApiResponses.users.byId[defaultUserId]);\n }),\n http.get(`${useradmApiUrl}/users/exists`, ({ request }) => {\n const url = new URL(request.url);\n const email = url.searchParams.get('email');\n if (!decodeURIComponent(email).includes('child+123')) {\n return new HttpResponse(null, { status: 578 });\n }\n return HttpResponse.json({ exists: true });\n }),\n http.get(`${useradmApiUrl}/users/:userId`, ({ params: { userId } }) => {\n if (userId === 'me' || mockApiResponses.users.byId[userId]) {\n const user = userId === 'me' ? defaultUserId : userId;\n return HttpResponse.json(mockApiResponses.users.byId[user]);\n }\n return new HttpResponse(null, { status: 563 });\n }),\n http.post(\n `${useradmApiUrl}/users`,\n validated(async ({ request }) => {\n const { email, password } = await request.json();\n if (email === 'test@test.com' || [email, password].every(value => value)) {\n return HttpResponse.json(mockApiResponses.users.byId.a1);\n }\n return new HttpResponse(null, { status: 564 });\n })\n ),\n http.put(\n `${useradmApiUrl}/users/:userId`,\n validated(async ({ params: { userId }, request }) => {\n const { email, password, current_password } = await request.json();\n if (current_password === 'bad_password') {\n return new HttpResponse(null, { status: 401 });\n }\n if (\n (mockApiResponses.users.byId[userId] && [email, password].some(value => Object.values(mockApiResponses.users.byId[userId]).includes(value))) ||\n email === 'test@test.com'\n ) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 565 });\n })\n ),\n http.delete(\n `${useradmApiUrl}/users/:userId`,\n ({ params: { userId } }) => new HttpResponse(null, { status: mockApiResponses.users.byId[userId] ? 200 : 566 })\n ),\n http.get(`${useradmApiUrl}/roles`, () => HttpResponse.json(rbacRoles)),\n http.post(\n `${useradmApiUrl}/roles`,\n validated(async ({ request }) => {\n const { name, permissions } = await request.json();\n if (\n [name, permissions].every(value => value) &&\n permissions.every(permission => permission.action && permission.object && permission.object.type && permission.object.value)\n ) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 567 });\n })\n ),\n http.put(\n `${useradmApiUrl}/roles/:roleId`,\n validated(async ({ params: { roleId }, request }) => {\n const { description, name, permissions } = await request.json();\n if (mockApiResponses.users.rolesById[roleId] && [description, name, permissions].some(value => value)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 568 });\n })\n ),\n http.post(`${useradmApiUrlv2}/support/feedback/product`, async () => new HttpResponse(null, { status: 200 })),\n http.delete(\n `${useradmApiUrl}/roles/:roleId`,\n ({ params: { roleId } }) => new HttpResponse(null, { status: mockApiResponses.users.rolesById[roleId] ? 200 : 569 })\n ),\n http.get(`${useradmApiUrlv2}/roles`, () => HttpResponse.json(rbacRoles)),\n http.get(`${useradmApiUrlv2}/roles/:roleId`, async ({ params: { roleId } }) => {\n if (mockApiResponses.users.rolesById[roleId]) {\n return HttpResponse.json(mockApiResponses.users.rolesById[roleId]);\n }\n return new HttpResponse(null, { status: 571 });\n }),\n http.post(\n `${useradmApiUrlv2}/roles`,\n validated(async ({ request }) => {\n const { name, permission_sets_with_scope } = await request.json();\n if (\n !!name &&\n permission_sets_with_scope.every(permission => permission.name && permissionSets.find(permissionSet => permissionSet.name === permission.name))\n ) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 572 });\n })\n ),\n http.put(\n `${useradmApiUrlv2}/roles/:roleId`,\n validated(async ({ params: { roleId }, request }) => {\n const { description, name, permission_sets_with_scope } = await request.json();\n if (mockApiResponses.users.rolesById[roleId] && [description, name, permission_sets_with_scope].some(value => value)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 573 });\n })\n ),\n http.delete(`${useradmApiUrlv2}/roles/:roleId`, ({ params: { roleId } }) => {\n if (mockApiResponses.users.rolesById[roleId]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 574 });\n }),\n http.get(`${useradmApiUrl}/settings`, () => HttpResponse.json(mockApiResponses.users.globalSettings)),\n http.post(`${useradmApiUrl}/settings`, () => new HttpResponse(null, { status: 200 })),\n http.get(`${useradmApiUrl}/settings/me`, () => HttpResponse.json(mockApiResponses.users.userSettings)),\n http.post(`${useradmApiUrl}/settings/me`, () => new HttpResponse(null, { status: 200 })),\n http.get(`${useradmApiUrl}/settings/tokens`, () => HttpResponse.json(accessTokens)),\n http.post(`${useradmApiUrl}/settings/tokens`, () => HttpResponse.json('aNewToken')),\n http.delete(\n `${useradmApiUrl}/settings/tokens/:tokenId`,\n ({ params: { tokenId } }) => new HttpResponse(null, { status: tokenId === 'some-id-1' ? 200 : 577 })\n ),\n http.get(`${useradmApiUrl}/2faqr`, () => HttpResponse.json({ qr: btoa('test') })),\n http.post(`${useradmApiUrl}/users/:userId/2fa/enable`, ({ params: { userId } }) => {\n if (mockApiResponses.users.byId[userId] || userId === 'me') {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 570 });\n }),\n http.post(`${useradmApiUrl}/users/:userId/2fa/disable`, ({ params: { userId } }) => {\n if (mockApiResponses.users.byId[userId] || userId === 'me') {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 571 });\n }),\n http.post(`${useradmApiUrl}/auth/verify-email/start`, () => new HttpResponse(null, { status: 200 })),\n http.post(\n `${useradmApiUrl}/auth/verify-email/complete`,\n validated(async ({ request }) => {\n const { secret_hash } = await request.json();\n return new HttpResponse(null, { status: secret_hash === 'superSecret' ? 200 : 576 });\n })\n ),\n http.get(`${useradmApiUrl}/users/me/email-change/pending`, () => HttpResponse.json(pendingEmailChange)),\n http.post(\n `${useradmApiUrl}/users/me/email-change/start`,\n validated(async ({ request }) => {\n const { email, current_password } = await request.json();\n if (current_password === 'bad_password') {\n return new HttpResponse(null, { status: 401 });\n }\n return new HttpResponse(null, { status: email ? 202 : 579 });\n })\n ),\n http.post(\n `${useradmApiUrl}/users/me/email-change/complete`,\n validated(async ({ request }) => {\n const { secret_hash } = await request.json();\n return new HttpResponse(null, { status: secret_hash === 'superSecret' ? 204 : 400 });\n })\n ),\n http.post(`${useradmApiUrl}/users/me/email-change/cancel`, () => new HttpResponse(null, { status: 204 })),\n http.get(`${useradmApiUrlv2}/permission_sets`, () => HttpResponse.json(permissionSets)),\n http.post(\n `${useradmApiUrl}/users/:userId/assign`,\n validated(async ({ request }) => {\n const { tenant_ids } = await request.json();\n return new HttpResponse(null, { status: tenant_ids.length ? 200 : 577 });\n })\n ),\n http.get(`${useradmApiUrl}/users/tenants/:tenantId/token`, () => HttpResponse.text('differentToken')),\n http.post(`${useradmApiUrl}/oauth2/link`, ({ request }) => {\n const authHeader = request.headers.get('authorization');\n const authInfo = atob(authHeader?.split(' ')[1]);\n const [user, password] = authInfo.split(':');\n\n if (password !== defaultPassword) {\n return new HttpResponse(null, { status: 401 });\n } else if (user.includes('2fa')) {\n return new HttpResponse(JSON.stringify({ error: '2fa needed' }), { status: 401 });\n }\n\n return new HttpResponse(token, { headers: { 'Content-Type': APPLICATION_JWT_CONTENT_TYPE } });\n })\n];\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { accessTokens, mockApiResponses, permissionSets, rbacRoles, testSsoId, token, userId } from "../mockData.js";
|
|
2
|
-
import { n as validated } from "../validation-
|
|
1
|
+
import { accessTokens, mockApiResponses, pendingEmailChange, permissionSets, rbacRoles, testSsoId, token, userId } from "../mockData.js";
|
|
2
|
+
import { n as validated } from "../validation-DgN6L81e.js";
|
|
3
3
|
import { APPLICATION_JWT_CONTENT_TYPE, useradmApiUrl, useradmApiUrlv2 } from "@northern.tech/utils/constants";
|
|
4
4
|
import { HttpResponse, http } from "msw";
|
|
5
5
|
//#region src/requestHandlers/userHandlers.ts
|
|
@@ -127,6 +127,17 @@ const userHandlers = [
|
|
|
127
127
|
const { secret_hash } = await request.json();
|
|
128
128
|
return new HttpResponse(null, { status: secret_hash === "superSecret" ? 200 : 576 });
|
|
129
129
|
})),
|
|
130
|
+
http.get(`${useradmApiUrl}/users/me/email-change/pending`, () => HttpResponse.json(pendingEmailChange)),
|
|
131
|
+
http.post(`${useradmApiUrl}/users/me/email-change/start`, validated(async ({ request }) => {
|
|
132
|
+
const { email, current_password } = await request.json();
|
|
133
|
+
if (current_password === "bad_password") return new HttpResponse(null, { status: 401 });
|
|
134
|
+
return new HttpResponse(null, { status: email ? 202 : 579 });
|
|
135
|
+
})),
|
|
136
|
+
http.post(`${useradmApiUrl}/users/me/email-change/complete`, validated(async ({ request }) => {
|
|
137
|
+
const { secret_hash } = await request.json();
|
|
138
|
+
return new HttpResponse(null, { status: secret_hash === "superSecret" ? 204 : 400 });
|
|
139
|
+
})),
|
|
140
|
+
http.post(`${useradmApiUrl}/users/me/email-change/cancel`, () => new HttpResponse(null, { status: 204 })),
|
|
130
141
|
http.get(`${useradmApiUrlv2}/permission_sets`, () => HttpResponse.json(permissionSets)),
|
|
131
142
|
http.post(`${useradmApiUrl}/users/:userId/assign`, validated(async ({ request }) => {
|
|
132
143
|
const { tenant_ids } = await request.json();
|