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