@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/commonSelectors.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/commonSelectors.ts
|
|
@@ -49,11 +59,6 @@ var startingDeviceCount = {
|
|
|
49
59
|
os: "for first 50 devices",
|
|
50
60
|
professional: "for first 250 devices"
|
|
51
61
|
};
|
|
52
|
-
var apiRoot = "/api/management";
|
|
53
|
-
var apiUrl = {
|
|
54
|
-
v1: `${apiRoot}/v1`,
|
|
55
|
-
v2: `${apiRoot}/v2`
|
|
56
|
-
};
|
|
57
62
|
var chartTypes = {
|
|
58
63
|
bar: { key: "bar", Icon: import_icons_material.BarChart },
|
|
59
64
|
pie: { key: "pie", Icon: import_icons_material.PieChartOutline }
|
|
@@ -65,28 +70,30 @@ var PLANS = {
|
|
|
65
70
|
os: {
|
|
66
71
|
id: "os",
|
|
67
72
|
name: "Basic",
|
|
73
|
+
minimalDeviceCount: 50,
|
|
68
74
|
offer: true,
|
|
69
|
-
price: "$
|
|
75
|
+
price: "$34 / month",
|
|
70
76
|
deviceCount: startingDeviceCount.os,
|
|
71
|
-
|
|
72
|
-
price2: "for first 6 months;\n$29/month thereafter",
|
|
77
|
+
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.",
|
|
73
78
|
features: ["Access to core features of Mender", "Basic support"]
|
|
74
79
|
},
|
|
75
80
|
professional: {
|
|
76
81
|
id: "professional",
|
|
77
82
|
name: "Professional",
|
|
83
|
+
minimalDeviceCount: 250,
|
|
78
84
|
offer: true,
|
|
79
|
-
price: "$
|
|
85
|
+
price: "$291 / month",
|
|
80
86
|
deviceCount: startingDeviceCount.professional,
|
|
81
|
-
|
|
82
|
-
price2: "for first 6 months;\n$249/month thereafter",
|
|
87
|
+
description: "Everything in Basic, plus enhanced update management and automation features.",
|
|
83
88
|
features: ["Advanced OTA features", "Higher priority support"]
|
|
84
89
|
},
|
|
85
90
|
enterprise: {
|
|
86
91
|
id: "enterprise",
|
|
87
92
|
name: "Enterprise",
|
|
93
|
+
minimalDeviceCount: 1e3,
|
|
88
94
|
price: "Custom pricing",
|
|
89
95
|
deviceCount: "Unlimited devices",
|
|
96
|
+
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.",
|
|
90
97
|
features: ["All Mender features", "Advanced security features", "SLA-backed support"]
|
|
91
98
|
}
|
|
92
99
|
};
|
|
@@ -106,21 +113,6 @@ var ADDONS = {
|
|
|
106
113
|
},
|
|
107
114
|
eligible: ["os", "professional", "enterprise"]
|
|
108
115
|
},
|
|
109
|
-
troubleshoot: {
|
|
110
|
-
id: "troubleshoot",
|
|
111
|
-
title: "Troubleshoot",
|
|
112
|
-
description: "Expand your plan with device troubleshooting features",
|
|
113
|
-
needs: ["hasDeviceConnect"],
|
|
114
|
-
os: {
|
|
115
|
-
price: "$27/month",
|
|
116
|
-
deviceCount: startingDeviceCount.os
|
|
117
|
-
},
|
|
118
|
-
professional: {
|
|
119
|
-
price: "$72/month",
|
|
120
|
-
deviceCount: startingDeviceCount.professional
|
|
121
|
-
},
|
|
122
|
-
eligible: ["os", "professional", "enterprise"]
|
|
123
|
-
},
|
|
124
116
|
monitor: {
|
|
125
117
|
id: "monitor",
|
|
126
118
|
title: "Monitor",
|
|
@@ -135,6 +127,21 @@ var ADDONS = {
|
|
|
135
127
|
deviceCount: startingDeviceCount.professional
|
|
136
128
|
},
|
|
137
129
|
eligible: ["professional", "enterprise"]
|
|
130
|
+
},
|
|
131
|
+
troubleshoot: {
|
|
132
|
+
id: "troubleshoot",
|
|
133
|
+
title: "Troubleshoot",
|
|
134
|
+
description: "Expand your plan with device troubleshooting features",
|
|
135
|
+
needs: ["hasDeviceConnect"],
|
|
136
|
+
os: {
|
|
137
|
+
price: "$27/month",
|
|
138
|
+
deviceCount: startingDeviceCount.os
|
|
139
|
+
},
|
|
140
|
+
professional: {
|
|
141
|
+
price: "$72/month",
|
|
142
|
+
deviceCount: startingDeviceCount.professional
|
|
143
|
+
},
|
|
144
|
+
eligible: ["os", "professional", "enterprise"]
|
|
138
145
|
}
|
|
139
146
|
};
|
|
140
147
|
var BENEFITS = {
|
|
@@ -176,695 +183,27 @@ var DARK_MODE = "dark";
|
|
|
176
183
|
// src/appSlice/selectors.ts
|
|
177
184
|
var import_helpers = require("@northern.tech/utils/helpers");
|
|
178
185
|
var import_toolkit = require("@reduxjs/toolkit");
|
|
179
|
-
var getAppDocsVersion = (state) => state.app.docsVersion;
|
|
180
186
|
var getFeatures = (state) => state.app.features;
|
|
181
187
|
var getFullVersionInformation = (state) => state.app.versionInformation;
|
|
182
|
-
var getDocsVersion = (0, import_toolkit.createSelector)([getAppDocsVersion, getFeatures], (appDocsVersion, { isHosted }) => {
|
|
183
|
-
const docsVersion = appDocsVersion ? `${appDocsVersion}/` : "development/";
|
|
184
|
-
return isHosted ? "" : docsVersion;
|
|
185
|
-
});
|
|
186
188
|
var getSearchState = (state) => state.app.searchState;
|
|
189
|
+
var getUploads = (state) => state.app.uploadsById;
|
|
190
|
+
var getIsUploading = (0, import_toolkit.createSelector)([getUploads], (uploadsById) => !!Object.keys(uploadsById).length);
|
|
187
191
|
var getSearchedDevices = (0, import_toolkit.createSelector)([getSearchState], ({ deviceIds }) => deviceIds);
|
|
188
192
|
var getVersionInformation = (0, import_toolkit.createSelector)(
|
|
189
193
|
[getFullVersionInformation, getFeatures],
|
|
190
|
-
({ Integration, ...remainder }, { isHosted }) => isHosted &&
|
|
194
|
+
({ Integration: Integration2, ...remainder }, { isHosted }) => isHosted && Integration2 !== "next" ? remainder : { ...remainder, Integration: Integration2 }
|
|
191
195
|
);
|
|
192
|
-
var getIsPreview = (0, import_toolkit.createSelector)([getFullVersionInformation], ({ Integration }) => (0, import_helpers.versionCompare)(
|
|
196
|
+
var getIsPreview = (0, import_toolkit.createSelector)([getFullVersionInformation], ({ Integration: Integration2 }) => (0, import_helpers.versionCompare)(Integration2, "next") > -1);
|
|
193
197
|
|
|
194
198
|
// src/commonConstants.tsx
|
|
195
199
|
var import_js = require("@mdi/js");
|
|
196
|
-
var
|
|
197
|
-
var DEVICE_LIST_DEFAULTS = {
|
|
198
|
-
page: 1,
|
|
199
|
-
perPage: 20
|
|
200
|
-
};
|
|
201
|
-
var timeUnits = {
|
|
202
|
-
days: "days",
|
|
203
|
-
minutes: "minutes",
|
|
204
|
-
hours: "hours"
|
|
205
|
-
};
|
|
206
|
-
var ALL_DEVICES = "All devices";
|
|
207
|
-
var UNGROUPED_GROUP = { id: "*|=ungrouped=|*", name: "Unassigned" };
|
|
208
|
-
var DEVICE_LIST_MAXIMUM_LENGTH = 50;
|
|
209
|
-
var DEVICE_FILTERING_OPTIONS = {
|
|
210
|
-
$eq: { key: "$eq", title: "equals", shortform: "=" },
|
|
211
|
-
$ne: { key: "$ne", title: "not equal", shortform: "!=" },
|
|
212
|
-
$gt: {
|
|
213
|
-
key: "$gt",
|
|
214
|
-
title: ">",
|
|
215
|
-
shortform: ">",
|
|
216
|
-
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.'
|
|
217
|
-
},
|
|
218
|
-
$gte: {
|
|
219
|
-
title: ">=",
|
|
220
|
-
shortform: ">=",
|
|
221
|
-
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.'
|
|
222
|
-
},
|
|
223
|
-
$lt: {
|
|
224
|
-
key: "$lt",
|
|
225
|
-
title: "<",
|
|
226
|
-
shortform: "<",
|
|
227
|
-
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.'
|
|
228
|
-
},
|
|
229
|
-
$lte: {
|
|
230
|
-
title: "<=",
|
|
231
|
-
shortform: "<=",
|
|
232
|
-
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.'
|
|
233
|
-
},
|
|
234
|
-
$ltne: {
|
|
235
|
-
key: "$ltne",
|
|
236
|
-
title: "$ltne",
|
|
237
|
-
shortform: "ltne",
|
|
238
|
-
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.'
|
|
239
|
-
},
|
|
240
|
-
$in: {
|
|
241
|
-
key: "$in",
|
|
242
|
-
title: "in",
|
|
243
|
-
shortform: "in",
|
|
244
|
-
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.'
|
|
245
|
-
},
|
|
246
|
-
$nin: {
|
|
247
|
-
key: "$nin",
|
|
248
|
-
title: "not in",
|
|
249
|
-
shortform: "not in",
|
|
250
|
-
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.`
|
|
251
|
-
},
|
|
252
|
-
$exists: {
|
|
253
|
-
key: "$exists",
|
|
254
|
-
title: "exists",
|
|
255
|
-
shortform: "exists",
|
|
256
|
-
value: true,
|
|
257
|
-
help: `The "exists" operator matches if the selected field's value has a value. No value needs to be provided for this operator.`
|
|
258
|
-
},
|
|
259
|
-
$nexists: {
|
|
260
|
-
key: "$nexists",
|
|
261
|
-
title: `doesn't exist`,
|
|
262
|
-
shortform: `doesn't exist`,
|
|
263
|
-
value: true,
|
|
264
|
-
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.`
|
|
265
|
-
},
|
|
266
|
-
$regex: {
|
|
267
|
-
key: "$regex",
|
|
268
|
-
title: `matches regular expression`,
|
|
269
|
-
shortform: `matches`,
|
|
270
|
-
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.`
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
|
-
var DEVICE_ISSUE_OPTIONS = {
|
|
274
|
-
issues: {
|
|
275
|
-
isCategory: true,
|
|
276
|
-
key: "issues",
|
|
277
|
-
title: "Devices with issues",
|
|
278
|
-
filterRule: {}
|
|
279
|
-
},
|
|
280
|
-
offline: {
|
|
281
|
-
issueCategory: "issues",
|
|
282
|
-
key: "offline",
|
|
283
|
-
needsFullFiltering: true,
|
|
284
|
-
needsMonitor: false,
|
|
285
|
-
needsReporting: false,
|
|
286
|
-
filterRule: {
|
|
287
|
-
scope: "system",
|
|
288
|
-
key: "check_in_time",
|
|
289
|
-
operator: DEVICE_FILTERING_OPTIONS.$ltne.key,
|
|
290
|
-
value: ({ offlineThreshold }) => offlineThreshold
|
|
291
|
-
},
|
|
292
|
-
title: "Offline devices"
|
|
293
|
-
},
|
|
294
|
-
failedLastUpdate: {
|
|
295
|
-
issueCategory: "issues",
|
|
296
|
-
key: "failedLastUpdate",
|
|
297
|
-
needsFullFiltering: false,
|
|
298
|
-
needsMonitor: false,
|
|
299
|
-
needsReporting: true,
|
|
300
|
-
filterRule: { scope: "monitor", key: "failed_last_update", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: true },
|
|
301
|
-
title: "Deployment failed"
|
|
302
|
-
},
|
|
303
|
-
monitoring: {
|
|
304
|
-
issueCategory: "issues",
|
|
305
|
-
key: "monitoring",
|
|
306
|
-
needsFullFiltering: false,
|
|
307
|
-
needsMonitor: true,
|
|
308
|
-
needsReporting: false,
|
|
309
|
-
filterRule: { scope: "monitor", key: "alerts", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: true },
|
|
310
|
-
title: "Monitoring alert"
|
|
311
|
-
},
|
|
312
|
-
authRequests: {
|
|
313
|
-
key: "authRequests",
|
|
314
|
-
needsFullFiltering: false,
|
|
315
|
-
needsMonitor: false,
|
|
316
|
-
needsReporting: true,
|
|
317
|
-
filterRule: { scope: "monitor", key: "auth_requests", operator: DEVICE_FILTERING_OPTIONS.$gt.key, value: 1 },
|
|
318
|
-
title: "Devices with new authentication requests"
|
|
319
|
-
},
|
|
320
|
-
gatewayDevices: {
|
|
321
|
-
key: "gatewayDevices",
|
|
322
|
-
needsFullFiltering: false,
|
|
323
|
-
needsMonitor: false,
|
|
324
|
-
needsReporting: true,
|
|
325
|
-
filterRule: { scope: "inventory", key: "mender_is_gateway", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: "true" },
|
|
326
|
-
title: "Gateway devices"
|
|
327
|
-
}
|
|
328
|
-
};
|
|
329
|
-
var oneSecond = 1e3;
|
|
330
|
-
var TIMEOUTS = {
|
|
331
|
-
debounceDefault: 700,
|
|
332
|
-
debounceShort: 300,
|
|
333
|
-
halfASecond: 0.5 * oneSecond,
|
|
334
|
-
oneSecond,
|
|
335
|
-
twoSeconds: 2 * oneSecond,
|
|
336
|
-
threeSeconds: 3 * oneSecond,
|
|
337
|
-
fiveSeconds: 5 * oneSecond,
|
|
338
|
-
refreshDefault: 10 * oneSecond,
|
|
339
|
-
refreshLong: 60 * oneSecond
|
|
340
|
-
};
|
|
341
|
-
var SORTING_OPTIONS = {
|
|
342
|
-
asc: "asc",
|
|
343
|
-
desc: "desc"
|
|
344
|
-
};
|
|
345
|
-
var DEVICE_ONLINE_CUTOFF = { interval: 1, intervalName: timeUnits.days };
|
|
346
|
-
var ATTRIBUTE_SCOPES = {
|
|
347
|
-
inventory: "inventory",
|
|
348
|
-
identity: "identity",
|
|
349
|
-
monitor: "monitor",
|
|
350
|
-
system: "system",
|
|
351
|
-
tags: "tags"
|
|
352
|
-
};
|
|
353
|
-
var defaultIdAttribute = Object.freeze({ attribute: "id", scope: ATTRIBUTE_SCOPES.identity });
|
|
354
|
-
var credentialTypes = {
|
|
355
|
-
aws: "aws",
|
|
356
|
-
http: "http",
|
|
357
|
-
sas: "sas",
|
|
358
|
-
x509: "x509"
|
|
359
|
-
};
|
|
360
|
-
var EXTERNAL_PROVIDER = {
|
|
361
|
-
"iot-core": {
|
|
362
|
-
credentialsType: credentialTypes.aws,
|
|
363
|
-
icon: import_js.mdiAws,
|
|
364
|
-
title: "AWS IoT Core",
|
|
365
|
-
twinTitle: "Device Shadow",
|
|
366
|
-
provider: "iot-core",
|
|
367
|
-
enabled: true,
|
|
368
|
-
deviceTwin: true,
|
|
369
|
-
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." })
|
|
370
|
-
},
|
|
371
|
-
"iot-hub": {
|
|
372
|
-
credentialsType: credentialTypes.sas,
|
|
373
|
-
icon: import_js.mdiMicrosoftAzure,
|
|
374
|
-
title: "Azure IoT Hub",
|
|
375
|
-
twinTitle: "Device Twin",
|
|
376
|
-
provider: "iot-hub",
|
|
377
|
-
enabled: true,
|
|
378
|
-
deviceTwin: true,
|
|
379
|
-
configHint: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
|
|
380
|
-
"For help finding your Azure IoT Hub connection string, look under 'Shared access policies' in the Microsoft Azure UI as described",
|
|
381
|
-
" ",
|
|
382
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
383
|
-
"a",
|
|
384
|
-
{
|
|
385
|
-
href: "https://devblogs.microsoft.com/iotdev/understand-different-connection-strings-in-azure-iot-hub/#iothubconn",
|
|
386
|
-
target: "_blank",
|
|
387
|
-
rel: "noopener noreferrer",
|
|
388
|
-
children: "here"
|
|
389
|
-
}
|
|
390
|
-
),
|
|
391
|
-
"."
|
|
392
|
-
] })
|
|
393
|
-
},
|
|
394
|
-
webhook: {
|
|
395
|
-
credentialsType: credentialTypes.http,
|
|
396
|
-
deviceTwin: false,
|
|
397
|
-
// disable the webhook provider here, since it is treated different than other integrations, with a custom configuration & management view, etc.
|
|
398
|
-
enabled: false,
|
|
399
|
-
provider: "webhook"
|
|
400
|
-
}
|
|
401
|
-
};
|
|
402
|
-
var ALL_RELEASES = "All releases";
|
|
403
|
-
var emptyUiPermissions = Object.freeze({
|
|
404
|
-
auditlog: [],
|
|
405
|
-
deployments: [],
|
|
406
|
-
groups: Object.freeze({}),
|
|
407
|
-
releases: Object.freeze({}),
|
|
408
|
-
tenantManagement: [],
|
|
409
|
-
userManagement: []
|
|
410
|
-
});
|
|
411
|
-
var emptyRole = Object.freeze({
|
|
412
|
-
name: void 0,
|
|
413
|
-
description: "",
|
|
414
|
-
permissions: [],
|
|
415
|
-
uiPermissions: Object.freeze({ ...emptyUiPermissions })
|
|
416
|
-
});
|
|
200
|
+
var import_MenderTypes = require("@northern.tech/types/MenderTypes");
|
|
417
201
|
|
|
418
|
-
// src/
|
|
419
|
-
var
|
|
420
|
-
|
|
421
|
-
// src/devicesSlice/constants.ts
|
|
422
|
-
var emptyFilter = { key: null, value: "", operator: DEVICE_FILTERING_OPTIONS.$eq.key, scope: "inventory" };
|
|
423
|
-
var deviceAuthV2 = `${apiUrl.v2}/devauth`;
|
|
424
|
-
var deviceConnect = `${apiUrl.v1}/deviceconnect`;
|
|
425
|
-
var inventoryApiUrl = `${apiUrl.v1}/inventory`;
|
|
426
|
-
var inventoryApiUrlV2 = `${apiUrl.v2}/inventory`;
|
|
427
|
-
var deviceConfig = `${apiUrl.v1}/deviceconfig/configurations/device`;
|
|
428
|
-
var reportingApiUrl = `${apiUrl.v1}/reporting`;
|
|
429
|
-
var iotManagerBaseURL = `${apiUrl.v1}/iot-manager`;
|
|
430
|
-
var DEVICE_STATES = {
|
|
431
|
-
accepted: "accepted",
|
|
432
|
-
pending: "pending",
|
|
433
|
-
preauth: "preauthorized",
|
|
434
|
-
rejected: "rejected"
|
|
435
|
-
};
|
|
436
|
-
var geoAttributes = ["geo-lat", "geo-lon"].map((attribute) => ({ attribute, scope: "inventory" }));
|
|
437
|
-
|
|
438
|
-
// src/onboardingSlice/constants.ts
|
|
439
|
-
var onboardingSteps = {
|
|
440
|
-
ONBOARDING_START: "onboarding-start",
|
|
441
|
-
DEVICES_PENDING_ONBOARDING_START: "devices-pending-onboarding-start",
|
|
442
|
-
DASHBOARD_ONBOARDING_START: "dashboard-onboarding-start",
|
|
443
|
-
DASHBOARD_ONBOARDING_PENDINGS: "dashboard-onboarding-pendings",
|
|
444
|
-
DEVICES_DELAYED_ONBOARDING: "devices-delayed-onboarding",
|
|
445
|
-
DEVICES_PENDING_ONBOARDING: "devices-pending-onboarding",
|
|
446
|
-
DEVICES_ACCEPTED_ONBOARDING: "devices-accepted-onboarding",
|
|
447
|
-
DEVICES_PENDING_ACCEPTING_ONBOARDING: "devices-pending-accepting-onboarding",
|
|
448
|
-
DEVICES_DEPLOY_RELEASE_ONBOARDING: "devices-deploy-release-onboarding",
|
|
449
|
-
SCHEDULING_ARTIFACT_SELECTION: "scheduling-artifact-selection",
|
|
450
|
-
SCHEDULING_ALL_DEVICES_SELECTION: "scheduling-all-devices-selection",
|
|
451
|
-
SCHEDULING_GROUP_SELECTION: "scheduling-group-selection",
|
|
452
|
-
SCHEDULING_RELEASE_TO_DEVICES: "scheduling-release-to-devices",
|
|
453
|
-
DEPLOYMENTS_INPROGRESS: "deployments-inprogress",
|
|
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 useradmApiUrlv1 = `${apiUrl.v1}/useradm`;
|
|
481
|
-
var useradmApiUrlv2 = `${apiUrl.v2}/useradm`;
|
|
482
|
-
var staticRolesByName = {
|
|
483
|
-
admin: "RBAC_ROLE_PERMIT_ALL",
|
|
484
|
-
readOnly: "RBAC_ROLE_OBSERVER",
|
|
485
|
-
ci: "RBAC_ROLE_CI",
|
|
486
|
-
deploymentsManager: "RBAC_ROLE_DEPLOYMENTS_MANAGER",
|
|
487
|
-
terminalAccess: "RBAC_ROLE_REMOTE_TERMINAL"
|
|
488
|
-
};
|
|
489
|
-
var PermissionTypes = {
|
|
490
|
-
Any: "any",
|
|
491
|
-
Get: "GET",
|
|
492
|
-
Post: "POST",
|
|
493
|
-
Put: "PUT",
|
|
494
|
-
Delete: "DELETE",
|
|
495
|
-
Patch: "PATCH",
|
|
496
|
-
DeviceGroup: "DEVICE_GROUP",
|
|
497
|
-
DeviceId: "DEVICE_ID"
|
|
498
|
-
};
|
|
499
|
-
var permissionSetIds = {
|
|
500
|
-
Basic: "Basic",
|
|
501
|
-
ConfigureDevices: "ConfigureDevices",
|
|
502
|
-
ConnectToDevices: "ConnectToDevices",
|
|
503
|
-
DeployToDevices: "DeployToDevices",
|
|
504
|
-
ManageDevices: "ManageDevices",
|
|
505
|
-
ManageReleases: "ManageReleases",
|
|
506
|
-
ManageTenants: "ManageTenants",
|
|
507
|
-
ManageUsers: "ManageUsers",
|
|
508
|
-
ReadAuditLogs: "ReadAuditLogs",
|
|
509
|
-
ReadDevices: "ReadDevices",
|
|
510
|
-
ReadReleases: "ReadReleases",
|
|
511
|
-
ReadTenants: "ReadTenants",
|
|
512
|
-
ReadUsers: "ReadUsers",
|
|
513
|
-
SuperUser: "SuperUser",
|
|
514
|
-
UploadArtifacts: "UploadArtifacts"
|
|
515
|
-
};
|
|
516
|
-
var uiPermissionsById = {
|
|
517
|
-
configure: {
|
|
518
|
-
explanations: { groups: `'Configure' allows the user to use mender-configure features and apply configurations.` },
|
|
519
|
-
permissionLevel: 2,
|
|
520
|
-
permissionSets: { groups: permissionSetIds.ConfigureDevices },
|
|
521
|
-
title: "Configure",
|
|
522
|
-
value: "configure",
|
|
523
|
-
verbs: [PermissionTypes.Get, PermissionTypes.Put, PermissionTypes.Post]
|
|
524
|
-
},
|
|
525
|
-
connect: {
|
|
526
|
-
explanations: { groups: `'Connect' allows the user to use mender-connect features and Troubleshoot add-ons.` },
|
|
527
|
-
permissionLevel: 2,
|
|
528
|
-
permissionSets: { groups: permissionSetIds.ConnectToDevices },
|
|
529
|
-
title: "Connect",
|
|
530
|
-
value: "connect",
|
|
531
|
-
verbs: [PermissionTypes.Get, PermissionTypes.Put]
|
|
532
|
-
},
|
|
533
|
-
deploy: {
|
|
534
|
-
explanations: { groups: `'Deploy' allows the user to deploy software or configuration updates to devices.` },
|
|
535
|
-
permissionLevel: 2,
|
|
536
|
-
permissionSets: { deployments: permissionSetIds.DeployToDevices, groups: permissionSetIds.DeployToDevices },
|
|
537
|
-
title: "Deploy",
|
|
538
|
-
value: "deploy",
|
|
539
|
-
verbs: [PermissionTypes.Post]
|
|
540
|
-
},
|
|
541
|
-
manage: {
|
|
542
|
-
explanations: {
|
|
543
|
-
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.`,
|
|
544
|
-
releases: `'Manage' allows the user to upload new artifacts, edit release descriptions and remove artifacts.`
|
|
545
|
-
},
|
|
546
|
-
permissionLevel: 2,
|
|
547
|
-
permissionSets: {
|
|
548
|
-
groups: permissionSetIds.ManageDevices,
|
|
549
|
-
releases: permissionSetIds.ManageReleases,
|
|
550
|
-
tenantManagement: permissionSetIds.ManageTenants,
|
|
551
|
-
userManagement: permissionSetIds.ManageUsers
|
|
552
|
-
},
|
|
553
|
-
title: "Manage",
|
|
554
|
-
value: "manage",
|
|
555
|
-
verbs: [PermissionTypes.Post, PermissionTypes.Put, PermissionTypes.Patch]
|
|
556
|
-
},
|
|
557
|
-
read: {
|
|
558
|
-
explanations: { groups: `'Read' allows the user to view devices.` },
|
|
559
|
-
permissionLevel: 1,
|
|
560
|
-
permissionSets: {
|
|
561
|
-
auditlog: permissionSetIds.ReadAuditLogs,
|
|
562
|
-
groups: permissionSetIds.ReadDevices,
|
|
563
|
-
releases: permissionSetIds.ReadReleases,
|
|
564
|
-
tenantManagement: permissionSetIds.ReadTenants,
|
|
565
|
-
userManagement: permissionSetIds.ReadUsers
|
|
566
|
-
},
|
|
567
|
-
title: "Read",
|
|
568
|
-
value: "read",
|
|
569
|
-
verbs: [PermissionTypes.Get, PermissionTypes.Post]
|
|
570
|
-
},
|
|
571
|
-
upload: {
|
|
572
|
-
explanations: { groups: `'Upload' allows the user to upload new Artifacts.` },
|
|
573
|
-
unscopedOnly: { releases: true },
|
|
574
|
-
permissionLevel: 1,
|
|
575
|
-
permissionSets: { releases: permissionSetIds.UploadArtifacts },
|
|
576
|
-
title: "Upload",
|
|
577
|
-
value: "upload",
|
|
578
|
-
verbs: [PermissionTypes.Post, PermissionTypes.Put, PermissionTypes.Patch]
|
|
579
|
-
}
|
|
580
|
-
};
|
|
581
|
-
var scopedPermissionAreas = {
|
|
582
|
-
groups: { key: "groups", excessiveAccessSelector: ALL_DEVICES, scopeType: "DeviceGroups" },
|
|
583
|
-
releases: { key: "releases", excessiveAccessSelector: ALL_RELEASES, scopeType: "Releases" }
|
|
584
|
-
};
|
|
585
|
-
var uiPermissionsByArea = {
|
|
586
|
-
auditlog: {
|
|
587
|
-
endpoints: [{ path: /\/(auditlog)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] }],
|
|
588
|
-
explanation: "Granting access to the audit log will allow tracing changes to devices, releases and user accounts, as well as providing information about deployments.",
|
|
589
|
-
key: "auditlog",
|
|
590
|
-
uiPermissions: [uiPermissionsById.read],
|
|
591
|
-
title: "System Audit Log"
|
|
592
|
-
},
|
|
593
|
-
deployments: {
|
|
594
|
-
endpoints: [
|
|
595
|
-
{ path: /\/(deployments\/deployments)/i, types: [PermissionTypes.Post, PermissionTypes.Put], uiPermissions: [uiPermissionsById.deploy] },
|
|
596
|
-
{ path: /\/(deployments\/deployments)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
|
|
597
|
-
{ path: /\/(deployments\/config)/i, types: [PermissionTypes.Get, PermissionTypes.Put], uiPermissions: [uiPermissionsById.manage] }
|
|
598
|
-
],
|
|
599
|
-
explanation: "Providing deploy permissions will allow deployments to be created using the releases and devices a user has access to.",
|
|
600
|
-
key: "deployments",
|
|
601
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.deploy],
|
|
602
|
-
title: "Deployments"
|
|
603
|
-
},
|
|
604
|
-
groups: {
|
|
605
|
-
endpoints: [
|
|
606
|
-
{
|
|
607
|
-
path: /\/(devauth|inventory|deviceconfig|devicemonitor|deviceconnect\/devices)/i,
|
|
608
|
-
types: [PermissionTypes.Get],
|
|
609
|
-
uiPermissions: [uiPermissionsById.read]
|
|
610
|
-
},
|
|
611
|
-
{ path: /\/(devauth|inventory)/i, types: [PermissionTypes.Put, PermissionTypes.Post], uiPermissions: [uiPermissionsById.manage] },
|
|
612
|
-
{ path: /\/(deviceconfig)/i, types: [PermissionTypes.Get, PermissionTypes.Put, PermissionTypes.Post], uiPermissions: [uiPermissionsById.configure] },
|
|
613
|
-
{ path: /\/(deviceconnect\/devices)/i, types: [PermissionTypes.Get, PermissionTypes.Post], uiPermissions: [uiPermissionsById.connect] }
|
|
614
|
-
],
|
|
615
|
-
explanation: "Device group management permissions control the degree to which devices in a group can be accessed and moved to other groups.",
|
|
616
|
-
key: "groups",
|
|
617
|
-
scope: scopedPermissionAreas.groups.scopeType,
|
|
618
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage, uiPermissionsById.deploy, uiPermissionsById.configure, uiPermissionsById.connect],
|
|
619
|
-
title: "Group Management"
|
|
620
|
-
},
|
|
621
|
-
releases: {
|
|
622
|
-
endpoints: [
|
|
623
|
-
{ path: /\/(deployments\/artifacts|deployments\/deployments\/releases)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
|
|
624
|
-
{
|
|
625
|
-
path: /\/(deployments\/artifacts|deployments\/deployments\/releases)/i,
|
|
626
|
-
types: [PermissionTypes.Post, PermissionTypes.Put],
|
|
627
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.upload]
|
|
628
|
-
},
|
|
629
|
-
{
|
|
630
|
-
path: /\/(deployments\/artifacts|deployments\/deployments\/releases)/i,
|
|
631
|
-
types: [PermissionTypes.Delete],
|
|
632
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage]
|
|
633
|
-
}
|
|
634
|
-
],
|
|
635
|
-
explanation: "Release permissions can be granted to allow artifact & release modifications, as well as the creation of new releases.",
|
|
636
|
-
key: "releases",
|
|
637
|
-
scope: "ReleaseTags",
|
|
638
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage, uiPermissionsById.upload],
|
|
639
|
-
title: "Release Management"
|
|
640
|
-
},
|
|
641
|
-
tenantManagement: {
|
|
642
|
-
endpoints: [
|
|
643
|
-
{ path: /\/(tenantadm\/tenants)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
|
|
644
|
-
{ path: /\/(tenantadm\/tenants)/i, types: [PermissionTypes.Post, PermissionTypes.Put], uiPermissions: [uiPermissionsById.manage] },
|
|
645
|
-
{ path: /\/(users\/exists)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.manage] }
|
|
646
|
-
],
|
|
647
|
-
explanation: "Tenant management permissions allow listing, creating and modifying child tenants",
|
|
648
|
-
key: "tenantManagement",
|
|
649
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage],
|
|
650
|
-
title: "Tenant Management"
|
|
651
|
-
},
|
|
652
|
-
userManagement: {
|
|
653
|
-
endpoints: [
|
|
654
|
-
{ path: /\/(useradm)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
|
|
655
|
-
{ path: /\/(useradm)/i, types: [PermissionTypes.Post], uiPermissions: [uiPermissionsById.manage] }
|
|
656
|
-
],
|
|
657
|
-
explanation: "User management permissions should be granted carefully, as these allow privilege increases for any users managed by a user with user management permissions",
|
|
658
|
-
key: "userManagement",
|
|
659
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage],
|
|
660
|
-
title: "User Management"
|
|
661
|
-
}
|
|
662
|
-
};
|
|
663
|
-
var permissionMapper = (permission) => permission.value;
|
|
664
|
-
var rolesById = Object.freeze({
|
|
665
|
-
[staticRolesByName.admin]: {
|
|
666
|
-
name: "Admin",
|
|
667
|
-
value: staticRolesByName.admin,
|
|
668
|
-
description: "Full access",
|
|
669
|
-
permissions: [],
|
|
670
|
-
// permissions refers to the values returned from the backend
|
|
671
|
-
uiPermissions: {
|
|
672
|
-
...emptyUiPermissions,
|
|
673
|
-
auditlog: uiPermissionsByArea.auditlog.uiPermissions.map(permissionMapper),
|
|
674
|
-
deployments: uiPermissionsByArea.deployments.uiPermissions.map(permissionMapper),
|
|
675
|
-
groups: { [ALL_DEVICES]: uiPermissionsByArea.groups.uiPermissions.map(permissionMapper) },
|
|
676
|
-
releases: { [ALL_RELEASES]: uiPermissionsByArea.releases.uiPermissions.map(permissionMapper) },
|
|
677
|
-
userManagement: uiPermissionsByArea.userManagement.uiPermissions.map(permissionMapper)
|
|
678
|
-
}
|
|
679
|
-
},
|
|
680
|
-
[staticRolesByName.readOnly]: {
|
|
681
|
-
name: "Read Access",
|
|
682
|
-
value: staticRolesByName.readOnly,
|
|
683
|
-
description: "",
|
|
684
|
-
permissions: [],
|
|
685
|
-
uiPermissions: {
|
|
686
|
-
...emptyUiPermissions,
|
|
687
|
-
deployments: [uiPermissionsById.read.value],
|
|
688
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value] },
|
|
689
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.read.value] },
|
|
690
|
-
userManagement: [uiPermissionsById.read.value]
|
|
691
|
-
}
|
|
692
|
-
},
|
|
693
|
-
[staticRolesByName.ci]: {
|
|
694
|
-
name: "Releases Manager",
|
|
695
|
-
value: staticRolesByName.ci,
|
|
696
|
-
description: "",
|
|
697
|
-
permissions: [],
|
|
698
|
-
uiPermissions: {
|
|
699
|
-
...emptyUiPermissions,
|
|
700
|
-
releases: { [ALL_RELEASES]: uiPermissionsByArea.releases.uiPermissions.map(permissionMapper) }
|
|
701
|
-
}
|
|
702
|
-
},
|
|
703
|
-
[staticRolesByName.deploymentsManager]: {
|
|
704
|
-
name: "Deployments Manager",
|
|
705
|
-
value: staticRolesByName.deploymentsManager,
|
|
706
|
-
description: "",
|
|
707
|
-
permissions: [],
|
|
708
|
-
uiPermissions: {
|
|
709
|
-
...emptyUiPermissions,
|
|
710
|
-
deployments: uiPermissionsByArea.deployments.uiPermissions.map(permissionMapper),
|
|
711
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.deploy.value, uiPermissionsById.read.value] },
|
|
712
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.read.value] }
|
|
713
|
-
}
|
|
714
|
-
},
|
|
715
|
-
[staticRolesByName.terminalAccess]: {
|
|
716
|
-
name: "Troubleshooting",
|
|
717
|
-
value: staticRolesByName.terminalAccess,
|
|
718
|
-
description: "Access to the troubleshooting features: Remote Terminal, File Transfer, Port Forwarding",
|
|
719
|
-
permissions: [],
|
|
720
|
-
uiPermissions: {
|
|
721
|
-
...emptyUiPermissions,
|
|
722
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.connect.value] }
|
|
723
|
-
}
|
|
724
|
-
}
|
|
725
|
-
});
|
|
726
|
-
var serviceProviderRolesById = {
|
|
727
|
-
admin: {
|
|
728
|
-
name: "Admin",
|
|
729
|
-
value: staticRolesByName.admin,
|
|
730
|
-
description: "Full access",
|
|
731
|
-
permissions: [],
|
|
732
|
-
uiPermissions: {
|
|
733
|
-
...emptyUiPermissions,
|
|
734
|
-
auditlog: uiPermissionsByArea.auditlog.uiPermissions.map(permissionMapper),
|
|
735
|
-
userManagement: uiPermissionsByArea.userManagement.uiPermissions.map(permissionMapper),
|
|
736
|
-
tenantManagement: uiPermissionsByArea.tenantManagement.uiPermissions.map(permissionMapper)
|
|
737
|
-
}
|
|
738
|
-
},
|
|
739
|
-
readOnly: {
|
|
740
|
-
name: "Read access",
|
|
741
|
-
value: staticRolesByName.readOnly,
|
|
742
|
-
description: "This role can see all linked organizations but cannot make any changes",
|
|
743
|
-
permissions: [],
|
|
744
|
-
uiPermissions: {
|
|
745
|
-
...emptyUiPermissions,
|
|
746
|
-
auditlog: [uiPermissionsById.read.value],
|
|
747
|
-
userManagement: [uiPermissionsById.read.value],
|
|
748
|
-
tenantManagement: [uiPermissionsById.read.value]
|
|
749
|
-
}
|
|
750
|
-
}
|
|
751
|
-
};
|
|
752
|
-
var defaultPermissionSets = {
|
|
753
|
-
[permissionSetIds.Basic]: {
|
|
754
|
-
name: permissionSetIds.Basic,
|
|
755
|
-
result: {
|
|
756
|
-
// this is needed to prevent the detailed permissions of the basic permission set from being interpreted as allowing read & management access to user endpoints
|
|
757
|
-
userManagement: [uiPermissionsById.read.value]
|
|
758
|
-
}
|
|
759
|
-
},
|
|
760
|
-
[permissionSetIds.SuperUser]: {
|
|
761
|
-
name: permissionSetIds.SuperUser,
|
|
762
|
-
result: {
|
|
763
|
-
...rolesById[staticRolesByName.admin].uiPermissions
|
|
764
|
-
}
|
|
765
|
-
},
|
|
766
|
-
[permissionSetIds.ManageUsers]: {
|
|
767
|
-
name: permissionSetIds.ManageUsers,
|
|
768
|
-
result: {
|
|
769
|
-
userManagement: [uiPermissionsById.manage.value]
|
|
770
|
-
}
|
|
771
|
-
},
|
|
772
|
-
[permissionSetIds.ReadAuditLogs]: {
|
|
773
|
-
name: permissionSetIds.ReadAuditLogs,
|
|
774
|
-
result: {
|
|
775
|
-
auditlog: [uiPermissionsById.read.value]
|
|
776
|
-
}
|
|
777
|
-
},
|
|
778
|
-
[permissionSetIds.ReadReleases]: {
|
|
779
|
-
name: permissionSetIds.ReadReleases,
|
|
780
|
-
result: {
|
|
781
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.read.value] }
|
|
782
|
-
}
|
|
783
|
-
},
|
|
784
|
-
[permissionSetIds.ReadTenants]: {
|
|
785
|
-
name: permissionSetIds.ReadTenants,
|
|
786
|
-
result: {
|
|
787
|
-
tenantManagement: [uiPermissionsById.read.value]
|
|
788
|
-
}
|
|
789
|
-
},
|
|
790
|
-
[permissionSetIds.ManageTenants]: {
|
|
791
|
-
name: permissionSetIds.ManageTenants,
|
|
792
|
-
result: {
|
|
793
|
-
tenantManagement: [uiPermissionsById.manage.value]
|
|
794
|
-
}
|
|
795
|
-
},
|
|
796
|
-
[permissionSetIds.ReadUsers]: {
|
|
797
|
-
name: permissionSetIds.ReadUsers,
|
|
798
|
-
result: {
|
|
799
|
-
userManagement: [uiPermissionsById.read.value]
|
|
800
|
-
}
|
|
801
|
-
},
|
|
802
|
-
[permissionSetIds.UploadArtifacts]: {
|
|
803
|
-
name: permissionSetIds.UploadArtifacts,
|
|
804
|
-
result: {
|
|
805
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.upload.value] }
|
|
806
|
-
}
|
|
807
|
-
},
|
|
808
|
-
[permissionSetIds.ManageReleases]: {
|
|
809
|
-
name: permissionSetIds.ManageReleases,
|
|
810
|
-
result: {
|
|
811
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.manage.value] }
|
|
812
|
-
}
|
|
813
|
-
},
|
|
814
|
-
[permissionSetIds.ConfigureDevices]: {
|
|
815
|
-
name: permissionSetIds.ConfigureDevices,
|
|
816
|
-
result: {
|
|
817
|
-
deployments: [uiPermissionsById.read.value, uiPermissionsById.deploy.value],
|
|
818
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value, uiPermissionsById.configure.value] }
|
|
819
|
-
}
|
|
820
|
-
},
|
|
821
|
-
[permissionSetIds.ConnectToDevices]: {
|
|
822
|
-
name: permissionSetIds.ConnectToDevices,
|
|
823
|
-
result: {
|
|
824
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value, uiPermissionsById.connect.value] }
|
|
825
|
-
}
|
|
826
|
-
},
|
|
827
|
-
[permissionSetIds.DeployToDevices]: {
|
|
828
|
-
name: permissionSetIds.DeployToDevices,
|
|
829
|
-
result: {
|
|
830
|
-
deployments: [uiPermissionsById.deploy.value, uiPermissionsById.manage.value, uiPermissionsById.read.value],
|
|
831
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value, uiPermissionsById.deploy.value] }
|
|
832
|
-
}
|
|
833
|
-
},
|
|
834
|
-
[permissionSetIds.ManageDevices]: {
|
|
835
|
-
name: permissionSetIds.ManageDevices,
|
|
836
|
-
result: {
|
|
837
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value, uiPermissionsById.manage.value] }
|
|
838
|
-
}
|
|
839
|
-
},
|
|
840
|
-
[permissionSetIds.ReadDevices]: {
|
|
841
|
-
name: permissionSetIds.ReadDevices,
|
|
842
|
-
result: {
|
|
843
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value] }
|
|
844
|
-
}
|
|
845
|
-
}
|
|
846
|
-
};
|
|
847
|
-
var rolesByName = {
|
|
848
|
-
...staticRolesByName,
|
|
849
|
-
deploymentCreation: { action: "CREATE_DEPLOYMENT", object: { type: "DEVICE_GROUP", value: void 0 } },
|
|
850
|
-
groupAccess: { action: "VIEW_DEVICE", object: { type: "DEVICE_GROUP", value: void 0 } },
|
|
851
|
-
userManagement: { action: "http", object: { type: "any", value: `${useradmApiUrlv1}/.*` } }
|
|
852
|
-
};
|
|
853
|
-
var twoFAStates = {
|
|
854
|
-
enabled: "enabled",
|
|
855
|
-
disabled: "disabled",
|
|
856
|
-
unverified: "unverified"
|
|
857
|
-
};
|
|
858
|
-
var READ_STATES = {
|
|
859
|
-
read: "read",
|
|
860
|
-
seen: "seen",
|
|
861
|
-
unread: "unread"
|
|
862
|
-
};
|
|
202
|
+
// src/constants.ts
|
|
203
|
+
var import_constants2 = require("@northern.tech/utils/constants");
|
|
863
204
|
|
|
864
205
|
// src/deploymentsSlice/constants.ts
|
|
865
206
|
var alreadyInstalled = "already-installed";
|
|
866
|
-
var deploymentsApiUrl = `${apiUrl.v1}/deployments`;
|
|
867
|
-
var deploymentsApiUrlV2 = `${apiUrl.v2}/deployments`;
|
|
868
207
|
var deploymentSubstates = {
|
|
869
208
|
aborted: "aborted",
|
|
870
209
|
alreadyInstalled,
|
|
@@ -937,9 +276,9 @@ var DEPLOYMENT_STATES = {
|
|
|
937
276
|
var listDefaultsByState = {
|
|
938
277
|
[DEPLOYMENT_STATES.inprogress]: { page: 1, perPage: 10 },
|
|
939
278
|
[DEPLOYMENT_STATES.pending]: { page: 1, perPage: 10 },
|
|
940
|
-
[DEPLOYMENT_STATES.scheduled]: { ...DEVICE_LIST_DEFAULTS },
|
|
941
|
-
[DEPLOYMENT_STATES.finished]: { ...DEVICE_LIST_DEFAULTS },
|
|
942
|
-
sort: { direction: SORTING_OPTIONS.desc }
|
|
279
|
+
[DEPLOYMENT_STATES.scheduled]: { ...import_constants2.DEVICE_LIST_DEFAULTS },
|
|
280
|
+
[DEPLOYMENT_STATES.finished]: { ...import_constants2.DEVICE_LIST_DEFAULTS },
|
|
281
|
+
sort: { direction: import_constants2.SORTING_OPTIONS.desc }
|
|
943
282
|
};
|
|
944
283
|
var DEPLOYMENT_ROUTES = {
|
|
945
284
|
active: {
|
|
@@ -991,7 +330,392 @@ var pauseMap = {
|
|
|
991
330
|
}
|
|
992
331
|
};
|
|
993
332
|
|
|
333
|
+
// src/onboardingSlice/constants.ts
|
|
334
|
+
var onboardingSteps = {
|
|
335
|
+
ONBOARDING_START: "onboarding-start",
|
|
336
|
+
DEVICES_PENDING_ONBOARDING_START: "devices-pending-onboarding-start",
|
|
337
|
+
DASHBOARD_ONBOARDING_START: "dashboard-onboarding-start",
|
|
338
|
+
DASHBOARD_ONBOARDING_PENDINGS: "dashboard-onboarding-pendings",
|
|
339
|
+
DEVICES_DELAYED_ONBOARDING: "devices-delayed-onboarding",
|
|
340
|
+
DEVICES_PENDING_ONBOARDING: "devices-pending-onboarding",
|
|
341
|
+
DEVICES_ACCEPTED_ONBOARDING: "devices-accepted-onboarding",
|
|
342
|
+
DEVICES_PENDING_ACCEPTING_ONBOARDING: "devices-pending-accepting-onboarding",
|
|
343
|
+
DEVICES_DEPLOY_RELEASE_ONBOARDING: "devices-deploy-release-onboarding",
|
|
344
|
+
SCHEDULING_ARTIFACT_SELECTION: "scheduling-artifact-selection",
|
|
345
|
+
SCHEDULING_ALL_DEVICES_SELECTION: "scheduling-all-devices-selection",
|
|
346
|
+
SCHEDULING_GROUP_SELECTION: "scheduling-group-selection",
|
|
347
|
+
SCHEDULING_RELEASE_TO_DEVICES: "scheduling-release-to-devices",
|
|
348
|
+
DEPLOYMENTS_INPROGRESS: "deployments-inprogress",
|
|
349
|
+
DEPLOYMENTS_COMPLETED: "deployments-completed",
|
|
350
|
+
DEPLOYMENTS_PAST: "deployments-past",
|
|
351
|
+
DEPLOYMENTS_PAST_COMPLETED: "deployments-past-completed",
|
|
352
|
+
DEPLOYMENTS_PAST_COMPLETED_FAILURE: "deployments-past-completed-failure",
|
|
353
|
+
ONBOARDING_CANCELED: "onboarding-canceled"
|
|
354
|
+
};
|
|
355
|
+
var orderedOnboardingSteps = [
|
|
356
|
+
onboardingSteps.DASHBOARD_ONBOARDING_START,
|
|
357
|
+
onboardingSteps.DEVICES_PENDING_ONBOARDING_START,
|
|
358
|
+
onboardingSteps.DEVICES_DELAYED_ONBOARDING,
|
|
359
|
+
onboardingSteps.DEVICES_PENDING_ONBOARDING,
|
|
360
|
+
onboardingSteps.DEVICES_PENDING_ACCEPTING_ONBOARDING,
|
|
361
|
+
onboardingSteps.DASHBOARD_ONBOARDING_PENDINGS,
|
|
362
|
+
onboardingSteps.DEVICES_ACCEPTED_ONBOARDING,
|
|
363
|
+
onboardingSteps.DEVICES_DEPLOY_RELEASE_ONBOARDING,
|
|
364
|
+
onboardingSteps.SCHEDULING_ALL_DEVICES_SELECTION,
|
|
365
|
+
onboardingSteps.SCHEDULING_GROUP_SELECTION,
|
|
366
|
+
onboardingSteps.SCHEDULING_ARTIFACT_SELECTION,
|
|
367
|
+
onboardingSteps.SCHEDULING_RELEASE_TO_DEVICES,
|
|
368
|
+
onboardingSteps.DEPLOYMENTS_INPROGRESS,
|
|
369
|
+
onboardingSteps.DEPLOYMENTS_PAST,
|
|
370
|
+
onboardingSteps.DEPLOYMENTS_PAST_COMPLETED,
|
|
371
|
+
onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE,
|
|
372
|
+
onboardingSteps.ONBOARDING_CANCELED
|
|
373
|
+
];
|
|
374
|
+
|
|
375
|
+
// src/usersSlice/constants.ts
|
|
376
|
+
var READ_STATES = {
|
|
377
|
+
read: "read",
|
|
378
|
+
seen: "seen",
|
|
379
|
+
unread: "unread"
|
|
380
|
+
};
|
|
381
|
+
|
|
382
|
+
// src/commonConstants.tsx
|
|
383
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
384
|
+
var timeUnits = {
|
|
385
|
+
days: "days",
|
|
386
|
+
minutes: "minutes",
|
|
387
|
+
hours: "hours"
|
|
388
|
+
};
|
|
389
|
+
var UNGROUPED_GROUP = { id: "*|=ungrouped=|*", name: "Unassigned" };
|
|
390
|
+
var DEVICE_LIST_MAXIMUM_LENGTH = 50;
|
|
391
|
+
var oneSecond = 1e3;
|
|
392
|
+
var TIMEOUTS = {
|
|
393
|
+
debounceDefault: 700,
|
|
394
|
+
debounceShort: 300,
|
|
395
|
+
halfASecond: 0.5 * oneSecond,
|
|
396
|
+
oneSecond,
|
|
397
|
+
twoSeconds: 2 * oneSecond,
|
|
398
|
+
threeSeconds: 3 * oneSecond,
|
|
399
|
+
fiveSeconds: 5 * oneSecond,
|
|
400
|
+
refreshDefault: 10 * oneSecond,
|
|
401
|
+
refreshLong: 60 * oneSecond
|
|
402
|
+
};
|
|
403
|
+
var DEVICE_ONLINE_CUTOFF = { interval: 1, intervalName: timeUnits.days };
|
|
404
|
+
var defaultIdAttribute = Object.freeze({ attribute: "id", scope: import_constants2.ATTRIBUTE_SCOPES.identity });
|
|
405
|
+
var credentialTypes = {
|
|
406
|
+
aws: import_MenderTypes.Credentials.type.AWS,
|
|
407
|
+
http: import_MenderTypes.Credentials.type.HTTP,
|
|
408
|
+
sas: import_MenderTypes.Credentials.type.SAS,
|
|
409
|
+
x509: "x509"
|
|
410
|
+
};
|
|
411
|
+
var EXTERNAL_PROVIDER = {
|
|
412
|
+
"iot-core": {
|
|
413
|
+
credentialsType: credentialTypes.aws,
|
|
414
|
+
icon: import_js.mdiAws,
|
|
415
|
+
title: "AWS IoT Core",
|
|
416
|
+
twinTitle: "Device Shadow",
|
|
417
|
+
provider: "iot-core",
|
|
418
|
+
enabled: true,
|
|
419
|
+
deviceTwin: true,
|
|
420
|
+
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." })
|
|
421
|
+
},
|
|
422
|
+
"iot-hub": {
|
|
423
|
+
credentialsType: credentialTypes.sas,
|
|
424
|
+
icon: import_js.mdiMicrosoftAzure,
|
|
425
|
+
title: "Azure IoT Hub",
|
|
426
|
+
twinTitle: "Device Twin",
|
|
427
|
+
provider: "iot-hub",
|
|
428
|
+
enabled: true,
|
|
429
|
+
deviceTwin: true,
|
|
430
|
+
configHint: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
|
|
431
|
+
"For help finding your Azure IoT Hub connection string, look under 'Shared access policies' in the Microsoft Azure UI as described",
|
|
432
|
+
" ",
|
|
433
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
434
|
+
"a",
|
|
435
|
+
{
|
|
436
|
+
href: "https://devblogs.microsoft.com/iotdev/understand-different-connection-strings-in-azure-iot-hub/#iothubconn",
|
|
437
|
+
target: "_blank",
|
|
438
|
+
rel: "noopener noreferrer",
|
|
439
|
+
children: "here"
|
|
440
|
+
}
|
|
441
|
+
),
|
|
442
|
+
"."
|
|
443
|
+
] })
|
|
444
|
+
},
|
|
445
|
+
webhook: {
|
|
446
|
+
credentialsType: credentialTypes.http,
|
|
447
|
+
deviceTwin: false,
|
|
448
|
+
twinTitle: "",
|
|
449
|
+
// disable the webhook provider here, since it is treated different than other integrations, with a custom configuration & management view, etc.
|
|
450
|
+
enabled: false,
|
|
451
|
+
provider: "webhook"
|
|
452
|
+
}
|
|
453
|
+
};
|
|
454
|
+
var emptyWebhook = {
|
|
455
|
+
description: "",
|
|
456
|
+
provider: import_MenderTypes.Integration.provider.WEBHOOK,
|
|
457
|
+
credentials: {
|
|
458
|
+
type: EXTERNAL_PROVIDER.webhook.credentialsType,
|
|
459
|
+
[EXTERNAL_PROVIDER.webhook.credentialsType]: {
|
|
460
|
+
secret: "",
|
|
461
|
+
url: ""
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
};
|
|
465
|
+
var regionNames = new Intl.DisplayNames(["en"], { type: "region" });
|
|
466
|
+
var countries = [
|
|
467
|
+
"AD",
|
|
468
|
+
"AE",
|
|
469
|
+
"AF",
|
|
470
|
+
"AG",
|
|
471
|
+
"AI",
|
|
472
|
+
"AL",
|
|
473
|
+
"AM",
|
|
474
|
+
"AO",
|
|
475
|
+
"AQ",
|
|
476
|
+
"AR",
|
|
477
|
+
"AS",
|
|
478
|
+
"AT",
|
|
479
|
+
"AU",
|
|
480
|
+
"AW",
|
|
481
|
+
"AX",
|
|
482
|
+
"AZ",
|
|
483
|
+
"BA",
|
|
484
|
+
"BB",
|
|
485
|
+
"BD",
|
|
486
|
+
"BE",
|
|
487
|
+
"BF",
|
|
488
|
+
"BG",
|
|
489
|
+
"BH",
|
|
490
|
+
"BI",
|
|
491
|
+
"BJ",
|
|
492
|
+
"BL",
|
|
493
|
+
"BM",
|
|
494
|
+
"BN",
|
|
495
|
+
"BO",
|
|
496
|
+
"BR",
|
|
497
|
+
"BS",
|
|
498
|
+
"BT",
|
|
499
|
+
"BV",
|
|
500
|
+
"BW",
|
|
501
|
+
"BY",
|
|
502
|
+
"BZ",
|
|
503
|
+
"CA",
|
|
504
|
+
"CC",
|
|
505
|
+
"CD",
|
|
506
|
+
"CF",
|
|
507
|
+
"CG",
|
|
508
|
+
"CH",
|
|
509
|
+
"CI",
|
|
510
|
+
"CK",
|
|
511
|
+
"CL",
|
|
512
|
+
"CM",
|
|
513
|
+
"CN",
|
|
514
|
+
"CO",
|
|
515
|
+
"CR",
|
|
516
|
+
"CU",
|
|
517
|
+
"CV",
|
|
518
|
+
"CW",
|
|
519
|
+
"CX",
|
|
520
|
+
"CY",
|
|
521
|
+
"CZ",
|
|
522
|
+
"DE",
|
|
523
|
+
"DJ",
|
|
524
|
+
"DK",
|
|
525
|
+
"DM",
|
|
526
|
+
"DO",
|
|
527
|
+
"DZ",
|
|
528
|
+
"EC",
|
|
529
|
+
"EE",
|
|
530
|
+
"EG",
|
|
531
|
+
"EH",
|
|
532
|
+
"ER",
|
|
533
|
+
"ES",
|
|
534
|
+
"ET",
|
|
535
|
+
"FI",
|
|
536
|
+
"FJ",
|
|
537
|
+
"FK",
|
|
538
|
+
"FM",
|
|
539
|
+
"FO",
|
|
540
|
+
"FR",
|
|
541
|
+
"GA",
|
|
542
|
+
"GB",
|
|
543
|
+
"GD",
|
|
544
|
+
"GE",
|
|
545
|
+
"GF",
|
|
546
|
+
"GG",
|
|
547
|
+
"GH",
|
|
548
|
+
"GI",
|
|
549
|
+
"GL",
|
|
550
|
+
"GM",
|
|
551
|
+
"GN",
|
|
552
|
+
"GP",
|
|
553
|
+
"GQ",
|
|
554
|
+
"GR",
|
|
555
|
+
"GS",
|
|
556
|
+
"GT",
|
|
557
|
+
"GU",
|
|
558
|
+
"GW",
|
|
559
|
+
"GY",
|
|
560
|
+
"HK",
|
|
561
|
+
"HM",
|
|
562
|
+
"HN",
|
|
563
|
+
"HR",
|
|
564
|
+
"HT",
|
|
565
|
+
"HU",
|
|
566
|
+
"ID",
|
|
567
|
+
"IE",
|
|
568
|
+
"IL",
|
|
569
|
+
"IM",
|
|
570
|
+
"IN",
|
|
571
|
+
"IO",
|
|
572
|
+
"IQ",
|
|
573
|
+
"IR",
|
|
574
|
+
"IS",
|
|
575
|
+
"IT",
|
|
576
|
+
"JE",
|
|
577
|
+
"JM",
|
|
578
|
+
"JO",
|
|
579
|
+
"JP",
|
|
580
|
+
"KE",
|
|
581
|
+
"KG",
|
|
582
|
+
"KH",
|
|
583
|
+
"KI",
|
|
584
|
+
"KM",
|
|
585
|
+
"KN",
|
|
586
|
+
"KP",
|
|
587
|
+
"KR",
|
|
588
|
+
"KW",
|
|
589
|
+
"KY",
|
|
590
|
+
"KZ",
|
|
591
|
+
"LA",
|
|
592
|
+
"LB",
|
|
593
|
+
"LC",
|
|
594
|
+
"LI",
|
|
595
|
+
"LK",
|
|
596
|
+
"LR",
|
|
597
|
+
"LS",
|
|
598
|
+
"LT",
|
|
599
|
+
"LU",
|
|
600
|
+
"LV",
|
|
601
|
+
"LY",
|
|
602
|
+
"MA",
|
|
603
|
+
"MC",
|
|
604
|
+
"MD",
|
|
605
|
+
"ME",
|
|
606
|
+
"MF",
|
|
607
|
+
"MG",
|
|
608
|
+
"MH",
|
|
609
|
+
"MK",
|
|
610
|
+
"ML",
|
|
611
|
+
"MM",
|
|
612
|
+
"MN",
|
|
613
|
+
"MO",
|
|
614
|
+
"MP",
|
|
615
|
+
"MQ",
|
|
616
|
+
"MR",
|
|
617
|
+
"MS",
|
|
618
|
+
"MT",
|
|
619
|
+
"MU",
|
|
620
|
+
"MV",
|
|
621
|
+
"MW",
|
|
622
|
+
"MX",
|
|
623
|
+
"MY",
|
|
624
|
+
"MZ",
|
|
625
|
+
"NA",
|
|
626
|
+
"NC",
|
|
627
|
+
"NE",
|
|
628
|
+
"NF",
|
|
629
|
+
"NG",
|
|
630
|
+
"NI",
|
|
631
|
+
"NL",
|
|
632
|
+
"NO",
|
|
633
|
+
"NP",
|
|
634
|
+
"NR",
|
|
635
|
+
"NU",
|
|
636
|
+
"NZ",
|
|
637
|
+
"OM",
|
|
638
|
+
"PA",
|
|
639
|
+
"PE",
|
|
640
|
+
"PF",
|
|
641
|
+
"PG",
|
|
642
|
+
"PH",
|
|
643
|
+
"PK",
|
|
644
|
+
"PL",
|
|
645
|
+
"PM",
|
|
646
|
+
"PN",
|
|
647
|
+
"PR",
|
|
648
|
+
"PS",
|
|
649
|
+
"PT",
|
|
650
|
+
"PW",
|
|
651
|
+
"PY",
|
|
652
|
+
"QA",
|
|
653
|
+
"RE",
|
|
654
|
+
"RO",
|
|
655
|
+
"RS",
|
|
656
|
+
"RU",
|
|
657
|
+
"RW",
|
|
658
|
+
"SA",
|
|
659
|
+
"SB",
|
|
660
|
+
"SC",
|
|
661
|
+
"SD",
|
|
662
|
+
"SE",
|
|
663
|
+
"SG",
|
|
664
|
+
"SH",
|
|
665
|
+
"SI",
|
|
666
|
+
"SJ",
|
|
667
|
+
"SK",
|
|
668
|
+
"SL",
|
|
669
|
+
"SM",
|
|
670
|
+
"SN",
|
|
671
|
+
"SO",
|
|
672
|
+
"SR",
|
|
673
|
+
"SS",
|
|
674
|
+
"ST",
|
|
675
|
+
"SV",
|
|
676
|
+
"SX",
|
|
677
|
+
"SY",
|
|
678
|
+
"SZ",
|
|
679
|
+
"TC",
|
|
680
|
+
"TD",
|
|
681
|
+
"TF",
|
|
682
|
+
"TG",
|
|
683
|
+
"TH",
|
|
684
|
+
"TJ",
|
|
685
|
+
"TK",
|
|
686
|
+
"TL",
|
|
687
|
+
"TM",
|
|
688
|
+
"TN",
|
|
689
|
+
"TO",
|
|
690
|
+
"TR",
|
|
691
|
+
"TT",
|
|
692
|
+
"TV",
|
|
693
|
+
"TW",
|
|
694
|
+
"TZ",
|
|
695
|
+
"UA",
|
|
696
|
+
"UG",
|
|
697
|
+
"US",
|
|
698
|
+
"UY",
|
|
699
|
+
"UZ",
|
|
700
|
+
"VA",
|
|
701
|
+
"VC",
|
|
702
|
+
"VE",
|
|
703
|
+
"VG",
|
|
704
|
+
"VI",
|
|
705
|
+
"VN",
|
|
706
|
+
"VU",
|
|
707
|
+
"WF",
|
|
708
|
+
"WS",
|
|
709
|
+
"XK",
|
|
710
|
+
"YE",
|
|
711
|
+
"YT",
|
|
712
|
+
"ZA",
|
|
713
|
+
"ZM",
|
|
714
|
+
"ZW"
|
|
715
|
+
].map((code) => ({ code, label: regionNames.of(code) })).sort((a, b) => a.label.localeCompare(b.label));
|
|
716
|
+
|
|
994
717
|
// src/deploymentsSlice/selectors.ts
|
|
718
|
+
var import_toolkit2 = require("@reduxjs/toolkit");
|
|
995
719
|
var getDeploymentsById = (state) => state.deployments.byId;
|
|
996
720
|
var getDeploymentsByStatus = (state) => state.deployments.byStatus;
|
|
997
721
|
var getSelectedDeploymentDeviceIds = (state) => state.deployments.selectedDeviceIds;
|
|
@@ -1065,7 +789,7 @@ var getDeviceIdentityAttributes = (0, import_toolkit3.createSelector)(
|
|
|
1065
789
|
);
|
|
1066
790
|
var getDeviceCountsByStatus = (0, import_toolkit3.createSelector)(
|
|
1067
791
|
[getDevicesByStatus],
|
|
1068
|
-
(byStatus) => Object.values(DEVICE_STATES).reduce((accu, state) => {
|
|
792
|
+
(byStatus) => Object.values(import_constants2.DEVICE_STATES).reduce((accu, state) => {
|
|
1069
793
|
accu[state] = byStatus[state].total || 0;
|
|
1070
794
|
return accu;
|
|
1071
795
|
}, {})
|
|
@@ -1077,7 +801,7 @@ var getSelectedGroupInfo = (0, import_toolkit3.createSelector)(
|
|
|
1077
801
|
let groupCount = acceptedDeviceTotal;
|
|
1078
802
|
let groupFilters = [];
|
|
1079
803
|
if (selectedGroup && groupsById[selectedGroup]) {
|
|
1080
|
-
groupCount = groupsById[selectedGroup].total;
|
|
804
|
+
groupCount = groupsById[selectedGroup].total || 0;
|
|
1081
805
|
groupFilters = groupsById[selectedGroup].filters || [];
|
|
1082
806
|
}
|
|
1083
807
|
return { groupCount, selectedGroup, groupFilters };
|
|
@@ -1088,13 +812,18 @@ var getLimitMaxed = (0, import_toolkit3.createSelector)(
|
|
|
1088
812
|
({ total: acceptedDevices = 0 }, deviceLimit) => Boolean(deviceLimit && deviceLimit <= acceptedDevices)
|
|
1089
813
|
);
|
|
1090
814
|
var getGroupsByIdWithoutUngrouped = (0, import_toolkit3.createSelector)([getGroupsById], ({ [UNGROUPED_GROUP.id]: ungrouped, ...groups }) => groups);
|
|
815
|
+
var getGroupData = (0, import_toolkit3.createSelector)([getGroupsByIdWithoutUngrouped], (groups) => {
|
|
816
|
+
const createdGroup = Object.keys(groups).length ? Object.keys(groups)[0] : void 0;
|
|
817
|
+
const hasDynamicGroups = Object.values(groups).some((group) => !!group.id);
|
|
818
|
+
return { createdGroup, hasDynamicGroups, groups };
|
|
819
|
+
});
|
|
1091
820
|
var getGroups = (0, import_toolkit3.createSelector)([getGroupsById], (groupsById) => {
|
|
1092
821
|
const groupNames = Object.keys(groupsById).sort();
|
|
1093
822
|
const groupedGroups = Object.entries(groupsById).sort((a, b) => a[0].localeCompare(b[0])).reduce(
|
|
1094
823
|
(accu, [groupname, group]) => {
|
|
1095
824
|
const name = groupname === UNGROUPED_GROUP.id ? UNGROUPED_GROUP.name : groupname;
|
|
1096
825
|
const groupItem = { ...group, groupId: name, name: groupname };
|
|
1097
|
-
if (group.filters
|
|
826
|
+
if ((group.filters ?? []).length > 0) {
|
|
1098
827
|
if (groupname !== UNGROUPED_GROUP.id) {
|
|
1099
828
|
accu.dynamic.push(groupItem);
|
|
1100
829
|
} else {
|
|
@@ -1137,12 +866,14 @@ var getOnboarding = (state) => state.onboarding;
|
|
|
1137
866
|
|
|
1138
867
|
// src/organizationSlice/selectors.ts
|
|
1139
868
|
var import_toolkit4 = require("@reduxjs/toolkit");
|
|
869
|
+
var import_dayjs = __toESM(require("dayjs"), 1);
|
|
870
|
+
var import_relativeTime = __toESM(require("dayjs/plugin/relativeTime"), 1);
|
|
1140
871
|
var getOrganization = (state) => state.organization.organization;
|
|
1141
872
|
var getExternalIntegrations = (state) => state.organization.externalDeviceIntegrations;
|
|
1142
873
|
var getAuditLog = (state) => state.organization.auditlog.events;
|
|
1143
874
|
var getAuditLogSelectionState = (state) => state.organization.auditlog.selectionState;
|
|
1144
875
|
var getWebhookEvents = (state) => state.organization.webhooks.events;
|
|
1145
|
-
var getWebhookEventTotal = (state) => state.organization.webhooks.
|
|
876
|
+
var getWebhookEventTotal = (state) => state.organization.webhooks.eventsTotal;
|
|
1146
877
|
var getDeviceTwinIntegrations = (0, import_toolkit4.createSelector)(
|
|
1147
878
|
[getExternalIntegrations],
|
|
1148
879
|
(integrations) => integrations.filter((integration) => integration.id && EXTERNAL_PROVIDER[integration.provider]?.deviceTwin)
|
|
@@ -1163,32 +894,39 @@ var getAuditLogEntry = (0, import_toolkit4.createSelector)([getAuditLog, getAudi
|
|
|
1163
894
|
const [eventAction, eventTime] = atob(selectedId).split("|");
|
|
1164
895
|
return events.find((item) => item.action === eventAction && item.time === eventTime);
|
|
1165
896
|
});
|
|
897
|
+
import_dayjs.default.extend(import_relativeTime.default);
|
|
898
|
+
var newPricingIntroduction = (0, import_dayjs.default)("2025-06-03T00:00");
|
|
899
|
+
var getHasCurrentPricing = (0, import_toolkit4.createSelector)(
|
|
900
|
+
[getOrganization],
|
|
901
|
+
({ id }) => !!id && (0, import_dayjs.default)(parseInt(id.substring(0, 8), 16) * 1e3) >= newPricingIntroduction
|
|
902
|
+
);
|
|
903
|
+
|
|
904
|
+
// src/releasesSlice/selectors.ts
|
|
905
|
+
var import_toolkit5 = require("@reduxjs/toolkit");
|
|
1166
906
|
|
|
1167
907
|
// src/utils.ts
|
|
1168
908
|
var import_helpers3 = require("@northern.tech/utils/helpers");
|
|
1169
909
|
var filterProcessors = {
|
|
1170
|
-
[DEVICE_FILTERING_OPTIONS.$gt.key]: (val) => Number(val) || val,
|
|
1171
|
-
[DEVICE_FILTERING_OPTIONS.$gte.key]: (val) => Number(val) || val,
|
|
1172
|
-
[DEVICE_FILTERING_OPTIONS.$lt.key]: (val) => Number(val) || val,
|
|
1173
|
-
[DEVICE_FILTERING_OPTIONS.$lte.key]: (val) => Number(val) || val,
|
|
1174
|
-
[DEVICE_FILTERING_OPTIONS.$ltne.key]: (val) => Number(val) || val,
|
|
1175
|
-
[DEVICE_FILTERING_OPTIONS.$in.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1176
|
-
[DEVICE_FILTERING_OPTIONS.$nin.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1177
|
-
[DEVICE_FILTERING_OPTIONS.$exists.key]: import_helpers3.yes,
|
|
1178
|
-
[DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false
|
|
910
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$gt.key]: (val) => Number(val) || val,
|
|
911
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$gte.key]: (val) => Number(val) || val,
|
|
912
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$lt.key]: (val) => Number(val) || val,
|
|
913
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$lte.key]: (val) => Number(val) || val,
|
|
914
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$ltne.key]: (val) => Number(val) || val,
|
|
915
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$in.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
916
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$nin.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
917
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$exists.key]: import_helpers3.yes,
|
|
918
|
+
[import_constants2.DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false
|
|
1179
919
|
};
|
|
1180
920
|
var filterAliases = {
|
|
1181
|
-
$nexists: { alias: DEVICE_FILTERING_OPTIONS.$exists.key, value: false }
|
|
1182
|
-
};
|
|
1183
|
-
var listItemMapper = (byId, ids, { defaultObject = {}, cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH }) => {
|
|
1184
|
-
return ids.slice(0, cutOffSize).reduce((accu, id) => {
|
|
1185
|
-
if (id && byId[id]) {
|
|
1186
|
-
accu.push({ ...defaultObject, ...byId[id] });
|
|
1187
|
-
}
|
|
1188
|
-
return accu;
|
|
1189
|
-
}, []);
|
|
921
|
+
$nexists: { alias: import_constants2.DEVICE_FILTERING_OPTIONS.$exists.key, value: false }
|
|
1190
922
|
};
|
|
1191
|
-
var
|
|
923
|
+
var listItemMapper = (byId, ids, { cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH, defaultObject = {} }) => ids.slice(0, cutOffSize).reduce((accu, id) => {
|
|
924
|
+
if (id && byId[id]) {
|
|
925
|
+
accu.push({ ...defaultObject, ...byId[id] });
|
|
926
|
+
}
|
|
927
|
+
return accu;
|
|
928
|
+
}, []);
|
|
929
|
+
var mergePermissions = (existingPermissions = { ...import_constants2.emptyUiPermissions }, addedPermissions) => Object.entries(existingPermissions).reduce(
|
|
1192
930
|
(accu, [key, value]) => {
|
|
1193
931
|
let values;
|
|
1194
932
|
if (!accu[key]) {
|
|
@@ -1212,44 +950,49 @@ var mapUserRolesToUiPermissions = (userRoles, roles) => userRoles.reduce(
|
|
|
1212
950
|
}
|
|
1213
951
|
return mergePermissions(accu, roles[roleId].uiPermissions);
|
|
1214
952
|
},
|
|
1215
|
-
{ ...emptyUiPermissions }
|
|
953
|
+
{ ...import_constants2.emptyUiPermissions }
|
|
1216
954
|
);
|
|
1217
955
|
var isDarkMode = (mode) => mode === DARK_MODE;
|
|
1218
956
|
|
|
1219
957
|
// src/releasesSlice/selectors.ts
|
|
1220
|
-
var import_toolkit5 = require("@reduxjs/toolkit");
|
|
1221
958
|
var getSelectedReleaseId = (state) => state.releases.selectedRelease;
|
|
1222
959
|
var getReleasesById = (state) => state.releases.byId;
|
|
1223
960
|
var getReleaseTags = (state) => state.releases.tags;
|
|
1224
961
|
var getReleaseListState = (state) => state.releases.releasesList;
|
|
1225
962
|
var getListedReleases = (state) => state.releases.releasesList.releaseIds;
|
|
1226
|
-
var
|
|
963
|
+
var releaseDefaults = {};
|
|
964
|
+
var getReleaseMappingDefaults = () => releaseDefaults;
|
|
1227
965
|
var getReleasesList = (0, import_toolkit5.createSelector)([getReleasesById, getListedReleases, getReleaseMappingDefaults], listItemMapper);
|
|
1228
966
|
var getReleaseTagsById = (0, import_toolkit5.createSelector)([getReleaseTags], (releaseTags) => releaseTags.reduce((accu, key) => ({ ...accu, [key]: key }), {}));
|
|
1229
967
|
var getHasReleases = (0, import_toolkit5.createSelector)(
|
|
1230
968
|
[getReleaseListState, getReleasesById],
|
|
1231
969
|
({ searchTotal, total }, byId) => !!(Object.keys(byId).length || total || searchTotal)
|
|
1232
970
|
);
|
|
1233
|
-
var getSelectedRelease = (0, import_toolkit5.createSelector)([getReleasesById, getSelectedReleaseId], (byId, id) => byId[id] ?? {});
|
|
971
|
+
var getSelectedRelease = (0, import_toolkit5.createSelector)([getReleasesById, getSelectedReleaseId], (byId, id) => byId[id || ""] ?? {});
|
|
972
|
+
var getSelectedReleases = (0, import_toolkit5.createSelector)([getReleaseListState, getReleasesList], ({ selection }, releases) => selection.map((index) => releases[index]));
|
|
1234
973
|
|
|
1235
974
|
// src/usersSlice/selectors.ts
|
|
1236
975
|
var import_toolkit6 = require("@reduxjs/toolkit");
|
|
976
|
+
var emptyObject = {};
|
|
1237
977
|
var getRolesById = (state) => state.users.rolesById;
|
|
1238
978
|
var getTooltipsById = (state) => state.users.tooltips.byId;
|
|
1239
979
|
var getGlobalSettings = (state) => state.users.globalSettings;
|
|
1240
980
|
var getCurrentUserId = (state) => state.users.currentUser;
|
|
1241
981
|
var getUsersById = (state) => state.users.byId;
|
|
1242
982
|
var getUsersList = (0, import_toolkit6.createSelector)([getUsersById], (usersById) => Object.values(usersById));
|
|
1243
|
-
var getCurrentUser = (0, import_toolkit6.createSelector)(
|
|
983
|
+
var getCurrentUser = (0, import_toolkit6.createSelector)(
|
|
984
|
+
[getUsersById, getCurrentUserId],
|
|
985
|
+
(usersById, userId) => userId ? usersById[userId] ?? emptyObject : emptyObject
|
|
986
|
+
);
|
|
1244
987
|
var getUserSettings = (state) => state.users.userSettings;
|
|
1245
988
|
var getSelectedDeviceAttribute = (0, import_toolkit6.createSelector)(
|
|
1246
989
|
[getUserSettings],
|
|
1247
990
|
({ columnSelection }) => columnSelection.map((attribute) => ({ attribute: attribute.key, scope: attribute.scope }))
|
|
1248
991
|
);
|
|
1249
992
|
var getIsDarkMode = (0, import_toolkit6.createSelector)([getUserSettings], ({ mode }) => isDarkMode(mode));
|
|
1250
|
-
var
|
|
993
|
+
var getReadAllHelptips = (0, import_toolkit6.createSelector)(
|
|
1251
994
|
[getTooltipsById],
|
|
1252
|
-
(tooltips) => Object.values(tooltips).
|
|
995
|
+
(tooltips) => Object.values(tooltips).every(({ readState }) => readState === READ_STATES.read)
|
|
1253
996
|
);
|
|
1254
997
|
var getTooltipsState = (0, import_toolkit6.createSelector)(
|
|
1255
998
|
[getTooltipsById, getUserSettings],
|
|
@@ -1263,7 +1006,7 @@ var getTooltipsState = (0, import_toolkit6.createSelector)(
|
|
|
1263
1006
|
);
|
|
1264
1007
|
var getHas2FA = (0, import_toolkit6.createSelector)(
|
|
1265
1008
|
[getCurrentUser],
|
|
1266
|
-
(currentUser) => currentUser.hasOwnProperty("tfa_status") && currentUser.tfa_status === twoFAStates.enabled
|
|
1009
|
+
(currentUser) => currentUser.hasOwnProperty("tfa_status") && currentUser.tfa_status === import_constants2.twoFAStates.enabled
|
|
1267
1010
|
);
|
|
1268
1011
|
var getIdAttribute = (0, import_toolkit6.createSelector)([getGlobalSettings], ({ id_attribute = { ...defaultIdAttribute } }) => id_attribute);
|
|
1269
1012
|
var getOfflineThresholdSettings = (0, import_toolkit6.createSelector)([getGlobalSettings], ({ offlineThreshold }) => ({
|
|
@@ -1279,37 +1022,34 @@ var getIsEnterprise = (0, import_toolkit7.createSelector)(
|
|
|
1279
1022
|
);
|
|
1280
1023
|
var getAttrsEndpoint = (0, import_toolkit7.createSelector)(
|
|
1281
1024
|
[getFeatures],
|
|
1282
|
-
({ hasReporting }) => hasReporting ? `${reportingApiUrl}/devices/search/attributes` : `${inventoryApiUrlV2}/filters/attributes`
|
|
1025
|
+
({ hasReporting }) => hasReporting ? `${import_constants2.reportingApiUrl}/devices/search/attributes` : `${import_constants2.inventoryApiUrlV2}/filters/attributes`
|
|
1283
1026
|
);
|
|
1284
1027
|
var getSearchEndpoint = (0, import_toolkit7.createSelector)(
|
|
1285
1028
|
[getFeatures],
|
|
1286
|
-
({ hasReporting }) => hasReporting ? `${reportingApiUrl}/devices/search` : `${inventoryApiUrlV2}/filters/search`
|
|
1287
|
-
);
|
|
1288
|
-
var getUserRoles = (0, import_toolkit7.createSelector)(
|
|
1289
|
-
[getCurrentUser, getRolesById, getIsEnterprise, getFeatures, getOrganization],
|
|
1290
|
-
(currentUser, rolesById2, isEnterprise, { isHosted, hasMultitenancy }, { plan = PLANS.os.id }) => {
|
|
1291
|
-
const isAdmin = currentUser.roles?.length ? currentUser.roles.some((role) => role === rolesByName.admin) : !(hasMultitenancy || isEnterprise || isHosted && plan !== PLANS.os.id);
|
|
1292
|
-
const uiPermissions = isAdmin ? mapUserRolesToUiPermissions([rolesByName.admin], rolesById2) : mapUserRolesToUiPermissions(currentUser.roles || [], rolesById2);
|
|
1293
|
-
return { isAdmin, uiPermissions };
|
|
1294
|
-
}
|
|
1029
|
+
({ hasReporting }) => hasReporting ? `${import_constants2.reportingApiUrl}/devices/search` : `${import_constants2.inventoryApiUrlV2}/filters/search`
|
|
1295
1030
|
);
|
|
1031
|
+
var getUserRoles = (0, import_toolkit7.createSelector)([getCurrentUser, getRolesById, getIsEnterprise], (currentUser, rolesById2, isEnterprise) => {
|
|
1032
|
+
const isAdmin = currentUser.roles?.length ? currentUser.roles.some((role) => role === import_constants2.rolesByName.admin) : !isEnterprise;
|
|
1033
|
+
const uiPermissions = isAdmin ? mapUserRolesToUiPermissions([import_constants2.rolesByName.admin], rolesById2) : mapUserRolesToUiPermissions(currentUser.roles || [], rolesById2);
|
|
1034
|
+
return { isAdmin, uiPermissions };
|
|
1035
|
+
});
|
|
1296
1036
|
var hasPermission = (thing, permission) => Object.values(thing).some((permissions) => permissions.includes(permission));
|
|
1297
1037
|
var getUserCapabilities = (0, import_toolkit7.createSelector)([getUserRoles, getIsServiceProvider], ({ uiPermissions }, isServiceProvider) => {
|
|
1298
|
-
const canManageReleases = hasPermission(uiPermissions.releases, uiPermissionsById.manage.value);
|
|
1299
|
-
const canReadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.read.value);
|
|
1300
|
-
const canUploadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.upload.value);
|
|
1301
|
-
const canAuditlog = uiPermissions.auditlog.includes(uiPermissionsById.read.value);
|
|
1302
|
-
const canReadUsers = uiPermissions.userManagement.includes(uiPermissionsById.read.value);
|
|
1303
|
-
const canManageUsers = uiPermissions.userManagement.includes(uiPermissionsById.manage.value);
|
|
1304
|
-
const canReadDevices = hasPermission(uiPermissions.groups, uiPermissionsById.read.value);
|
|
1038
|
+
const canManageReleases = hasPermission(uiPermissions.releases, import_constants2.uiPermissionsById.manage.value);
|
|
1039
|
+
const canReadReleases = canManageReleases || hasPermission(uiPermissions.releases, import_constants2.uiPermissionsById.read.value);
|
|
1040
|
+
const canUploadReleases = canManageReleases || hasPermission(uiPermissions.releases, import_constants2.uiPermissionsById.upload.value);
|
|
1041
|
+
const canAuditlog = uiPermissions.auditlog.includes(import_constants2.uiPermissionsById.read.value);
|
|
1042
|
+
const canReadUsers = uiPermissions.userManagement.includes(import_constants2.uiPermissionsById.read.value);
|
|
1043
|
+
const canManageUsers = uiPermissions.userManagement.includes(import_constants2.uiPermissionsById.manage.value);
|
|
1044
|
+
const canReadDevices = hasPermission(uiPermissions.groups, import_constants2.uiPermissionsById.read.value);
|
|
1305
1045
|
const canWriteDevices = Object.values(uiPermissions.groups).some(
|
|
1306
|
-
(groupPermissions) => groupPermissions.includes(uiPermissionsById.read.value) && groupPermissions.length > 1
|
|
1046
|
+
(groupPermissions) => groupPermissions.includes(import_constants2.uiPermissionsById.read.value) && groupPermissions.length > 1
|
|
1307
1047
|
);
|
|
1308
|
-
const canTroubleshoot = hasPermission(uiPermissions.groups, uiPermissionsById.connect.value);
|
|
1309
|
-
const canManageDevices = hasPermission(uiPermissions.groups, uiPermissionsById.manage.value);
|
|
1310
|
-
const canConfigure = hasPermission(uiPermissions.groups, uiPermissionsById.configure.value);
|
|
1311
|
-
const canDeploy = uiPermissions.deployments.includes(uiPermissionsById.deploy.value) || hasPermission(uiPermissions.groups, uiPermissionsById.deploy.value);
|
|
1312
|
-
const canReadDeployments = uiPermissions.deployments.includes(uiPermissionsById.read.value);
|
|
1048
|
+
const canTroubleshoot = hasPermission(uiPermissions.groups, import_constants2.uiPermissionsById.connect.value);
|
|
1049
|
+
const canManageDevices = hasPermission(uiPermissions.groups, import_constants2.uiPermissionsById.manage.value);
|
|
1050
|
+
const canConfigure = hasPermission(uiPermissions.groups, import_constants2.uiPermissionsById.configure.value);
|
|
1051
|
+
const canDeploy = uiPermissions.deployments.includes(import_constants2.uiPermissionsById.deploy.value) || hasPermission(uiPermissions.groups, import_constants2.uiPermissionsById.deploy.value);
|
|
1052
|
+
const canReadDeployments = uiPermissions.deployments.includes(import_constants2.uiPermissionsById.read.value);
|
|
1313
1053
|
return {
|
|
1314
1054
|
canAuditlog,
|
|
1315
1055
|
canConfigure,
|
|
@@ -1360,11 +1100,11 @@ var getTenantCapabilities = (0, import_toolkit7.createSelector)(
|
|
|
1360
1100
|
var getFilterAttributes = (0, import_toolkit7.createSelector)(
|
|
1361
1101
|
[getGlobalSettings, getFilteringAttributes],
|
|
1362
1102
|
({ previousFilters }, { identityAttributes, inventoryAttributes, systemAttributes, tagAttributes }) => {
|
|
1363
|
-
const deviceNameAttribute = { key: "name", value: "Name", scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 1 };
|
|
1364
|
-
const deviceIdAttribute = { key: "id", value: "Device ID", scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 };
|
|
1365
|
-
const checkInAttribute = { key: "check_in_time", value: "Latest activity", scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPES.system, priority: 4 };
|
|
1103
|
+
const deviceNameAttribute = { key: "name", value: "Name", scope: import_constants2.ATTRIBUTE_SCOPES.tags, category: import_constants2.ATTRIBUTE_SCOPES.tags, priority: 1 };
|
|
1104
|
+
const deviceIdAttribute = { key: "id", value: "Device ID", scope: import_constants2.ATTRIBUTE_SCOPES.identity, category: import_constants2.ATTRIBUTE_SCOPES.identity, priority: 1 };
|
|
1105
|
+
const checkInAttribute = { key: "check_in_time", value: "Latest activity", scope: import_constants2.ATTRIBUTE_SCOPES.system, category: import_constants2.ATTRIBUTE_SCOPES.system, priority: 4 };
|
|
1366
1106
|
const updateAttribute = { ...checkInAttribute, key: "updated_ts", value: "Last inventory update" };
|
|
1367
|
-
const firstRequestAttribute = { key: "created_ts", value: "First request", scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPES.system, priority: 4 };
|
|
1107
|
+
const firstRequestAttribute = { key: "created_ts", value: "First request", scope: import_constants2.ATTRIBUTE_SCOPES.system, category: import_constants2.ATTRIBUTE_SCOPES.system, priority: 4 };
|
|
1368
1108
|
const attributes = [
|
|
1369
1109
|
...previousFilters.map((item) => ({
|
|
1370
1110
|
...item,
|
|
@@ -1374,13 +1114,13 @@ var getFilterAttributes = (0, import_toolkit7.createSelector)(
|
|
|
1374
1114
|
})),
|
|
1375
1115
|
deviceNameAttribute,
|
|
1376
1116
|
deviceIdAttribute,
|
|
1377
|
-
...identityAttributes.map((item) => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 })),
|
|
1378
|
-
...inventoryAttributes.map((item) => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.inventory, category: ATTRIBUTE_SCOPES.inventory, priority: 2 })),
|
|
1379
|
-
...tagAttributes.map((item) => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 3 })),
|
|
1117
|
+
...identityAttributes.map((item) => ({ key: item, value: item, scope: import_constants2.ATTRIBUTE_SCOPES.identity, category: import_constants2.ATTRIBUTE_SCOPES.identity, priority: 1 })),
|
|
1118
|
+
...inventoryAttributes.map((item) => ({ key: item, value: item, scope: import_constants2.ATTRIBUTE_SCOPES.inventory, category: import_constants2.ATTRIBUTE_SCOPES.inventory, priority: 2 })),
|
|
1119
|
+
...tagAttributes.map((item) => ({ key: item, value: item, scope: import_constants2.ATTRIBUTE_SCOPES.tags, category: import_constants2.ATTRIBUTE_SCOPES.tags, priority: 3 })),
|
|
1380
1120
|
checkInAttribute,
|
|
1381
1121
|
updateAttribute,
|
|
1382
1122
|
firstRequestAttribute,
|
|
1383
|
-
...systemAttributes.map((item) => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPES.system, priority: 4 }))
|
|
1123
|
+
...systemAttributes.map((item) => ({ key: item, value: item, scope: import_constants2.ATTRIBUTE_SCOPES.system, category: import_constants2.ATTRIBUTE_SCOPES.system, priority: 4 }))
|
|
1384
1124
|
];
|
|
1385
1125
|
return (0, import_helpers4.attributeDuplicateFilter)(attributes, "key");
|
|
1386
1126
|
}
|
|
@@ -1422,7 +1162,7 @@ var getSelectedDeploymentData = (0, import_toolkit7.createSelector)(
|
|
|
1422
1162
|
);
|
|
1423
1163
|
var getAvailableIssueOptionsByType = (0, import_toolkit7.createSelector)(
|
|
1424
1164
|
[getFeatures, getTenantCapabilities, getIssueCountsByType],
|
|
1425
|
-
({ hasReporting }, { hasFullFiltering, hasMonitor }, issueCounts) => Object.values(DEVICE_ISSUE_OPTIONS).reduce((accu, { isCategory, key, needsFullFiltering, needsMonitor, needsReporting, title }) => {
|
|
1165
|
+
({ hasReporting }, { hasFullFiltering, hasMonitor }, issueCounts) => Object.values(import_constants2.DEVICE_ISSUE_OPTIONS).reduce((accu, { isCategory, key, needsFullFiltering, needsMonitor, needsReporting, title }) => {
|
|
1426
1166
|
if (isCategory || needsReporting && !hasReporting || needsFullFiltering && !hasFullFiltering || needsMonitor && !hasMonitor) {
|
|
1427
1167
|
return accu;
|
|
1428
1168
|
}
|
|
@@ -1430,14 +1170,11 @@ var getAvailableIssueOptionsByType = (0, import_toolkit7.createSelector)(
|
|
|
1430
1170
|
return accu;
|
|
1431
1171
|
}, {})
|
|
1432
1172
|
);
|
|
1433
|
-
var getGroupNames = (0, import_toolkit7.createSelector)([getGroupsById, getUserRoles
|
|
1173
|
+
var getGroupNames = (0, import_toolkit7.createSelector)([getGroupsById, getUserRoles], (groupsById, { uiPermissions }) => {
|
|
1434
1174
|
const { [UNGROUPED_GROUP.id]: ungrouped, ...groups } = groupsById;
|
|
1435
|
-
if (staticOnly) {
|
|
1436
|
-
return Object.keys(uiPermissions.groups).sort();
|
|
1437
|
-
}
|
|
1438
1175
|
return Object.keys(
|
|
1439
1176
|
Object.entries(groups).reduce((accu, [groupName, group]) => {
|
|
1440
|
-
if (group.filterId || uiPermissions.groups[ALL_DEVICES]) {
|
|
1177
|
+
if (group.filterId || uiPermissions.groups[import_constants2.ALL_DEVICES]) {
|
|
1441
1178
|
accu[groupName] = group;
|
|
1442
1179
|
}
|
|
1443
1180
|
return accu;
|
|
@@ -1446,9 +1183,7 @@ var getGroupNames = (0, import_toolkit7.createSelector)([getGroupsById, getUserR
|
|
|
1446
1183
|
});
|
|
1447
1184
|
var getDeviceReportsForUser = (0, import_toolkit7.createSelector)(
|
|
1448
1185
|
[getUserSettings, getCurrentUser, getGlobalSettings, getDevicesById],
|
|
1449
|
-
({ reports }, { id: currentUserId }, globalSettings, devicesById) => {
|
|
1450
|
-
return reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : []);
|
|
1451
|
-
}
|
|
1186
|
+
({ reports }, { id: currentUserId }, globalSettings, devicesById) => reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : [])
|
|
1452
1187
|
);
|
|
1453
1188
|
var listTypeDeviceIdMap = {
|
|
1454
1189
|
deviceList: getListedDevices,
|
|
@@ -1472,14 +1207,14 @@ var getAuditlogDevice = (0, import_toolkit7.createSelector)([getAuditLogEntry, g
|
|
|
1472
1207
|
var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, getRolesList], ({ service_provider }, roles) => {
|
|
1473
1208
|
if (service_provider) {
|
|
1474
1209
|
return roles.reduce((accu, role) => {
|
|
1475
|
-
if (rolesById[role.value]) {
|
|
1210
|
+
if (import_constants2.rolesById[role.value]) {
|
|
1476
1211
|
return accu;
|
|
1477
1212
|
}
|
|
1478
1213
|
accu.push(role);
|
|
1479
1214
|
return accu;
|
|
1480
|
-
}, Object.values(serviceProviderRolesById));
|
|
1215
|
+
}, Object.values(import_constants2.serviceProviderRolesById));
|
|
1481
1216
|
}
|
|
1482
|
-
return Object.keys(rolesById).reverse().reduce((accu, key) => {
|
|
1217
|
+
return Object.keys(import_constants2.rolesById).reverse().reduce((accu, key) => {
|
|
1483
1218
|
const index = accu.findIndex(({ value }) => value === key);
|
|
1484
1219
|
accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];
|
|
1485
1220
|
return accu;
|