@northern.tech/store 0.3.3 → 0.4.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/actions.cjs +80 -833
- package/dist/actions.cjs.map +1 -1
- package/dist/actions.d.cts +229 -85
- package/dist/actions.d.ts +229 -85
- package/dist/actions.js +14 -14
- package/dist/api/general-api.cjs +274 -148
- package/dist/api/general-api.cjs.map +1 -1
- package/dist/api/general-api.d.cts +1 -1
- package/dist/api/general-api.d.ts +1 -1
- package/dist/api/general-api.js +7 -7
- package/dist/api/users-api.cjs +274 -148
- package/dist/api/users-api.cjs.map +1 -1
- package/dist/api/users-api.d.cts +7 -5
- package/dist/api/users-api.d.ts +7 -5
- package/dist/api/users-api.js +8 -8
- package/dist/appSlice/constants.cjs +23 -43
- package/dist/appSlice/constants.cjs.map +1 -1
- package/dist/appSlice/constants.d.cts +109 -119
- package/dist/appSlice/constants.d.ts +109 -119
- package/dist/appSlice/constants.js +1 -11
- package/dist/appSlice/index.cjs +25 -242
- package/dist/appSlice/index.cjs.map +1 -1
- package/dist/appSlice/index.d.cts +119 -1531
- package/dist/appSlice/index.d.ts +119 -1531
- package/dist/appSlice/index.js +6 -6
- package/dist/appSlice/mocks.cjs +186 -0
- package/dist/appSlice/mocks.cjs.map +1 -0
- package/dist/appSlice/mocks.d.cts +39 -0
- package/dist/appSlice/mocks.d.ts +39 -0
- package/dist/appSlice/mocks.js +27 -0
- package/dist/appSlice/mocks.js.map +1 -0
- package/dist/appSlice/selectors.cjs +31 -5
- package/dist/appSlice/selectors.cjs.map +1 -1
- package/dist/appSlice/selectors.d.cts +709 -23
- package/dist/appSlice/selectors.d.ts +709 -23
- package/dist/appSlice/selectors.js +21 -1
- package/dist/appSlice/thunks.cjs +1563 -1790
- package/dist/appSlice/thunks.cjs.map +1 -1
- package/dist/appSlice/thunks.d.cts +34 -14
- package/dist/appSlice/thunks.d.ts +34 -14
- package/dist/appSlice/thunks.js +30 -29
- package/dist/auth.cjs +276 -153
- package/dist/auth.cjs.map +1 -1
- package/dist/auth.d.cts +13 -10
- package/dist/auth.d.ts +13 -10
- package/dist/auth.js +6 -8
- package/dist/{chunk-CK6YE6AN.js → chunk-2DYA3X77.js} +3 -1
- package/dist/{chunk-CK6YE6AN.js.map → chunk-2DYA3X77.js.map} +1 -1
- package/dist/{chunk-2CYOM4BK.js → chunk-4TUJPE6G.js} +19 -4
- package/dist/chunk-4TUJPE6G.js.map +1 -0
- package/dist/{chunk-7PVGDMNM.js → chunk-6KGTHJKC.js} +23 -27
- package/dist/chunk-6KGTHJKC.js.map +1 -0
- package/dist/chunk-7C4SQBEE.js +715 -0
- package/dist/chunk-7C4SQBEE.js.map +1 -0
- package/dist/{chunk-QRGTG4YB.js → chunk-ABJLRDCO.js} +10 -11
- package/dist/chunk-ABJLRDCO.js.map +1 -0
- package/dist/{chunk-LEMVXAYP.js → chunk-CW5T6OGF.js} +56 -22
- package/dist/chunk-CW5T6OGF.js.map +1 -0
- package/dist/{chunk-MRCFLG45.js → chunk-FAJ3I2UQ.js} +2 -1
- package/dist/chunk-FAJ3I2UQ.js.map +1 -0
- package/dist/{chunk-DCK2DBOA.js → chunk-IQG5I7AM.js} +29 -39
- package/dist/chunk-IQG5I7AM.js.map +1 -0
- package/dist/chunk-JUGE7L3K.js +110 -0
- package/dist/chunk-JUGE7L3K.js.map +1 -0
- package/dist/{chunk-7JKWI5FK.js → chunk-JXQUFKID.js} +2 -2
- package/dist/chunk-JXQUFKID.js.map +1 -0
- package/dist/chunk-KC7SKI3U.js +389 -0
- package/dist/chunk-KC7SKI3U.js.map +1 -0
- package/dist/{chunk-YDS36ALB.js → chunk-KJNNEDRV.js} +11 -7
- package/dist/chunk-KJNNEDRV.js.map +1 -0
- package/dist/chunk-MBKAZVE3.js +44 -0
- package/dist/chunk-MBKAZVE3.js.map +1 -0
- package/dist/{chunk-TI2RL5P2.js → chunk-MZNANSS2.js} +12 -7
- package/dist/chunk-MZNANSS2.js.map +1 -0
- package/dist/{chunk-LTKOV26W.js → chunk-N2KLYPS5.js} +138 -95
- package/dist/chunk-N2KLYPS5.js.map +1 -0
- package/dist/{chunk-UWMYZNUB.js → chunk-OHF3YUXX.js} +25 -40
- package/dist/chunk-OHF3YUXX.js.map +1 -0
- package/dist/{chunk-CYV6632F.js → chunk-OOICURFL.js} +2 -2
- package/dist/chunk-OOICURFL.js.map +1 -0
- package/dist/{chunk-VMNMD6KF.js → chunk-PGFVHKP5.js} +5 -7
- package/dist/chunk-PGFVHKP5.js.map +1 -0
- package/dist/{chunk-JAROCU6M.js → chunk-QHK7GGV4.js} +3 -3
- package/dist/chunk-QHK7GGV4.js.map +1 -0
- package/dist/{chunk-YT73QWCN.js → chunk-RS37Y2PQ.js} +3 -3
- package/dist/chunk-RS37Y2PQ.js.map +1 -0
- package/dist/{chunk-TUACATJA.js → chunk-UGSLGUS6.js} +8 -6
- package/dist/chunk-UGSLGUS6.js.map +1 -0
- package/dist/{chunk-DAPAXWA5.js → chunk-URNS6A5T.js} +14 -14
- package/dist/{chunk-FGKMJS3B.js → chunk-VANBSJS5.js} +2 -4
- package/dist/chunk-VANBSJS5.js.map +1 -0
- package/dist/{chunk-HPBE6KYY.js → chunk-VUFRP6P3.js} +5 -6
- package/dist/chunk-VUFRP6P3.js.map +1 -0
- package/dist/{chunk-X7IEZBM4.js → chunk-X4GUACQO.js} +8 -5
- package/dist/chunk-X4GUACQO.js.map +1 -0
- package/dist/{chunk-4XJMRVFI.js → chunk-XWYJACQC.js} +45 -22
- package/dist/chunk-XWYJACQC.js.map +1 -0
- package/dist/{chunk-AMGWP7A4.js → chunk-ZJW3QIPM.js} +8 -9
- package/dist/chunk-ZJW3QIPM.js.map +1 -0
- package/dist/chunk-ZKAH3APE.js +1 -0
- package/dist/chunk-ZKAH3APE.js.map +1 -0
- package/dist/{chunk-2JHFUQ6B.js → chunk-ZN5TB2NJ.js} +963 -883
- package/dist/chunk-ZN5TB2NJ.js.map +1 -0
- package/dist/{chunk-WXL7PVI5.js → chunk-ZRSYBSSY.js} +18 -12
- package/dist/chunk-ZRSYBSSY.js.map +1 -0
- package/dist/commonConstants.cjs +279 -173
- package/dist/commonConstants.cjs.map +1 -1
- package/dist/commonConstants.d.cts +46 -212
- package/dist/commonConstants.d.ts +46 -212
- package/dist/commonConstants.js +11 -19
- package/dist/commonSelectors.cjs +513 -778
- package/dist/commonSelectors.cjs.map +1 -1
- package/dist/commonSelectors.d.cts +4307 -279
- package/dist/commonSelectors.d.ts +4307 -279
- package/dist/commonSelectors.js +13 -13
- package/dist/constants.cjs +355 -655
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +11 -9
- package/dist/constants.d.ts +11 -9
- package/dist/constants.js +37 -29
- package/dist/deploymentsSlice/constants.cjs +5 -360
- package/dist/deploymentsSlice/constants.cjs.map +1 -1
- package/dist/deploymentsSlice/constants.d.cts +59 -39
- package/dist/deploymentsSlice/constants.d.ts +59 -39
- package/dist/deploymentsSlice/constants.js +5 -11
- package/dist/deploymentsSlice/index.cjs +17 -365
- package/dist/deploymentsSlice/index.cjs.map +1 -1
- package/dist/deploymentsSlice/index.d.cts +142 -2359
- package/dist/deploymentsSlice/index.d.ts +142 -2359
- package/dist/deploymentsSlice/index.js +6 -6
- package/dist/deploymentsSlice/mocks.cjs +429 -0
- package/dist/deploymentsSlice/mocks.cjs.map +1 -0
- package/dist/deploymentsSlice/mocks.d.cts +189 -0
- package/dist/deploymentsSlice/mocks.d.ts +189 -0
- package/dist/deploymentsSlice/mocks.js +146 -0
- package/dist/deploymentsSlice/mocks.js.map +1 -0
- package/dist/deploymentsSlice/selectors.cjs +5 -353
- package/dist/deploymentsSlice/selectors.cjs.map +1 -1
- package/dist/deploymentsSlice/selectors.d.cts +167 -11
- package/dist/deploymentsSlice/selectors.d.ts +167 -11
- package/dist/deploymentsSlice/selectors.js +6 -6
- package/dist/deploymentsSlice/thunks.cjs +1551 -1778
- package/dist/deploymentsSlice/thunks.cjs.map +1 -1
- package/dist/deploymentsSlice/thunks.d.cts +134 -76
- package/dist/deploymentsSlice/thunks.d.ts +134 -76
- package/dist/deploymentsSlice/thunks.js +30 -29
- package/dist/devicesSlice/constants.cjs +5 -375
- package/dist/devicesSlice/constants.cjs.map +1 -1
- package/dist/devicesSlice/constants.d.cts +8 -16
- package/dist/devicesSlice/constants.d.ts +8 -16
- package/dist/devicesSlice/constants.js +7 -25
- package/dist/devicesSlice/index.cjs +17 -381
- package/dist/devicesSlice/index.cjs.map +1 -1
- package/dist/devicesSlice/index.d.cts +196 -2208
- package/dist/devicesSlice/index.d.ts +196 -2208
- package/dist/devicesSlice/index.js +6 -6
- package/dist/devicesSlice/mocks.cjs +336 -0
- package/dist/devicesSlice/mocks.cjs.map +1 -0
- package/dist/devicesSlice/mocks.d.cts +154 -0
- package/dist/devicesSlice/mocks.d.ts +154 -0
- package/dist/devicesSlice/mocks.js +136 -0
- package/dist/devicesSlice/mocks.js.map +1 -0
- package/dist/devicesSlice/selectors.cjs +280 -293
- package/dist/devicesSlice/selectors.cjs.map +1 -1
- package/dist/devicesSlice/selectors.d.cts +1791 -82
- package/dist/devicesSlice/selectors.d.ts +1791 -82
- package/dist/devicesSlice/selectors.js +8 -6
- package/dist/devicesSlice/thunks.cjs +1699 -1936
- package/dist/devicesSlice/thunks.cjs.map +1 -1
- package/dist/devicesSlice/thunks.d.cts +374 -291
- package/dist/devicesSlice/thunks.d.ts +374 -291
- package/dist/devicesSlice/thunks.js +36 -45
- package/dist/liststatehook.cjs +935 -0
- package/dist/liststatehook.cjs.map +1 -0
- package/dist/liststatehook.d.cts +234 -0
- package/dist/liststatehook.d.ts +234 -0
- package/dist/liststatehook.js +88 -0
- package/dist/liststatehook.js.map +1 -0
- package/dist/locationutils.cjs +906 -0
- package/dist/locationutils.cjs.map +1 -0
- package/dist/locationutils.d.cts +114 -0
- package/dist/locationutils.d.ts +114 -0
- package/dist/locationutils.js +46 -0
- package/dist/locationutils.js.map +1 -0
- package/dist/monitorSlice/constants.cjs +0 -146
- package/dist/monitorSlice/constants.cjs.map +1 -1
- package/dist/monitorSlice/constants.d.cts +4 -5
- package/dist/monitorSlice/constants.d.ts +4 -5
- package/dist/monitorSlice/constants.js +1 -12
- package/dist/monitorSlice/index.cjs +5 -353
- package/dist/monitorSlice/index.cjs.map +1 -1
- package/dist/monitorSlice/index.d.cts +63 -260
- package/dist/monitorSlice/index.d.ts +63 -260
- package/dist/monitorSlice/index.js +6 -6
- package/dist/monitorSlice/mocks.cjs +130 -0
- package/dist/monitorSlice/mocks.cjs.map +1 -0
- package/dist/monitorSlice/mocks.d.cts +57 -0
- package/dist/monitorSlice/mocks.d.ts +57 -0
- package/dist/monitorSlice/mocks.js +65 -0
- package/dist/monitorSlice/mocks.js.map +1 -0
- package/dist/monitorSlice/thunks.cjs +633 -880
- package/dist/monitorSlice/thunks.cjs.map +1 -1
- package/dist/monitorSlice/thunks.d.cts +90 -21
- package/dist/monitorSlice/thunks.d.ts +90 -21
- package/dist/monitorSlice/thunks.js +26 -26
- package/dist/onboardingSlice/constants.cjs +1 -0
- package/dist/onboardingSlice/constants.cjs.map +1 -1
- package/dist/onboardingSlice/constants.d.cts +23 -20
- package/dist/onboardingSlice/constants.d.ts +23 -20
- package/dist/onboardingSlice/constants.js +1 -1
- package/dist/onboardingSlice/index.cjs +1 -3
- package/dist/onboardingSlice/index.cjs.map +1 -1
- package/dist/onboardingSlice/index.d.cts +50 -225
- package/dist/onboardingSlice/index.d.ts +50 -225
- package/dist/onboardingSlice/index.js +1 -1
- package/dist/onboardingSlice/mocks.cjs +83 -0
- package/dist/onboardingSlice/mocks.cjs.map +1 -0
- package/dist/onboardingSlice/mocks.d.cts +19 -0
- package/dist/onboardingSlice/mocks.d.ts +19 -0
- package/dist/onboardingSlice/mocks.js +17 -0
- package/dist/onboardingSlice/mocks.js.map +1 -0
- package/dist/onboardingSlice/thunks.cjs +1787 -2020
- package/dist/onboardingSlice/thunks.cjs.map +1 -1
- package/dist/onboardingSlice/thunks.d.cts +63 -36
- package/dist/onboardingSlice/thunks.d.ts +63 -36
- package/dist/onboardingSlice/thunks.js +30 -31
- package/dist/organizationSlice/constants.cjs +8 -748
- package/dist/organizationSlice/constants.cjs.map +1 -1
- package/dist/organizationSlice/constants.d.cts +36 -116
- package/dist/organizationSlice/constants.d.ts +36 -116
- package/dist/organizationSlice/constants.js +7 -17
- package/dist/organizationSlice/index.cjs +14 -368
- package/dist/organizationSlice/index.cjs.map +1 -1
- package/dist/organizationSlice/index.d.cts +45 -73
- package/dist/organizationSlice/index.d.ts +45 -73
- package/dist/organizationSlice/index.js +6 -6
- package/dist/organizationSlice/mocks.cjs +234 -0
- package/dist/organizationSlice/mocks.cjs.map +1 -0
- package/dist/organizationSlice/mocks.d.cts +107 -0
- package/dist/organizationSlice/mocks.d.ts +107 -0
- package/dist/organizationSlice/mocks.js +101 -0
- package/dist/organizationSlice/mocks.js.map +1 -0
- package/dist/organizationSlice/selectors.cjs +301 -146
- package/dist/organizationSlice/selectors.cjs.map +1 -1
- package/dist/organizationSlice/selectors.d.cts +888 -51
- package/dist/organizationSlice/selectors.d.ts +888 -51
- package/dist/organizationSlice/selectors.js +14 -6
- package/dist/organizationSlice/thunks.cjs +2616 -2759
- package/dist/organizationSlice/thunks.cjs.map +1 -1
- package/dist/organizationSlice/thunks.d.cts +322 -131
- package/dist/organizationSlice/thunks.d.ts +322 -131
- package/dist/organizationSlice/thunks.js +44 -29
- package/dist/organizationSlice/types.cjs.map +1 -1
- package/dist/organizationSlice/types.d.cts +62 -79
- package/dist/organizationSlice/types.d.ts +62 -79
- package/dist/releasesSlice/constants.cjs +3 -0
- package/dist/releasesSlice/constants.cjs.map +1 -1
- package/dist/releasesSlice/constants.d.cts +2 -1
- package/dist/releasesSlice/constants.d.ts +2 -1
- package/dist/releasesSlice/constants.js +3 -1
- package/dist/releasesSlice/index.cjs +5 -222
- package/dist/releasesSlice/index.cjs.map +1 -1
- package/dist/releasesSlice/index.d.cts +52 -473
- package/dist/releasesSlice/index.d.ts +52 -473
- package/dist/releasesSlice/index.js +6 -6
- package/dist/releasesSlice/mocks.cjs +177 -0
- package/dist/releasesSlice/mocks.cjs.map +1 -0
- package/dist/releasesSlice/mocks.d.cts +49 -0
- package/dist/releasesSlice/mocks.d.ts +49 -0
- package/dist/releasesSlice/mocks.js +61 -0
- package/dist/releasesSlice/mocks.js.map +1 -0
- package/dist/releasesSlice/selectors.cjs +293 -165
- package/dist/releasesSlice/selectors.cjs.map +1 -1
- package/dist/releasesSlice/selectors.d.cts +886 -24
- package/dist/releasesSlice/selectors.d.ts +886 -24
- package/dist/releasesSlice/selectors.js +9 -7
- package/dist/releasesSlice/thunks.cjs +827 -1017
- package/dist/releasesSlice/thunks.cjs.map +1 -1
- package/dist/releasesSlice/thunks.d.cts +150 -130
- package/dist/releasesSlice/thunks.d.ts +150 -130
- package/dist/releasesSlice/thunks.js +33 -26
- package/dist/selectors.cjs +565 -780
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.d.cts +37 -8
- package/dist/selectors.d.ts +37 -8
- package/dist/selectors.js +54 -18
- package/dist/sockethook.cjs +519 -0
- package/dist/sockethook.cjs.map +1 -0
- package/dist/sockethook.d.cts +10 -0
- package/dist/sockethook.d.ts +10 -0
- package/dist/sockethook.js +139 -0
- package/dist/sockethook.js.map +1 -0
- package/dist/store.cjs +121 -840
- package/dist/store.cjs.map +1 -1
- package/dist/store.d.cts +697 -1961
- package/dist/store.d.ts +697 -1961
- package/dist/store.js +18 -16
- package/dist/storehooks.cjs +1854 -1968
- package/dist/storehooks.cjs.map +1 -1
- package/dist/storehooks.js +46 -63
- package/dist/storehooks.js.map +1 -1
- package/dist/thunks.cjs +2138 -2231
- package/dist/thunks.cjs.map +1 -1
- package/dist/thunks.d.cts +25 -7
- package/dist/thunks.d.ts +25 -7
- package/dist/thunks.js +54 -45
- package/dist/{deploymentdevicehook.cjs → useDeploymentDevice.cjs} +1797 -2026
- package/dist/useDeploymentDevice.cjs.map +1 -0
- package/dist/useDeploymentDevice.js +63 -0
- package/dist/useDeploymentDevice.js.map +1 -0
- package/dist/usersSlice/constants.cjs +5 -747
- package/dist/usersSlice/constants.cjs.map +1 -1
- package/dist/usersSlice/constants.d.cts +16 -774
- package/dist/usersSlice/constants.d.ts +16 -774
- package/dist/usersSlice/constants.js +7 -30
- package/dist/usersSlice/index.cjs +10 -721
- package/dist/usersSlice/index.cjs.map +1 -1
- package/dist/usersSlice/index.d.cts +136 -7900
- package/dist/usersSlice/index.d.ts +136 -7900
- package/dist/usersSlice/index.js +6 -6
- package/dist/usersSlice/mocks.cjs +200 -0
- package/dist/usersSlice/mocks.cjs.map +1 -0
- package/dist/usersSlice/mocks.d.cts +83 -0
- package/dist/usersSlice/mocks.d.ts +83 -0
- package/dist/usersSlice/mocks.js +47 -0
- package/dist/usersSlice/mocks.js.map +1 -0
- package/dist/usersSlice/selectors.cjs +319 -566
- package/dist/usersSlice/selectors.cjs.map +1 -1
- package/dist/usersSlice/selectors.d.cts +1651 -59
- package/dist/usersSlice/selectors.d.ts +1651 -59
- package/dist/usersSlice/selectors.js +13 -9
- package/dist/usersSlice/thunks.cjs +1666 -1893
- package/dist/usersSlice/thunks.cjs.map +1 -1
- package/dist/usersSlice/thunks.d.cts +362 -312
- package/dist/usersSlice/thunks.d.ts +362 -312
- package/dist/usersSlice/thunks.js +30 -29
- package/dist/utils.cjs +428 -292
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +44 -22
- package/dist/utils.d.ts +44 -22
- package/dist/utils.js +12 -6
- package/package.json +18 -8
- package/dist/api/types/AWSCredentials.ts +0 -16
- package/dist/api/types/Actor.ts +0 -35
- package/dist/api/types/Addon.ts +0 -17
- package/dist/api/types/AddonTenantadm.ts +0 -17
- package/dist/api/types/Address.ts +0 -6
- package/dist/api/types/AddressUpdate.ts +0 -12
- package/dist/api/types/Alert.ts +0 -34
- package/dist/api/types/AlertDetails.ts +0 -23
- package/dist/api/types/AlertSubject.ts +0 -23
- package/dist/api/types/ApiBurst.ts +0 -21
- package/dist/api/types/ApiBurstTenantadm.ts +0 -21
- package/dist/api/types/ApiLimits.ts +0 -16
- package/dist/api/types/ApiLimitsTenantadm.ts +0 -16
- package/dist/api/types/ApiQuota.ts +0 -17
- package/dist/api/types/ApiQuotaTenantadm.ts +0 -17
- package/dist/api/types/Artifact.ts +0 -48
- package/dist/api/types/ArtifactDeployments.ts +0 -48
- package/dist/api/types/ArtifactInfo.ts +0 -11
- package/dist/api/types/ArtifactInfoDeployments.ts +0 -11
- package/dist/api/types/ArtifactLink.ts +0 -11
- package/dist/api/types/ArtifactTypeInfo.ts +0 -13
- package/dist/api/types/ArtifactTypeInfoDeployments.ts +0 -13
- package/dist/api/types/ArtifactUpdate.ts +0 -10
- package/dist/api/types/ArtifactUploadLink.ts +0 -15
- package/dist/api/types/Attribute.ts +0 -36
- package/dist/api/types/AttributeInventory.ts +0 -32
- package/dist/api/types/AuditLog.ts +0 -26
- package/dist/api/types/AuthSet.ts +0 -37
- package/dist/api/types/AuthSetDeviceauth.ts +0 -37
- package/dist/api/types/AuthSetIot_manager.ts +0 -33
- package/dist/api/types/AutoAuthRequest.ts +0 -23
- package/dist/api/types/AzureSharedAccessSecret.ts +0 -11
- package/dist/api/types/BillingInfo.ts +0 -13
- package/dist/api/types/BillingProfile.ts +0 -37
- package/dist/api/types/BillingProfileUpdate.ts +0 -37
- package/dist/api/types/BinaryDeltaConfiguration.ts +0 -15
- package/dist/api/types/BinaryDeltaConfigurationDeployments.ts +0 -15
- package/dist/api/types/BinaryDeltaLimits.ts +0 -21
- package/dist/api/types/BinaryDeltaLimitsDeployments.ts +0 -15
- package/dist/api/types/BoundingBox.ts +0 -9
- package/dist/api/types/CancelRequest.ts +0 -10
- package/dist/api/types/CardData.ts +0 -49
- package/dist/api/types/CardSetupData.ts +0 -17
- package/dist/api/types/CheckoutData.ts +0 -13
- package/dist/api/types/Configuration.ts +0 -11
- package/dist/api/types/Count.ts +0 -13
- package/dist/api/types/Credentials.ts +0 -23
- package/dist/api/types/DBusSubsystem.ts +0 -27
- package/dist/api/types/DeltaConfiguration.ts +0 -14
- package/dist/api/types/DeltaConfigurationDeployments.ts +0 -14
- package/dist/api/types/Deployment.ts +0 -45
- package/dist/api/types/DeploymentAggregation.ts +0 -16
- package/dist/api/types/DeploymentAggregationItem.ts +0 -16
- package/dist/api/types/DeploymentAggregationTerm.ts +0 -22
- package/dist/api/types/DeploymentAggregationTerms.ts +0 -16
- package/dist/api/types/DeploymentAttributeProjection.ts +0 -10
- package/dist/api/types/DeploymentAuditlogs.ts +0 -11
- package/dist/api/types/DeploymentDeployments.ts +0 -98
- package/dist/api/types/DeploymentFilterTerm.ts +0 -35
- package/dist/api/types/DeploymentIdentifier.ts +0 -10
- package/dist/api/types/DeploymentPhase.ts +0 -23
- package/dist/api/types/DeploymentPhaseDeployments.ts +0 -23
- package/dist/api/types/DeploymentReporting.ts +0 -46
- package/dist/api/types/DeploymentSearchTerms.ts +0 -37
- package/dist/api/types/DeploymentSortTerm.ts +0 -23
- package/dist/api/types/DeploymentStatistics.ts +0 -15
- package/dist/api/types/DeploymentStatisticsDeployments.ts +0 -15
- package/dist/api/types/DeploymentStatusStatistics.ts +0 -54
- package/dist/api/types/DeploymentStatusStatisticsDeployments.ts +0 -54
- package/dist/api/types/Device.ts +0 -20
- package/dist/api/types/DeviceAggregation.ts +0 -16
- package/dist/api/types/DeviceAggregationItem.ts +0 -16
- package/dist/api/types/DeviceAggregationTerm.ts +0 -26
- package/dist/api/types/DeviceAggregationTerms.ts +0 -20
- package/dist/api/types/DeviceAttribute.ts +0 -22
- package/dist/api/types/DeviceAttributeProjection.ts +0 -14
- package/dist/api/types/DeviceAuditlogs.ts +0 -17
- package/dist/api/types/DeviceAuthEvent.ts +0 -23
- package/dist/api/types/DeviceConfiguration.ts +0 -16
- package/dist/api/types/DeviceDeployment.ts +0 -11
- package/dist/api/types/DeviceDeployments.ts +0 -29
- package/dist/api/types/DeviceDeviceauth.ts +0 -42
- package/dist/api/types/DeviceFilterAttribute.ts +0 -21
- package/dist/api/types/DeviceFilterTerm.ts +0 -39
- package/dist/api/types/DeviceInventory.ts +0 -19
- package/dist/api/types/DeviceInventoryInventory.ts +0 -19
- package/dist/api/types/DeviceReporting.ts +0 -22
- package/dist/api/types/DeviceSearchTerms.ts +0 -37
- package/dist/api/types/DeviceSortTerm.ts +0 -27
- package/dist/api/types/DeviceState.ts +0 -32
- package/dist/api/types/DeviceStateDeviceconnect.ts +0 -33
- package/dist/api/types/DeviceStateIot_manager.ts +0 -14
- package/dist/api/types/DeviceStatus.ts +0 -19
- package/dist/api/types/DeviceWithImage.ts +0 -80
- package/dist/api/types/DirectUploadMetadata.ts +0 -18
- package/dist/api/types/EmailVerificationCompletion.ts +0 -13
- package/dist/api/types/EmailVerificationRequest.ts +0 -13
- package/dist/api/types/Error.ts +0 -17
- package/dist/api/types/ErrorAuditlogs.ts +0 -13
- package/dist/api/types/ErrorDeployments.ts +0 -17
- package/dist/api/types/ErrorDeviceauth.ts +0 -13
- package/dist/api/types/ErrorDeviceconfig.ts +0 -17
- package/dist/api/types/ErrorDeviceconnect.ts +0 -17
- package/dist/api/types/ErrorDevicemonitor.ts +0 -17
- package/dist/api/types/ErrorExt.ts +0 -18
- package/dist/api/types/ErrorInventory.ts +0 -17
- package/dist/api/types/ErrorIot_manager.ts +0 -17
- package/dist/api/types/ErrorNotFound.ts +0 -17
- package/dist/api/types/ErrorReporting.ts +0 -18
- package/dist/api/types/ErrorTenantadm.ts +0 -13
- package/dist/api/types/ErrorUseradm.ts +0 -17
- package/dist/api/types/Event.ts +0 -48
- package/dist/api/types/ExternalIdentity.ts +0 -17
- package/dist/api/types/Features.ts +0 -17
- package/dist/api/types/FileUpload.ts +0 -23
- package/dist/api/types/Filter.ts +0 -19
- package/dist/api/types/FilterAttribute.ts +0 -21
- package/dist/api/types/FilterDefinition.ts +0 -18
- package/dist/api/types/FilterDeployments.ts +0 -19
- package/dist/api/types/FilterInventory.ts +0 -19
- package/dist/api/types/FilterPredicate.ts +0 -48
- package/dist/api/types/FilterPredicateDeployments.ts +0 -48
- package/dist/api/types/FilterPredicateInventory.ts +0 -78
- package/dist/api/types/GeoBoundingBox.ts +0 -8
- package/dist/api/types/GeoBoundingBoxFilter.ts +0 -5
- package/dist/api/types/GeoDistance.ts +0 -15
- package/dist/api/types/GeoDistanceFilter.ts +0 -8
- package/dist/api/types/GeoPoint.ts +0 -14
- package/dist/api/types/Group.ts +0 -10
- package/dist/api/types/HTTP.ts +0 -19
- package/dist/api/types/IdentityData.ts +0 -25
- package/dist/api/types/InputParameter.ts +0 -8
- package/dist/api/types/Integration.ts +0 -30
- package/dist/api/types/JobStatus.ts +0 -13
- package/dist/api/types/Limit.ts +0 -21
- package/dist/api/types/LimitDeployments.ts +0 -21
- package/dist/api/types/LimitDeviceauth.ts +0 -10
- package/dist/api/types/LimitUseradm.ts +0 -11
- package/dist/api/types/Limits.ts +0 -11
- package/dist/api/types/LineDescriptor.ts +0 -11
- package/dist/api/types/LogSubsystem.ts +0 -23
- package/dist/api/types/LoginOptions.ts +0 -18
- package/dist/api/types/ManagementAPIConfiguration.ts +0 -5
- package/dist/api/types/MenderTypes.ts +0 -213
- package/dist/api/types/MonitorConfiguration.ts +0 -22
- package/dist/api/types/NewConfigurationDeployment.ts +0 -15
- package/dist/api/types/NewConfigurationDeploymentResponse.ts +0 -10
- package/dist/api/types/NewDeployment.ts +0 -42
- package/dist/api/types/NewDeploymentForGroup.ts +0 -33
- package/dist/api/types/NewDeploymentPhase.ts +0 -37
- package/dist/api/types/NewDeploymentPhaseDeployments.ts +0 -20
- package/dist/api/types/NewDeploymentV2.ts +0 -34
- package/dist/api/types/NewTenant.ts +0 -49
- package/dist/api/types/Object.ts +0 -38
- package/dist/api/types/OwnUserUpdate.ts +0 -21
- package/dist/api/types/PasswordResetCompletion.ts +0 -17
- package/dist/api/types/PasswordResetRequest.ts +0 -13
- package/dist/api/types/Permission.ts +0 -21
- package/dist/api/types/PermissionObject.ts +0 -14
- package/dist/api/types/PermissionSet.ts +0 -22
- package/dist/api/types/PermissionSetWithScope.ts +0 -15
- package/dist/api/types/PersonalAccessToken.ts +0 -29
- package/dist/api/types/PersonalAccessTokenRequest.ts +0 -18
- package/dist/api/types/Plan.ts +0 -19
- package/dist/api/types/PlanBindingDetails.ts +0 -13
- package/dist/api/types/PlanChangeRequest.ts +0 -14
- package/dist/api/types/PlanLimits.ts +0 -12
- package/dist/api/types/PreAuthSet.ts +0 -16
- package/dist/api/types/Release.ts +0 -32
- package/dist/api/types/ReleaseDeployments.ts +0 -32
- package/dist/api/types/ReleaseUpdate.ts +0 -13
- package/dist/api/types/Releases.ts +0 -9
- package/dist/api/types/ReleasesDeleteError.ts +0 -21
- package/dist/api/types/ReleasesDeployments.ts +0 -9
- package/dist/api/types/Role.ts +0 -19
- package/dist/api/types/RolePermission.ts +0 -25
- package/dist/api/types/RolePermissionObject.ts +0 -17
- package/dist/api/types/RoleUseradm.ts +0 -19
- package/dist/api/types/SAMLMetadata.ts +0 -21
- package/dist/api/types/Scope.ts +0 -19
- package/dist/api/types/SelectAttribute.ts +0 -17
- package/dist/api/types/ServiceSubsystem.ts +0 -19
- package/dist/api/types/Settings.ts +0 -23
- package/dist/api/types/SortCriteria.ts +0 -30
- package/dist/api/types/SsoObject.ts +0 -21
- package/dist/api/types/Status.ts +0 -18
- package/dist/api/types/StatusDeviceauth.ts +0 -18
- package/dist/api/types/StatusTenantadm.ts +0 -17
- package/dist/api/types/StorageLimit.ts +0 -17
- package/dist/api/types/SubscriptionData.ts +0 -8
- package/dist/api/types/SupportRequest.ts +0 -17
- package/dist/api/types/Tag.ts +0 -27
- package/dist/api/types/Tags.ts +0 -10
- package/dist/api/types/TaskResult.ts +0 -13
- package/dist/api/types/TaskResultCLI.ts +0 -10
- package/dist/api/types/TaskResultHTTPRequest.ts +0 -8
- package/dist/api/types/TaskResultHTTPResponse.ts +0 -10
- package/dist/api/types/Tenant.ts +0 -26
- package/dist/api/types/TenantApiLimits.ts +0 -12
- package/dist/api/types/TenantApiLimitsTenantadm.ts +0 -12
- package/dist/api/types/TenantIdName.ts +0 -14
- package/dist/api/types/TenantIdsData.ts +0 -10
- package/dist/api/types/TenantInfo.ts +0 -14
- package/dist/api/types/TenantShortInfo.ts +0 -21
- package/dist/api/types/TenantTenantadm.ts +0 -54
- package/dist/api/types/TenantsIdName.ts +0 -6
- package/dist/api/types/Update.ts +0 -17
- package/dist/api/types/UpdateChildTenant.ts +0 -17
- package/dist/api/types/UpdateDeployments.ts +0 -18
- package/dist/api/types/UpdateFile.ts +0 -13
- package/dist/api/types/UpdateFileDeployments.ts +0 -13
- package/dist/api/types/UpdateTypes.ts +0 -8
- package/dist/api/types/UpgradeCompleteRequest.ts +0 -25
- package/dist/api/types/User.ts +0 -13
- package/dist/api/types/UserAuditlogs.ts +0 -13
- package/dist/api/types/UserNew.ts +0 -26
- package/dist/api/types/UserUpdate.ts +0 -25
- package/dist/api/types/UserUseradm.ts +0 -45
- package/dist/api/types/UserWithTenantInfo.ts +0 -12
- package/dist/api/types/XDeltaArgs.ts +0 -9
- package/dist/api/types/XDeltaArgsDeployments.ts +0 -9
- package/dist/api/types/XDeltaArgsLimits.ts +0 -10
- package/dist/api/types/XDeltaArgsLimitsDeployments.ts +0 -10
- package/dist/chunk-2CYOM4BK.js.map +0 -1
- package/dist/chunk-2JHFUQ6B.js.map +0 -1
- package/dist/chunk-4B3IMP4I.js +0 -245
- package/dist/chunk-4B3IMP4I.js.map +0 -1
- package/dist/chunk-4XJMRVFI.js.map +0 -1
- package/dist/chunk-7JKWI5FK.js.map +0 -1
- package/dist/chunk-7PVGDMNM.js.map +0 -1
- package/dist/chunk-AMGWP7A4.js.map +0 -1
- package/dist/chunk-C5NEDBJI.js +0 -727
- package/dist/chunk-C5NEDBJI.js.map +0 -1
- package/dist/chunk-CYV6632F.js.map +0 -1
- package/dist/chunk-DCK2DBOA.js.map +0 -1
- package/dist/chunk-FGKMJS3B.js.map +0 -1
- package/dist/chunk-HPBE6KYY.js.map +0 -1
- package/dist/chunk-JAROCU6M.js.map +0 -1
- package/dist/chunk-LEMVXAYP.js.map +0 -1
- package/dist/chunk-LGNOTPUG.js +0 -106
- package/dist/chunk-LGNOTPUG.js.map +0 -1
- package/dist/chunk-LIJIIRON.js +0 -28
- package/dist/chunk-LIJIIRON.js.map +0 -1
- package/dist/chunk-LTKOV26W.js.map +0 -1
- package/dist/chunk-MRCFLG45.js.map +0 -1
- package/dist/chunk-QRGTG4YB.js.map +0 -1
- package/dist/chunk-TI2RL5P2.js.map +0 -1
- package/dist/chunk-TUACATJA.js.map +0 -1
- package/dist/chunk-UWMYZNUB.js.map +0 -1
- package/dist/chunk-VMNMD6KF.js.map +0 -1
- package/dist/chunk-WXL7PVI5.js.map +0 -1
- package/dist/chunk-X7IEZBM4.js.map +0 -1
- package/dist/chunk-YDS36ALB.js.map +0 -1
- package/dist/chunk-YT73QWCN.js.map +0 -1
- package/dist/deploymentdevicehook.cjs.map +0 -1
- package/dist/deploymentdevicehook.js +0 -62
- package/dist/deploymentdevicehook.js.map +0 -1
- /package/dist/{chunk-DAPAXWA5.js.map → chunk-URNS6A5T.js.map} +0 -0
- /package/dist/{deploymentdevicehook.d.cts → useDeploymentDevice.d.cts} +0 -0
- /package/dist/{deploymentdevicehook.d.ts → useDeploymentDevice.d.ts} +0 -0
package/dist/selectors.cjs
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
|
|
20
30
|
// src/selectors.ts
|
|
@@ -30,6 +40,8 @@ __export(selectors_exports, {
|
|
|
30
40
|
getAuditlogDevice: () => getAuditlogDevice,
|
|
31
41
|
getAuditlogState: () => getAuditlogState,
|
|
32
42
|
getAvailableIssueOptionsByType: () => getAvailableIssueOptionsByType,
|
|
43
|
+
getBillingProfile: () => getBillingProfile,
|
|
44
|
+
getCard: () => getCard,
|
|
33
45
|
getCurrentSession: () => getCurrentSession,
|
|
34
46
|
getCurrentUser: () => getCurrentUser,
|
|
35
47
|
getDemoDeviceAddress: () => getDemoDeviceAddress,
|
|
@@ -53,21 +65,28 @@ __export(selectors_exports, {
|
|
|
53
65
|
getDocsVersion: () => getDocsVersion,
|
|
54
66
|
getExternalIntegrations: () => getExternalIntegrations,
|
|
55
67
|
getFeatures: () => getFeatures,
|
|
68
|
+
getFeedbackProbability: () => getFeedbackProbability,
|
|
56
69
|
getFilterAttributes: () => getFilterAttributes,
|
|
57
70
|
getFilteringAttributes: () => getFilteringAttributes,
|
|
58
71
|
getFullVersionInformation: () => getFullVersionInformation,
|
|
59
72
|
getGlobalSettings: () => getGlobalSettings,
|
|
73
|
+
getGroupData: () => getGroupData,
|
|
60
74
|
getGroupNames: () => getGroupNames,
|
|
61
75
|
getGroups: () => getGroups,
|
|
62
76
|
getGroupsById: () => getGroupsById,
|
|
63
77
|
getGroupsByIdWithoutUngrouped: () => getGroupsByIdWithoutUngrouped,
|
|
64
78
|
getHas2FA: () => getHas2FA,
|
|
79
|
+
getHasCurrentPricing: () => getHasCurrentPricing,
|
|
65
80
|
getHasReleases: () => getHasReleases,
|
|
81
|
+
getHostAddress: () => getHostAddress,
|
|
82
|
+
getHostedAnnouncement: () => getHostedAnnouncement,
|
|
66
83
|
getIdAttribute: () => getIdAttribute,
|
|
67
84
|
getIsDarkMode: () => getIsDarkMode,
|
|
68
85
|
getIsEnterprise: () => getIsEnterprise,
|
|
86
|
+
getIsFirstLogin: () => getIsFirstLogin,
|
|
69
87
|
getIsPreview: () => getIsPreview,
|
|
70
88
|
getIsServiceProvider: () => getIsServiceProvider,
|
|
89
|
+
getIsUploading: () => getIsUploading,
|
|
71
90
|
getIssueCountsByType: () => getIssueCountsByType,
|
|
72
91
|
getLimitMaxed: () => getLimitMaxed,
|
|
73
92
|
getListedDevices: () => getListedDevices,
|
|
@@ -77,6 +96,8 @@ __export(selectors_exports, {
|
|
|
77
96
|
getOnboarding: () => getOnboarding,
|
|
78
97
|
getOnboardingState: () => getOnboardingState,
|
|
79
98
|
getOrganization: () => getOrganization,
|
|
99
|
+
getReadAllHelptips: () => getReadAllHelptips,
|
|
100
|
+
getRecaptchaKey: () => getRecaptchaKey,
|
|
80
101
|
getRecentDeployments: () => getRecentDeployments,
|
|
81
102
|
getReleaseListState: () => getReleaseListState,
|
|
82
103
|
getReleaseTags: () => getReleaseTags,
|
|
@@ -85,6 +106,7 @@ __export(selectors_exports, {
|
|
|
85
106
|
getReleasesList: () => getReleasesList,
|
|
86
107
|
getRelevantRoles: () => getRelevantRoles,
|
|
87
108
|
getRolesById: () => getRolesById,
|
|
109
|
+
getRolesInitialized: () => getRolesInitialized,
|
|
88
110
|
getRolesList: () => getRolesList,
|
|
89
111
|
getSearchEndpoint: () => getSearchEndpoint,
|
|
90
112
|
getSearchState: () => getSearchState,
|
|
@@ -95,17 +117,23 @@ __export(selectors_exports, {
|
|
|
95
117
|
getSelectedGroup: () => getSelectedGroup,
|
|
96
118
|
getSelectedGroupInfo: () => getSelectedGroupInfo,
|
|
97
119
|
getSelectedRelease: () => getSelectedRelease,
|
|
98
|
-
|
|
120
|
+
getSelectedReleases: () => getSelectedReleases,
|
|
121
|
+
getSnackbar: () => getSnackbar,
|
|
99
122
|
getSortedFilteringAttributes: () => getSortedFilteringAttributes,
|
|
100
123
|
getSsoConfig: () => getSsoConfig,
|
|
124
|
+
getStripeKey: () => getStripeKey,
|
|
125
|
+
getSubscription: () => getSubscription,
|
|
101
126
|
getTenantCapabilities: () => getTenantCapabilities,
|
|
102
127
|
getTenantsList: () => getTenantsList,
|
|
103
128
|
getTooltipsById: () => getTooltipsById,
|
|
104
129
|
getTooltipsState: () => getTooltipsState,
|
|
130
|
+
getTrackerCode: () => getTrackerCode,
|
|
105
131
|
getUpdateTypes: () => getUpdateTypes,
|
|
132
|
+
getUploads: () => getUploads,
|
|
106
133
|
getUserCapabilities: () => getUserCapabilities,
|
|
107
134
|
getUserRoles: () => getUserRoles,
|
|
108
135
|
getUserSettings: () => getUserSettings,
|
|
136
|
+
getUserSettingsInitialized: () => getUserSettingsInitialized,
|
|
109
137
|
getUsersById: () => getUsersById,
|
|
110
138
|
getUsersList: () => getUsersList,
|
|
111
139
|
getVersionInformation: () => getVersionInformation,
|
|
@@ -119,20 +147,26 @@ module.exports = __toCommonJS(selectors_exports);
|
|
|
119
147
|
// src/appSlice/selectors.ts
|
|
120
148
|
var import_helpers = require("@northern.tech/utils/helpers");
|
|
121
149
|
var import_toolkit = require("@reduxjs/toolkit");
|
|
122
|
-
var
|
|
150
|
+
var getDocsVersion = (state) => state.app.docsVersion;
|
|
123
151
|
var getFeatures = (state) => state.app.features;
|
|
124
152
|
var getFullVersionInformation = (state) => state.app.versionInformation;
|
|
125
|
-
var getDocsVersion = (0, import_toolkit.createSelector)([getAppDocsVersion, getFeatures], (appDocsVersion, { isHosted }) => {
|
|
126
|
-
const docsVersion = appDocsVersion ? `${appDocsVersion}/` : "development/";
|
|
127
|
-
return isHosted ? "" : docsVersion;
|
|
128
|
-
});
|
|
129
153
|
var getSearchState = (state) => state.app.searchState;
|
|
154
|
+
var getUploads = (state) => state.app.uploadsById;
|
|
155
|
+
var getSnackbar = (state) => state.app.snackbar;
|
|
156
|
+
var getHostAddress = (state) => state.app.hostAddress;
|
|
157
|
+
var getHostedAnnouncement = (state) => state.app.hostedAnnouncement;
|
|
158
|
+
var getRecaptchaKey = (state) => state.app.recaptchaSiteKey;
|
|
159
|
+
var getStripeKey = (state) => state.app.stripeAPIKey;
|
|
160
|
+
var getTrackerCode = (state) => state.app.trackerCode;
|
|
161
|
+
var getIsFirstLogin = (state) => state.app.firstLoginAfterSignup;
|
|
162
|
+
var getFeedbackProbability = (state) => state.app.feedbackProbability;
|
|
163
|
+
var getIsUploading = (0, import_toolkit.createSelector)([getUploads], (uploadsById) => !!Object.keys(uploadsById).length);
|
|
130
164
|
var getSearchedDevices = (0, import_toolkit.createSelector)([getSearchState], ({ deviceIds }) => deviceIds);
|
|
131
165
|
var getVersionInformation = (0, import_toolkit.createSelector)(
|
|
132
166
|
[getFullVersionInformation, getFeatures],
|
|
133
|
-
({ Integration, ...remainder }, { isHosted }) => isHosted &&
|
|
167
|
+
({ Integration: Integration2, ...remainder }, { isHosted }) => isHosted && Integration2 !== "next" ? remainder : { ...remainder, Integration: Integration2 }
|
|
134
168
|
);
|
|
135
|
-
var getIsPreview = (0, import_toolkit.createSelector)([getFullVersionInformation], ({ Integration }) => (0, import_helpers.versionCompare)(
|
|
169
|
+
var getIsPreview = (0, import_toolkit.createSelector)([getFullVersionInformation], ({ Integration: Integration2 }) => (0, import_helpers.versionCompare)(Integration2, "next") > -1);
|
|
136
170
|
|
|
137
171
|
// src/commonSelectors.ts
|
|
138
172
|
var import_helpers4 = require("@northern.tech/utils/helpers");
|
|
@@ -144,11 +178,6 @@ var startingDeviceCount = {
|
|
|
144
178
|
os: "for first 50 devices",
|
|
145
179
|
professional: "for first 250 devices"
|
|
146
180
|
};
|
|
147
|
-
var apiRoot = "/api/management";
|
|
148
|
-
var apiUrl = {
|
|
149
|
-
v1: `${apiRoot}/v1`,
|
|
150
|
-
v2: `${apiRoot}/v2`
|
|
151
|
-
};
|
|
152
181
|
var chartTypes = {
|
|
153
182
|
bar: { key: "bar", Icon: import_icons_material.BarChart },
|
|
154
183
|
pie: { key: "pie", Icon: import_icons_material.PieChartOutline }
|
|
@@ -160,28 +189,30 @@ var PLANS = {
|
|
|
160
189
|
os: {
|
|
161
190
|
id: "os",
|
|
162
191
|
name: "Basic",
|
|
192
|
+
minimalDeviceCount: 50,
|
|
163
193
|
offer: true,
|
|
164
|
-
price: "$
|
|
194
|
+
price: "$34 / month",
|
|
165
195
|
deviceCount: startingDeviceCount.os,
|
|
166
|
-
|
|
167
|
-
price2: "for first 6 months;\n$29/month thereafter",
|
|
196
|
+
description: "The core features of Mender. To continue using Enterprise Trial features\u2014like Delta updates, scheduled deployments, phased rollouts, device filtering, dynamic groups, RBAC, audit logs, and more\u2014please upgrade to a higher plan.",
|
|
168
197
|
features: ["Access to core features of Mender", "Basic support"]
|
|
169
198
|
},
|
|
170
199
|
professional: {
|
|
171
200
|
id: "professional",
|
|
172
201
|
name: "Professional",
|
|
202
|
+
minimalDeviceCount: 250,
|
|
173
203
|
offer: true,
|
|
174
|
-
price: "$
|
|
204
|
+
price: "$291 / month",
|
|
175
205
|
deviceCount: startingDeviceCount.professional,
|
|
176
|
-
|
|
177
|
-
price2: "for first 6 months;\n$249/month thereafter",
|
|
206
|
+
description: "Everything in Basic, plus enhanced update management and automation features.",
|
|
178
207
|
features: ["Advanced OTA features", "Higher priority support"]
|
|
179
208
|
},
|
|
180
209
|
enterprise: {
|
|
181
210
|
id: "enterprise",
|
|
182
211
|
name: "Enterprise",
|
|
212
|
+
minimalDeviceCount: 1e3,
|
|
183
213
|
price: "Custom pricing",
|
|
184
214
|
deviceCount: "Unlimited devices",
|
|
215
|
+
description: "Every advanced feature of Mender, tailored for complex and large-scale deployments. Not available as a monthly subscription \u2014 ask us for a quote.",
|
|
185
216
|
features: ["All Mender features", "Advanced security features", "SLA-backed support"]
|
|
186
217
|
}
|
|
187
218
|
};
|
|
@@ -201,21 +232,6 @@ var ADDONS = {
|
|
|
201
232
|
},
|
|
202
233
|
eligible: ["os", "professional", "enterprise"]
|
|
203
234
|
},
|
|
204
|
-
troubleshoot: {
|
|
205
|
-
id: "troubleshoot",
|
|
206
|
-
title: "Troubleshoot",
|
|
207
|
-
description: "Expand your plan with device troubleshooting features",
|
|
208
|
-
needs: ["hasDeviceConnect"],
|
|
209
|
-
os: {
|
|
210
|
-
price: "$27/month",
|
|
211
|
-
deviceCount: startingDeviceCount.os
|
|
212
|
-
},
|
|
213
|
-
professional: {
|
|
214
|
-
price: "$72/month",
|
|
215
|
-
deviceCount: startingDeviceCount.professional
|
|
216
|
-
},
|
|
217
|
-
eligible: ["os", "professional", "enterprise"]
|
|
218
|
-
},
|
|
219
235
|
monitor: {
|
|
220
236
|
id: "monitor",
|
|
221
237
|
title: "Monitor",
|
|
@@ -230,6 +246,21 @@ var ADDONS = {
|
|
|
230
246
|
deviceCount: startingDeviceCount.professional
|
|
231
247
|
},
|
|
232
248
|
eligible: ["professional", "enterprise"]
|
|
249
|
+
},
|
|
250
|
+
troubleshoot: {
|
|
251
|
+
id: "troubleshoot",
|
|
252
|
+
title: "Troubleshoot",
|
|
253
|
+
description: "Expand your plan with device troubleshooting features",
|
|
254
|
+
needs: ["hasDeviceConnect"],
|
|
255
|
+
os: {
|
|
256
|
+
price: "$27/month",
|
|
257
|
+
deviceCount: startingDeviceCount.os
|
|
258
|
+
},
|
|
259
|
+
professional: {
|
|
260
|
+
price: "$72/month",
|
|
261
|
+
deviceCount: startingDeviceCount.professional
|
|
262
|
+
},
|
|
263
|
+
eligible: ["os", "professional", "enterprise"]
|
|
233
264
|
}
|
|
234
265
|
};
|
|
235
266
|
var BENEFITS = {
|
|
@@ -270,678 +301,13 @@ var DARK_MODE = "dark";
|
|
|
270
301
|
|
|
271
302
|
// src/commonConstants.tsx
|
|
272
303
|
var import_js = require("@mdi/js");
|
|
273
|
-
var
|
|
274
|
-
var DEVICE_LIST_DEFAULTS = {
|
|
275
|
-
page: 1,
|
|
276
|
-
perPage: 20
|
|
277
|
-
};
|
|
278
|
-
var timeUnits = {
|
|
279
|
-
days: "days",
|
|
280
|
-
minutes: "minutes",
|
|
281
|
-
hours: "hours"
|
|
282
|
-
};
|
|
283
|
-
var ALL_DEVICES = "All devices";
|
|
284
|
-
var UNGROUPED_GROUP = { id: "*|=ungrouped=|*", name: "Unassigned" };
|
|
285
|
-
var DEVICE_LIST_MAXIMUM_LENGTH = 50;
|
|
286
|
-
var DEVICE_FILTERING_OPTIONS = {
|
|
287
|
-
$eq: { key: "$eq", title: "equals", shortform: "=" },
|
|
288
|
-
$ne: { key: "$ne", title: "not equal", shortform: "!=" },
|
|
289
|
-
$gt: {
|
|
290
|
-
key: "$gt",
|
|
291
|
-
title: ">",
|
|
292
|
-
shortform: ">",
|
|
293
|
-
help: 'The "greater than" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'
|
|
294
|
-
},
|
|
295
|
-
$gte: {
|
|
296
|
-
title: ">=",
|
|
297
|
-
shortform: ">=",
|
|
298
|
-
help: 'The "greater than or equal" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'
|
|
299
|
-
},
|
|
300
|
-
$lt: {
|
|
301
|
-
key: "$lt",
|
|
302
|
-
title: "<",
|
|
303
|
-
shortform: "<",
|
|
304
|
-
help: 'The "lesser than" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'
|
|
305
|
-
},
|
|
306
|
-
$lte: {
|
|
307
|
-
title: "<=",
|
|
308
|
-
shortform: "<=",
|
|
309
|
-
help: 'The "lesser than or equal" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'
|
|
310
|
-
},
|
|
311
|
-
$ltne: {
|
|
312
|
-
key: "$ltne",
|
|
313
|
-
title: "$ltne",
|
|
314
|
-
shortform: "ltne",
|
|
315
|
-
help: 'The "lesser than or does not exist" operator can work both on numbers and strings. In the latter case, the operator applies the lexicographical order to the value strings.'
|
|
316
|
-
},
|
|
317
|
-
$in: {
|
|
318
|
-
key: "$in",
|
|
319
|
-
title: "in",
|
|
320
|
-
shortform: "in",
|
|
321
|
-
help: 'The "in" operator accepts a list of comma-separated values. It matches if the selected field is equal to one of the specified values.'
|
|
322
|
-
},
|
|
323
|
-
$nin: {
|
|
324
|
-
key: "$nin",
|
|
325
|
-
title: "not in",
|
|
326
|
-
shortform: "not in",
|
|
327
|
-
help: `The "not in" operator accepts a list of comma-separated values. It matches if the selected field's value is not equal to any of the specified options.`
|
|
328
|
-
},
|
|
329
|
-
$exists: {
|
|
330
|
-
key: "$exists",
|
|
331
|
-
title: "exists",
|
|
332
|
-
shortform: "exists",
|
|
333
|
-
value: true,
|
|
334
|
-
help: `The "exists" operator matches if the selected field's value has a value. No value needs to be provided for this operator.`
|
|
335
|
-
},
|
|
336
|
-
$nexists: {
|
|
337
|
-
key: "$nexists",
|
|
338
|
-
title: `doesn't exist`,
|
|
339
|
-
shortform: `doesn't exist`,
|
|
340
|
-
value: true,
|
|
341
|
-
help: `The "doesn't exist" operator matches if the selected field's value has no value. No value needs to be provided for this operator.`
|
|
342
|
-
},
|
|
343
|
-
$regex: {
|
|
344
|
-
key: "$regex",
|
|
345
|
-
title: `matches regular expression`,
|
|
346
|
-
shortform: `matches`,
|
|
347
|
-
help: `The "regular expression" operator matches the selected field's value with a Perl compatible regular expression (PCRE), automatically anchored by ^. If the regular expression is not valid, the filter will produce no results. If you need to specify options and flags, you can provide the full regex in the format of /regex/flags, for example.`
|
|
348
|
-
}
|
|
349
|
-
};
|
|
350
|
-
var DEVICE_ISSUE_OPTIONS = {
|
|
351
|
-
issues: {
|
|
352
|
-
isCategory: true,
|
|
353
|
-
key: "issues",
|
|
354
|
-
title: "Devices with issues",
|
|
355
|
-
filterRule: {}
|
|
356
|
-
},
|
|
357
|
-
offline: {
|
|
358
|
-
issueCategory: "issues",
|
|
359
|
-
key: "offline",
|
|
360
|
-
needsFullFiltering: true,
|
|
361
|
-
needsMonitor: false,
|
|
362
|
-
needsReporting: false,
|
|
363
|
-
filterRule: {
|
|
364
|
-
scope: "system",
|
|
365
|
-
key: "check_in_time",
|
|
366
|
-
operator: DEVICE_FILTERING_OPTIONS.$ltne.key,
|
|
367
|
-
value: ({ offlineThreshold }) => offlineThreshold
|
|
368
|
-
},
|
|
369
|
-
title: "Offline devices"
|
|
370
|
-
},
|
|
371
|
-
failedLastUpdate: {
|
|
372
|
-
issueCategory: "issues",
|
|
373
|
-
key: "failedLastUpdate",
|
|
374
|
-
needsFullFiltering: false,
|
|
375
|
-
needsMonitor: false,
|
|
376
|
-
needsReporting: true,
|
|
377
|
-
filterRule: { scope: "monitor", key: "failed_last_update", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: true },
|
|
378
|
-
title: "Deployment failed"
|
|
379
|
-
},
|
|
380
|
-
monitoring: {
|
|
381
|
-
issueCategory: "issues",
|
|
382
|
-
key: "monitoring",
|
|
383
|
-
needsFullFiltering: false,
|
|
384
|
-
needsMonitor: true,
|
|
385
|
-
needsReporting: false,
|
|
386
|
-
filterRule: { scope: "monitor", key: "alerts", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: true },
|
|
387
|
-
title: "Monitoring alert"
|
|
388
|
-
},
|
|
389
|
-
authRequests: {
|
|
390
|
-
key: "authRequests",
|
|
391
|
-
needsFullFiltering: false,
|
|
392
|
-
needsMonitor: false,
|
|
393
|
-
needsReporting: true,
|
|
394
|
-
filterRule: { scope: "monitor", key: "auth_requests", operator: DEVICE_FILTERING_OPTIONS.$gt.key, value: 1 },
|
|
395
|
-
title: "Devices with new authentication requests"
|
|
396
|
-
},
|
|
397
|
-
gatewayDevices: {
|
|
398
|
-
key: "gatewayDevices",
|
|
399
|
-
needsFullFiltering: false,
|
|
400
|
-
needsMonitor: false,
|
|
401
|
-
needsReporting: true,
|
|
402
|
-
filterRule: { scope: "inventory", key: "mender_is_gateway", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: "true" },
|
|
403
|
-
title: "Gateway devices"
|
|
404
|
-
}
|
|
405
|
-
};
|
|
406
|
-
var oneSecond = 1e3;
|
|
407
|
-
var TIMEOUTS = {
|
|
408
|
-
debounceDefault: 700,
|
|
409
|
-
debounceShort: 300,
|
|
410
|
-
halfASecond: 0.5 * oneSecond,
|
|
411
|
-
oneSecond,
|
|
412
|
-
twoSeconds: 2 * oneSecond,
|
|
413
|
-
threeSeconds: 3 * oneSecond,
|
|
414
|
-
fiveSeconds: 5 * oneSecond,
|
|
415
|
-
refreshDefault: 10 * oneSecond,
|
|
416
|
-
refreshLong: 60 * oneSecond
|
|
417
|
-
};
|
|
418
|
-
var SORTING_OPTIONS = {
|
|
419
|
-
asc: "asc",
|
|
420
|
-
desc: "desc"
|
|
421
|
-
};
|
|
422
|
-
var DEVICE_ONLINE_CUTOFF = { interval: 1, intervalName: timeUnits.days };
|
|
423
|
-
var ATTRIBUTE_SCOPES = {
|
|
424
|
-
inventory: "inventory",
|
|
425
|
-
identity: "identity",
|
|
426
|
-
monitor: "monitor",
|
|
427
|
-
system: "system",
|
|
428
|
-
tags: "tags"
|
|
429
|
-
};
|
|
430
|
-
var defaultIdAttribute = Object.freeze({ attribute: "id", scope: ATTRIBUTE_SCOPES.identity });
|
|
431
|
-
var credentialTypes = {
|
|
432
|
-
aws: "aws",
|
|
433
|
-
http: "http",
|
|
434
|
-
sas: "sas",
|
|
435
|
-
x509: "x509"
|
|
436
|
-
};
|
|
437
|
-
var EXTERNAL_PROVIDER = {
|
|
438
|
-
"iot-core": {
|
|
439
|
-
credentialsType: credentialTypes.aws,
|
|
440
|
-
icon: import_js.mdiAws,
|
|
441
|
-
title: "AWS IoT Core",
|
|
442
|
-
twinTitle: "Device Shadow",
|
|
443
|
-
provider: "iot-core",
|
|
444
|
-
enabled: true,
|
|
445
|
-
deviceTwin: true,
|
|
446
|
-
configHint: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: "For help finding your AWS IoT Core connection string, check the AWS IoT documentation." })
|
|
447
|
-
},
|
|
448
|
-
"iot-hub": {
|
|
449
|
-
credentialsType: credentialTypes.sas,
|
|
450
|
-
icon: import_js.mdiMicrosoftAzure,
|
|
451
|
-
title: "Azure IoT Hub",
|
|
452
|
-
twinTitle: "Device Twin",
|
|
453
|
-
provider: "iot-hub",
|
|
454
|
-
enabled: true,
|
|
455
|
-
deviceTwin: true,
|
|
456
|
-
configHint: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
|
|
457
|
-
"For help finding your Azure IoT Hub connection string, look under 'Shared access policies' in the Microsoft Azure UI as described",
|
|
458
|
-
" ",
|
|
459
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
460
|
-
"a",
|
|
461
|
-
{
|
|
462
|
-
href: "https://devblogs.microsoft.com/iotdev/understand-different-connection-strings-in-azure-iot-hub/#iothubconn",
|
|
463
|
-
target: "_blank",
|
|
464
|
-
rel: "noopener noreferrer",
|
|
465
|
-
children: "here"
|
|
466
|
-
}
|
|
467
|
-
),
|
|
468
|
-
"."
|
|
469
|
-
] })
|
|
470
|
-
},
|
|
471
|
-
webhook: {
|
|
472
|
-
credentialsType: credentialTypes.http,
|
|
473
|
-
deviceTwin: false,
|
|
474
|
-
// disable the webhook provider here, since it is treated different than other integrations, with a custom configuration & management view, etc.
|
|
475
|
-
enabled: false,
|
|
476
|
-
provider: "webhook"
|
|
477
|
-
}
|
|
478
|
-
};
|
|
479
|
-
var ALL_RELEASES = "All releases";
|
|
480
|
-
var emptyUiPermissions = Object.freeze({
|
|
481
|
-
auditlog: [],
|
|
482
|
-
deployments: [],
|
|
483
|
-
groups: Object.freeze({}),
|
|
484
|
-
releases: Object.freeze({}),
|
|
485
|
-
tenantManagement: [],
|
|
486
|
-
userManagement: []
|
|
487
|
-
});
|
|
488
|
-
var emptyRole = Object.freeze({
|
|
489
|
-
name: void 0,
|
|
490
|
-
description: "",
|
|
491
|
-
permissions: [],
|
|
492
|
-
uiPermissions: Object.freeze({ ...emptyUiPermissions })
|
|
493
|
-
});
|
|
304
|
+
var import_MenderTypes = require("@northern.tech/types/MenderTypes");
|
|
494
305
|
|
|
495
|
-
// src/
|
|
496
|
-
var
|
|
497
|
-
|
|
498
|
-
// src/devicesSlice/constants.ts
|
|
499
|
-
var emptyFilter = { key: null, value: "", operator: DEVICE_FILTERING_OPTIONS.$eq.key, scope: "inventory" };
|
|
500
|
-
var deviceAuthV2 = `${apiUrl.v2}/devauth`;
|
|
501
|
-
var deviceConnect = `${apiUrl.v1}/deviceconnect`;
|
|
502
|
-
var inventoryApiUrl = `${apiUrl.v1}/inventory`;
|
|
503
|
-
var inventoryApiUrlV2 = `${apiUrl.v2}/inventory`;
|
|
504
|
-
var deviceConfig = `${apiUrl.v1}/deviceconfig/configurations/device`;
|
|
505
|
-
var reportingApiUrl = `${apiUrl.v1}/reporting`;
|
|
506
|
-
var iotManagerBaseURL = `${apiUrl.v1}/iot-manager`;
|
|
507
|
-
var DEVICE_STATES = {
|
|
508
|
-
accepted: "accepted",
|
|
509
|
-
pending: "pending",
|
|
510
|
-
preauth: "preauthorized",
|
|
511
|
-
rejected: "rejected"
|
|
512
|
-
};
|
|
513
|
-
var geoAttributes = ["geo-lat", "geo-lon"].map((attribute) => ({ attribute, scope: "inventory" }));
|
|
514
|
-
|
|
515
|
-
// src/onboardingSlice/constants.ts
|
|
516
|
-
var onboardingSteps = {
|
|
517
|
-
ONBOARDING_START: "onboarding-start",
|
|
518
|
-
DEVICES_PENDING_ONBOARDING_START: "devices-pending-onboarding-start",
|
|
519
|
-
DASHBOARD_ONBOARDING_START: "dashboard-onboarding-start",
|
|
520
|
-
DASHBOARD_ONBOARDING_PENDINGS: "dashboard-onboarding-pendings",
|
|
521
|
-
DEVICES_DELAYED_ONBOARDING: "devices-delayed-onboarding",
|
|
522
|
-
DEVICES_PENDING_ONBOARDING: "devices-pending-onboarding",
|
|
523
|
-
DEVICES_ACCEPTED_ONBOARDING: "devices-accepted-onboarding",
|
|
524
|
-
DEVICES_PENDING_ACCEPTING_ONBOARDING: "devices-pending-accepting-onboarding",
|
|
525
|
-
DEVICES_DEPLOY_RELEASE_ONBOARDING: "devices-deploy-release-onboarding",
|
|
526
|
-
SCHEDULING_ARTIFACT_SELECTION: "scheduling-artifact-selection",
|
|
527
|
-
SCHEDULING_ALL_DEVICES_SELECTION: "scheduling-all-devices-selection",
|
|
528
|
-
SCHEDULING_GROUP_SELECTION: "scheduling-group-selection",
|
|
529
|
-
SCHEDULING_RELEASE_TO_DEVICES: "scheduling-release-to-devices",
|
|
530
|
-
DEPLOYMENTS_INPROGRESS: "deployments-inprogress",
|
|
531
|
-
DEPLOYMENTS_PAST: "deployments-past",
|
|
532
|
-
DEPLOYMENTS_PAST_COMPLETED: "deployments-past-completed",
|
|
533
|
-
DEPLOYMENTS_PAST_COMPLETED_FAILURE: "deployments-past-completed-failure",
|
|
534
|
-
ONBOARDING_CANCELED: "onboarding-canceled"
|
|
535
|
-
};
|
|
536
|
-
var orderedOnboardingSteps = [
|
|
537
|
-
onboardingSteps.DASHBOARD_ONBOARDING_START,
|
|
538
|
-
onboardingSteps.DEVICES_PENDING_ONBOARDING_START,
|
|
539
|
-
onboardingSteps.DEVICES_DELAYED_ONBOARDING,
|
|
540
|
-
onboardingSteps.DEVICES_PENDING_ONBOARDING,
|
|
541
|
-
onboardingSteps.DEVICES_PENDING_ACCEPTING_ONBOARDING,
|
|
542
|
-
onboardingSteps.DASHBOARD_ONBOARDING_PENDINGS,
|
|
543
|
-
onboardingSteps.DEVICES_ACCEPTED_ONBOARDING,
|
|
544
|
-
onboardingSteps.DEVICES_DEPLOY_RELEASE_ONBOARDING,
|
|
545
|
-
onboardingSteps.SCHEDULING_ALL_DEVICES_SELECTION,
|
|
546
|
-
onboardingSteps.SCHEDULING_GROUP_SELECTION,
|
|
547
|
-
onboardingSteps.SCHEDULING_ARTIFACT_SELECTION,
|
|
548
|
-
onboardingSteps.SCHEDULING_RELEASE_TO_DEVICES,
|
|
549
|
-
onboardingSteps.DEPLOYMENTS_INPROGRESS,
|
|
550
|
-
onboardingSteps.DEPLOYMENTS_PAST,
|
|
551
|
-
onboardingSteps.DEPLOYMENTS_PAST_COMPLETED,
|
|
552
|
-
onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE,
|
|
553
|
-
onboardingSteps.ONBOARDING_CANCELED
|
|
554
|
-
];
|
|
555
|
-
|
|
556
|
-
// src/usersSlice/constants.ts
|
|
557
|
-
var useradmApiUrlv1 = `${apiUrl.v1}/useradm`;
|
|
558
|
-
var useradmApiUrlv2 = `${apiUrl.v2}/useradm`;
|
|
559
|
-
var staticRolesByName = {
|
|
560
|
-
admin: "RBAC_ROLE_PERMIT_ALL",
|
|
561
|
-
readOnly: "RBAC_ROLE_OBSERVER",
|
|
562
|
-
ci: "RBAC_ROLE_CI",
|
|
563
|
-
deploymentsManager: "RBAC_ROLE_DEPLOYMENTS_MANAGER",
|
|
564
|
-
terminalAccess: "RBAC_ROLE_REMOTE_TERMINAL"
|
|
565
|
-
};
|
|
566
|
-
var PermissionTypes = {
|
|
567
|
-
Any: "any",
|
|
568
|
-
Get: "GET",
|
|
569
|
-
Post: "POST",
|
|
570
|
-
Put: "PUT",
|
|
571
|
-
Delete: "DELETE",
|
|
572
|
-
Patch: "PATCH",
|
|
573
|
-
DeviceGroup: "DEVICE_GROUP",
|
|
574
|
-
DeviceId: "DEVICE_ID"
|
|
575
|
-
};
|
|
576
|
-
var permissionSetIds = {
|
|
577
|
-
Basic: "Basic",
|
|
578
|
-
ConfigureDevices: "ConfigureDevices",
|
|
579
|
-
ConnectToDevices: "ConnectToDevices",
|
|
580
|
-
DeployToDevices: "DeployToDevices",
|
|
581
|
-
ManageDevices: "ManageDevices",
|
|
582
|
-
ManageReleases: "ManageReleases",
|
|
583
|
-
ManageTenants: "ManageTenants",
|
|
584
|
-
ManageUsers: "ManageUsers",
|
|
585
|
-
ReadAuditLogs: "ReadAuditLogs",
|
|
586
|
-
ReadDevices: "ReadDevices",
|
|
587
|
-
ReadReleases: "ReadReleases",
|
|
588
|
-
ReadTenants: "ReadTenants",
|
|
589
|
-
ReadUsers: "ReadUsers",
|
|
590
|
-
SuperUser: "SuperUser",
|
|
591
|
-
UploadArtifacts: "UploadArtifacts"
|
|
592
|
-
};
|
|
593
|
-
var uiPermissionsById = {
|
|
594
|
-
configure: {
|
|
595
|
-
explanations: { groups: `'Configure' allows the user to use mender-configure features and apply configurations.` },
|
|
596
|
-
permissionLevel: 2,
|
|
597
|
-
permissionSets: { groups: permissionSetIds.ConfigureDevices },
|
|
598
|
-
title: "Configure",
|
|
599
|
-
value: "configure",
|
|
600
|
-
verbs: [PermissionTypes.Get, PermissionTypes.Put, PermissionTypes.Post]
|
|
601
|
-
},
|
|
602
|
-
connect: {
|
|
603
|
-
explanations: { groups: `'Connect' allows the user to use mender-connect features and Troubleshoot add-ons.` },
|
|
604
|
-
permissionLevel: 2,
|
|
605
|
-
permissionSets: { groups: permissionSetIds.ConnectToDevices },
|
|
606
|
-
title: "Connect",
|
|
607
|
-
value: "connect",
|
|
608
|
-
verbs: [PermissionTypes.Get, PermissionTypes.Put]
|
|
609
|
-
},
|
|
610
|
-
deploy: {
|
|
611
|
-
explanations: { groups: `'Deploy' allows the user to deploy software or configuration updates to devices.` },
|
|
612
|
-
permissionLevel: 2,
|
|
613
|
-
permissionSets: { deployments: permissionSetIds.DeployToDevices, groups: permissionSetIds.DeployToDevices },
|
|
614
|
-
title: "Deploy",
|
|
615
|
-
value: "deploy",
|
|
616
|
-
verbs: [PermissionTypes.Post]
|
|
617
|
-
},
|
|
618
|
-
manage: {
|
|
619
|
-
explanations: {
|
|
620
|
-
groups: `'Manage' allows the user to edit device name, notes, and manage authentication status. For 'All devices' it also allows the user to edit and create device groups.`,
|
|
621
|
-
releases: `'Manage' allows the user to upload new artifacts, edit release descriptions and remove artifacts.`
|
|
622
|
-
},
|
|
623
|
-
permissionLevel: 2,
|
|
624
|
-
permissionSets: {
|
|
625
|
-
groups: permissionSetIds.ManageDevices,
|
|
626
|
-
releases: permissionSetIds.ManageReleases,
|
|
627
|
-
tenantManagement: permissionSetIds.ManageTenants,
|
|
628
|
-
userManagement: permissionSetIds.ManageUsers
|
|
629
|
-
},
|
|
630
|
-
title: "Manage",
|
|
631
|
-
value: "manage",
|
|
632
|
-
verbs: [PermissionTypes.Post, PermissionTypes.Put, PermissionTypes.Patch]
|
|
633
|
-
},
|
|
634
|
-
read: {
|
|
635
|
-
explanations: { groups: `'Read' allows the user to view devices.` },
|
|
636
|
-
permissionLevel: 1,
|
|
637
|
-
permissionSets: {
|
|
638
|
-
auditlog: permissionSetIds.ReadAuditLogs,
|
|
639
|
-
groups: permissionSetIds.ReadDevices,
|
|
640
|
-
releases: permissionSetIds.ReadReleases,
|
|
641
|
-
tenantManagement: permissionSetIds.ReadTenants,
|
|
642
|
-
userManagement: permissionSetIds.ReadUsers
|
|
643
|
-
},
|
|
644
|
-
title: "Read",
|
|
645
|
-
value: "read",
|
|
646
|
-
verbs: [PermissionTypes.Get, PermissionTypes.Post]
|
|
647
|
-
},
|
|
648
|
-
upload: {
|
|
649
|
-
explanations: { groups: `'Upload' allows the user to upload new Artifacts.` },
|
|
650
|
-
unscopedOnly: { releases: true },
|
|
651
|
-
permissionLevel: 1,
|
|
652
|
-
permissionSets: { releases: permissionSetIds.UploadArtifacts },
|
|
653
|
-
title: "Upload",
|
|
654
|
-
value: "upload",
|
|
655
|
-
verbs: [PermissionTypes.Post, PermissionTypes.Put, PermissionTypes.Patch]
|
|
656
|
-
}
|
|
657
|
-
};
|
|
658
|
-
var scopedPermissionAreas = {
|
|
659
|
-
groups: { key: "groups", excessiveAccessSelector: ALL_DEVICES, scopeType: "DeviceGroups" },
|
|
660
|
-
releases: { key: "releases", excessiveAccessSelector: ALL_RELEASES, scopeType: "Releases" }
|
|
661
|
-
};
|
|
662
|
-
var uiPermissionsByArea = {
|
|
663
|
-
auditlog: {
|
|
664
|
-
endpoints: [{ path: /\/(auditlog)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] }],
|
|
665
|
-
explanation: "Granting access to the audit log will allow tracing changes to devices, releases and user accounts, as well as providing information about deployments.",
|
|
666
|
-
key: "auditlog",
|
|
667
|
-
uiPermissions: [uiPermissionsById.read],
|
|
668
|
-
title: "System Audit Log"
|
|
669
|
-
},
|
|
670
|
-
deployments: {
|
|
671
|
-
endpoints: [
|
|
672
|
-
{ path: /\/(deployments\/deployments)/i, types: [PermissionTypes.Post, PermissionTypes.Put], uiPermissions: [uiPermissionsById.deploy] },
|
|
673
|
-
{ path: /\/(deployments\/deployments)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
|
|
674
|
-
{ path: /\/(deployments\/config)/i, types: [PermissionTypes.Get, PermissionTypes.Put], uiPermissions: [uiPermissionsById.manage] }
|
|
675
|
-
],
|
|
676
|
-
explanation: "Providing deploy permissions will allow deployments to be created using the releases and devices a user has access to.",
|
|
677
|
-
key: "deployments",
|
|
678
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.deploy],
|
|
679
|
-
title: "Deployments"
|
|
680
|
-
},
|
|
681
|
-
groups: {
|
|
682
|
-
endpoints: [
|
|
683
|
-
{
|
|
684
|
-
path: /\/(devauth|inventory|deviceconfig|devicemonitor|deviceconnect\/devices)/i,
|
|
685
|
-
types: [PermissionTypes.Get],
|
|
686
|
-
uiPermissions: [uiPermissionsById.read]
|
|
687
|
-
},
|
|
688
|
-
{ path: /\/(devauth|inventory)/i, types: [PermissionTypes.Put, PermissionTypes.Post], uiPermissions: [uiPermissionsById.manage] },
|
|
689
|
-
{ path: /\/(deviceconfig)/i, types: [PermissionTypes.Get, PermissionTypes.Put, PermissionTypes.Post], uiPermissions: [uiPermissionsById.configure] },
|
|
690
|
-
{ path: /\/(deviceconnect\/devices)/i, types: [PermissionTypes.Get, PermissionTypes.Post], uiPermissions: [uiPermissionsById.connect] }
|
|
691
|
-
],
|
|
692
|
-
explanation: "Device group management permissions control the degree to which devices in a group can be accessed and moved to other groups.",
|
|
693
|
-
key: "groups",
|
|
694
|
-
scope: scopedPermissionAreas.groups.scopeType,
|
|
695
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage, uiPermissionsById.deploy, uiPermissionsById.configure, uiPermissionsById.connect],
|
|
696
|
-
title: "Group Management"
|
|
697
|
-
},
|
|
698
|
-
releases: {
|
|
699
|
-
endpoints: [
|
|
700
|
-
{ path: /\/(deployments\/artifacts|deployments\/deployments\/releases)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
|
|
701
|
-
{
|
|
702
|
-
path: /\/(deployments\/artifacts|deployments\/deployments\/releases)/i,
|
|
703
|
-
types: [PermissionTypes.Post, PermissionTypes.Put],
|
|
704
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.upload]
|
|
705
|
-
},
|
|
706
|
-
{
|
|
707
|
-
path: /\/(deployments\/artifacts|deployments\/deployments\/releases)/i,
|
|
708
|
-
types: [PermissionTypes.Delete],
|
|
709
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage]
|
|
710
|
-
}
|
|
711
|
-
],
|
|
712
|
-
explanation: "Release permissions can be granted to allow artifact & release modifications, as well as the creation of new releases.",
|
|
713
|
-
key: "releases",
|
|
714
|
-
scope: "ReleaseTags",
|
|
715
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage, uiPermissionsById.upload],
|
|
716
|
-
title: "Release Management"
|
|
717
|
-
},
|
|
718
|
-
tenantManagement: {
|
|
719
|
-
endpoints: [
|
|
720
|
-
{ path: /\/(tenantadm\/tenants)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
|
|
721
|
-
{ path: /\/(tenantadm\/tenants)/i, types: [PermissionTypes.Post, PermissionTypes.Put], uiPermissions: [uiPermissionsById.manage] },
|
|
722
|
-
{ path: /\/(users\/exists)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.manage] }
|
|
723
|
-
],
|
|
724
|
-
explanation: "Tenant management permissions allow listing, creating and modifying child tenants",
|
|
725
|
-
key: "tenantManagement",
|
|
726
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage],
|
|
727
|
-
title: "Tenant Management"
|
|
728
|
-
},
|
|
729
|
-
userManagement: {
|
|
730
|
-
endpoints: [
|
|
731
|
-
{ path: /\/(useradm)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
|
|
732
|
-
{ path: /\/(useradm)/i, types: [PermissionTypes.Post], uiPermissions: [uiPermissionsById.manage] }
|
|
733
|
-
],
|
|
734
|
-
explanation: "User management permissions should be granted carefully, as these allow privilege increases for any users managed by a user with user management permissions",
|
|
735
|
-
key: "userManagement",
|
|
736
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage],
|
|
737
|
-
title: "User Management"
|
|
738
|
-
}
|
|
739
|
-
};
|
|
740
|
-
var permissionMapper = (permission) => permission.value;
|
|
741
|
-
var rolesById = Object.freeze({
|
|
742
|
-
[staticRolesByName.admin]: {
|
|
743
|
-
name: "Admin",
|
|
744
|
-
value: staticRolesByName.admin,
|
|
745
|
-
description: "Full access",
|
|
746
|
-
permissions: [],
|
|
747
|
-
// permissions refers to the values returned from the backend
|
|
748
|
-
uiPermissions: {
|
|
749
|
-
...emptyUiPermissions,
|
|
750
|
-
auditlog: uiPermissionsByArea.auditlog.uiPermissions.map(permissionMapper),
|
|
751
|
-
deployments: uiPermissionsByArea.deployments.uiPermissions.map(permissionMapper),
|
|
752
|
-
groups: { [ALL_DEVICES]: uiPermissionsByArea.groups.uiPermissions.map(permissionMapper) },
|
|
753
|
-
releases: { [ALL_RELEASES]: uiPermissionsByArea.releases.uiPermissions.map(permissionMapper) },
|
|
754
|
-
userManagement: uiPermissionsByArea.userManagement.uiPermissions.map(permissionMapper)
|
|
755
|
-
}
|
|
756
|
-
},
|
|
757
|
-
[staticRolesByName.readOnly]: {
|
|
758
|
-
name: "Read Access",
|
|
759
|
-
value: staticRolesByName.readOnly,
|
|
760
|
-
description: "",
|
|
761
|
-
permissions: [],
|
|
762
|
-
uiPermissions: {
|
|
763
|
-
...emptyUiPermissions,
|
|
764
|
-
deployments: [uiPermissionsById.read.value],
|
|
765
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value] },
|
|
766
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.read.value] },
|
|
767
|
-
userManagement: [uiPermissionsById.read.value]
|
|
768
|
-
}
|
|
769
|
-
},
|
|
770
|
-
[staticRolesByName.ci]: {
|
|
771
|
-
name: "Releases Manager",
|
|
772
|
-
value: staticRolesByName.ci,
|
|
773
|
-
description: "",
|
|
774
|
-
permissions: [],
|
|
775
|
-
uiPermissions: {
|
|
776
|
-
...emptyUiPermissions,
|
|
777
|
-
releases: { [ALL_RELEASES]: uiPermissionsByArea.releases.uiPermissions.map(permissionMapper) }
|
|
778
|
-
}
|
|
779
|
-
},
|
|
780
|
-
[staticRolesByName.deploymentsManager]: {
|
|
781
|
-
name: "Deployments Manager",
|
|
782
|
-
value: staticRolesByName.deploymentsManager,
|
|
783
|
-
description: "",
|
|
784
|
-
permissions: [],
|
|
785
|
-
uiPermissions: {
|
|
786
|
-
...emptyUiPermissions,
|
|
787
|
-
deployments: uiPermissionsByArea.deployments.uiPermissions.map(permissionMapper),
|
|
788
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.deploy.value, uiPermissionsById.read.value] },
|
|
789
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.read.value] }
|
|
790
|
-
}
|
|
791
|
-
},
|
|
792
|
-
[staticRolesByName.terminalAccess]: {
|
|
793
|
-
name: "Troubleshooting",
|
|
794
|
-
value: staticRolesByName.terminalAccess,
|
|
795
|
-
description: "Access to the troubleshooting features: Remote Terminal, File Transfer, Port Forwarding",
|
|
796
|
-
permissions: [],
|
|
797
|
-
uiPermissions: {
|
|
798
|
-
...emptyUiPermissions,
|
|
799
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.connect.value] }
|
|
800
|
-
}
|
|
801
|
-
}
|
|
802
|
-
});
|
|
803
|
-
var serviceProviderRolesById = {
|
|
804
|
-
admin: {
|
|
805
|
-
name: "Admin",
|
|
806
|
-
value: staticRolesByName.admin,
|
|
807
|
-
description: "Full access",
|
|
808
|
-
permissions: [],
|
|
809
|
-
uiPermissions: {
|
|
810
|
-
...emptyUiPermissions,
|
|
811
|
-
auditlog: uiPermissionsByArea.auditlog.uiPermissions.map(permissionMapper),
|
|
812
|
-
userManagement: uiPermissionsByArea.userManagement.uiPermissions.map(permissionMapper),
|
|
813
|
-
tenantManagement: uiPermissionsByArea.tenantManagement.uiPermissions.map(permissionMapper)
|
|
814
|
-
}
|
|
815
|
-
},
|
|
816
|
-
readOnly: {
|
|
817
|
-
name: "Read access",
|
|
818
|
-
value: staticRolesByName.readOnly,
|
|
819
|
-
description: "This role can see all linked organizations but cannot make any changes",
|
|
820
|
-
permissions: [],
|
|
821
|
-
uiPermissions: {
|
|
822
|
-
...emptyUiPermissions,
|
|
823
|
-
auditlog: [uiPermissionsById.read.value],
|
|
824
|
-
userManagement: [uiPermissionsById.read.value],
|
|
825
|
-
tenantManagement: [uiPermissionsById.read.value]
|
|
826
|
-
}
|
|
827
|
-
}
|
|
828
|
-
};
|
|
829
|
-
var defaultPermissionSets = {
|
|
830
|
-
[permissionSetIds.Basic]: {
|
|
831
|
-
name: permissionSetIds.Basic,
|
|
832
|
-
result: {
|
|
833
|
-
// this is needed to prevent the detailed permissions of the basic permission set from being interpreted as allowing read & management access to user endpoints
|
|
834
|
-
userManagement: [uiPermissionsById.read.value]
|
|
835
|
-
}
|
|
836
|
-
},
|
|
837
|
-
[permissionSetIds.SuperUser]: {
|
|
838
|
-
name: permissionSetIds.SuperUser,
|
|
839
|
-
result: {
|
|
840
|
-
...rolesById[staticRolesByName.admin].uiPermissions
|
|
841
|
-
}
|
|
842
|
-
},
|
|
843
|
-
[permissionSetIds.ManageUsers]: {
|
|
844
|
-
name: permissionSetIds.ManageUsers,
|
|
845
|
-
result: {
|
|
846
|
-
userManagement: [uiPermissionsById.manage.value]
|
|
847
|
-
}
|
|
848
|
-
},
|
|
849
|
-
[permissionSetIds.ReadAuditLogs]: {
|
|
850
|
-
name: permissionSetIds.ReadAuditLogs,
|
|
851
|
-
result: {
|
|
852
|
-
auditlog: [uiPermissionsById.read.value]
|
|
853
|
-
}
|
|
854
|
-
},
|
|
855
|
-
[permissionSetIds.ReadReleases]: {
|
|
856
|
-
name: permissionSetIds.ReadReleases,
|
|
857
|
-
result: {
|
|
858
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.read.value] }
|
|
859
|
-
}
|
|
860
|
-
},
|
|
861
|
-
[permissionSetIds.ReadTenants]: {
|
|
862
|
-
name: permissionSetIds.ReadTenants,
|
|
863
|
-
result: {
|
|
864
|
-
tenantManagement: [uiPermissionsById.read.value]
|
|
865
|
-
}
|
|
866
|
-
},
|
|
867
|
-
[permissionSetIds.ManageTenants]: {
|
|
868
|
-
name: permissionSetIds.ManageTenants,
|
|
869
|
-
result: {
|
|
870
|
-
tenantManagement: [uiPermissionsById.manage.value]
|
|
871
|
-
}
|
|
872
|
-
},
|
|
873
|
-
[permissionSetIds.ReadUsers]: {
|
|
874
|
-
name: permissionSetIds.ReadUsers,
|
|
875
|
-
result: {
|
|
876
|
-
userManagement: [uiPermissionsById.read.value]
|
|
877
|
-
}
|
|
878
|
-
},
|
|
879
|
-
[permissionSetIds.UploadArtifacts]: {
|
|
880
|
-
name: permissionSetIds.UploadArtifacts,
|
|
881
|
-
result: {
|
|
882
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.upload.value] }
|
|
883
|
-
}
|
|
884
|
-
},
|
|
885
|
-
[permissionSetIds.ManageReleases]: {
|
|
886
|
-
name: permissionSetIds.ManageReleases,
|
|
887
|
-
result: {
|
|
888
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.manage.value] }
|
|
889
|
-
}
|
|
890
|
-
},
|
|
891
|
-
[permissionSetIds.ConfigureDevices]: {
|
|
892
|
-
name: permissionSetIds.ConfigureDevices,
|
|
893
|
-
result: {
|
|
894
|
-
deployments: [uiPermissionsById.read.value, uiPermissionsById.deploy.value],
|
|
895
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value, uiPermissionsById.configure.value] }
|
|
896
|
-
}
|
|
897
|
-
},
|
|
898
|
-
[permissionSetIds.ConnectToDevices]: {
|
|
899
|
-
name: permissionSetIds.ConnectToDevices,
|
|
900
|
-
result: {
|
|
901
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value, uiPermissionsById.connect.value] }
|
|
902
|
-
}
|
|
903
|
-
},
|
|
904
|
-
[permissionSetIds.DeployToDevices]: {
|
|
905
|
-
name: permissionSetIds.DeployToDevices,
|
|
906
|
-
result: {
|
|
907
|
-
deployments: [uiPermissionsById.deploy.value, uiPermissionsById.manage.value, uiPermissionsById.read.value],
|
|
908
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value, uiPermissionsById.deploy.value] }
|
|
909
|
-
}
|
|
910
|
-
},
|
|
911
|
-
[permissionSetIds.ManageDevices]: {
|
|
912
|
-
name: permissionSetIds.ManageDevices,
|
|
913
|
-
result: {
|
|
914
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value, uiPermissionsById.manage.value] }
|
|
915
|
-
}
|
|
916
|
-
},
|
|
917
|
-
[permissionSetIds.ReadDevices]: {
|
|
918
|
-
name: permissionSetIds.ReadDevices,
|
|
919
|
-
result: {
|
|
920
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value] }
|
|
921
|
-
}
|
|
922
|
-
}
|
|
923
|
-
};
|
|
924
|
-
var rolesByName = {
|
|
925
|
-
...staticRolesByName,
|
|
926
|
-
deploymentCreation: { action: "CREATE_DEPLOYMENT", object: { type: "DEVICE_GROUP", value: void 0 } },
|
|
927
|
-
groupAccess: { action: "VIEW_DEVICE", object: { type: "DEVICE_GROUP", value: void 0 } },
|
|
928
|
-
userManagement: { action: "http", object: { type: "any", value: `${useradmApiUrlv1}/.*` } }
|
|
929
|
-
};
|
|
930
|
-
var twoFAStates = {
|
|
931
|
-
enabled: "enabled",
|
|
932
|
-
disabled: "disabled",
|
|
933
|
-
unverified: "unverified"
|
|
934
|
-
};
|
|
935
|
-
var READ_STATES = {
|
|
936
|
-
read: "read",
|
|
937
|
-
seen: "seen",
|
|
938
|
-
unread: "unread"
|
|
939
|
-
};
|
|
306
|
+
// src/constants.ts
|
|
307
|
+
var import_constants2 = require("@northern.tech/utils/constants");
|
|
940
308
|
|
|
941
309
|
// src/deploymentsSlice/constants.ts
|
|
942
310
|
var alreadyInstalled = "already-installed";
|
|
943
|
-
var deploymentsApiUrl = `${apiUrl.v1}/deployments`;
|
|
944
|
-
var deploymentsApiUrlV2 = `${apiUrl.v2}/deployments`;
|
|
945
311
|
var deploymentSubstates = {
|
|
946
312
|
aborted: "aborted",
|
|
947
313
|
alreadyInstalled,
|
|
@@ -1014,9 +380,9 @@ var DEPLOYMENT_STATES = {
|
|
|
1014
380
|
var listDefaultsByState = {
|
|
1015
381
|
[DEPLOYMENT_STATES.inprogress]: { page: 1, perPage: 10 },
|
|
1016
382
|
[DEPLOYMENT_STATES.pending]: { page: 1, perPage: 10 },
|
|
1017
|
-
[DEPLOYMENT_STATES.scheduled]: { ...DEVICE_LIST_DEFAULTS },
|
|
1018
|
-
[DEPLOYMENT_STATES.finished]: { ...DEVICE_LIST_DEFAULTS },
|
|
1019
|
-
sort: { direction: SORTING_OPTIONS.desc }
|
|
383
|
+
[DEPLOYMENT_STATES.scheduled]: { ...import_constants2.DEVICE_LIST_DEFAULTS },
|
|
384
|
+
[DEPLOYMENT_STATES.finished]: { ...import_constants2.DEVICE_LIST_DEFAULTS },
|
|
385
|
+
sort: { direction: import_constants2.SORTING_OPTIONS.desc }
|
|
1020
386
|
};
|
|
1021
387
|
var DEPLOYMENT_ROUTES = {
|
|
1022
388
|
active: {
|
|
@@ -1068,7 +434,392 @@ var pauseMap = {
|
|
|
1068
434
|
}
|
|
1069
435
|
};
|
|
1070
436
|
|
|
437
|
+
// src/onboardingSlice/constants.ts
|
|
438
|
+
var onboardingSteps = {
|
|
439
|
+
ONBOARDING_START: "onboarding-start",
|
|
440
|
+
DEVICES_PENDING_ONBOARDING_START: "devices-pending-onboarding-start",
|
|
441
|
+
DASHBOARD_ONBOARDING_START: "dashboard-onboarding-start",
|
|
442
|
+
DASHBOARD_ONBOARDING_PENDINGS: "dashboard-onboarding-pendings",
|
|
443
|
+
DEVICES_DELAYED_ONBOARDING: "devices-delayed-onboarding",
|
|
444
|
+
DEVICES_PENDING_ONBOARDING: "devices-pending-onboarding",
|
|
445
|
+
DEVICES_ACCEPTED_ONBOARDING: "devices-accepted-onboarding",
|
|
446
|
+
DEVICES_PENDING_ACCEPTING_ONBOARDING: "devices-pending-accepting-onboarding",
|
|
447
|
+
DEVICES_DEPLOY_RELEASE_ONBOARDING: "devices-deploy-release-onboarding",
|
|
448
|
+
SCHEDULING_ARTIFACT_SELECTION: "scheduling-artifact-selection",
|
|
449
|
+
SCHEDULING_ALL_DEVICES_SELECTION: "scheduling-all-devices-selection",
|
|
450
|
+
SCHEDULING_GROUP_SELECTION: "scheduling-group-selection",
|
|
451
|
+
SCHEDULING_RELEASE_TO_DEVICES: "scheduling-release-to-devices",
|
|
452
|
+
DEPLOYMENTS_INPROGRESS: "deployments-inprogress",
|
|
453
|
+
DEPLOYMENTS_COMPLETED: "deployments-completed",
|
|
454
|
+
DEPLOYMENTS_PAST: "deployments-past",
|
|
455
|
+
DEPLOYMENTS_PAST_COMPLETED: "deployments-past-completed",
|
|
456
|
+
DEPLOYMENTS_PAST_COMPLETED_FAILURE: "deployments-past-completed-failure",
|
|
457
|
+
ONBOARDING_CANCELED: "onboarding-canceled"
|
|
458
|
+
};
|
|
459
|
+
var orderedOnboardingSteps = [
|
|
460
|
+
onboardingSteps.DASHBOARD_ONBOARDING_START,
|
|
461
|
+
onboardingSteps.DEVICES_PENDING_ONBOARDING_START,
|
|
462
|
+
onboardingSteps.DEVICES_DELAYED_ONBOARDING,
|
|
463
|
+
onboardingSteps.DEVICES_PENDING_ONBOARDING,
|
|
464
|
+
onboardingSteps.DEVICES_PENDING_ACCEPTING_ONBOARDING,
|
|
465
|
+
onboardingSteps.DASHBOARD_ONBOARDING_PENDINGS,
|
|
466
|
+
onboardingSteps.DEVICES_ACCEPTED_ONBOARDING,
|
|
467
|
+
onboardingSteps.DEVICES_DEPLOY_RELEASE_ONBOARDING,
|
|
468
|
+
onboardingSteps.SCHEDULING_ALL_DEVICES_SELECTION,
|
|
469
|
+
onboardingSteps.SCHEDULING_GROUP_SELECTION,
|
|
470
|
+
onboardingSteps.SCHEDULING_ARTIFACT_SELECTION,
|
|
471
|
+
onboardingSteps.SCHEDULING_RELEASE_TO_DEVICES,
|
|
472
|
+
onboardingSteps.DEPLOYMENTS_INPROGRESS,
|
|
473
|
+
onboardingSteps.DEPLOYMENTS_PAST,
|
|
474
|
+
onboardingSteps.DEPLOYMENTS_PAST_COMPLETED,
|
|
475
|
+
onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE,
|
|
476
|
+
onboardingSteps.ONBOARDING_CANCELED
|
|
477
|
+
];
|
|
478
|
+
|
|
479
|
+
// src/usersSlice/constants.ts
|
|
480
|
+
var READ_STATES = {
|
|
481
|
+
read: "read",
|
|
482
|
+
seen: "seen",
|
|
483
|
+
unread: "unread"
|
|
484
|
+
};
|
|
485
|
+
|
|
486
|
+
// src/commonConstants.tsx
|
|
487
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
488
|
+
var timeUnits = {
|
|
489
|
+
days: "days",
|
|
490
|
+
minutes: "minutes",
|
|
491
|
+
hours: "hours"
|
|
492
|
+
};
|
|
493
|
+
var UNGROUPED_GROUP = { id: "*|=ungrouped=|*", name: "Unassigned" };
|
|
494
|
+
var DEVICE_LIST_MAXIMUM_LENGTH = 50;
|
|
495
|
+
var oneSecond = 1e3;
|
|
496
|
+
var TIMEOUTS = {
|
|
497
|
+
debounceDefault: 700,
|
|
498
|
+
debounceShort: 300,
|
|
499
|
+
halfASecond: 0.5 * oneSecond,
|
|
500
|
+
oneSecond,
|
|
501
|
+
twoSeconds: 2 * oneSecond,
|
|
502
|
+
threeSeconds: 3 * oneSecond,
|
|
503
|
+
fiveSeconds: 5 * oneSecond,
|
|
504
|
+
refreshDefault: 10 * oneSecond,
|
|
505
|
+
refreshLong: 60 * oneSecond
|
|
506
|
+
};
|
|
507
|
+
var DEVICE_ONLINE_CUTOFF = { interval: 1, intervalName: timeUnits.days };
|
|
508
|
+
var defaultIdAttribute = Object.freeze({ attribute: "id", scope: import_constants2.ATTRIBUTE_SCOPES.identity });
|
|
509
|
+
var credentialTypes = {
|
|
510
|
+
aws: import_MenderTypes.Credentials.type.AWS,
|
|
511
|
+
http: import_MenderTypes.Credentials.type.HTTP,
|
|
512
|
+
sas: import_MenderTypes.Credentials.type.SAS,
|
|
513
|
+
x509: "x509"
|
|
514
|
+
};
|
|
515
|
+
var EXTERNAL_PROVIDER = {
|
|
516
|
+
"iot-core": {
|
|
517
|
+
credentialsType: credentialTypes.aws,
|
|
518
|
+
icon: import_js.mdiAws,
|
|
519
|
+
title: "AWS IoT Core",
|
|
520
|
+
twinTitle: "Device Shadow",
|
|
521
|
+
provider: "iot-core",
|
|
522
|
+
enabled: true,
|
|
523
|
+
deviceTwin: true,
|
|
524
|
+
configHint: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: "For help finding your AWS IoT Core connection string, check the AWS IoT documentation." })
|
|
525
|
+
},
|
|
526
|
+
"iot-hub": {
|
|
527
|
+
credentialsType: credentialTypes.sas,
|
|
528
|
+
icon: import_js.mdiMicrosoftAzure,
|
|
529
|
+
title: "Azure IoT Hub",
|
|
530
|
+
twinTitle: "Device Twin",
|
|
531
|
+
provider: "iot-hub",
|
|
532
|
+
enabled: true,
|
|
533
|
+
deviceTwin: true,
|
|
534
|
+
configHint: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
|
|
535
|
+
"For help finding your Azure IoT Hub connection string, look under 'Shared access policies' in the Microsoft Azure UI as described",
|
|
536
|
+
" ",
|
|
537
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
538
|
+
"a",
|
|
539
|
+
{
|
|
540
|
+
href: "https://devblogs.microsoft.com/iotdev/understand-different-connection-strings-in-azure-iot-hub/#iothubconn",
|
|
541
|
+
target: "_blank",
|
|
542
|
+
rel: "noopener noreferrer",
|
|
543
|
+
children: "here"
|
|
544
|
+
}
|
|
545
|
+
),
|
|
546
|
+
"."
|
|
547
|
+
] })
|
|
548
|
+
},
|
|
549
|
+
webhook: {
|
|
550
|
+
credentialsType: credentialTypes.http,
|
|
551
|
+
deviceTwin: false,
|
|
552
|
+
twinTitle: "",
|
|
553
|
+
// disable the webhook provider here, since it is treated different than other integrations, with a custom configuration & management view, etc.
|
|
554
|
+
enabled: false,
|
|
555
|
+
provider: "webhook"
|
|
556
|
+
}
|
|
557
|
+
};
|
|
558
|
+
var emptyWebhook = {
|
|
559
|
+
description: "",
|
|
560
|
+
provider: import_MenderTypes.Integration.provider.WEBHOOK,
|
|
561
|
+
credentials: {
|
|
562
|
+
type: EXTERNAL_PROVIDER.webhook.credentialsType,
|
|
563
|
+
[EXTERNAL_PROVIDER.webhook.credentialsType]: {
|
|
564
|
+
secret: "",
|
|
565
|
+
url: ""
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
};
|
|
569
|
+
var regionNames = new Intl.DisplayNames(["en"], { type: "region" });
|
|
570
|
+
var countries = [
|
|
571
|
+
"AD",
|
|
572
|
+
"AE",
|
|
573
|
+
"AF",
|
|
574
|
+
"AG",
|
|
575
|
+
"AI",
|
|
576
|
+
"AL",
|
|
577
|
+
"AM",
|
|
578
|
+
"AO",
|
|
579
|
+
"AQ",
|
|
580
|
+
"AR",
|
|
581
|
+
"AS",
|
|
582
|
+
"AT",
|
|
583
|
+
"AU",
|
|
584
|
+
"AW",
|
|
585
|
+
"AX",
|
|
586
|
+
"AZ",
|
|
587
|
+
"BA",
|
|
588
|
+
"BB",
|
|
589
|
+
"BD",
|
|
590
|
+
"BE",
|
|
591
|
+
"BF",
|
|
592
|
+
"BG",
|
|
593
|
+
"BH",
|
|
594
|
+
"BI",
|
|
595
|
+
"BJ",
|
|
596
|
+
"BL",
|
|
597
|
+
"BM",
|
|
598
|
+
"BN",
|
|
599
|
+
"BO",
|
|
600
|
+
"BR",
|
|
601
|
+
"BS",
|
|
602
|
+
"BT",
|
|
603
|
+
"BV",
|
|
604
|
+
"BW",
|
|
605
|
+
"BY",
|
|
606
|
+
"BZ",
|
|
607
|
+
"CA",
|
|
608
|
+
"CC",
|
|
609
|
+
"CD",
|
|
610
|
+
"CF",
|
|
611
|
+
"CG",
|
|
612
|
+
"CH",
|
|
613
|
+
"CI",
|
|
614
|
+
"CK",
|
|
615
|
+
"CL",
|
|
616
|
+
"CM",
|
|
617
|
+
"CN",
|
|
618
|
+
"CO",
|
|
619
|
+
"CR",
|
|
620
|
+
"CU",
|
|
621
|
+
"CV",
|
|
622
|
+
"CW",
|
|
623
|
+
"CX",
|
|
624
|
+
"CY",
|
|
625
|
+
"CZ",
|
|
626
|
+
"DE",
|
|
627
|
+
"DJ",
|
|
628
|
+
"DK",
|
|
629
|
+
"DM",
|
|
630
|
+
"DO",
|
|
631
|
+
"DZ",
|
|
632
|
+
"EC",
|
|
633
|
+
"EE",
|
|
634
|
+
"EG",
|
|
635
|
+
"EH",
|
|
636
|
+
"ER",
|
|
637
|
+
"ES",
|
|
638
|
+
"ET",
|
|
639
|
+
"FI",
|
|
640
|
+
"FJ",
|
|
641
|
+
"FK",
|
|
642
|
+
"FM",
|
|
643
|
+
"FO",
|
|
644
|
+
"FR",
|
|
645
|
+
"GA",
|
|
646
|
+
"GB",
|
|
647
|
+
"GD",
|
|
648
|
+
"GE",
|
|
649
|
+
"GF",
|
|
650
|
+
"GG",
|
|
651
|
+
"GH",
|
|
652
|
+
"GI",
|
|
653
|
+
"GL",
|
|
654
|
+
"GM",
|
|
655
|
+
"GN",
|
|
656
|
+
"GP",
|
|
657
|
+
"GQ",
|
|
658
|
+
"GR",
|
|
659
|
+
"GS",
|
|
660
|
+
"GT",
|
|
661
|
+
"GU",
|
|
662
|
+
"GW",
|
|
663
|
+
"GY",
|
|
664
|
+
"HK",
|
|
665
|
+
"HM",
|
|
666
|
+
"HN",
|
|
667
|
+
"HR",
|
|
668
|
+
"HT",
|
|
669
|
+
"HU",
|
|
670
|
+
"ID",
|
|
671
|
+
"IE",
|
|
672
|
+
"IL",
|
|
673
|
+
"IM",
|
|
674
|
+
"IN",
|
|
675
|
+
"IO",
|
|
676
|
+
"IQ",
|
|
677
|
+
"IR",
|
|
678
|
+
"IS",
|
|
679
|
+
"IT",
|
|
680
|
+
"JE",
|
|
681
|
+
"JM",
|
|
682
|
+
"JO",
|
|
683
|
+
"JP",
|
|
684
|
+
"KE",
|
|
685
|
+
"KG",
|
|
686
|
+
"KH",
|
|
687
|
+
"KI",
|
|
688
|
+
"KM",
|
|
689
|
+
"KN",
|
|
690
|
+
"KP",
|
|
691
|
+
"KR",
|
|
692
|
+
"KW",
|
|
693
|
+
"KY",
|
|
694
|
+
"KZ",
|
|
695
|
+
"LA",
|
|
696
|
+
"LB",
|
|
697
|
+
"LC",
|
|
698
|
+
"LI",
|
|
699
|
+
"LK",
|
|
700
|
+
"LR",
|
|
701
|
+
"LS",
|
|
702
|
+
"LT",
|
|
703
|
+
"LU",
|
|
704
|
+
"LV",
|
|
705
|
+
"LY",
|
|
706
|
+
"MA",
|
|
707
|
+
"MC",
|
|
708
|
+
"MD",
|
|
709
|
+
"ME",
|
|
710
|
+
"MF",
|
|
711
|
+
"MG",
|
|
712
|
+
"MH",
|
|
713
|
+
"MK",
|
|
714
|
+
"ML",
|
|
715
|
+
"MM",
|
|
716
|
+
"MN",
|
|
717
|
+
"MO",
|
|
718
|
+
"MP",
|
|
719
|
+
"MQ",
|
|
720
|
+
"MR",
|
|
721
|
+
"MS",
|
|
722
|
+
"MT",
|
|
723
|
+
"MU",
|
|
724
|
+
"MV",
|
|
725
|
+
"MW",
|
|
726
|
+
"MX",
|
|
727
|
+
"MY",
|
|
728
|
+
"MZ",
|
|
729
|
+
"NA",
|
|
730
|
+
"NC",
|
|
731
|
+
"NE",
|
|
732
|
+
"NF",
|
|
733
|
+
"NG",
|
|
734
|
+
"NI",
|
|
735
|
+
"NL",
|
|
736
|
+
"NO",
|
|
737
|
+
"NP",
|
|
738
|
+
"NR",
|
|
739
|
+
"NU",
|
|
740
|
+
"NZ",
|
|
741
|
+
"OM",
|
|
742
|
+
"PA",
|
|
743
|
+
"PE",
|
|
744
|
+
"PF",
|
|
745
|
+
"PG",
|
|
746
|
+
"PH",
|
|
747
|
+
"PK",
|
|
748
|
+
"PL",
|
|
749
|
+
"PM",
|
|
750
|
+
"PN",
|
|
751
|
+
"PR",
|
|
752
|
+
"PS",
|
|
753
|
+
"PT",
|
|
754
|
+
"PW",
|
|
755
|
+
"PY",
|
|
756
|
+
"QA",
|
|
757
|
+
"RE",
|
|
758
|
+
"RO",
|
|
759
|
+
"RS",
|
|
760
|
+
"RU",
|
|
761
|
+
"RW",
|
|
762
|
+
"SA",
|
|
763
|
+
"SB",
|
|
764
|
+
"SC",
|
|
765
|
+
"SD",
|
|
766
|
+
"SE",
|
|
767
|
+
"SG",
|
|
768
|
+
"SH",
|
|
769
|
+
"SI",
|
|
770
|
+
"SJ",
|
|
771
|
+
"SK",
|
|
772
|
+
"SL",
|
|
773
|
+
"SM",
|
|
774
|
+
"SN",
|
|
775
|
+
"SO",
|
|
776
|
+
"SR",
|
|
777
|
+
"SS",
|
|
778
|
+
"ST",
|
|
779
|
+
"SV",
|
|
780
|
+
"SX",
|
|
781
|
+
"SY",
|
|
782
|
+
"SZ",
|
|
783
|
+
"TC",
|
|
784
|
+
"TD",
|
|
785
|
+
"TF",
|
|
786
|
+
"TG",
|
|
787
|
+
"TH",
|
|
788
|
+
"TJ",
|
|
789
|
+
"TK",
|
|
790
|
+
"TL",
|
|
791
|
+
"TM",
|
|
792
|
+
"TN",
|
|
793
|
+
"TO",
|
|
794
|
+
"TR",
|
|
795
|
+
"TT",
|
|
796
|
+
"TV",
|
|
797
|
+
"TW",
|
|
798
|
+
"TZ",
|
|
799
|
+
"UA",
|
|
800
|
+
"UG",
|
|
801
|
+
"US",
|
|
802
|
+
"UY",
|
|
803
|
+
"UZ",
|
|
804
|
+
"VA",
|
|
805
|
+
"VC",
|
|
806
|
+
"VE",
|
|
807
|
+
"VG",
|
|
808
|
+
"VI",
|
|
809
|
+
"VN",
|
|
810
|
+
"VU",
|
|
811
|
+
"WF",
|
|
812
|
+
"WS",
|
|
813
|
+
"XK",
|
|
814
|
+
"YE",
|
|
815
|
+
"YT",
|
|
816
|
+
"ZA",
|
|
817
|
+
"ZM",
|
|
818
|
+
"ZW"
|
|
819
|
+
].map((code) => ({ code, label: regionNames.of(code) })).sort((a, b) => a.label.localeCompare(b.label));
|
|
820
|
+
|
|
1071
821
|
// src/deploymentsSlice/selectors.ts
|
|
822
|
+
var import_toolkit2 = require("@reduxjs/toolkit");
|
|
1072
823
|
var getDeploymentsById = (state) => state.deployments.byId;
|
|
1073
824
|
var getDeploymentsByStatus = (state) => state.deployments.byStatus;
|
|
1074
825
|
var getSelectedDeploymentDeviceIds = (state) => state.deployments.selectedDeviceIds;
|
|
@@ -1145,7 +896,7 @@ var getDeviceIdentityAttributes = (0, import_toolkit3.createSelector)(
|
|
|
1145
896
|
);
|
|
1146
897
|
var getDeviceCountsByStatus = (0, import_toolkit3.createSelector)(
|
|
1147
898
|
[getDevicesByStatus],
|
|
1148
|
-
(byStatus) => Object.values(DEVICE_STATES).reduce((accu, state) => {
|
|
899
|
+
(byStatus) => Object.values(import_constants2.DEVICE_STATES).reduce((accu, state) => {
|
|
1149
900
|
accu[state] = byStatus[state].total || 0;
|
|
1150
901
|
return accu;
|
|
1151
902
|
}, {})
|
|
@@ -1157,7 +908,7 @@ var getSelectedGroupInfo = (0, import_toolkit3.createSelector)(
|
|
|
1157
908
|
let groupCount = acceptedDeviceTotal;
|
|
1158
909
|
let groupFilters = [];
|
|
1159
910
|
if (selectedGroup && groupsById[selectedGroup]) {
|
|
1160
|
-
groupCount = groupsById[selectedGroup].total;
|
|
911
|
+
groupCount = groupsById[selectedGroup].total || 0;
|
|
1161
912
|
groupFilters = groupsById[selectedGroup].filters || [];
|
|
1162
913
|
}
|
|
1163
914
|
return { groupCount, selectedGroup, groupFilters };
|
|
@@ -1168,13 +919,18 @@ var getLimitMaxed = (0, import_toolkit3.createSelector)(
|
|
|
1168
919
|
({ total: acceptedDevices = 0 }, deviceLimit) => Boolean(deviceLimit && deviceLimit <= acceptedDevices)
|
|
1169
920
|
);
|
|
1170
921
|
var getGroupsByIdWithoutUngrouped = (0, import_toolkit3.createSelector)([getGroupsById], ({ [UNGROUPED_GROUP.id]: ungrouped, ...groups }) => groups);
|
|
922
|
+
var getGroupData = (0, import_toolkit3.createSelector)([getGroupsByIdWithoutUngrouped], (groups) => {
|
|
923
|
+
const createdGroup = Object.keys(groups).length ? Object.keys(groups)[0] : void 0;
|
|
924
|
+
const hasDynamicGroups = Object.values(groups).some((group) => !!group.id);
|
|
925
|
+
return { createdGroup, hasDynamicGroups, groups };
|
|
926
|
+
});
|
|
1171
927
|
var getGroups = (0, import_toolkit3.createSelector)([getGroupsById], (groupsById) => {
|
|
1172
928
|
const groupNames = Object.keys(groupsById).sort();
|
|
1173
929
|
const groupedGroups = Object.entries(groupsById).sort((a, b) => a[0].localeCompare(b[0])).reduce(
|
|
1174
930
|
(accu, [groupname, group]) => {
|
|
1175
931
|
const name = groupname === UNGROUPED_GROUP.id ? UNGROUPED_GROUP.name : groupname;
|
|
1176
932
|
const groupItem = { ...group, groupId: name, name: groupname };
|
|
1177
|
-
if (group.filters
|
|
933
|
+
if ((group.filters ?? []).length > 0) {
|
|
1178
934
|
if (groupname !== UNGROUPED_GROUP.id) {
|
|
1179
935
|
accu.dynamic.push(groupItem);
|
|
1180
936
|
} else {
|
|
@@ -1217,15 +973,20 @@ var getOnboarding = (state) => state.onboarding;
|
|
|
1217
973
|
|
|
1218
974
|
// src/organizationSlice/selectors.ts
|
|
1219
975
|
var import_toolkit4 = require("@reduxjs/toolkit");
|
|
976
|
+
var import_dayjs = __toESM(require("dayjs"), 1);
|
|
977
|
+
var import_relativeTime = __toESM(require("dayjs/plugin/relativeTime"), 1);
|
|
1220
978
|
var getOrganization = (state) => state.organization.organization;
|
|
1221
979
|
var getExternalIntegrations = (state) => state.organization.externalDeviceIntegrations;
|
|
1222
980
|
var getAuditlogState = (state) => state.organization.auditlog.selectionState;
|
|
1223
981
|
var getAuditLog = (state) => state.organization.auditlog.events;
|
|
1224
982
|
var getAuditLogSelectionState = (state) => state.organization.auditlog.selectionState;
|
|
983
|
+
var getBillingProfile = (state) => state.organization.organization.billing_profile;
|
|
984
|
+
var getSubscription = (state) => state.organization.organization.subscription;
|
|
985
|
+
var getCard = (state) => state.organization.card;
|
|
1225
986
|
var getSsoConfig = ({ organization: { ssoConfigs = [] } }) => ssoConfigs[0];
|
|
1226
987
|
var getTenantsList = (state) => state.organization.tenantList;
|
|
1227
988
|
var getWebhookEvents = (state) => state.organization.webhooks.events;
|
|
1228
|
-
var getWebhookEventTotal = (state) => state.organization.webhooks.
|
|
989
|
+
var getWebhookEventTotal = (state) => state.organization.webhooks.eventsTotal;
|
|
1229
990
|
var getDeviceTwinIntegrations = (0, import_toolkit4.createSelector)(
|
|
1230
991
|
[getExternalIntegrations],
|
|
1231
992
|
(integrations) => integrations.filter((integration) => integration.id && EXTERNAL_PROVIDER[integration.provider]?.deviceTwin)
|
|
@@ -1246,32 +1007,39 @@ var getAuditLogEntry = (0, import_toolkit4.createSelector)([getAuditLog, getAudi
|
|
|
1246
1007
|
const [eventAction, eventTime] = atob(selectedId).split("|");
|
|
1247
1008
|
return events.find((item) => item.action === eventAction && item.time === eventTime);
|
|
1248
1009
|
});
|
|
1010
|
+
import_dayjs.default.extend(import_relativeTime.default);
|
|
1011
|
+
var newPricingIntroduction = (0, import_dayjs.default)("2025-06-03T00:00");
|
|
1012
|
+
var getHasCurrentPricing = (0, import_toolkit4.createSelector)(
|
|
1013
|
+
[getOrganization],
|
|
1014
|
+
({ id }) => !!id && (0, import_dayjs.default)(parseInt(id.substring(0, 8), 16) * 1e3) >= newPricingIntroduction
|
|
1015
|
+
);
|
|
1016
|
+
|
|
1017
|
+
// src/releasesSlice/selectors.ts
|
|
1018
|
+
var import_toolkit5 = require("@reduxjs/toolkit");
|
|
1249
1019
|
|
|
1250
1020
|
// src/utils.ts
|
|
1251
1021
|
var import_helpers3 = require("@northern.tech/utils/helpers");
|
|
1252
1022
|
var filterProcessors = {
|
|
1253
|
-
[DEVICE_FILTERING_OPTIONS.$gt.key]: (val) => Number(val) || val,
|
|
1254
|
-
[DEVICE_FILTERING_OPTIONS.$gte.key]: (val) => Number(val) || val,
|
|
1255
|
-
[DEVICE_FILTERING_OPTIONS.$lt.key]: (val) => Number(val) || val,
|
|
1256
|
-
[DEVICE_FILTERING_OPTIONS.$lte.key]: (val) => Number(val) || val,
|
|
1257
|
-
[DEVICE_FILTERING_OPTIONS.$ltne.key]: (val) => Number(val) || val,
|
|
1258
|
-
[DEVICE_FILTERING_OPTIONS.$in.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1259
|
-
[DEVICE_FILTERING_OPTIONS.$nin.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1260
|
-
[DEVICE_FILTERING_OPTIONS.$exists.key]: import_helpers3.yes,
|
|
1261
|
-
[DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false
|
|
1023
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$gt.key]: (val) => Number(val) || val,
|
|
1024
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$gte.key]: (val) => Number(val) || val,
|
|
1025
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$lt.key]: (val) => Number(val) || val,
|
|
1026
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$lte.key]: (val) => Number(val) || val,
|
|
1027
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$ltne.key]: (val) => Number(val) || val,
|
|
1028
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$in.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1029
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$nin.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1030
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$exists.key]: import_helpers3.yes,
|
|
1031
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false
|
|
1262
1032
|
};
|
|
1263
1033
|
var filterAliases = {
|
|
1264
|
-
$nexists: { alias: DEVICE_FILTERING_OPTIONS.$exists.key, value: false }
|
|
1265
|
-
};
|
|
1266
|
-
var listItemMapper = (byId, ids, { defaultObject = {}, cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH }) => {
|
|
1267
|
-
return ids.slice(0, cutOffSize).reduce((accu, id) => {
|
|
1268
|
-
if (id && byId[id]) {
|
|
1269
|
-
accu.push({ ...defaultObject, ...byId[id] });
|
|
1270
|
-
}
|
|
1271
|
-
return accu;
|
|
1272
|
-
}, []);
|
|
1034
|
+
$nexists: { alias: import_constants2.DEVICE_FILTERING_OPTIONS.$exists.key, value: false }
|
|
1273
1035
|
};
|
|
1274
|
-
var
|
|
1036
|
+
var listItemMapper = (byId, ids, { cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH, defaultObject = {} }) => ids.slice(0, cutOffSize).reduce((accu, id) => {
|
|
1037
|
+
if (id && byId[id]) {
|
|
1038
|
+
accu.push({ ...defaultObject, ...byId[id] });
|
|
1039
|
+
}
|
|
1040
|
+
return accu;
|
|
1041
|
+
}, []);
|
|
1042
|
+
var mergePermissions = (existingPermissions = { ...import_constants2.emptyUiPermissions }, addedPermissions) => Object.entries(existingPermissions).reduce(
|
|
1275
1043
|
(accu, [key, value]) => {
|
|
1276
1044
|
let values;
|
|
1277
1045
|
if (!accu[key]) {
|
|
@@ -1295,45 +1063,51 @@ var mapUserRolesToUiPermissions = (userRoles, roles) => userRoles.reduce(
|
|
|
1295
1063
|
}
|
|
1296
1064
|
return mergePermissions(accu, roles[roleId].uiPermissions);
|
|
1297
1065
|
},
|
|
1298
|
-
{ ...emptyUiPermissions }
|
|
1066
|
+
{ ...import_constants2.emptyUiPermissions }
|
|
1299
1067
|
);
|
|
1300
1068
|
var isDarkMode = (mode) => mode === DARK_MODE;
|
|
1301
1069
|
|
|
1302
1070
|
// src/releasesSlice/selectors.ts
|
|
1303
|
-
var import_toolkit5 = require("@reduxjs/toolkit");
|
|
1304
1071
|
var getSelectedReleaseId = (state) => state.releases.selectedRelease;
|
|
1305
1072
|
var getReleasesById = (state) => state.releases.byId;
|
|
1306
1073
|
var getReleaseTags = (state) => state.releases.tags;
|
|
1307
1074
|
var getReleaseListState = (state) => state.releases.releasesList;
|
|
1308
1075
|
var getListedReleases = (state) => state.releases.releasesList.releaseIds;
|
|
1309
1076
|
var getUpdateTypes = (state) => state.releases.updateTypes;
|
|
1310
|
-
var
|
|
1077
|
+
var releaseDefaults = {};
|
|
1078
|
+
var getReleaseMappingDefaults = () => releaseDefaults;
|
|
1311
1079
|
var getReleasesList = (0, import_toolkit5.createSelector)([getReleasesById, getListedReleases, getReleaseMappingDefaults], listItemMapper);
|
|
1312
1080
|
var getReleaseTagsById = (0, import_toolkit5.createSelector)([getReleaseTags], (releaseTags) => releaseTags.reduce((accu, key) => ({ ...accu, [key]: key }), {}));
|
|
1313
1081
|
var getHasReleases = (0, import_toolkit5.createSelector)(
|
|
1314
1082
|
[getReleaseListState, getReleasesById],
|
|
1315
1083
|
({ searchTotal, total }, byId) => !!(Object.keys(byId).length || total || searchTotal)
|
|
1316
1084
|
);
|
|
1317
|
-
var getSelectedRelease = (0, import_toolkit5.createSelector)([getReleasesById, getSelectedReleaseId], (byId, id) => byId[id] ?? {});
|
|
1085
|
+
var getSelectedRelease = (0, import_toolkit5.createSelector)([getReleasesById, getSelectedReleaseId], (byId, id) => byId[id || ""] ?? {});
|
|
1086
|
+
var getSelectedReleases = (0, import_toolkit5.createSelector)([getReleaseListState, getReleasesList], ({ selection }, releases) => selection.map((index) => releases[index]));
|
|
1318
1087
|
|
|
1319
1088
|
// src/usersSlice/selectors.ts
|
|
1320
1089
|
var import_toolkit6 = require("@reduxjs/toolkit");
|
|
1090
|
+
var emptyObject = {};
|
|
1321
1091
|
var getRolesById = (state) => state.users.rolesById;
|
|
1322
1092
|
var getTooltipsById = (state) => state.users.tooltips.byId;
|
|
1323
1093
|
var getGlobalSettings = (state) => state.users.globalSettings;
|
|
1094
|
+
var getUserSettingsInitialized = (state) => state.users.settingsInitialized;
|
|
1324
1095
|
var getCurrentUserId = (state) => state.users.currentUser;
|
|
1325
1096
|
var getUsersById = (state) => state.users.byId;
|
|
1326
1097
|
var getUsersList = (0, import_toolkit6.createSelector)([getUsersById], (usersById) => Object.values(usersById));
|
|
1327
|
-
var getCurrentUser = (0, import_toolkit6.createSelector)(
|
|
1098
|
+
var getCurrentUser = (0, import_toolkit6.createSelector)(
|
|
1099
|
+
[getUsersById, getCurrentUserId],
|
|
1100
|
+
(usersById, userId) => userId ? usersById[userId] ?? emptyObject : emptyObject
|
|
1101
|
+
);
|
|
1328
1102
|
var getUserSettings = (state) => state.users.userSettings;
|
|
1329
1103
|
var getSelectedDeviceAttribute = (0, import_toolkit6.createSelector)(
|
|
1330
1104
|
[getUserSettings],
|
|
1331
1105
|
({ columnSelection }) => columnSelection.map((attribute) => ({ attribute: attribute.key, scope: attribute.scope }))
|
|
1332
1106
|
);
|
|
1333
1107
|
var getIsDarkMode = (0, import_toolkit6.createSelector)([getUserSettings], ({ mode }) => isDarkMode(mode));
|
|
1334
|
-
var
|
|
1108
|
+
var getReadAllHelptips = (0, import_toolkit6.createSelector)(
|
|
1335
1109
|
[getTooltipsById],
|
|
1336
|
-
(tooltips) => Object.values(tooltips).
|
|
1110
|
+
(tooltips) => Object.values(tooltips).every(({ readState }) => readState === READ_STATES.read)
|
|
1337
1111
|
);
|
|
1338
1112
|
var getTooltipsState = (0, import_toolkit6.createSelector)(
|
|
1339
1113
|
[getTooltipsById, getUserSettings],
|
|
@@ -1347,7 +1121,7 @@ var getTooltipsState = (0, import_toolkit6.createSelector)(
|
|
|
1347
1121
|
);
|
|
1348
1122
|
var getHas2FA = (0, import_toolkit6.createSelector)(
|
|
1349
1123
|
[getCurrentUser],
|
|
1350
|
-
(currentUser) => currentUser.hasOwnProperty("tfa_status") && currentUser.tfa_status === twoFAStates.enabled
|
|
1124
|
+
(currentUser) => currentUser.hasOwnProperty("tfa_status") && currentUser.tfa_status === import_constants2.twoFAStates.enabled
|
|
1351
1125
|
);
|
|
1352
1126
|
var getIdAttribute = (0, import_toolkit6.createSelector)([getGlobalSettings], ({ id_attribute = { ...defaultIdAttribute } }) => id_attribute);
|
|
1353
1127
|
var getOfflineThresholdSettings = (0, import_toolkit6.createSelector)([getGlobalSettings], ({ offlineThreshold }) => ({
|
|
@@ -1356,6 +1130,7 @@ var getOfflineThresholdSettings = (0, import_toolkit6.createSelector)([getGlobal
|
|
|
1356
1130
|
}));
|
|
1357
1131
|
var getRolesList = (0, import_toolkit6.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([value, role]) => ({ value, ...role })));
|
|
1358
1132
|
var getCurrentSession = (state) => state.users.currentSession;
|
|
1133
|
+
var getRolesInitialized = (state) => state.users.rolesInitialized;
|
|
1359
1134
|
|
|
1360
1135
|
// src/commonSelectors.ts
|
|
1361
1136
|
var getIsEnterprise = (0, import_toolkit7.createSelector)(
|
|
@@ -1364,37 +1139,34 @@ var getIsEnterprise = (0, import_toolkit7.createSelector)(
|
|
|
1364
1139
|
);
|
|
1365
1140
|
var getAttrsEndpoint = (0, import_toolkit7.createSelector)(
|
|
1366
1141
|
[getFeatures],
|
|
1367
|
-
({ hasReporting }) => hasReporting ? `${reportingApiUrl}/devices/search/attributes` : `${inventoryApiUrlV2}/filters/attributes`
|
|
1142
|
+
({ hasReporting }) => hasReporting ? `${import_constants2.reportingApiUrl}/devices/search/attributes` : `${import_constants2.inventoryApiUrlV2}/filters/attributes`
|
|
1368
1143
|
);
|
|
1369
1144
|
var getSearchEndpoint = (0, import_toolkit7.createSelector)(
|
|
1370
1145
|
[getFeatures],
|
|
1371
|
-
({ hasReporting }) => hasReporting ? `${reportingApiUrl}/devices/search` : `${inventoryApiUrlV2}/filters/search`
|
|
1372
|
-
);
|
|
1373
|
-
var getUserRoles = (0, import_toolkit7.createSelector)(
|
|
1374
|
-
[getCurrentUser, getRolesById, getIsEnterprise, getFeatures, getOrganization],
|
|
1375
|
-
(currentUser, rolesById2, isEnterprise, { isHosted, hasMultitenancy }, { plan = PLANS.os.id }) => {
|
|
1376
|
-
const isAdmin = currentUser.roles?.length ? currentUser.roles.some((role) => role === rolesByName.admin) : !(hasMultitenancy || isEnterprise || isHosted && plan !== PLANS.os.id);
|
|
1377
|
-
const uiPermissions = isAdmin ? mapUserRolesToUiPermissions([rolesByName.admin], rolesById2) : mapUserRolesToUiPermissions(currentUser.roles || [], rolesById2);
|
|
1378
|
-
return { isAdmin, uiPermissions };
|
|
1379
|
-
}
|
|
1146
|
+
({ hasReporting }) => hasReporting ? `${import_constants2.reportingApiUrl}/devices/search` : `${import_constants2.inventoryApiUrlV2}/filters/search`
|
|
1380
1147
|
);
|
|
1148
|
+
var getUserRoles = (0, import_toolkit7.createSelector)([getCurrentUser, getRolesById, getIsEnterprise], (currentUser, rolesById2, isEnterprise) => {
|
|
1149
|
+
const isAdmin = currentUser.roles?.length ? currentUser.roles.some((role) => role === import_constants2.rolesByName.admin) : !isEnterprise;
|
|
1150
|
+
const uiPermissions = isAdmin ? mapUserRolesToUiPermissions([import_constants2.rolesByName.admin], rolesById2) : mapUserRolesToUiPermissions(currentUser.roles || [], rolesById2);
|
|
1151
|
+
return { isAdmin, uiPermissions };
|
|
1152
|
+
});
|
|
1381
1153
|
var hasPermission = (thing, permission) => Object.values(thing).some((permissions) => permissions.includes(permission));
|
|
1382
1154
|
var getUserCapabilities = (0, import_toolkit7.createSelector)([getUserRoles, getIsServiceProvider], ({ uiPermissions }, isServiceProvider) => {
|
|
1383
|
-
const canManageReleases = hasPermission(uiPermissions.releases, uiPermissionsById.manage.value);
|
|
1384
|
-
const canReadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.read.value);
|
|
1385
|
-
const canUploadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.upload.value);
|
|
1386
|
-
const canAuditlog = uiPermissions.auditlog.includes(uiPermissionsById.read.value);
|
|
1387
|
-
const canReadUsers = uiPermissions.userManagement.includes(uiPermissionsById.read.value);
|
|
1388
|
-
const canManageUsers = uiPermissions.userManagement.includes(uiPermissionsById.manage.value);
|
|
1389
|
-
const canReadDevices = hasPermission(uiPermissions.groups, uiPermissionsById.read.value);
|
|
1155
|
+
const canManageReleases = hasPermission(uiPermissions.releases, import_constants2.uiPermissionsById.manage.value);
|
|
1156
|
+
const canReadReleases = canManageReleases || hasPermission(uiPermissions.releases, import_constants2.uiPermissionsById.read.value);
|
|
1157
|
+
const canUploadReleases = canManageReleases || hasPermission(uiPermissions.releases, import_constants2.uiPermissionsById.upload.value);
|
|
1158
|
+
const canAuditlog = uiPermissions.auditlog.includes(import_constants2.uiPermissionsById.read.value);
|
|
1159
|
+
const canReadUsers = uiPermissions.userManagement.includes(import_constants2.uiPermissionsById.read.value);
|
|
1160
|
+
const canManageUsers = uiPermissions.userManagement.includes(import_constants2.uiPermissionsById.manage.value);
|
|
1161
|
+
const canReadDevices = hasPermission(uiPermissions.groups, import_constants2.uiPermissionsById.read.value);
|
|
1390
1162
|
const canWriteDevices = Object.values(uiPermissions.groups).some(
|
|
1391
|
-
(groupPermissions) => groupPermissions.includes(uiPermissionsById.read.value) && groupPermissions.length > 1
|
|
1163
|
+
(groupPermissions) => groupPermissions.includes(import_constants2.uiPermissionsById.read.value) && groupPermissions.length > 1
|
|
1392
1164
|
);
|
|
1393
|
-
const canTroubleshoot = hasPermission(uiPermissions.groups, uiPermissionsById.connect.value);
|
|
1394
|
-
const canManageDevices = hasPermission(uiPermissions.groups, uiPermissionsById.manage.value);
|
|
1395
|
-
const canConfigure = hasPermission(uiPermissions.groups, uiPermissionsById.configure.value);
|
|
1396
|
-
const canDeploy = uiPermissions.deployments.includes(uiPermissionsById.deploy.value) || hasPermission(uiPermissions.groups, uiPermissionsById.deploy.value);
|
|
1397
|
-
const canReadDeployments = uiPermissions.deployments.includes(uiPermissionsById.read.value);
|
|
1165
|
+
const canTroubleshoot = hasPermission(uiPermissions.groups, import_constants2.uiPermissionsById.connect.value);
|
|
1166
|
+
const canManageDevices = hasPermission(uiPermissions.groups, import_constants2.uiPermissionsById.manage.value);
|
|
1167
|
+
const canConfigure = hasPermission(uiPermissions.groups, import_constants2.uiPermissionsById.configure.value);
|
|
1168
|
+
const canDeploy = uiPermissions.deployments.includes(import_constants2.uiPermissionsById.deploy.value) || hasPermission(uiPermissions.groups, import_constants2.uiPermissionsById.deploy.value);
|
|
1169
|
+
const canReadDeployments = uiPermissions.deployments.includes(import_constants2.uiPermissionsById.read.value);
|
|
1398
1170
|
return {
|
|
1399
1171
|
canAuditlog,
|
|
1400
1172
|
canConfigure,
|
|
@@ -1445,11 +1217,11 @@ var getTenantCapabilities = (0, import_toolkit7.createSelector)(
|
|
|
1445
1217
|
var getFilterAttributes = (0, import_toolkit7.createSelector)(
|
|
1446
1218
|
[getGlobalSettings, getFilteringAttributes],
|
|
1447
1219
|
({ previousFilters }, { identityAttributes, inventoryAttributes, systemAttributes, tagAttributes }) => {
|
|
1448
|
-
const deviceNameAttribute = { key: "name", value: "Name", scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 1 };
|
|
1449
|
-
const deviceIdAttribute = { key: "id", value: "Device ID", scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 };
|
|
1450
|
-
const checkInAttribute = { key: "check_in_time", value: "Latest activity", scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPES.system, priority: 4 };
|
|
1220
|
+
const deviceNameAttribute = { key: "name", value: "Name", scope: import_constants2.ATTRIBUTE_SCOPES.tags, category: import_constants2.ATTRIBUTE_SCOPES.tags, priority: 1 };
|
|
1221
|
+
const deviceIdAttribute = { key: "id", value: "Device ID", scope: import_constants2.ATTRIBUTE_SCOPES.identity, category: import_constants2.ATTRIBUTE_SCOPES.identity, priority: 1 };
|
|
1222
|
+
const checkInAttribute = { key: "check_in_time", value: "Latest activity", scope: import_constants2.ATTRIBUTE_SCOPES.system, category: import_constants2.ATTRIBUTE_SCOPES.system, priority: 4 };
|
|
1451
1223
|
const updateAttribute = { ...checkInAttribute, key: "updated_ts", value: "Last inventory update" };
|
|
1452
|
-
const firstRequestAttribute = { key: "created_ts", value: "First request", scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPES.system, priority: 4 };
|
|
1224
|
+
const firstRequestAttribute = { key: "created_ts", value: "First request", scope: import_constants2.ATTRIBUTE_SCOPES.system, category: import_constants2.ATTRIBUTE_SCOPES.system, priority: 4 };
|
|
1453
1225
|
const attributes = [
|
|
1454
1226
|
...previousFilters.map((item) => ({
|
|
1455
1227
|
...item,
|
|
@@ -1459,13 +1231,13 @@ var getFilterAttributes = (0, import_toolkit7.createSelector)(
|
|
|
1459
1231
|
})),
|
|
1460
1232
|
deviceNameAttribute,
|
|
1461
1233
|
deviceIdAttribute,
|
|
1462
|
-
...identityAttributes.map((item) => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 })),
|
|
1463
|
-
...inventoryAttributes.map((item) => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.inventory, category: ATTRIBUTE_SCOPES.inventory, priority: 2 })),
|
|
1464
|
-
...tagAttributes.map((item) => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 3 })),
|
|
1234
|
+
...identityAttributes.map((item) => ({ key: item, value: item, scope: import_constants2.ATTRIBUTE_SCOPES.identity, category: import_constants2.ATTRIBUTE_SCOPES.identity, priority: 1 })),
|
|
1235
|
+
...inventoryAttributes.map((item) => ({ key: item, value: item, scope: import_constants2.ATTRIBUTE_SCOPES.inventory, category: import_constants2.ATTRIBUTE_SCOPES.inventory, priority: 2 })),
|
|
1236
|
+
...tagAttributes.map((item) => ({ key: item, value: item, scope: import_constants2.ATTRIBUTE_SCOPES.tags, category: import_constants2.ATTRIBUTE_SCOPES.tags, priority: 3 })),
|
|
1465
1237
|
checkInAttribute,
|
|
1466
1238
|
updateAttribute,
|
|
1467
1239
|
firstRequestAttribute,
|
|
1468
|
-
...systemAttributes.map((item) => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPES.system, priority: 4 }))
|
|
1240
|
+
...systemAttributes.map((item) => ({ key: item, value: item, scope: import_constants2.ATTRIBUTE_SCOPES.system, category: import_constants2.ATTRIBUTE_SCOPES.system, priority: 4 }))
|
|
1469
1241
|
];
|
|
1470
1242
|
return (0, import_helpers4.attributeDuplicateFilter)(attributes, "key");
|
|
1471
1243
|
}
|
|
@@ -1507,7 +1279,7 @@ var getSelectedDeploymentData = (0, import_toolkit7.createSelector)(
|
|
|
1507
1279
|
);
|
|
1508
1280
|
var getAvailableIssueOptionsByType = (0, import_toolkit7.createSelector)(
|
|
1509
1281
|
[getFeatures, getTenantCapabilities, getIssueCountsByType],
|
|
1510
|
-
({ hasReporting }, { hasFullFiltering, hasMonitor }, issueCounts) => Object.values(DEVICE_ISSUE_OPTIONS).reduce((accu, { isCategory, key, needsFullFiltering, needsMonitor, needsReporting, title }) => {
|
|
1282
|
+
({ hasReporting }, { hasFullFiltering, hasMonitor }, issueCounts) => Object.values(import_constants2.DEVICE_ISSUE_OPTIONS).reduce((accu, { isCategory, key, needsFullFiltering, needsMonitor, needsReporting, title }) => {
|
|
1511
1283
|
if (isCategory || needsReporting && !hasReporting || needsFullFiltering && !hasFullFiltering || needsMonitor && !hasMonitor) {
|
|
1512
1284
|
return accu;
|
|
1513
1285
|
}
|
|
@@ -1515,14 +1287,11 @@ var getAvailableIssueOptionsByType = (0, import_toolkit7.createSelector)(
|
|
|
1515
1287
|
return accu;
|
|
1516
1288
|
}, {})
|
|
1517
1289
|
);
|
|
1518
|
-
var getGroupNames = (0, import_toolkit7.createSelector)([getGroupsById, getUserRoles
|
|
1290
|
+
var getGroupNames = (0, import_toolkit7.createSelector)([getGroupsById, getUserRoles], (groupsById, { uiPermissions }) => {
|
|
1519
1291
|
const { [UNGROUPED_GROUP.id]: ungrouped, ...groups } = groupsById;
|
|
1520
|
-
if (staticOnly) {
|
|
1521
|
-
return Object.keys(uiPermissions.groups).sort();
|
|
1522
|
-
}
|
|
1523
1292
|
return Object.keys(
|
|
1524
1293
|
Object.entries(groups).reduce((accu, [groupName, group]) => {
|
|
1525
|
-
if (group.filterId || uiPermissions.groups[ALL_DEVICES]) {
|
|
1294
|
+
if (group.filterId || uiPermissions.groups[import_constants2.ALL_DEVICES]) {
|
|
1526
1295
|
accu[groupName] = group;
|
|
1527
1296
|
}
|
|
1528
1297
|
return accu;
|
|
@@ -1531,9 +1300,7 @@ var getGroupNames = (0, import_toolkit7.createSelector)([getGroupsById, getUserR
|
|
|
1531
1300
|
});
|
|
1532
1301
|
var getDeviceReportsForUser = (0, import_toolkit7.createSelector)(
|
|
1533
1302
|
[getUserSettings, getCurrentUser, getGlobalSettings, getDevicesById],
|
|
1534
|
-
({ reports }, { id: currentUserId }, globalSettings, devicesById) => {
|
|
1535
|
-
return reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : []);
|
|
1536
|
-
}
|
|
1303
|
+
({ reports }, { id: currentUserId }, globalSettings, devicesById) => reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : [])
|
|
1537
1304
|
);
|
|
1538
1305
|
var listTypeDeviceIdMap = {
|
|
1539
1306
|
deviceList: getListedDevices,
|
|
@@ -1557,14 +1324,14 @@ var getAuditlogDevice = (0, import_toolkit7.createSelector)([getAuditLogEntry, g
|
|
|
1557
1324
|
var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, getRolesList], ({ service_provider }, roles) => {
|
|
1558
1325
|
if (service_provider) {
|
|
1559
1326
|
return roles.reduce((accu, role) => {
|
|
1560
|
-
if (rolesById[role.value]) {
|
|
1327
|
+
if (import_constants2.rolesById[role.value]) {
|
|
1561
1328
|
return accu;
|
|
1562
1329
|
}
|
|
1563
1330
|
accu.push(role);
|
|
1564
1331
|
return accu;
|
|
1565
|
-
}, Object.values(serviceProviderRolesById));
|
|
1332
|
+
}, Object.values(import_constants2.serviceProviderRolesById));
|
|
1566
1333
|
}
|
|
1567
|
-
return Object.keys(rolesById).reverse().reduce((accu, key) => {
|
|
1334
|
+
return Object.keys(import_constants2.rolesById).reverse().reduce((accu, key) => {
|
|
1568
1335
|
const index = accu.findIndex(({ value }) => value === key);
|
|
1569
1336
|
accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];
|
|
1570
1337
|
return accu;
|
|
@@ -1582,6 +1349,8 @@ var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, get
|
|
|
1582
1349
|
getAuditlogDevice,
|
|
1583
1350
|
getAuditlogState,
|
|
1584
1351
|
getAvailableIssueOptionsByType,
|
|
1352
|
+
getBillingProfile,
|
|
1353
|
+
getCard,
|
|
1585
1354
|
getCurrentSession,
|
|
1586
1355
|
getCurrentUser,
|
|
1587
1356
|
getDemoDeviceAddress,
|
|
@@ -1605,21 +1374,28 @@ var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, get
|
|
|
1605
1374
|
getDocsVersion,
|
|
1606
1375
|
getExternalIntegrations,
|
|
1607
1376
|
getFeatures,
|
|
1377
|
+
getFeedbackProbability,
|
|
1608
1378
|
getFilterAttributes,
|
|
1609
1379
|
getFilteringAttributes,
|
|
1610
1380
|
getFullVersionInformation,
|
|
1611
1381
|
getGlobalSettings,
|
|
1382
|
+
getGroupData,
|
|
1612
1383
|
getGroupNames,
|
|
1613
1384
|
getGroups,
|
|
1614
1385
|
getGroupsById,
|
|
1615
1386
|
getGroupsByIdWithoutUngrouped,
|
|
1616
1387
|
getHas2FA,
|
|
1388
|
+
getHasCurrentPricing,
|
|
1617
1389
|
getHasReleases,
|
|
1390
|
+
getHostAddress,
|
|
1391
|
+
getHostedAnnouncement,
|
|
1618
1392
|
getIdAttribute,
|
|
1619
1393
|
getIsDarkMode,
|
|
1620
1394
|
getIsEnterprise,
|
|
1395
|
+
getIsFirstLogin,
|
|
1621
1396
|
getIsPreview,
|
|
1622
1397
|
getIsServiceProvider,
|
|
1398
|
+
getIsUploading,
|
|
1623
1399
|
getIssueCountsByType,
|
|
1624
1400
|
getLimitMaxed,
|
|
1625
1401
|
getListedDevices,
|
|
@@ -1629,6 +1405,8 @@ var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, get
|
|
|
1629
1405
|
getOnboarding,
|
|
1630
1406
|
getOnboardingState,
|
|
1631
1407
|
getOrganization,
|
|
1408
|
+
getReadAllHelptips,
|
|
1409
|
+
getRecaptchaKey,
|
|
1632
1410
|
getRecentDeployments,
|
|
1633
1411
|
getReleaseListState,
|
|
1634
1412
|
getReleaseTags,
|
|
@@ -1637,6 +1415,7 @@ var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, get
|
|
|
1637
1415
|
getReleasesList,
|
|
1638
1416
|
getRelevantRoles,
|
|
1639
1417
|
getRolesById,
|
|
1418
|
+
getRolesInitialized,
|
|
1640
1419
|
getRolesList,
|
|
1641
1420
|
getSearchEndpoint,
|
|
1642
1421
|
getSearchState,
|
|
@@ -1647,17 +1426,23 @@ var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, get
|
|
|
1647
1426
|
getSelectedGroup,
|
|
1648
1427
|
getSelectedGroupInfo,
|
|
1649
1428
|
getSelectedRelease,
|
|
1650
|
-
|
|
1429
|
+
getSelectedReleases,
|
|
1430
|
+
getSnackbar,
|
|
1651
1431
|
getSortedFilteringAttributes,
|
|
1652
1432
|
getSsoConfig,
|
|
1433
|
+
getStripeKey,
|
|
1434
|
+
getSubscription,
|
|
1653
1435
|
getTenantCapabilities,
|
|
1654
1436
|
getTenantsList,
|
|
1655
1437
|
getTooltipsById,
|
|
1656
1438
|
getTooltipsState,
|
|
1439
|
+
getTrackerCode,
|
|
1657
1440
|
getUpdateTypes,
|
|
1441
|
+
getUploads,
|
|
1658
1442
|
getUserCapabilities,
|
|
1659
1443
|
getUserRoles,
|
|
1660
1444
|
getUserSettings,
|
|
1445
|
+
getUserSettingsInitialized,
|
|
1661
1446
|
getUsersById,
|
|
1662
1447
|
getUsersList,
|
|
1663
1448
|
getVersionInformation,
|