@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
|
@@ -38,22 +38,18 @@ __export(thunks_exports, {
|
|
|
38
38
|
});
|
|
39
39
|
module.exports = __toCommonJS(thunks_exports);
|
|
40
40
|
|
|
41
|
+
// src/monitorSlice/index.ts
|
|
42
|
+
var import_toolkit = require("@reduxjs/toolkit");
|
|
43
|
+
|
|
44
|
+
// src/constants.ts
|
|
45
|
+
var import_constants3 = require("@northern.tech/utils/constants");
|
|
46
|
+
|
|
41
47
|
// src/appSlice/constants.ts
|
|
42
48
|
var import_icons_material = require("@mui/icons-material");
|
|
43
49
|
var startingDeviceCount = {
|
|
44
50
|
os: "for first 50 devices",
|
|
45
51
|
professional: "for first 250 devices"
|
|
46
52
|
};
|
|
47
|
-
var apiRoot = "/api/management";
|
|
48
|
-
var apiUrl = {
|
|
49
|
-
v1: `${apiRoot}/v1`,
|
|
50
|
-
v2: `${apiRoot}/v2`
|
|
51
|
-
};
|
|
52
|
-
var headerNames = {
|
|
53
|
-
link: "link",
|
|
54
|
-
location: "location",
|
|
55
|
-
total: "x-total-count"
|
|
56
|
-
};
|
|
57
53
|
var chartTypes = {
|
|
58
54
|
bar: { key: "bar", Icon: import_icons_material.BarChart },
|
|
59
55
|
pie: { key: "pie", Icon: import_icons_material.PieChartOutline }
|
|
@@ -65,28 +61,30 @@ var PLANS = {
|
|
|
65
61
|
os: {
|
|
66
62
|
id: "os",
|
|
67
63
|
name: "Basic",
|
|
64
|
+
minimalDeviceCount: 50,
|
|
68
65
|
offer: true,
|
|
69
|
-
price: "$
|
|
66
|
+
price: "$34 / month",
|
|
70
67
|
deviceCount: startingDeviceCount.os,
|
|
71
|
-
|
|
72
|
-
price2: "for first 6 months;\n$29/month thereafter",
|
|
68
|
+
description: "The core features of Mender. To continue using Enterprise Trial features\u2014like Delta updates, scheduled deployments, phased rollouts, device filtering, dynamic groups, RBAC, audit logs, and more\u2014please upgrade to a higher plan.",
|
|
73
69
|
features: ["Access to core features of Mender", "Basic support"]
|
|
74
70
|
},
|
|
75
71
|
professional: {
|
|
76
72
|
id: "professional",
|
|
77
73
|
name: "Professional",
|
|
74
|
+
minimalDeviceCount: 250,
|
|
78
75
|
offer: true,
|
|
79
|
-
price: "$
|
|
76
|
+
price: "$291 / month",
|
|
80
77
|
deviceCount: startingDeviceCount.professional,
|
|
81
|
-
|
|
82
|
-
price2: "for first 6 months;\n$249/month thereafter",
|
|
78
|
+
description: "Everything in Basic, plus enhanced update management and automation features.",
|
|
83
79
|
features: ["Advanced OTA features", "Higher priority support"]
|
|
84
80
|
},
|
|
85
81
|
enterprise: {
|
|
86
82
|
id: "enterprise",
|
|
87
83
|
name: "Enterprise",
|
|
84
|
+
minimalDeviceCount: 1e3,
|
|
88
85
|
price: "Custom pricing",
|
|
89
86
|
deviceCount: "Unlimited devices",
|
|
87
|
+
description: "Every advanced feature of Mender, tailored for complex and large-scale deployments. Not available as a monthly subscription \u2014 ask us for a quote.",
|
|
90
88
|
features: ["All Mender features", "Advanced security features", "SLA-backed support"]
|
|
91
89
|
}
|
|
92
90
|
};
|
|
@@ -106,21 +104,6 @@ var ADDONS = {
|
|
|
106
104
|
},
|
|
107
105
|
eligible: ["os", "professional", "enterprise"]
|
|
108
106
|
},
|
|
109
|
-
troubleshoot: {
|
|
110
|
-
id: "troubleshoot",
|
|
111
|
-
title: "Troubleshoot",
|
|
112
|
-
description: "Expand your plan with device troubleshooting features",
|
|
113
|
-
needs: ["hasDeviceConnect"],
|
|
114
|
-
os: {
|
|
115
|
-
price: "$27/month",
|
|
116
|
-
deviceCount: startingDeviceCount.os
|
|
117
|
-
},
|
|
118
|
-
professional: {
|
|
119
|
-
price: "$72/month",
|
|
120
|
-
deviceCount: startingDeviceCount.professional
|
|
121
|
-
},
|
|
122
|
-
eligible: ["os", "professional", "enterprise"]
|
|
123
|
-
},
|
|
124
107
|
monitor: {
|
|
125
108
|
id: "monitor",
|
|
126
109
|
title: "Monitor",
|
|
@@ -135,6 +118,21 @@ var ADDONS = {
|
|
|
135
118
|
deviceCount: startingDeviceCount.professional
|
|
136
119
|
},
|
|
137
120
|
eligible: ["professional", "enterprise"]
|
|
121
|
+
},
|
|
122
|
+
troubleshoot: {
|
|
123
|
+
id: "troubleshoot",
|
|
124
|
+
title: "Troubleshoot",
|
|
125
|
+
description: "Expand your plan with device troubleshooting features",
|
|
126
|
+
needs: ["hasDeviceConnect"],
|
|
127
|
+
os: {
|
|
128
|
+
price: "$27/month",
|
|
129
|
+
deviceCount: startingDeviceCount.os
|
|
130
|
+
},
|
|
131
|
+
professional: {
|
|
132
|
+
price: "$72/month",
|
|
133
|
+
deviceCount: startingDeviceCount.professional
|
|
134
|
+
},
|
|
135
|
+
eligible: ["os", "professional", "enterprise"]
|
|
138
136
|
}
|
|
139
137
|
};
|
|
140
138
|
var BENEFITS = {
|
|
@@ -175,139 +173,15 @@ var DARK_MODE = "dark";
|
|
|
175
173
|
|
|
176
174
|
// src/commonConstants.tsx
|
|
177
175
|
var import_js = require("@mdi/js");
|
|
176
|
+
var import_MenderTypes = require("@northern.tech/types/MenderTypes");
|
|
178
177
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
179
|
-
var DEVICE_LIST_DEFAULTS = {
|
|
180
|
-
page: 1,
|
|
181
|
-
perPage: 20
|
|
182
|
-
};
|
|
183
178
|
var timeUnits = {
|
|
184
179
|
days: "days",
|
|
185
180
|
minutes: "minutes",
|
|
186
181
|
hours: "hours"
|
|
187
182
|
};
|
|
188
|
-
var ALL_DEVICES = "All devices";
|
|
189
183
|
var UNGROUPED_GROUP = { id: "*|=ungrouped=|*", name: "Unassigned" };
|
|
190
184
|
var DEVICE_LIST_MAXIMUM_LENGTH = 50;
|
|
191
|
-
var DEVICE_FILTERING_OPTIONS = {
|
|
192
|
-
$eq: { key: "$eq", title: "equals", shortform: "=" },
|
|
193
|
-
$ne: { key: "$ne", title: "not equal", shortform: "!=" },
|
|
194
|
-
$gt: {
|
|
195
|
-
key: "$gt",
|
|
196
|
-
title: ">",
|
|
197
|
-
shortform: ">",
|
|
198
|
-
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.'
|
|
199
|
-
},
|
|
200
|
-
$gte: {
|
|
201
|
-
title: ">=",
|
|
202
|
-
shortform: ">=",
|
|
203
|
-
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.'
|
|
204
|
-
},
|
|
205
|
-
$lt: {
|
|
206
|
-
key: "$lt",
|
|
207
|
-
title: "<",
|
|
208
|
-
shortform: "<",
|
|
209
|
-
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.'
|
|
210
|
-
},
|
|
211
|
-
$lte: {
|
|
212
|
-
title: "<=",
|
|
213
|
-
shortform: "<=",
|
|
214
|
-
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.'
|
|
215
|
-
},
|
|
216
|
-
$ltne: {
|
|
217
|
-
key: "$ltne",
|
|
218
|
-
title: "$ltne",
|
|
219
|
-
shortform: "ltne",
|
|
220
|
-
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.'
|
|
221
|
-
},
|
|
222
|
-
$in: {
|
|
223
|
-
key: "$in",
|
|
224
|
-
title: "in",
|
|
225
|
-
shortform: "in",
|
|
226
|
-
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.'
|
|
227
|
-
},
|
|
228
|
-
$nin: {
|
|
229
|
-
key: "$nin",
|
|
230
|
-
title: "not in",
|
|
231
|
-
shortform: "not in",
|
|
232
|
-
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.`
|
|
233
|
-
},
|
|
234
|
-
$exists: {
|
|
235
|
-
key: "$exists",
|
|
236
|
-
title: "exists",
|
|
237
|
-
shortform: "exists",
|
|
238
|
-
value: true,
|
|
239
|
-
help: `The "exists" operator matches if the selected field's value has a value. No value needs to be provided for this operator.`
|
|
240
|
-
},
|
|
241
|
-
$nexists: {
|
|
242
|
-
key: "$nexists",
|
|
243
|
-
title: `doesn't exist`,
|
|
244
|
-
shortform: `doesn't exist`,
|
|
245
|
-
value: true,
|
|
246
|
-
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.`
|
|
247
|
-
},
|
|
248
|
-
$regex: {
|
|
249
|
-
key: "$regex",
|
|
250
|
-
title: `matches regular expression`,
|
|
251
|
-
shortform: `matches`,
|
|
252
|
-
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.`
|
|
253
|
-
}
|
|
254
|
-
};
|
|
255
|
-
var DEVICE_ISSUE_OPTIONS = {
|
|
256
|
-
issues: {
|
|
257
|
-
isCategory: true,
|
|
258
|
-
key: "issues",
|
|
259
|
-
title: "Devices with issues",
|
|
260
|
-
filterRule: {}
|
|
261
|
-
},
|
|
262
|
-
offline: {
|
|
263
|
-
issueCategory: "issues",
|
|
264
|
-
key: "offline",
|
|
265
|
-
needsFullFiltering: true,
|
|
266
|
-
needsMonitor: false,
|
|
267
|
-
needsReporting: false,
|
|
268
|
-
filterRule: {
|
|
269
|
-
scope: "system",
|
|
270
|
-
key: "check_in_time",
|
|
271
|
-
operator: DEVICE_FILTERING_OPTIONS.$ltne.key,
|
|
272
|
-
value: ({ offlineThreshold }) => offlineThreshold
|
|
273
|
-
},
|
|
274
|
-
title: "Offline devices"
|
|
275
|
-
},
|
|
276
|
-
failedLastUpdate: {
|
|
277
|
-
issueCategory: "issues",
|
|
278
|
-
key: "failedLastUpdate",
|
|
279
|
-
needsFullFiltering: false,
|
|
280
|
-
needsMonitor: false,
|
|
281
|
-
needsReporting: true,
|
|
282
|
-
filterRule: { scope: "monitor", key: "failed_last_update", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: true },
|
|
283
|
-
title: "Deployment failed"
|
|
284
|
-
},
|
|
285
|
-
monitoring: {
|
|
286
|
-
issueCategory: "issues",
|
|
287
|
-
key: "monitoring",
|
|
288
|
-
needsFullFiltering: false,
|
|
289
|
-
needsMonitor: true,
|
|
290
|
-
needsReporting: false,
|
|
291
|
-
filterRule: { scope: "monitor", key: "alerts", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: true },
|
|
292
|
-
title: "Monitoring alert"
|
|
293
|
-
},
|
|
294
|
-
authRequests: {
|
|
295
|
-
key: "authRequests",
|
|
296
|
-
needsFullFiltering: false,
|
|
297
|
-
needsMonitor: false,
|
|
298
|
-
needsReporting: true,
|
|
299
|
-
filterRule: { scope: "monitor", key: "auth_requests", operator: DEVICE_FILTERING_OPTIONS.$gt.key, value: 1 },
|
|
300
|
-
title: "Devices with new authentication requests"
|
|
301
|
-
},
|
|
302
|
-
gatewayDevices: {
|
|
303
|
-
key: "gatewayDevices",
|
|
304
|
-
needsFullFiltering: false,
|
|
305
|
-
needsMonitor: false,
|
|
306
|
-
needsReporting: true,
|
|
307
|
-
filterRule: { scope: "inventory", key: "mender_is_gateway", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: "true" },
|
|
308
|
-
title: "Gateway devices"
|
|
309
|
-
}
|
|
310
|
-
};
|
|
311
185
|
var oneSecond = 1e3;
|
|
312
186
|
var TIMEOUTS = {
|
|
313
187
|
debounceDefault: 700,
|
|
@@ -320,23 +194,12 @@ var TIMEOUTS = {
|
|
|
320
194
|
refreshDefault: 10 * oneSecond,
|
|
321
195
|
refreshLong: 60 * oneSecond
|
|
322
196
|
};
|
|
323
|
-
var SORTING_OPTIONS = {
|
|
324
|
-
asc: "asc",
|
|
325
|
-
desc: "desc"
|
|
326
|
-
};
|
|
327
197
|
var DEVICE_ONLINE_CUTOFF = { interval: 1, intervalName: timeUnits.days };
|
|
328
|
-
var
|
|
329
|
-
inventory: "inventory",
|
|
330
|
-
identity: "identity",
|
|
331
|
-
monitor: "monitor",
|
|
332
|
-
system: "system",
|
|
333
|
-
tags: "tags"
|
|
334
|
-
};
|
|
335
|
-
var defaultIdAttribute = Object.freeze({ attribute: "id", scope: ATTRIBUTE_SCOPES.identity });
|
|
198
|
+
var defaultIdAttribute = Object.freeze({ attribute: "id", scope: import_constants3.ATTRIBUTE_SCOPES.identity });
|
|
336
199
|
var credentialTypes = {
|
|
337
|
-
aws:
|
|
338
|
-
http:
|
|
339
|
-
sas:
|
|
200
|
+
aws: import_MenderTypes.Credentials.type.AWS,
|
|
201
|
+
http: import_MenderTypes.Credentials.type.HTTP,
|
|
202
|
+
sas: import_MenderTypes.Credentials.type.SAS,
|
|
340
203
|
x509: "x509"
|
|
341
204
|
};
|
|
342
205
|
var EXTERNAL_PROVIDER = {
|
|
@@ -376,31 +239,277 @@ var EXTERNAL_PROVIDER = {
|
|
|
376
239
|
webhook: {
|
|
377
240
|
credentialsType: credentialTypes.http,
|
|
378
241
|
deviceTwin: false,
|
|
242
|
+
twinTitle: "",
|
|
379
243
|
// disable the webhook provider here, since it is treated different than other integrations, with a custom configuration & management view, etc.
|
|
380
244
|
enabled: false,
|
|
381
245
|
provider: "webhook"
|
|
382
246
|
}
|
|
383
247
|
};
|
|
384
|
-
var
|
|
385
|
-
var emptyUiPermissions = Object.freeze({
|
|
386
|
-
auditlog: [],
|
|
387
|
-
deployments: [],
|
|
388
|
-
groups: Object.freeze({}),
|
|
389
|
-
releases: Object.freeze({}),
|
|
390
|
-
tenantManagement: [],
|
|
391
|
-
userManagement: []
|
|
392
|
-
});
|
|
393
|
-
var emptyRole = Object.freeze({
|
|
394
|
-
name: void 0,
|
|
248
|
+
var emptyWebhook = {
|
|
395
249
|
description: "",
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
250
|
+
provider: import_MenderTypes.Integration.provider.WEBHOOK,
|
|
251
|
+
credentials: {
|
|
252
|
+
type: EXTERNAL_PROVIDER.webhook.credentialsType,
|
|
253
|
+
[EXTERNAL_PROVIDER.webhook.credentialsType]: {
|
|
254
|
+
secret: "",
|
|
255
|
+
url: ""
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
var regionNames = new Intl.DisplayNames(["en"], { type: "region" });
|
|
260
|
+
var countries = [
|
|
261
|
+
"AD",
|
|
262
|
+
"AE",
|
|
263
|
+
"AF",
|
|
264
|
+
"AG",
|
|
265
|
+
"AI",
|
|
266
|
+
"AL",
|
|
267
|
+
"AM",
|
|
268
|
+
"AO",
|
|
269
|
+
"AQ",
|
|
270
|
+
"AR",
|
|
271
|
+
"AS",
|
|
272
|
+
"AT",
|
|
273
|
+
"AU",
|
|
274
|
+
"AW",
|
|
275
|
+
"AX",
|
|
276
|
+
"AZ",
|
|
277
|
+
"BA",
|
|
278
|
+
"BB",
|
|
279
|
+
"BD",
|
|
280
|
+
"BE",
|
|
281
|
+
"BF",
|
|
282
|
+
"BG",
|
|
283
|
+
"BH",
|
|
284
|
+
"BI",
|
|
285
|
+
"BJ",
|
|
286
|
+
"BL",
|
|
287
|
+
"BM",
|
|
288
|
+
"BN",
|
|
289
|
+
"BO",
|
|
290
|
+
"BR",
|
|
291
|
+
"BS",
|
|
292
|
+
"BT",
|
|
293
|
+
"BV",
|
|
294
|
+
"BW",
|
|
295
|
+
"BY",
|
|
296
|
+
"BZ",
|
|
297
|
+
"CA",
|
|
298
|
+
"CC",
|
|
299
|
+
"CD",
|
|
300
|
+
"CF",
|
|
301
|
+
"CG",
|
|
302
|
+
"CH",
|
|
303
|
+
"CI",
|
|
304
|
+
"CK",
|
|
305
|
+
"CL",
|
|
306
|
+
"CM",
|
|
307
|
+
"CN",
|
|
308
|
+
"CO",
|
|
309
|
+
"CR",
|
|
310
|
+
"CU",
|
|
311
|
+
"CV",
|
|
312
|
+
"CW",
|
|
313
|
+
"CX",
|
|
314
|
+
"CY",
|
|
315
|
+
"CZ",
|
|
316
|
+
"DE",
|
|
317
|
+
"DJ",
|
|
318
|
+
"DK",
|
|
319
|
+
"DM",
|
|
320
|
+
"DO",
|
|
321
|
+
"DZ",
|
|
322
|
+
"EC",
|
|
323
|
+
"EE",
|
|
324
|
+
"EG",
|
|
325
|
+
"EH",
|
|
326
|
+
"ER",
|
|
327
|
+
"ES",
|
|
328
|
+
"ET",
|
|
329
|
+
"FI",
|
|
330
|
+
"FJ",
|
|
331
|
+
"FK",
|
|
332
|
+
"FM",
|
|
333
|
+
"FO",
|
|
334
|
+
"FR",
|
|
335
|
+
"GA",
|
|
336
|
+
"GB",
|
|
337
|
+
"GD",
|
|
338
|
+
"GE",
|
|
339
|
+
"GF",
|
|
340
|
+
"GG",
|
|
341
|
+
"GH",
|
|
342
|
+
"GI",
|
|
343
|
+
"GL",
|
|
344
|
+
"GM",
|
|
345
|
+
"GN",
|
|
346
|
+
"GP",
|
|
347
|
+
"GQ",
|
|
348
|
+
"GR",
|
|
349
|
+
"GS",
|
|
350
|
+
"GT",
|
|
351
|
+
"GU",
|
|
352
|
+
"GW",
|
|
353
|
+
"GY",
|
|
354
|
+
"HK",
|
|
355
|
+
"HM",
|
|
356
|
+
"HN",
|
|
357
|
+
"HR",
|
|
358
|
+
"HT",
|
|
359
|
+
"HU",
|
|
360
|
+
"ID",
|
|
361
|
+
"IE",
|
|
362
|
+
"IL",
|
|
363
|
+
"IM",
|
|
364
|
+
"IN",
|
|
365
|
+
"IO",
|
|
366
|
+
"IQ",
|
|
367
|
+
"IR",
|
|
368
|
+
"IS",
|
|
369
|
+
"IT",
|
|
370
|
+
"JE",
|
|
371
|
+
"JM",
|
|
372
|
+
"JO",
|
|
373
|
+
"JP",
|
|
374
|
+
"KE",
|
|
375
|
+
"KG",
|
|
376
|
+
"KH",
|
|
377
|
+
"KI",
|
|
378
|
+
"KM",
|
|
379
|
+
"KN",
|
|
380
|
+
"KP",
|
|
381
|
+
"KR",
|
|
382
|
+
"KW",
|
|
383
|
+
"KY",
|
|
384
|
+
"KZ",
|
|
385
|
+
"LA",
|
|
386
|
+
"LB",
|
|
387
|
+
"LC",
|
|
388
|
+
"LI",
|
|
389
|
+
"LK",
|
|
390
|
+
"LR",
|
|
391
|
+
"LS",
|
|
392
|
+
"LT",
|
|
393
|
+
"LU",
|
|
394
|
+
"LV",
|
|
395
|
+
"LY",
|
|
396
|
+
"MA",
|
|
397
|
+
"MC",
|
|
398
|
+
"MD",
|
|
399
|
+
"ME",
|
|
400
|
+
"MF",
|
|
401
|
+
"MG",
|
|
402
|
+
"MH",
|
|
403
|
+
"MK",
|
|
404
|
+
"ML",
|
|
405
|
+
"MM",
|
|
406
|
+
"MN",
|
|
407
|
+
"MO",
|
|
408
|
+
"MP",
|
|
409
|
+
"MQ",
|
|
410
|
+
"MR",
|
|
411
|
+
"MS",
|
|
412
|
+
"MT",
|
|
413
|
+
"MU",
|
|
414
|
+
"MV",
|
|
415
|
+
"MW",
|
|
416
|
+
"MX",
|
|
417
|
+
"MY",
|
|
418
|
+
"MZ",
|
|
419
|
+
"NA",
|
|
420
|
+
"NC",
|
|
421
|
+
"NE",
|
|
422
|
+
"NF",
|
|
423
|
+
"NG",
|
|
424
|
+
"NI",
|
|
425
|
+
"NL",
|
|
426
|
+
"NO",
|
|
427
|
+
"NP",
|
|
428
|
+
"NR",
|
|
429
|
+
"NU",
|
|
430
|
+
"NZ",
|
|
431
|
+
"OM",
|
|
432
|
+
"PA",
|
|
433
|
+
"PE",
|
|
434
|
+
"PF",
|
|
435
|
+
"PG",
|
|
436
|
+
"PH",
|
|
437
|
+
"PK",
|
|
438
|
+
"PL",
|
|
439
|
+
"PM",
|
|
440
|
+
"PN",
|
|
441
|
+
"PR",
|
|
442
|
+
"PS",
|
|
443
|
+
"PT",
|
|
444
|
+
"PW",
|
|
445
|
+
"PY",
|
|
446
|
+
"QA",
|
|
447
|
+
"RE",
|
|
448
|
+
"RO",
|
|
449
|
+
"RS",
|
|
450
|
+
"RU",
|
|
451
|
+
"RW",
|
|
452
|
+
"SA",
|
|
453
|
+
"SB",
|
|
454
|
+
"SC",
|
|
455
|
+
"SD",
|
|
456
|
+
"SE",
|
|
457
|
+
"SG",
|
|
458
|
+
"SH",
|
|
459
|
+
"SI",
|
|
460
|
+
"SJ",
|
|
461
|
+
"SK",
|
|
462
|
+
"SL",
|
|
463
|
+
"SM",
|
|
464
|
+
"SN",
|
|
465
|
+
"SO",
|
|
466
|
+
"SR",
|
|
467
|
+
"SS",
|
|
468
|
+
"ST",
|
|
469
|
+
"SV",
|
|
470
|
+
"SX",
|
|
471
|
+
"SY",
|
|
472
|
+
"SZ",
|
|
473
|
+
"TC",
|
|
474
|
+
"TD",
|
|
475
|
+
"TF",
|
|
476
|
+
"TG",
|
|
477
|
+
"TH",
|
|
478
|
+
"TJ",
|
|
479
|
+
"TK",
|
|
480
|
+
"TL",
|
|
481
|
+
"TM",
|
|
482
|
+
"TN",
|
|
483
|
+
"TO",
|
|
484
|
+
"TR",
|
|
485
|
+
"TT",
|
|
486
|
+
"TV",
|
|
487
|
+
"TW",
|
|
488
|
+
"TZ",
|
|
489
|
+
"UA",
|
|
490
|
+
"UG",
|
|
491
|
+
"US",
|
|
492
|
+
"UY",
|
|
493
|
+
"UZ",
|
|
494
|
+
"VA",
|
|
495
|
+
"VC",
|
|
496
|
+
"VE",
|
|
497
|
+
"VG",
|
|
498
|
+
"VI",
|
|
499
|
+
"VN",
|
|
500
|
+
"VU",
|
|
501
|
+
"WF",
|
|
502
|
+
"WS",
|
|
503
|
+
"XK",
|
|
504
|
+
"YE",
|
|
505
|
+
"YT",
|
|
506
|
+
"ZA",
|
|
507
|
+
"ZM",
|
|
508
|
+
"ZW"
|
|
509
|
+
].map((code) => ({ code, label: regionNames.of(code) })).sort((a, b) => a.label.localeCompare(b.label));
|
|
399
510
|
|
|
400
511
|
// src/deploymentsSlice/constants.ts
|
|
401
512
|
var alreadyInstalled = "already-installed";
|
|
402
|
-
var deploymentsApiUrl = `${apiUrl.v1}/deployments`;
|
|
403
|
-
var deploymentsApiUrlV2 = `${apiUrl.v2}/deployments`;
|
|
404
513
|
var deploymentSubstates = {
|
|
405
514
|
aborted: "aborted",
|
|
406
515
|
alreadyInstalled,
|
|
@@ -473,9 +582,9 @@ var DEPLOYMENT_STATES = {
|
|
|
473
582
|
var listDefaultsByState = {
|
|
474
583
|
[DEPLOYMENT_STATES.inprogress]: { page: 1, perPage: 10 },
|
|
475
584
|
[DEPLOYMENT_STATES.pending]: { page: 1, perPage: 10 },
|
|
476
|
-
[DEPLOYMENT_STATES.scheduled]: { ...DEVICE_LIST_DEFAULTS },
|
|
477
|
-
[DEPLOYMENT_STATES.finished]: { ...DEVICE_LIST_DEFAULTS },
|
|
478
|
-
sort: { direction: SORTING_OPTIONS.desc }
|
|
585
|
+
[DEPLOYMENT_STATES.scheduled]: { ...import_constants3.DEVICE_LIST_DEFAULTS },
|
|
586
|
+
[DEPLOYMENT_STATES.finished]: { ...import_constants3.DEVICE_LIST_DEFAULTS },
|
|
587
|
+
sort: { direction: import_constants3.SORTING_OPTIONS.desc }
|
|
479
588
|
};
|
|
480
589
|
var DEFAULT_PENDING_INPROGRESS_COUNT = 10;
|
|
481
590
|
var DEPLOYMENT_ROUTES = {
|
|
@@ -532,28 +641,6 @@ var pauseMap = {
|
|
|
532
641
|
followUp: installationSubstatesMap.reboot.pauseConfigurationIndicator
|
|
533
642
|
}
|
|
534
643
|
};
|
|
535
|
-
var limitDefault = { min: 5, max: 100, default: 10 };
|
|
536
|
-
|
|
537
|
-
// src/devicesSlice/constants.ts
|
|
538
|
-
var emptyFilter = { key: null, value: "", operator: DEVICE_FILTERING_OPTIONS.$eq.key, scope: "inventory" };
|
|
539
|
-
var deviceAuthV2 = `${apiUrl.v2}/devauth`;
|
|
540
|
-
var deviceConnect = `${apiUrl.v1}/deviceconnect`;
|
|
541
|
-
var inventoryApiUrl = `${apiUrl.v1}/inventory`;
|
|
542
|
-
var inventoryApiUrlV2 = `${apiUrl.v2}/inventory`;
|
|
543
|
-
var deviceConfig = `${apiUrl.v1}/deviceconfig/configurations/device`;
|
|
544
|
-
var reportingApiUrl = `${apiUrl.v1}/reporting`;
|
|
545
|
-
var iotManagerBaseURL = `${apiUrl.v1}/iot-manager`;
|
|
546
|
-
var DEVICE_STATES = {
|
|
547
|
-
accepted: "accepted",
|
|
548
|
-
pending: "pending",
|
|
549
|
-
preauth: "preauthorized",
|
|
550
|
-
rejected: "rejected"
|
|
551
|
-
};
|
|
552
|
-
var geoAttributes = ["geo-lat", "geo-lon"].map((attribute) => ({ attribute, scope: "inventory" }));
|
|
553
|
-
|
|
554
|
-
// src/monitorSlice/constants.ts
|
|
555
|
-
var alertChannels = { email: "email" };
|
|
556
|
-
var monitorApiUrlv1 = `${apiUrl.v1}/devicemonitor`;
|
|
557
644
|
|
|
558
645
|
// src/onboardingSlice/constants.ts
|
|
559
646
|
var onboardingSteps = {
|
|
@@ -571,6 +658,7 @@ var onboardingSteps = {
|
|
|
571
658
|
SCHEDULING_GROUP_SELECTION: "scheduling-group-selection",
|
|
572
659
|
SCHEDULING_RELEASE_TO_DEVICES: "scheduling-release-to-devices",
|
|
573
660
|
DEPLOYMENTS_INPROGRESS: "deployments-inprogress",
|
|
661
|
+
DEPLOYMENTS_COMPLETED: "deployments-completed",
|
|
574
662
|
DEPLOYMENTS_PAST: "deployments-past",
|
|
575
663
|
DEPLOYMENTS_PAST_COMPLETED: "deployments-past-completed",
|
|
576
664
|
DEPLOYMENTS_PAST_COMPLETED_FAILURE: "deployments-past-completed-failure",
|
|
@@ -597,10 +685,6 @@ var orderedOnboardingSteps = [
|
|
|
597
685
|
];
|
|
598
686
|
|
|
599
687
|
// src/organizationSlice/constants.ts
|
|
600
|
-
var auditLogsApiUrl = `${apiUrl.v1}/auditlogs`;
|
|
601
|
-
var tenantadmApiUrlv1 = `${apiUrl.v1}/tenantadm`;
|
|
602
|
-
var tenantadmApiUrlv2 = `${apiUrl.v2}/tenantadm`;
|
|
603
|
-
var ssoIdpApiUrlv1 = `${apiUrl.v1}/useradm/sso/idp/metadata`;
|
|
604
688
|
var auditlogTypes = {
|
|
605
689
|
artifact: { title: "Artifact", queryParameter: "object_type", value: "artifact" },
|
|
606
690
|
deployment: { title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
|
|
@@ -611,430 +695,85 @@ var auditlogTypes = {
|
|
|
611
695
|
};
|
|
612
696
|
var AUDIT_LOGS_TYPES = [auditlogTypes.artifact, auditlogTypes.deployment, auditlogTypes.device, auditlogTypes.user_access_token, auditlogTypes.user];
|
|
613
697
|
var SP_AUDIT_LOGS_TYPES = [auditlogTypes.user, auditlogTypes.tenant];
|
|
614
|
-
var emptyWebhook = {
|
|
615
|
-
description: "",
|
|
616
|
-
enabled: true,
|
|
617
|
-
credentials: {
|
|
618
|
-
type: EXTERNAL_PROVIDER.webhook.credentialsType,
|
|
619
|
-
[EXTERNAL_PROVIDER.webhook.credentialsType]: {
|
|
620
|
-
secret: "",
|
|
621
|
-
url: ""
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
};
|
|
625
698
|
var TENANT_LIST_DEFAULT = {
|
|
626
699
|
page: 1,
|
|
627
700
|
perPage: 20
|
|
628
701
|
};
|
|
629
702
|
|
|
630
703
|
// src/usersSlice/constants.ts
|
|
631
|
-
var
|
|
632
|
-
var
|
|
633
|
-
var
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
deploymentsManager: "RBAC_ROLE_DEPLOYMENTS_MANAGER",
|
|
638
|
-
terminalAccess: "RBAC_ROLE_REMOTE_TERMINAL"
|
|
639
|
-
};
|
|
640
|
-
var PermissionTypes = {
|
|
641
|
-
Any: "any",
|
|
642
|
-
Get: "GET",
|
|
643
|
-
Post: "POST",
|
|
644
|
-
Put: "PUT",
|
|
645
|
-
Delete: "DELETE",
|
|
646
|
-
Patch: "PATCH",
|
|
647
|
-
DeviceGroup: "DEVICE_GROUP",
|
|
648
|
-
DeviceId: "DEVICE_ID"
|
|
649
|
-
};
|
|
650
|
-
var permissionSetIds = {
|
|
651
|
-
Basic: "Basic",
|
|
652
|
-
ConfigureDevices: "ConfigureDevices",
|
|
653
|
-
ConnectToDevices: "ConnectToDevices",
|
|
654
|
-
DeployToDevices: "DeployToDevices",
|
|
655
|
-
ManageDevices: "ManageDevices",
|
|
656
|
-
ManageReleases: "ManageReleases",
|
|
657
|
-
ManageTenants: "ManageTenants",
|
|
658
|
-
ManageUsers: "ManageUsers",
|
|
659
|
-
ReadAuditLogs: "ReadAuditLogs",
|
|
660
|
-
ReadDevices: "ReadDevices",
|
|
661
|
-
ReadReleases: "ReadReleases",
|
|
662
|
-
ReadTenants: "ReadTenants",
|
|
663
|
-
ReadUsers: "ReadUsers",
|
|
664
|
-
SuperUser: "SuperUser",
|
|
665
|
-
UploadArtifacts: "UploadArtifacts"
|
|
666
|
-
};
|
|
667
|
-
var uiPermissionsById = {
|
|
668
|
-
configure: {
|
|
669
|
-
explanations: { groups: `'Configure' allows the user to use mender-configure features and apply configurations.` },
|
|
670
|
-
permissionLevel: 2,
|
|
671
|
-
permissionSets: { groups: permissionSetIds.ConfigureDevices },
|
|
672
|
-
title: "Configure",
|
|
673
|
-
value: "configure",
|
|
674
|
-
verbs: [PermissionTypes.Get, PermissionTypes.Put, PermissionTypes.Post]
|
|
675
|
-
},
|
|
676
|
-
connect: {
|
|
677
|
-
explanations: { groups: `'Connect' allows the user to use mender-connect features and Troubleshoot add-ons.` },
|
|
678
|
-
permissionLevel: 2,
|
|
679
|
-
permissionSets: { groups: permissionSetIds.ConnectToDevices },
|
|
680
|
-
title: "Connect",
|
|
681
|
-
value: "connect",
|
|
682
|
-
verbs: [PermissionTypes.Get, PermissionTypes.Put]
|
|
683
|
-
},
|
|
684
|
-
deploy: {
|
|
685
|
-
explanations: { groups: `'Deploy' allows the user to deploy software or configuration updates to devices.` },
|
|
686
|
-
permissionLevel: 2,
|
|
687
|
-
permissionSets: { deployments: permissionSetIds.DeployToDevices, groups: permissionSetIds.DeployToDevices },
|
|
688
|
-
title: "Deploy",
|
|
689
|
-
value: "deploy",
|
|
690
|
-
verbs: [PermissionTypes.Post]
|
|
691
|
-
},
|
|
692
|
-
manage: {
|
|
693
|
-
explanations: {
|
|
694
|
-
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.`,
|
|
695
|
-
releases: `'Manage' allows the user to upload new artifacts, edit release descriptions and remove artifacts.`
|
|
696
|
-
},
|
|
697
|
-
permissionLevel: 2,
|
|
698
|
-
permissionSets: {
|
|
699
|
-
groups: permissionSetIds.ManageDevices,
|
|
700
|
-
releases: permissionSetIds.ManageReleases,
|
|
701
|
-
tenantManagement: permissionSetIds.ManageTenants,
|
|
702
|
-
userManagement: permissionSetIds.ManageUsers
|
|
703
|
-
},
|
|
704
|
-
title: "Manage",
|
|
705
|
-
value: "manage",
|
|
706
|
-
verbs: [PermissionTypes.Post, PermissionTypes.Put, PermissionTypes.Patch]
|
|
707
|
-
},
|
|
708
|
-
read: {
|
|
709
|
-
explanations: { groups: `'Read' allows the user to view devices.` },
|
|
710
|
-
permissionLevel: 1,
|
|
711
|
-
permissionSets: {
|
|
712
|
-
auditlog: permissionSetIds.ReadAuditLogs,
|
|
713
|
-
groups: permissionSetIds.ReadDevices,
|
|
714
|
-
releases: permissionSetIds.ReadReleases,
|
|
715
|
-
tenantManagement: permissionSetIds.ReadTenants,
|
|
716
|
-
userManagement: permissionSetIds.ReadUsers
|
|
717
|
-
},
|
|
718
|
-
title: "Read",
|
|
719
|
-
value: "read",
|
|
720
|
-
verbs: [PermissionTypes.Get, PermissionTypes.Post]
|
|
721
|
-
},
|
|
722
|
-
upload: {
|
|
723
|
-
explanations: { groups: `'Upload' allows the user to upload new Artifacts.` },
|
|
724
|
-
unscopedOnly: { releases: true },
|
|
725
|
-
permissionLevel: 1,
|
|
726
|
-
permissionSets: { releases: permissionSetIds.UploadArtifacts },
|
|
727
|
-
title: "Upload",
|
|
728
|
-
value: "upload",
|
|
729
|
-
verbs: [PermissionTypes.Post, PermissionTypes.Put, PermissionTypes.Patch]
|
|
730
|
-
}
|
|
731
|
-
};
|
|
732
|
-
var scopedPermissionAreas = {
|
|
733
|
-
groups: { key: "groups", excessiveAccessSelector: ALL_DEVICES, scopeType: "DeviceGroups" },
|
|
734
|
-
releases: { key: "releases", excessiveAccessSelector: ALL_RELEASES, scopeType: "Releases" }
|
|
704
|
+
var USER_LOGOUT = "USER_LOGOUT";
|
|
705
|
+
var settingsKeys = { initialized: "settings-initialized" };
|
|
706
|
+
var READ_STATES = {
|
|
707
|
+
read: "read",
|
|
708
|
+
seen: "seen",
|
|
709
|
+
unread: "unread"
|
|
735
710
|
};
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
},
|
|
744
|
-
deployments: {
|
|
745
|
-
endpoints: [
|
|
746
|
-
{ path: /\/(deployments\/deployments)/i, types: [PermissionTypes.Post, PermissionTypes.Put], uiPermissions: [uiPermissionsById.deploy] },
|
|
747
|
-
{ path: /\/(deployments\/deployments)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
|
|
748
|
-
{ path: /\/(deployments\/config)/i, types: [PermissionTypes.Get, PermissionTypes.Put], uiPermissions: [uiPermissionsById.manage] }
|
|
749
|
-
],
|
|
750
|
-
explanation: "Providing deploy permissions will allow deployments to be created using the releases and devices a user has access to.",
|
|
751
|
-
key: "deployments",
|
|
752
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.deploy],
|
|
753
|
-
title: "Deployments"
|
|
711
|
+
|
|
712
|
+
// src/monitorSlice/index.ts
|
|
713
|
+
var sliceName = "monitor";
|
|
714
|
+
var initialState = {
|
|
715
|
+
alerts: {
|
|
716
|
+
alertList: { ...import_constants3.DEVICE_LIST_DEFAULTS, total: 0 },
|
|
717
|
+
byDeviceId: {}
|
|
754
718
|
},
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
{
|
|
758
|
-
path: /\/(devauth|inventory|deviceconfig|devicemonitor|deviceconnect\/devices)/i,
|
|
759
|
-
types: [PermissionTypes.Get],
|
|
760
|
-
uiPermissions: [uiPermissionsById.read]
|
|
761
|
-
},
|
|
762
|
-
{ path: /\/(devauth|inventory)/i, types: [PermissionTypes.Put, PermissionTypes.Post], uiPermissions: [uiPermissionsById.manage] },
|
|
763
|
-
{ path: /\/(deviceconfig)/i, types: [PermissionTypes.Get, PermissionTypes.Put, PermissionTypes.Post], uiPermissions: [uiPermissionsById.configure] },
|
|
764
|
-
{ path: /\/(deviceconnect\/devices)/i, types: [PermissionTypes.Get, PermissionTypes.Post], uiPermissions: [uiPermissionsById.connect] }
|
|
765
|
-
],
|
|
766
|
-
explanation: "Device group management permissions control the degree to which devices in a group can be accessed and moved to other groups.",
|
|
767
|
-
key: "groups",
|
|
768
|
-
scope: scopedPermissionAreas.groups.scopeType,
|
|
769
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage, uiPermissionsById.deploy, uiPermissionsById.configure, uiPermissionsById.connect],
|
|
770
|
-
title: "Group Management"
|
|
719
|
+
issueCounts: {
|
|
720
|
+
byType: Object.keys(import_constants3.DEVICE_ISSUE_OPTIONS).reduce((accu, key) => ({ ...accu, [key]: { filtered: 0, total: 0 } }), {})
|
|
771
721
|
},
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
path: /\/(deployments\/artifacts|deployments\/deployments\/releases)/i,
|
|
777
|
-
types: [PermissionTypes.Post, PermissionTypes.Put],
|
|
778
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.upload]
|
|
779
|
-
},
|
|
780
|
-
{
|
|
781
|
-
path: /\/(deployments\/artifacts|deployments\/deployments\/releases)/i,
|
|
782
|
-
types: [PermissionTypes.Delete],
|
|
783
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage]
|
|
722
|
+
settings: {
|
|
723
|
+
global: {
|
|
724
|
+
channels: {
|
|
725
|
+
...Object.keys(import_constants3.alertChannels).reduce((accu, item) => ({ ...accu, [item]: { enabled: true } }), {})
|
|
784
726
|
}
|
|
785
|
-
],
|
|
786
|
-
explanation: "Release permissions can be granted to allow artifact & release modifications, as well as the creation of new releases.",
|
|
787
|
-
key: "releases",
|
|
788
|
-
scope: "ReleaseTags",
|
|
789
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage, uiPermissionsById.upload],
|
|
790
|
-
title: "Release Management"
|
|
791
|
-
},
|
|
792
|
-
tenantManagement: {
|
|
793
|
-
endpoints: [
|
|
794
|
-
{ path: /\/(tenantadm\/tenants)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
|
|
795
|
-
{ path: /\/(tenantadm\/tenants)/i, types: [PermissionTypes.Post, PermissionTypes.Put], uiPermissions: [uiPermissionsById.manage] },
|
|
796
|
-
{ path: /\/(users\/exists)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.manage] }
|
|
797
|
-
],
|
|
798
|
-
explanation: "Tenant management permissions allow listing, creating and modifying child tenants",
|
|
799
|
-
key: "tenantManagement",
|
|
800
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage],
|
|
801
|
-
title: "Tenant Management"
|
|
802
|
-
},
|
|
803
|
-
userManagement: {
|
|
804
|
-
endpoints: [
|
|
805
|
-
{ path: /\/(useradm)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
|
|
806
|
-
{ path: /\/(useradm)/i, types: [PermissionTypes.Post], uiPermissions: [uiPermissionsById.manage] }
|
|
807
|
-
],
|
|
808
|
-
explanation: "User management permissions should be granted carefully, as these allow privilege increases for any users managed by a user with user management permissions",
|
|
809
|
-
key: "userManagement",
|
|
810
|
-
uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage],
|
|
811
|
-
title: "User Management"
|
|
812
|
-
}
|
|
813
|
-
};
|
|
814
|
-
var permissionMapper = (permission) => permission.value;
|
|
815
|
-
var rolesById = Object.freeze({
|
|
816
|
-
[staticRolesByName.admin]: {
|
|
817
|
-
name: "Admin",
|
|
818
|
-
value: staticRolesByName.admin,
|
|
819
|
-
description: "Full access",
|
|
820
|
-
permissions: [],
|
|
821
|
-
// permissions refers to the values returned from the backend
|
|
822
|
-
uiPermissions: {
|
|
823
|
-
...emptyUiPermissions,
|
|
824
|
-
auditlog: uiPermissionsByArea.auditlog.uiPermissions.map(permissionMapper),
|
|
825
|
-
deployments: uiPermissionsByArea.deployments.uiPermissions.map(permissionMapper),
|
|
826
|
-
groups: { [ALL_DEVICES]: uiPermissionsByArea.groups.uiPermissions.map(permissionMapper) },
|
|
827
|
-
releases: { [ALL_RELEASES]: uiPermissionsByArea.releases.uiPermissions.map(permissionMapper) },
|
|
828
|
-
userManagement: uiPermissionsByArea.userManagement.uiPermissions.map(permissionMapper)
|
|
829
|
-
}
|
|
830
|
-
},
|
|
831
|
-
[staticRolesByName.readOnly]: {
|
|
832
|
-
name: "Read Access",
|
|
833
|
-
value: staticRolesByName.readOnly,
|
|
834
|
-
description: "",
|
|
835
|
-
permissions: [],
|
|
836
|
-
uiPermissions: {
|
|
837
|
-
...emptyUiPermissions,
|
|
838
|
-
deployments: [uiPermissionsById.read.value],
|
|
839
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value] },
|
|
840
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.read.value] },
|
|
841
|
-
userManagement: [uiPermissionsById.read.value]
|
|
842
|
-
}
|
|
843
|
-
},
|
|
844
|
-
[staticRolesByName.ci]: {
|
|
845
|
-
name: "Releases Manager",
|
|
846
|
-
value: staticRolesByName.ci,
|
|
847
|
-
description: "",
|
|
848
|
-
permissions: [],
|
|
849
|
-
uiPermissions: {
|
|
850
|
-
...emptyUiPermissions,
|
|
851
|
-
releases: { [ALL_RELEASES]: uiPermissionsByArea.releases.uiPermissions.map(permissionMapper) }
|
|
852
|
-
}
|
|
853
|
-
},
|
|
854
|
-
[staticRolesByName.deploymentsManager]: {
|
|
855
|
-
name: "Deployments Manager",
|
|
856
|
-
value: staticRolesByName.deploymentsManager,
|
|
857
|
-
description: "",
|
|
858
|
-
permissions: [],
|
|
859
|
-
uiPermissions: {
|
|
860
|
-
...emptyUiPermissions,
|
|
861
|
-
deployments: uiPermissionsByArea.deployments.uiPermissions.map(permissionMapper),
|
|
862
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.deploy.value, uiPermissionsById.read.value] },
|
|
863
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.read.value] }
|
|
864
|
-
}
|
|
865
|
-
},
|
|
866
|
-
[staticRolesByName.terminalAccess]: {
|
|
867
|
-
name: "Troubleshooting",
|
|
868
|
-
value: staticRolesByName.terminalAccess,
|
|
869
|
-
description: "Access to the troubleshooting features: Remote Terminal, File Transfer, Port Forwarding",
|
|
870
|
-
permissions: [],
|
|
871
|
-
uiPermissions: {
|
|
872
|
-
...emptyUiPermissions,
|
|
873
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.connect.value] }
|
|
874
|
-
}
|
|
875
|
-
}
|
|
876
|
-
});
|
|
877
|
-
var serviceProviderRolesById = {
|
|
878
|
-
admin: {
|
|
879
|
-
name: "Admin",
|
|
880
|
-
value: staticRolesByName.admin,
|
|
881
|
-
description: "Full access",
|
|
882
|
-
permissions: [],
|
|
883
|
-
uiPermissions: {
|
|
884
|
-
...emptyUiPermissions,
|
|
885
|
-
auditlog: uiPermissionsByArea.auditlog.uiPermissions.map(permissionMapper),
|
|
886
|
-
userManagement: uiPermissionsByArea.userManagement.uiPermissions.map(permissionMapper),
|
|
887
|
-
tenantManagement: uiPermissionsByArea.tenantManagement.uiPermissions.map(permissionMapper)
|
|
888
|
-
}
|
|
889
|
-
},
|
|
890
|
-
readOnly: {
|
|
891
|
-
name: "Read access",
|
|
892
|
-
value: staticRolesByName.readOnly,
|
|
893
|
-
description: "This role can see all linked organizations but cannot make any changes",
|
|
894
|
-
permissions: [],
|
|
895
|
-
uiPermissions: {
|
|
896
|
-
...emptyUiPermissions,
|
|
897
|
-
auditlog: [uiPermissionsById.read.value],
|
|
898
|
-
userManagement: [uiPermissionsById.read.value],
|
|
899
|
-
tenantManagement: [uiPermissionsById.read.value]
|
|
900
727
|
}
|
|
901
728
|
}
|
|
902
729
|
};
|
|
903
|
-
var
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
result: {
|
|
926
|
-
auditlog: [uiPermissionsById.read.value]
|
|
927
|
-
}
|
|
928
|
-
},
|
|
929
|
-
[permissionSetIds.ReadReleases]: {
|
|
930
|
-
name: permissionSetIds.ReadReleases,
|
|
931
|
-
result: {
|
|
932
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.read.value] }
|
|
933
|
-
}
|
|
934
|
-
},
|
|
935
|
-
[permissionSetIds.ReadTenants]: {
|
|
936
|
-
name: permissionSetIds.ReadTenants,
|
|
937
|
-
result: {
|
|
938
|
-
tenantManagement: [uiPermissionsById.read.value]
|
|
939
|
-
}
|
|
940
|
-
},
|
|
941
|
-
[permissionSetIds.ManageTenants]: {
|
|
942
|
-
name: permissionSetIds.ManageTenants,
|
|
943
|
-
result: {
|
|
944
|
-
tenantManagement: [uiPermissionsById.manage.value]
|
|
945
|
-
}
|
|
946
|
-
},
|
|
947
|
-
[permissionSetIds.ReadUsers]: {
|
|
948
|
-
name: permissionSetIds.ReadUsers,
|
|
949
|
-
result: {
|
|
950
|
-
userManagement: [uiPermissionsById.read.value]
|
|
951
|
-
}
|
|
952
|
-
},
|
|
953
|
-
[permissionSetIds.UploadArtifacts]: {
|
|
954
|
-
name: permissionSetIds.UploadArtifacts,
|
|
955
|
-
result: {
|
|
956
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.upload.value] }
|
|
957
|
-
}
|
|
958
|
-
},
|
|
959
|
-
[permissionSetIds.ManageReleases]: {
|
|
960
|
-
name: permissionSetIds.ManageReleases,
|
|
961
|
-
result: {
|
|
962
|
-
releases: { [ALL_RELEASES]: [uiPermissionsById.manage.value] }
|
|
963
|
-
}
|
|
964
|
-
},
|
|
965
|
-
[permissionSetIds.ConfigureDevices]: {
|
|
966
|
-
name: permissionSetIds.ConfigureDevices,
|
|
967
|
-
result: {
|
|
968
|
-
deployments: [uiPermissionsById.read.value, uiPermissionsById.deploy.value],
|
|
969
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value, uiPermissionsById.configure.value] }
|
|
970
|
-
}
|
|
971
|
-
},
|
|
972
|
-
[permissionSetIds.ConnectToDevices]: {
|
|
973
|
-
name: permissionSetIds.ConnectToDevices,
|
|
974
|
-
result: {
|
|
975
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value, uiPermissionsById.connect.value] }
|
|
976
|
-
}
|
|
977
|
-
},
|
|
978
|
-
[permissionSetIds.DeployToDevices]: {
|
|
979
|
-
name: permissionSetIds.DeployToDevices,
|
|
980
|
-
result: {
|
|
981
|
-
deployments: [uiPermissionsById.deploy.value, uiPermissionsById.manage.value, uiPermissionsById.read.value],
|
|
982
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value, uiPermissionsById.deploy.value] }
|
|
983
|
-
}
|
|
984
|
-
},
|
|
985
|
-
[permissionSetIds.ManageDevices]: {
|
|
986
|
-
name: permissionSetIds.ManageDevices,
|
|
987
|
-
result: {
|
|
988
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value, uiPermissionsById.manage.value] }
|
|
989
|
-
}
|
|
990
|
-
},
|
|
991
|
-
[permissionSetIds.ReadDevices]: {
|
|
992
|
-
name: permissionSetIds.ReadDevices,
|
|
993
|
-
result: {
|
|
994
|
-
groups: { [ALL_DEVICES]: [uiPermissionsById.read.value] }
|
|
730
|
+
var monitorSlice = (0, import_toolkit.createSlice)({
|
|
731
|
+
name: sliceName,
|
|
732
|
+
initialState,
|
|
733
|
+
reducers: {
|
|
734
|
+
changeAlertChannel: (state, action) => {
|
|
735
|
+
const { channel, enabled } = action.payload;
|
|
736
|
+
state.settings.global.channels[channel] = { enabled };
|
|
737
|
+
},
|
|
738
|
+
receiveDeviceAlerts: (state, action) => {
|
|
739
|
+
const { deviceId, alerts } = action.payload;
|
|
740
|
+
state.alerts.byDeviceId[deviceId] = { alerts };
|
|
741
|
+
},
|
|
742
|
+
receiveLatestDeviceAlerts: (state, action) => {
|
|
743
|
+
const { deviceId, alerts } = action.payload;
|
|
744
|
+
state.alerts.byDeviceId[deviceId] = { ...state.alerts.byDeviceId[deviceId], latest: alerts };
|
|
745
|
+
},
|
|
746
|
+
receiveDeviceIssueCounts: (state, action) => {
|
|
747
|
+
const { issueType, counts } = action.payload;
|
|
748
|
+
state.issueCounts.byType[issueType] = counts;
|
|
749
|
+
},
|
|
750
|
+
setAlertListState: (state, action) => {
|
|
751
|
+
state.alerts.alertList = { ...state.alerts.alertList, ...action.payload };
|
|
995
752
|
}
|
|
996
753
|
}
|
|
997
|
-
};
|
|
998
|
-
var
|
|
999
|
-
var
|
|
1000
|
-
...staticRolesByName,
|
|
1001
|
-
deploymentCreation: { action: "CREATE_DEPLOYMENT", object: { type: "DEVICE_GROUP", value: void 0 } },
|
|
1002
|
-
groupAccess: { action: "VIEW_DEVICE", object: { type: "DEVICE_GROUP", value: void 0 } },
|
|
1003
|
-
userManagement: { action: "http", object: { type: "any", value: `${useradmApiUrlv1}/.*` } }
|
|
1004
|
-
};
|
|
1005
|
-
var twoFAStates = {
|
|
1006
|
-
enabled: "enabled",
|
|
1007
|
-
disabled: "disabled",
|
|
1008
|
-
unverified: "unverified"
|
|
1009
|
-
};
|
|
1010
|
-
var settingsKeys = { initialized: "settings-initialized" };
|
|
1011
|
-
var READ_STATES = {
|
|
1012
|
-
read: "read",
|
|
1013
|
-
seen: "seen",
|
|
1014
|
-
unread: "unread"
|
|
1015
|
-
};
|
|
754
|
+
});
|
|
755
|
+
var actions = monitorSlice.actions;
|
|
756
|
+
var monitorSlice_default = monitorSlice.reducer;
|
|
1016
757
|
|
|
1017
758
|
// src/appSlice/index.ts
|
|
1018
|
-
var
|
|
1019
|
-
var
|
|
759
|
+
var import_toolkit2 = require("@reduxjs/toolkit");
|
|
760
|
+
var sliceName2 = "app";
|
|
1020
761
|
var getYesterday = () => {
|
|
1021
762
|
const today = /* @__PURE__ */ new Date();
|
|
1022
763
|
today.setDate(today.getDate() - 1);
|
|
1023
764
|
return today.toISOString();
|
|
1024
765
|
};
|
|
1025
|
-
var
|
|
766
|
+
var initialState2 = {
|
|
1026
767
|
cancelSource: void 0,
|
|
768
|
+
commit: "",
|
|
1027
769
|
demoArtifactLink: "https://dgsbl4vditpls.cloudfront.net/mender-demo-artifact.mender",
|
|
1028
770
|
hostAddress: null,
|
|
1029
771
|
snackbar: {
|
|
1030
|
-
open: false,
|
|
1031
|
-
message: "",
|
|
1032
|
-
maxWidth: 900,
|
|
1033
|
-
autoHideDuration: void 0,
|
|
1034
772
|
action: void 0,
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
773
|
+
autoHideDuration: void 0,
|
|
774
|
+
message: "",
|
|
775
|
+
open: false,
|
|
776
|
+
preventClickToCopy: false
|
|
1038
777
|
},
|
|
1039
778
|
// return boolean rather than organization details
|
|
1040
779
|
features: {
|
|
@@ -1047,7 +786,7 @@ var initialState = {
|
|
|
1047
786
|
hasMonitor: false,
|
|
1048
787
|
hasReporting: false,
|
|
1049
788
|
isDemoMode: false,
|
|
1050
|
-
isHosted:
|
|
789
|
+
isHosted: true,
|
|
1051
790
|
isEnterprise: false
|
|
1052
791
|
},
|
|
1053
792
|
feedbackProbability: 0.3,
|
|
@@ -1059,16 +798,22 @@ var initialState = {
|
|
|
1059
798
|
deviceIds: [],
|
|
1060
799
|
searchTerm: "",
|
|
1061
800
|
searchTotal: 0,
|
|
801
|
+
isSearching: false,
|
|
1062
802
|
sort: {
|
|
1063
|
-
direction: SORTING_OPTIONS.desc
|
|
803
|
+
direction: import_constants3.SORTING_OPTIONS.desc
|
|
1064
804
|
// key: null,
|
|
1065
805
|
// scope: null
|
|
1066
806
|
}
|
|
1067
807
|
},
|
|
808
|
+
sentry: {
|
|
809
|
+
location: "",
|
|
810
|
+
replaysSessionSampleRate: 0.1,
|
|
811
|
+
tracesSampleRate: 1
|
|
812
|
+
},
|
|
1068
813
|
stripeAPIKey: "",
|
|
1069
814
|
trackerCode: "",
|
|
1070
815
|
uploadsById: {
|
|
1071
|
-
// id: {
|
|
816
|
+
// id: { progress: 0, cancelSource: undefined }
|
|
1072
817
|
},
|
|
1073
818
|
newThreshold: getYesterday(),
|
|
1074
819
|
offlineThreshold: getYesterday(),
|
|
@@ -1076,17 +821,13 @@ var initialState = {
|
|
|
1076
821
|
Integration: "",
|
|
1077
822
|
"Mender-Client": "",
|
|
1078
823
|
"Mender-Artifact": "",
|
|
1079
|
-
"Meta-Mender": ""
|
|
1080
|
-
Deployments: "",
|
|
1081
|
-
Deviceauth: "",
|
|
1082
|
-
Inventory: "",
|
|
1083
|
-
GUI: "latest"
|
|
824
|
+
"Meta-Mender": ""
|
|
1084
825
|
},
|
|
1085
826
|
yesterday: void 0
|
|
1086
827
|
};
|
|
1087
|
-
var appSlice = (0,
|
|
1088
|
-
name:
|
|
1089
|
-
initialState,
|
|
828
|
+
var appSlice = (0, import_toolkit2.createSlice)({
|
|
829
|
+
name: sliceName2,
|
|
830
|
+
initialState: initialState2,
|
|
1090
831
|
reducers: {
|
|
1091
832
|
setFeatures: (state, action) => {
|
|
1092
833
|
state.features = {
|
|
@@ -1095,19 +836,17 @@ var appSlice = (0, import_toolkit.createSlice)({
|
|
|
1095
836
|
};
|
|
1096
837
|
},
|
|
1097
838
|
setSnackbar: (state, { payload }) => {
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
839
|
+
if (typeof payload === "string") {
|
|
840
|
+
state.snackbar.message = payload;
|
|
841
|
+
return;
|
|
1101
842
|
}
|
|
843
|
+
const { message, autoHideDuration, action, preventClickToCopy = false } = payload;
|
|
1102
844
|
state.snackbar = {
|
|
1103
|
-
open: message ? true : false,
|
|
1104
845
|
message,
|
|
1105
|
-
maxWidth: 900,
|
|
1106
846
|
autoHideDuration,
|
|
1107
847
|
action,
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
onClose
|
|
848
|
+
preventClickToCopy,
|
|
849
|
+
open: !!message
|
|
1111
850
|
};
|
|
1112
851
|
},
|
|
1113
852
|
setFirstLoginAfterSignup: (state, action) => {
|
|
@@ -1149,13 +888,13 @@ var appSlice = (0, import_toolkit.createSlice)({
|
|
|
1149
888
|
setEnvironmentData: (state, action) => ({ ...state, ...action.payload })
|
|
1150
889
|
}
|
|
1151
890
|
});
|
|
1152
|
-
var
|
|
891
|
+
var actions2 = appSlice.actions;
|
|
1153
892
|
var appSlice_default = appSlice.reducer;
|
|
1154
893
|
|
|
1155
894
|
// src/deploymentsSlice/index.ts
|
|
1156
|
-
var
|
|
1157
|
-
var
|
|
1158
|
-
var
|
|
895
|
+
var import_toolkit3 = require("@reduxjs/toolkit");
|
|
896
|
+
var sliceName3 = "deployments";
|
|
897
|
+
var initialState3 = {
|
|
1159
898
|
byId: {
|
|
1160
899
|
// [id]: { statistics: { status: {}, total_size }, devices: { [deploymentId]: { id, log } }, totalDeviceCount }
|
|
1161
900
|
},
|
|
@@ -1177,20 +916,20 @@ var initialState2 = {
|
|
|
1177
916
|
sourceWindow: -1
|
|
1178
917
|
},
|
|
1179
918
|
binaryDeltaLimits: {
|
|
1180
|
-
timeout: { ...limitDefault, default: 60, max: 3600, min: 60 },
|
|
1181
|
-
sourceWindow: limitDefault,
|
|
1182
|
-
inputWindow: limitDefault,
|
|
1183
|
-
duplicatesWindow: limitDefault,
|
|
1184
|
-
instructionBuffer: limitDefault
|
|
919
|
+
timeout: { ...import_constants3.limitDefault, default: 60, max: 3600, min: 60 },
|
|
920
|
+
sourceWindow: import_constants3.limitDefault,
|
|
921
|
+
inputWindow: import_constants3.limitDefault,
|
|
922
|
+
duplicatesWindow: import_constants3.limitDefault,
|
|
923
|
+
instructionBuffer: import_constants3.limitDefault
|
|
1185
924
|
}
|
|
1186
925
|
},
|
|
1187
926
|
deploymentDeviceLimit: 5e3,
|
|
1188
927
|
selectedDeviceIds: [],
|
|
1189
928
|
selectionState: {
|
|
1190
|
-
finished: { ...DEVICE_LIST_DEFAULTS, endDate: void 0, search: "", selection: [], startDate: void 0, total: 0, type: "" },
|
|
1191
|
-
inprogress: { ...DEVICE_LIST_DEFAULTS, perPage: DEFAULT_PENDING_INPROGRESS_COUNT, selection: [] },
|
|
1192
|
-
pending: { ...DEVICE_LIST_DEFAULTS, perPage: DEFAULT_PENDING_INPROGRESS_COUNT, selection: [] },
|
|
1193
|
-
scheduled: { ...DEVICE_LIST_DEFAULTS, selection: [] },
|
|
929
|
+
finished: { ...import_constants3.DEVICE_LIST_DEFAULTS, endDate: void 0, search: "", selection: [], startDate: void 0, total: 0, type: "" },
|
|
930
|
+
inprogress: { ...import_constants3.DEVICE_LIST_DEFAULTS, perPage: DEFAULT_PENDING_INPROGRESS_COUNT, selection: [] },
|
|
931
|
+
pending: { ...import_constants3.DEVICE_LIST_DEFAULTS, perPage: DEFAULT_PENDING_INPROGRESS_COUNT, selection: [] },
|
|
932
|
+
scheduled: { ...import_constants3.DEVICE_LIST_DEFAULTS, selection: [] },
|
|
1194
933
|
general: {
|
|
1195
934
|
state: DEPLOYMENT_ROUTES.active.key,
|
|
1196
935
|
showCreationDialog: false,
|
|
@@ -1201,9 +940,9 @@ var initialState2 = {
|
|
|
1201
940
|
selectedId: void 0
|
|
1202
941
|
}
|
|
1203
942
|
};
|
|
1204
|
-
var deploymentsSlice = (0,
|
|
1205
|
-
name:
|
|
1206
|
-
initialState:
|
|
943
|
+
var deploymentsSlice = (0, import_toolkit3.createSlice)({
|
|
944
|
+
name: sliceName3,
|
|
945
|
+
initialState: initialState3,
|
|
1207
946
|
reducers: {
|
|
1208
947
|
createdDeployment: (state, action) => {
|
|
1209
948
|
state.byId[action.payload.id] = {
|
|
@@ -1212,7 +951,8 @@ var deploymentsSlice = (0, import_toolkit2.createSlice)({
|
|
|
1212
951
|
};
|
|
1213
952
|
state.byStatus[DEPLOYMENT_STATES.pending].total = state.byStatus[DEPLOYMENT_STATES.pending].total + 1;
|
|
1214
953
|
state.byStatus[DEPLOYMENT_STATES.pending].deploymentIds = [...state.byStatus.pending.deploymentIds, action.payload.id];
|
|
1215
|
-
state.selectionState[DEPLOYMENT_STATES.pending].selection = [action.payload.id, ...state.selectionState[DEPLOYMENT_STATES.pending].selection]
|
|
954
|
+
state.selectionState[DEPLOYMENT_STATES.pending].selection = [action.payload.id, ...state.selectionState[DEPLOYMENT_STATES.pending].selection];
|
|
955
|
+
state.selectionState[DEPLOYMENT_STATES.pending].total = (state.selectionState[DEPLOYMENT_STATES.pending].total || 0) + 1;
|
|
1216
956
|
},
|
|
1217
957
|
removedDeployment: (state, action) => {
|
|
1218
958
|
const { [action.payload]: removedDeployment, ...remainder } = state.byId;
|
|
@@ -1274,14 +1014,14 @@ var deploymentsSlice = (0, import_toolkit2.createSlice)({
|
|
|
1274
1014
|
}
|
|
1275
1015
|
}
|
|
1276
1016
|
});
|
|
1277
|
-
var
|
|
1017
|
+
var actions3 = deploymentsSlice.actions;
|
|
1278
1018
|
var deploymentsSlice_default = deploymentsSlice.reducer;
|
|
1279
1019
|
|
|
1280
1020
|
// src/devicesSlice/index.ts
|
|
1281
1021
|
var import_helpers = require("@northern.tech/utils/helpers");
|
|
1282
|
-
var
|
|
1283
|
-
var
|
|
1284
|
-
var
|
|
1022
|
+
var import_toolkit4 = require("@reduxjs/toolkit");
|
|
1023
|
+
var sliceName4 = "devices";
|
|
1024
|
+
var initialState4 = {
|
|
1285
1025
|
byId: {
|
|
1286
1026
|
// [deviceId]: {
|
|
1287
1027
|
// ...,
|
|
@@ -1289,26 +1029,30 @@ var initialState3 = {
|
|
|
1289
1029
|
// }
|
|
1290
1030
|
},
|
|
1291
1031
|
byStatus: {
|
|
1292
|
-
[DEVICE_STATES.accepted]: { deviceIds: [], total: 0 },
|
|
1032
|
+
[import_constants3.DEVICE_STATES.accepted]: { deviceIds: [], total: 0 },
|
|
1293
1033
|
active: { deviceIds: [], total: 0 },
|
|
1294
1034
|
inactive: { deviceIds: [], total: 0 },
|
|
1295
|
-
[DEVICE_STATES.pending]: { deviceIds: [], total: 0 },
|
|
1296
|
-
[DEVICE_STATES.preauth]: { deviceIds: [], total: 0 },
|
|
1297
|
-
[DEVICE_STATES.rejected]: { deviceIds: [], total: 0 }
|
|
1035
|
+
[import_constants3.DEVICE_STATES.pending]: { deviceIds: [], total: 0 },
|
|
1036
|
+
[import_constants3.DEVICE_STATES.preauth]: { deviceIds: [], total: 0 },
|
|
1037
|
+
[import_constants3.DEVICE_STATES.rejected]: { deviceIds: [], total: 0 }
|
|
1298
1038
|
},
|
|
1299
1039
|
deviceList: {
|
|
1300
1040
|
deviceIds: [],
|
|
1301
|
-
...DEVICE_LIST_DEFAULTS,
|
|
1041
|
+
...import_constants3.DEVICE_LIST_DEFAULTS,
|
|
1302
1042
|
selectedAttributes: [],
|
|
1303
1043
|
selectedIssues: [],
|
|
1304
1044
|
selection: [],
|
|
1305
1045
|
sort: {
|
|
1306
|
-
direction: SORTING_OPTIONS.desc
|
|
1046
|
+
direction: import_constants3.SORTING_OPTIONS.desc
|
|
1307
1047
|
// key: null,
|
|
1308
1048
|
// scope: null
|
|
1309
1049
|
},
|
|
1310
|
-
state: DEVICE_STATES.accepted,
|
|
1311
|
-
total: 0
|
|
1050
|
+
state: import_constants3.DEVICE_STATES.accepted,
|
|
1051
|
+
total: 0,
|
|
1052
|
+
refreshTrigger: false,
|
|
1053
|
+
isLoading: false,
|
|
1054
|
+
detailsTab: "",
|
|
1055
|
+
open: false
|
|
1312
1056
|
},
|
|
1313
1057
|
filters: [
|
|
1314
1058
|
// { key: 'device_type', value: 'raspberry', operator: '$eq', scope: 'inventory' }
|
|
@@ -1335,9 +1079,9 @@ var initialState3 = {
|
|
|
1335
1079
|
selectedGroup: void 0
|
|
1336
1080
|
}
|
|
1337
1081
|
};
|
|
1338
|
-
var devicesSlice = (0,
|
|
1339
|
-
name:
|
|
1340
|
-
initialState:
|
|
1082
|
+
var devicesSlice = (0, import_toolkit4.createSlice)({
|
|
1083
|
+
name: sliceName4,
|
|
1084
|
+
initialState: initialState4,
|
|
1341
1085
|
reducers: {
|
|
1342
1086
|
receivedGroups: (state, action) => {
|
|
1343
1087
|
state.groups.byId = action.payload;
|
|
@@ -1380,7 +1124,7 @@ var devicesSlice = (0, import_toolkit3.createSlice)({
|
|
|
1380
1124
|
};
|
|
1381
1125
|
},
|
|
1382
1126
|
selectGroup: (state, { payload: group }) => {
|
|
1383
|
-
state.deviceList.deviceIds = state.groups.byId[group] && state.groups.byId[group].deviceIds.length > 0 ? state.groups.byId[group].deviceIds : [];
|
|
1127
|
+
state.deviceList.deviceIds = group && state.groups.byId[group] && state.groups.byId[group].deviceIds && state.groups.byId[group].deviceIds.length > 0 ? state.groups.byId[group].deviceIds : [];
|
|
1384
1128
|
state.groups.selectedGroup = group;
|
|
1385
1129
|
},
|
|
1386
1130
|
removeGroup: (state, action) => {
|
|
@@ -1432,9 +1176,6 @@ var devicesSlice = (0, import_toolkit3.createSlice)({
|
|
|
1432
1176
|
const { count, status } = action.payload;
|
|
1433
1177
|
state.byStatus[status].total = count;
|
|
1434
1178
|
},
|
|
1435
|
-
setTotalDevices: (state, action) => {
|
|
1436
|
-
state.total = action.payload;
|
|
1437
|
-
},
|
|
1438
1179
|
setDeviceLimit: (state, action) => {
|
|
1439
1180
|
state.limit = action.payload;
|
|
1440
1181
|
},
|
|
@@ -1447,64 +1188,17 @@ var devicesSlice = (0, import_toolkit3.createSlice)({
|
|
|
1447
1188
|
maybeUpdateDevicesByStatus: (state, action) => {
|
|
1448
1189
|
const { deviceId, authId } = action.payload;
|
|
1449
1190
|
const device = state.byId[deviceId];
|
|
1450
|
-
const hasMultipleAuthSets = authId ? device.auth_sets.filter((authset) => authset.id !== authId).length > 0 : false;
|
|
1451
|
-
if (!hasMultipleAuthSets && Object.values(DEVICE_STATES).includes(device.status)) {
|
|
1191
|
+
const hasMultipleAuthSets = authId && device.auth_sets ? device.auth_sets.filter((authset) => authset.id !== authId).length > 0 : false;
|
|
1192
|
+
if (!hasMultipleAuthSets && Object.values(import_constants3.DEVICE_STATES).includes(device.status)) {
|
|
1452
1193
|
const deviceIds = state.byStatus[device.status].deviceIds.filter((id) => id !== deviceId);
|
|
1453
1194
|
state.byStatus[device.status] = { deviceIds, total: Math.max(0, state.byStatus[device.status].total - 1) };
|
|
1454
1195
|
}
|
|
1455
1196
|
}
|
|
1456
1197
|
}
|
|
1457
1198
|
});
|
|
1458
|
-
var
|
|
1199
|
+
var actions4 = devicesSlice.actions;
|
|
1459
1200
|
var devicesSlice_default = devicesSlice.reducer;
|
|
1460
1201
|
|
|
1461
|
-
// src/monitorSlice/index.ts
|
|
1462
|
-
var import_toolkit4 = require("@reduxjs/toolkit");
|
|
1463
|
-
var sliceName4 = "monitor";
|
|
1464
|
-
var initialState4 = {
|
|
1465
|
-
alerts: {
|
|
1466
|
-
alertList: { ...DEVICE_LIST_DEFAULTS, total: 0 },
|
|
1467
|
-
byDeviceId: {}
|
|
1468
|
-
},
|
|
1469
|
-
issueCounts: {
|
|
1470
|
-
byType: Object.values(DEVICE_ISSUE_OPTIONS).reduce((accu, { key }) => ({ ...accu, [key]: { filtered: 0, total: 0 } }), {})
|
|
1471
|
-
},
|
|
1472
|
-
settings: {
|
|
1473
|
-
global: {
|
|
1474
|
-
channels: {
|
|
1475
|
-
...Object.keys(alertChannels).reduce((accu, item) => ({ ...accu, [item]: { enabled: true } }), {})
|
|
1476
|
-
}
|
|
1477
|
-
}
|
|
1478
|
-
}
|
|
1479
|
-
};
|
|
1480
|
-
var monitorSlice = (0, import_toolkit4.createSlice)({
|
|
1481
|
-
name: sliceName4,
|
|
1482
|
-
initialState: initialState4,
|
|
1483
|
-
reducers: {
|
|
1484
|
-
changeAlertChannel: (state, action) => {
|
|
1485
|
-
const { channel, enabled } = action.payload;
|
|
1486
|
-
state.settings.global.channels[channel] = { enabled };
|
|
1487
|
-
},
|
|
1488
|
-
receiveDeviceAlerts: (state, action) => {
|
|
1489
|
-
const { deviceId, alerts } = action.payload;
|
|
1490
|
-
state.alerts.byDeviceId[deviceId] = { alerts };
|
|
1491
|
-
},
|
|
1492
|
-
receiveLatestDeviceAlerts: (state, action) => {
|
|
1493
|
-
const { deviceId, alerts } = action.payload;
|
|
1494
|
-
state.alerts.byDeviceId[deviceId] = { ...state.alerts.byDeviceId[deviceId], latest: alerts };
|
|
1495
|
-
},
|
|
1496
|
-
receiveDeviceIssueCounts: (state, action) => {
|
|
1497
|
-
const { issueType, counts } = action.payload;
|
|
1498
|
-
state.issueCounts.byType[issueType] = counts;
|
|
1499
|
-
},
|
|
1500
|
-
setAlertListState: (state, action) => {
|
|
1501
|
-
state.alerts.alertList = { ...state.alerts.alertList, ...action.payload };
|
|
1502
|
-
}
|
|
1503
|
-
}
|
|
1504
|
-
});
|
|
1505
|
-
var actions4 = monitorSlice.actions;
|
|
1506
|
-
var monitorSlice_default = monitorSlice.reducer;
|
|
1507
|
-
|
|
1508
1202
|
// src/onboardingSlice/index.ts
|
|
1509
1203
|
var import_toolkit5 = require("@reduxjs/toolkit");
|
|
1510
1204
|
var sliceName5 = "onboarding";
|
|
@@ -1564,7 +1258,7 @@ var initialState6 = {
|
|
|
1564
1258
|
tenants: [],
|
|
1565
1259
|
selectedTenant: null,
|
|
1566
1260
|
sort: {
|
|
1567
|
-
direction: SORTING_OPTIONS.desc,
|
|
1261
|
+
direction: import_constants3.SORTING_OPTIONS.desc,
|
|
1568
1262
|
key: "name"
|
|
1569
1263
|
}
|
|
1570
1264
|
},
|
|
@@ -1574,15 +1268,16 @@ var initialState6 = {
|
|
|
1574
1268
|
auditlog: {
|
|
1575
1269
|
events: [],
|
|
1576
1270
|
selectionState: {
|
|
1577
|
-
...DEVICE_LIST_DEFAULTS,
|
|
1271
|
+
...import_constants3.DEVICE_LIST_DEFAULTS,
|
|
1578
1272
|
detail: void 0,
|
|
1579
1273
|
endDate: void 0,
|
|
1580
1274
|
selectedIssue: void 0,
|
|
1581
|
-
sort: { direction: SORTING_OPTIONS.desc },
|
|
1275
|
+
sort: { direction: import_constants3.SORTING_OPTIONS.desc },
|
|
1582
1276
|
startDate: void 0,
|
|
1583
1277
|
total: 0,
|
|
1584
1278
|
type: void 0,
|
|
1585
|
-
user: void 0
|
|
1279
|
+
user: void 0,
|
|
1280
|
+
isLoading: false
|
|
1586
1281
|
}
|
|
1587
1282
|
},
|
|
1588
1283
|
externalDeviceIntegrations: [
|
|
@@ -1620,6 +1315,12 @@ var organizationSlice = (0, import_toolkit6.createSlice)({
|
|
|
1620
1315
|
setOrganization: (state, action) => {
|
|
1621
1316
|
state.organization = { ...state.organization, ...action.payload };
|
|
1622
1317
|
},
|
|
1318
|
+
setSubscription: (state, action) => {
|
|
1319
|
+
state.organization.subscription = { ...state.organization.subscription, ...action.payload };
|
|
1320
|
+
},
|
|
1321
|
+
setBillingProfile: (state, action) => {
|
|
1322
|
+
state.organization.billing_profile = action.payload;
|
|
1323
|
+
},
|
|
1623
1324
|
setTenantListState: (state, action) => {
|
|
1624
1325
|
state.tenantList = action.payload;
|
|
1625
1326
|
},
|
|
@@ -1682,12 +1383,12 @@ var initialState7 = {
|
|
|
1682
1383
|
*/
|
|
1683
1384
|
},
|
|
1684
1385
|
releasesList: {
|
|
1685
|
-
...DEVICE_LIST_DEFAULTS,
|
|
1386
|
+
...import_constants3.DEVICE_LIST_DEFAULTS,
|
|
1686
1387
|
searchedIds: [],
|
|
1687
1388
|
releaseIds: [],
|
|
1688
1389
|
selection: [],
|
|
1689
1390
|
sort: {
|
|
1690
|
-
direction: SORTING_OPTIONS.desc,
|
|
1391
|
+
direction: import_constants3.SORTING_OPTIONS.desc,
|
|
1691
1392
|
key: "modified"
|
|
1692
1393
|
},
|
|
1693
1394
|
isLoading: void 0,
|
|
@@ -1756,11 +1457,12 @@ var initialState8 = {
|
|
|
1756
1457
|
retries: 0
|
|
1757
1458
|
},
|
|
1758
1459
|
permissionSetsById: {
|
|
1759
|
-
...defaultPermissionSets
|
|
1460
|
+
...import_constants3.defaultPermissionSets
|
|
1760
1461
|
},
|
|
1761
1462
|
rolesById: {
|
|
1762
|
-
...rolesById
|
|
1463
|
+
...import_constants3.rolesById
|
|
1763
1464
|
},
|
|
1465
|
+
rolesInitialized: false,
|
|
1764
1466
|
settingsInitialized: false,
|
|
1765
1467
|
showConnectDeviceDialog: false,
|
|
1766
1468
|
showFeedbackDialog: false,
|
|
@@ -1796,9 +1498,6 @@ var usersSlice = (0, import_toolkit8.createSlice)({
|
|
|
1796
1498
|
state.byId[action.payload.id] = action.payload;
|
|
1797
1499
|
state.currentUser = action.payload.id;
|
|
1798
1500
|
},
|
|
1799
|
-
createdUser: (state, action) => {
|
|
1800
|
-
state.byId[0] = action.payload;
|
|
1801
|
-
},
|
|
1802
1501
|
removedUser: (state, action) => {
|
|
1803
1502
|
const { [action.payload]: removedUser, ...byId } = state.byId;
|
|
1804
1503
|
state.byId = byId;
|
|
@@ -1815,6 +1514,10 @@ var usersSlice = (0, import_toolkit8.createSlice)({
|
|
|
1815
1514
|
},
|
|
1816
1515
|
receivedRoles: (state, action) => {
|
|
1817
1516
|
state.rolesById = action.payload;
|
|
1517
|
+
state.rolesInitialized = true;
|
|
1518
|
+
},
|
|
1519
|
+
finishedRoleInitialization: (state, action) => {
|
|
1520
|
+
state.rolesInitialized = action.payload;
|
|
1818
1521
|
},
|
|
1819
1522
|
createdRole: (state, action) => {
|
|
1820
1523
|
state.rolesById[action.payload.name] = {
|
|
@@ -1845,7 +1548,7 @@ var usersSlice = (0, import_toolkit8.createSlice)({
|
|
|
1845
1548
|
},
|
|
1846
1549
|
setTooltipState: (state, action) => {
|
|
1847
1550
|
const { id, readState = READ_STATES.read } = action.payload;
|
|
1848
|
-
state.tooltips.byId[id]
|
|
1551
|
+
state.tooltips.byId[id] = { ...state.tooltips.byId[id], readState };
|
|
1849
1552
|
},
|
|
1850
1553
|
setTooltipsState: (state, action) => {
|
|
1851
1554
|
state.tooltips.byId = {
|
|
@@ -1869,10 +1572,10 @@ var usersSlice_default = usersSlice.reducer;
|
|
|
1869
1572
|
|
|
1870
1573
|
// src/actions.ts
|
|
1871
1574
|
var actions_default = {
|
|
1872
|
-
...actions,
|
|
1873
1575
|
...actions2,
|
|
1874
1576
|
...actions3,
|
|
1875
1577
|
...actions4,
|
|
1578
|
+
...actions,
|
|
1876
1579
|
...actions5,
|
|
1877
1580
|
...actions6,
|
|
1878
1581
|
...actions7,
|
|
@@ -1885,7 +1588,7 @@ var import_axios = __toESM(require("axios"), 1);
|
|
|
1885
1588
|
// src/auth.ts
|
|
1886
1589
|
var import_universal_cookie = __toESM(require("universal-cookie"), 1);
|
|
1887
1590
|
var cookies = new import_universal_cookie.default();
|
|
1888
|
-
var emptySession = Object.freeze({ token: "",
|
|
1591
|
+
var emptySession = Object.freeze({ token: "", expiresAt: void 0 });
|
|
1889
1592
|
var tokenCache = "";
|
|
1890
1593
|
var getSessionInfo = () => {
|
|
1891
1594
|
let sessionInfo = { ...emptySession };
|
|
@@ -1898,15 +1601,15 @@ var getSessionInfo = () => {
|
|
|
1898
1601
|
return { ...emptySession };
|
|
1899
1602
|
}
|
|
1900
1603
|
if (!sessionInfo.token) {
|
|
1901
|
-
|
|
1604
|
+
const jwtTokenFromCookie = cookies.get("JWT", { doNotParse: true }) ?? "";
|
|
1902
1605
|
if (jwtTokenFromCookie) {
|
|
1903
|
-
setSessionInfo({ token: jwtTokenFromCookie
|
|
1606
|
+
setSessionInfo({ token: jwtTokenFromCookie });
|
|
1904
1607
|
sessionInfo.token = jwtTokenFromCookie;
|
|
1905
1608
|
cookies.remove("JWT");
|
|
1906
1609
|
cookies.remove("JWT", { path: "/" });
|
|
1907
1610
|
}
|
|
1908
1611
|
}
|
|
1909
|
-
sessionInfo.token = sessionInfo.token ||
|
|
1612
|
+
sessionInfo.token = sessionInfo.token || "";
|
|
1910
1613
|
tokenCache = sessionInfo.token;
|
|
1911
1614
|
return sessionInfo;
|
|
1912
1615
|
};
|
|
@@ -1963,20 +1666,17 @@ var general_api_default = Api;
|
|
|
1963
1666
|
// src/appSlice/selectors.ts
|
|
1964
1667
|
var import_helpers2 = require("@northern.tech/utils/helpers");
|
|
1965
1668
|
var import_toolkit9 = require("@reduxjs/toolkit");
|
|
1966
|
-
var getAppDocsVersion = (state) => state.app.docsVersion;
|
|
1967
1669
|
var getFeatures = (state) => state.app.features;
|
|
1968
1670
|
var getFullVersionInformation = (state) => state.app.versionInformation;
|
|
1969
|
-
var getDocsVersion = (0, import_toolkit9.createSelector)([getAppDocsVersion, getFeatures], (appDocsVersion, { isHosted }) => {
|
|
1970
|
-
const docsVersion = appDocsVersion ? `${appDocsVersion}/` : "development/";
|
|
1971
|
-
return isHosted ? "" : docsVersion;
|
|
1972
|
-
});
|
|
1973
1671
|
var getSearchState = (state) => state.app.searchState;
|
|
1672
|
+
var getUploads = (state) => state.app.uploadsById;
|
|
1673
|
+
var getIsUploading = (0, import_toolkit9.createSelector)([getUploads], (uploadsById) => !!Object.keys(uploadsById).length);
|
|
1974
1674
|
var getSearchedDevices = (0, import_toolkit9.createSelector)([getSearchState], ({ deviceIds }) => deviceIds);
|
|
1975
1675
|
var getVersionInformation = (0, import_toolkit9.createSelector)(
|
|
1976
1676
|
[getFullVersionInformation, getFeatures],
|
|
1977
|
-
({ Integration, ...remainder }, { isHosted }) => isHosted &&
|
|
1677
|
+
({ Integration: Integration2, ...remainder }, { isHosted }) => isHosted && Integration2 !== "next" ? remainder : { ...remainder, Integration: Integration2 }
|
|
1978
1678
|
);
|
|
1979
|
-
var getIsPreview = (0, import_toolkit9.createSelector)([getFullVersionInformation], ({ Integration }) => (0, import_helpers2.versionCompare)(
|
|
1679
|
+
var getIsPreview = (0, import_toolkit9.createSelector)([getFullVersionInformation], ({ Integration: Integration2 }) => (0, import_helpers2.versionCompare)(Integration2, "next") > -1);
|
|
1980
1680
|
|
|
1981
1681
|
// src/commonSelectors.ts
|
|
1982
1682
|
var import_helpers5 = require("@northern.tech/utils/helpers");
|
|
@@ -2058,7 +1758,7 @@ var getDeviceIdentityAttributes = (0, import_toolkit11.createSelector)(
|
|
|
2058
1758
|
);
|
|
2059
1759
|
var getDeviceCountsByStatus = (0, import_toolkit11.createSelector)(
|
|
2060
1760
|
[getDevicesByStatus],
|
|
2061
|
-
(byStatus) => Object.values(DEVICE_STATES).reduce((accu, state) => {
|
|
1761
|
+
(byStatus) => Object.values(import_constants3.DEVICE_STATES).reduce((accu, state) => {
|
|
2062
1762
|
accu[state] = byStatus[state].total || 0;
|
|
2063
1763
|
return accu;
|
|
2064
1764
|
}, {})
|
|
@@ -2070,7 +1770,7 @@ var getSelectedGroupInfo = (0, import_toolkit11.createSelector)(
|
|
|
2070
1770
|
let groupCount = acceptedDeviceTotal;
|
|
2071
1771
|
let groupFilters = [];
|
|
2072
1772
|
if (selectedGroup && groupsById[selectedGroup]) {
|
|
2073
|
-
groupCount = groupsById[selectedGroup].total;
|
|
1773
|
+
groupCount = groupsById[selectedGroup].total || 0;
|
|
2074
1774
|
groupFilters = groupsById[selectedGroup].filters || [];
|
|
2075
1775
|
}
|
|
2076
1776
|
return { groupCount, selectedGroup, groupFilters };
|
|
@@ -2081,13 +1781,18 @@ var getLimitMaxed = (0, import_toolkit11.createSelector)(
|
|
|
2081
1781
|
({ total: acceptedDevices = 0 }, deviceLimit) => Boolean(deviceLimit && deviceLimit <= acceptedDevices)
|
|
2082
1782
|
);
|
|
2083
1783
|
var getGroupsByIdWithoutUngrouped = (0, import_toolkit11.createSelector)([getGroupsById], ({ [UNGROUPED_GROUP.id]: ungrouped, ...groups }) => groups);
|
|
1784
|
+
var getGroupData = (0, import_toolkit11.createSelector)([getGroupsByIdWithoutUngrouped], (groups) => {
|
|
1785
|
+
const createdGroup = Object.keys(groups).length ? Object.keys(groups)[0] : void 0;
|
|
1786
|
+
const hasDynamicGroups = Object.values(groups).some((group) => !!group.id);
|
|
1787
|
+
return { createdGroup, hasDynamicGroups, groups };
|
|
1788
|
+
});
|
|
2084
1789
|
var getGroups = (0, import_toolkit11.createSelector)([getGroupsById], (groupsById) => {
|
|
2085
1790
|
const groupNames = Object.keys(groupsById).sort();
|
|
2086
1791
|
const groupedGroups = Object.entries(groupsById).sort((a, b) => a[0].localeCompare(b[0])).reduce(
|
|
2087
1792
|
(accu, [groupname, group]) => {
|
|
2088
1793
|
const name = groupname === UNGROUPED_GROUP.id ? UNGROUPED_GROUP.name : groupname;
|
|
2089
1794
|
const groupItem = { ...group, groupId: name, name: groupname };
|
|
2090
|
-
if (group.filters
|
|
1795
|
+
if ((group.filters ?? []).length > 0) {
|
|
2091
1796
|
if (groupname !== UNGROUPED_GROUP.id) {
|
|
2092
1797
|
accu.dynamic.push(groupItem);
|
|
2093
1798
|
} else {
|
|
@@ -2130,12 +1835,14 @@ var getOnboarding = (state) => state.onboarding;
|
|
|
2130
1835
|
|
|
2131
1836
|
// src/organizationSlice/selectors.ts
|
|
2132
1837
|
var import_toolkit12 = require("@reduxjs/toolkit");
|
|
1838
|
+
var import_dayjs = __toESM(require("dayjs"), 1);
|
|
1839
|
+
var import_relativeTime = __toESM(require("dayjs/plugin/relativeTime.js"), 1);
|
|
2133
1840
|
var getOrganization = (state) => state.organization.organization;
|
|
2134
1841
|
var getExternalIntegrations = (state) => state.organization.externalDeviceIntegrations;
|
|
2135
1842
|
var getAuditLog = (state) => state.organization.auditlog.events;
|
|
2136
1843
|
var getAuditLogSelectionState = (state) => state.organization.auditlog.selectionState;
|
|
2137
1844
|
var getWebhookEvents = (state) => state.organization.webhooks.events;
|
|
2138
|
-
var getWebhookEventTotal = (state) => state.organization.webhooks.
|
|
1845
|
+
var getWebhookEventTotal = (state) => state.organization.webhooks.eventsTotal;
|
|
2139
1846
|
var getDeviceTwinIntegrations = (0, import_toolkit12.createSelector)(
|
|
2140
1847
|
[getExternalIntegrations],
|
|
2141
1848
|
(integrations) => integrations.filter((integration) => integration.id && EXTERNAL_PROVIDER[integration.provider]?.deviceTwin)
|
|
@@ -2156,22 +1863,31 @@ var getAuditLogEntry = (0, import_toolkit12.createSelector)([getAuditLog, getAud
|
|
|
2156
1863
|
const [eventAction, eventTime] = atob(selectedId).split("|");
|
|
2157
1864
|
return events.find((item) => item.action === eventAction && item.time === eventTime);
|
|
2158
1865
|
});
|
|
1866
|
+
import_dayjs.default.extend(import_relativeTime.default);
|
|
1867
|
+
var newPricingIntroduction = (0, import_dayjs.default)("2025-06-03T00:00");
|
|
1868
|
+
var getHasCurrentPricing = (0, import_toolkit12.createSelector)(
|
|
1869
|
+
[getOrganization],
|
|
1870
|
+
({ id }) => !!id && (0, import_dayjs.default)(parseInt(id.substring(0, 8), 16) * 1e3) >= newPricingIntroduction
|
|
1871
|
+
);
|
|
1872
|
+
|
|
1873
|
+
// src/releasesSlice/selectors.ts
|
|
1874
|
+
var import_toolkit13 = require("@reduxjs/toolkit");
|
|
2159
1875
|
|
|
2160
1876
|
// src/utils.ts
|
|
2161
1877
|
var import_helpers4 = require("@northern.tech/utils/helpers");
|
|
2162
1878
|
var filterProcessors = {
|
|
2163
|
-
[DEVICE_FILTERING_OPTIONS.$gt.key]: (val) => Number(val) || val,
|
|
2164
|
-
[DEVICE_FILTERING_OPTIONS.$gte.key]: (val) => Number(val) || val,
|
|
2165
|
-
[DEVICE_FILTERING_OPTIONS.$lt.key]: (val) => Number(val) || val,
|
|
2166
|
-
[DEVICE_FILTERING_OPTIONS.$lte.key]: (val) => Number(val) || val,
|
|
2167
|
-
[DEVICE_FILTERING_OPTIONS.$ltne.key]: (val) => Number(val) || val,
|
|
2168
|
-
[DEVICE_FILTERING_OPTIONS.$in.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
2169
|
-
[DEVICE_FILTERING_OPTIONS.$nin.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
2170
|
-
[DEVICE_FILTERING_OPTIONS.$exists.key]: import_helpers4.yes,
|
|
2171
|
-
[DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false
|
|
1879
|
+
[import_constants3.DEVICE_FILTERING_OPTIONS.$gt.key]: (val) => Number(val) || val,
|
|
1880
|
+
[import_constants3.DEVICE_FILTERING_OPTIONS.$gte.key]: (val) => Number(val) || val,
|
|
1881
|
+
[import_constants3.DEVICE_FILTERING_OPTIONS.$lt.key]: (val) => Number(val) || val,
|
|
1882
|
+
[import_constants3.DEVICE_FILTERING_OPTIONS.$lte.key]: (val) => Number(val) || val,
|
|
1883
|
+
[import_constants3.DEVICE_FILTERING_OPTIONS.$ltne.key]: (val) => Number(val) || val,
|
|
1884
|
+
[import_constants3.DEVICE_FILTERING_OPTIONS.$in.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1885
|
+
[import_constants3.DEVICE_FILTERING_OPTIONS.$nin.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1886
|
+
[import_constants3.DEVICE_FILTERING_OPTIONS.$exists.key]: import_helpers4.yes,
|
|
1887
|
+
[import_constants3.DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false
|
|
2172
1888
|
};
|
|
2173
1889
|
var filterAliases = {
|
|
2174
|
-
$nexists: { alias: DEVICE_FILTERING_OPTIONS.$exists.key, value: false }
|
|
1890
|
+
$nexists: { alias: import_constants3.DEVICE_FILTERING_OPTIONS.$exists.key, value: false }
|
|
2175
1891
|
};
|
|
2176
1892
|
var mapFiltersToTerms = (filters) => filters.map((filter) => ({
|
|
2177
1893
|
scope: filter.scope,
|
|
@@ -2180,33 +1896,40 @@ var mapFiltersToTerms = (filters) => filters.map((filter) => ({
|
|
|
2180
1896
|
value: filterProcessors.hasOwnProperty(filter.operator) ? filterProcessors[filter.operator](filter.value) : filter.value
|
|
2181
1897
|
}));
|
|
2182
1898
|
var convertIssueOptionsToFilters = (issuesSelection, filtersState = {}) => issuesSelection.map((item) => {
|
|
2183
|
-
if (typeof DEVICE_ISSUE_OPTIONS[item].filterRule.value === "function") {
|
|
2184
|
-
return { ...DEVICE_ISSUE_OPTIONS[item].filterRule, value: DEVICE_ISSUE_OPTIONS[item].filterRule.value(filtersState) };
|
|
1899
|
+
if (typeof import_constants3.DEVICE_ISSUE_OPTIONS[item].filterRule.value === "function") {
|
|
1900
|
+
return { ...import_constants3.DEVICE_ISSUE_OPTIONS[item].filterRule, value: import_constants3.DEVICE_ISSUE_OPTIONS[item].filterRule.value(filtersState) };
|
|
2185
1901
|
}
|
|
2186
|
-
return DEVICE_ISSUE_OPTIONS[item].filterRule;
|
|
1902
|
+
return import_constants3.DEVICE_ISSUE_OPTIONS[item].filterRule;
|
|
2187
1903
|
});
|
|
2188
|
-
var convertDeviceListStateToFilters = ({
|
|
1904
|
+
var convertDeviceListStateToFilters = ({
|
|
1905
|
+
filters = [],
|
|
1906
|
+
group,
|
|
1907
|
+
groups = { byId: {} },
|
|
1908
|
+
offlineThreshold,
|
|
1909
|
+
selectedIssues = [],
|
|
1910
|
+
status
|
|
1911
|
+
}) => {
|
|
2189
1912
|
let applicableFilters = [...filters];
|
|
2190
1913
|
if (typeof group === "string" && !(groups.byId[group]?.filters || applicableFilters).length) {
|
|
2191
|
-
applicableFilters.push({ key: "group", value: group, operator: DEVICE_FILTERING_OPTIONS.$eq.key, scope: "system" });
|
|
1914
|
+
applicableFilters.push({ key: "group", value: group, operator: import_constants3.DEVICE_FILTERING_OPTIONS.$eq.key, scope: "system" });
|
|
2192
1915
|
}
|
|
2193
1916
|
const nonMonitorFilters = applicableFilters.filter(
|
|
2194
|
-
(filter) => !Object.values(DEVICE_ISSUE_OPTIONS).some(
|
|
1917
|
+
(filter) => !Object.values(import_constants3.DEVICE_ISSUE_OPTIONS).some(
|
|
2195
1918
|
({ filterRule }) => filter.scope !== "inventory" && filterRule.scope === filter.scope && filterRule.key === filter.key
|
|
2196
1919
|
)
|
|
2197
1920
|
);
|
|
2198
1921
|
const deviceIssueFilters = convertIssueOptionsToFilters(selectedIssues, { offlineThreshold });
|
|
2199
1922
|
applicableFilters = [...nonMonitorFilters, ...deviceIssueFilters];
|
|
2200
|
-
const effectiveFilters = status ? [...applicableFilters, { key: "status", value: status, operator: DEVICE_FILTERING_OPTIONS.$eq.key, scope: "identity" }] : applicableFilters;
|
|
1923
|
+
const effectiveFilters = status ? [...applicableFilters, { key: "status", value: status, operator: import_constants3.DEVICE_FILTERING_OPTIONS.$eq.key, scope: "identity" }] : applicableFilters;
|
|
2201
1924
|
return { applicableFilters: nonMonitorFilters, filterTerms: mapFiltersToTerms(effectiveFilters) };
|
|
2202
1925
|
};
|
|
2203
|
-
var listItemMapper = (byId, ids, {
|
|
1926
|
+
var listItemMapper = (byId, ids, { cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH, defaultObject = {} }) => ids.slice(0, cutOffSize).reduce((accu, id) => {
|
|
2204
1927
|
if (id && byId[id]) {
|
|
2205
1928
|
accu.push({ ...defaultObject, ...byId[id] });
|
|
2206
1929
|
}
|
|
2207
1930
|
return accu;
|
|
2208
1931
|
}, []);
|
|
2209
|
-
var mergePermissions = (existingPermissions = { ...emptyUiPermissions }, addedPermissions) => Object.entries(existingPermissions).reduce(
|
|
1932
|
+
var mergePermissions = (existingPermissions = { ...import_constants3.emptyUiPermissions }, addedPermissions) => Object.entries(existingPermissions).reduce(
|
|
2210
1933
|
(accu, [key, value]) => {
|
|
2211
1934
|
let values;
|
|
2212
1935
|
if (!accu[key]) {
|
|
@@ -2230,44 +1953,49 @@ var mapUserRolesToUiPermissions = (userRoles, roles) => userRoles.reduce(
|
|
|
2230
1953
|
}
|
|
2231
1954
|
return mergePermissions(accu, roles[roleId].uiPermissions);
|
|
2232
1955
|
},
|
|
2233
|
-
{ ...emptyUiPermissions }
|
|
1956
|
+
{ ...import_constants3.emptyUiPermissions }
|
|
2234
1957
|
);
|
|
2235
1958
|
var isDarkMode = (mode) => mode === DARK_MODE;
|
|
2236
1959
|
|
|
2237
1960
|
// src/releasesSlice/selectors.ts
|
|
2238
|
-
var import_toolkit13 = require("@reduxjs/toolkit");
|
|
2239
1961
|
var getSelectedReleaseId = (state) => state.releases.selectedRelease;
|
|
2240
1962
|
var getReleasesById = (state) => state.releases.byId;
|
|
2241
1963
|
var getReleaseTags = (state) => state.releases.tags;
|
|
2242
1964
|
var getReleaseListState = (state) => state.releases.releasesList;
|
|
2243
1965
|
var getListedReleases = (state) => state.releases.releasesList.releaseIds;
|
|
2244
|
-
var
|
|
1966
|
+
var releaseDefaults = {};
|
|
1967
|
+
var getReleaseMappingDefaults = () => releaseDefaults;
|
|
2245
1968
|
var getReleasesList = (0, import_toolkit13.createSelector)([getReleasesById, getListedReleases, getReleaseMappingDefaults], listItemMapper);
|
|
2246
1969
|
var getReleaseTagsById = (0, import_toolkit13.createSelector)([getReleaseTags], (releaseTags) => releaseTags.reduce((accu, key) => ({ ...accu, [key]: key }), {}));
|
|
2247
1970
|
var getHasReleases = (0, import_toolkit13.createSelector)(
|
|
2248
1971
|
[getReleaseListState, getReleasesById],
|
|
2249
1972
|
({ searchTotal, total }, byId) => !!(Object.keys(byId).length || total || searchTotal)
|
|
2250
1973
|
);
|
|
2251
|
-
var getSelectedRelease = (0, import_toolkit13.createSelector)([getReleasesById, getSelectedReleaseId], (byId, id) => byId[id] ?? {});
|
|
1974
|
+
var getSelectedRelease = (0, import_toolkit13.createSelector)([getReleasesById, getSelectedReleaseId], (byId, id) => byId[id || ""] ?? {});
|
|
1975
|
+
var getSelectedReleases = (0, import_toolkit13.createSelector)([getReleaseListState, getReleasesList], ({ selection }, releases) => selection.map((index) => releases[index]));
|
|
2252
1976
|
|
|
2253
1977
|
// src/usersSlice/selectors.ts
|
|
2254
1978
|
var import_toolkit14 = require("@reduxjs/toolkit");
|
|
1979
|
+
var emptyObject = {};
|
|
2255
1980
|
var getRolesById = (state) => state.users.rolesById;
|
|
2256
1981
|
var getTooltipsById = (state) => state.users.tooltips.byId;
|
|
2257
1982
|
var getGlobalSettings = (state) => state.users.globalSettings;
|
|
2258
1983
|
var getCurrentUserId = (state) => state.users.currentUser;
|
|
2259
1984
|
var getUsersById = (state) => state.users.byId;
|
|
2260
1985
|
var getUsersList = (0, import_toolkit14.createSelector)([getUsersById], (usersById) => Object.values(usersById));
|
|
2261
|
-
var getCurrentUser = (0, import_toolkit14.createSelector)(
|
|
1986
|
+
var getCurrentUser = (0, import_toolkit14.createSelector)(
|
|
1987
|
+
[getUsersById, getCurrentUserId],
|
|
1988
|
+
(usersById, userId) => userId ? usersById[userId] ?? emptyObject : emptyObject
|
|
1989
|
+
);
|
|
2262
1990
|
var getUserSettings = (state) => state.users.userSettings;
|
|
2263
1991
|
var getSelectedDeviceAttribute = (0, import_toolkit14.createSelector)(
|
|
2264
1992
|
[getUserSettings],
|
|
2265
1993
|
({ columnSelection }) => columnSelection.map((attribute) => ({ attribute: attribute.key, scope: attribute.scope }))
|
|
2266
1994
|
);
|
|
2267
1995
|
var getIsDarkMode = (0, import_toolkit14.createSelector)([getUserSettings], ({ mode }) => isDarkMode(mode));
|
|
2268
|
-
var
|
|
1996
|
+
var getReadAllHelptips = (0, import_toolkit14.createSelector)(
|
|
2269
1997
|
[getTooltipsById],
|
|
2270
|
-
(tooltips) => Object.values(tooltips).
|
|
1998
|
+
(tooltips) => Object.values(tooltips).every(({ readState }) => readState === READ_STATES.read)
|
|
2271
1999
|
);
|
|
2272
2000
|
var getTooltipsState = (0, import_toolkit14.createSelector)(
|
|
2273
2001
|
[getTooltipsById, getUserSettings],
|
|
@@ -2281,7 +2009,7 @@ var getTooltipsState = (0, import_toolkit14.createSelector)(
|
|
|
2281
2009
|
);
|
|
2282
2010
|
var getHas2FA = (0, import_toolkit14.createSelector)(
|
|
2283
2011
|
[getCurrentUser],
|
|
2284
|
-
(currentUser) => currentUser.hasOwnProperty("tfa_status") && currentUser.tfa_status === twoFAStates.enabled
|
|
2012
|
+
(currentUser) => currentUser.hasOwnProperty("tfa_status") && currentUser.tfa_status === import_constants3.twoFAStates.enabled
|
|
2285
2013
|
);
|
|
2286
2014
|
var getIdAttribute = (0, import_toolkit14.createSelector)([getGlobalSettings], ({ id_attribute = { ...defaultIdAttribute } }) => id_attribute);
|
|
2287
2015
|
var getOfflineThresholdSettings = (0, import_toolkit14.createSelector)([getGlobalSettings], ({ offlineThreshold }) => ({
|
|
@@ -2297,37 +2025,34 @@ var getIsEnterprise = (0, import_toolkit15.createSelector)(
|
|
|
2297
2025
|
);
|
|
2298
2026
|
var getAttrsEndpoint = (0, import_toolkit15.createSelector)(
|
|
2299
2027
|
[getFeatures],
|
|
2300
|
-
({ hasReporting }) => hasReporting ? `${reportingApiUrl}/devices/search/attributes` : `${inventoryApiUrlV2}/filters/attributes`
|
|
2028
|
+
({ hasReporting }) => hasReporting ? `${import_constants3.reportingApiUrl}/devices/search/attributes` : `${import_constants3.inventoryApiUrlV2}/filters/attributes`
|
|
2301
2029
|
);
|
|
2302
2030
|
var getSearchEndpoint = (0, import_toolkit15.createSelector)(
|
|
2303
2031
|
[getFeatures],
|
|
2304
|
-
({ hasReporting }) => hasReporting ? `${reportingApiUrl}/devices/search` : `${inventoryApiUrlV2}/filters/search`
|
|
2305
|
-
);
|
|
2306
|
-
var getUserRoles = (0, import_toolkit15.createSelector)(
|
|
2307
|
-
[getCurrentUser, getRolesById, getIsEnterprise, getFeatures, getOrganization],
|
|
2308
|
-
(currentUser, rolesById2, isEnterprise, { isHosted, hasMultitenancy }, { plan = PLANS.os.id }) => {
|
|
2309
|
-
const isAdmin = currentUser.roles?.length ? currentUser.roles.some((role) => role === rolesByName.admin) : !(hasMultitenancy || isEnterprise || isHosted && plan !== PLANS.os.id);
|
|
2310
|
-
const uiPermissions = isAdmin ? mapUserRolesToUiPermissions([rolesByName.admin], rolesById2) : mapUserRolesToUiPermissions(currentUser.roles || [], rolesById2);
|
|
2311
|
-
return { isAdmin, uiPermissions };
|
|
2312
|
-
}
|
|
2032
|
+
({ hasReporting }) => hasReporting ? `${import_constants3.reportingApiUrl}/devices/search` : `${import_constants3.inventoryApiUrlV2}/filters/search`
|
|
2313
2033
|
);
|
|
2034
|
+
var getUserRoles = (0, import_toolkit15.createSelector)([getCurrentUser, getRolesById, getIsEnterprise], (currentUser, rolesById2, isEnterprise) => {
|
|
2035
|
+
const isAdmin = currentUser.roles?.length ? currentUser.roles.some((role) => role === import_constants3.rolesByName.admin) : !isEnterprise;
|
|
2036
|
+
const uiPermissions = isAdmin ? mapUserRolesToUiPermissions([import_constants3.rolesByName.admin], rolesById2) : mapUserRolesToUiPermissions(currentUser.roles || [], rolesById2);
|
|
2037
|
+
return { isAdmin, uiPermissions };
|
|
2038
|
+
});
|
|
2314
2039
|
var hasPermission = (thing, permission) => Object.values(thing).some((permissions) => permissions.includes(permission));
|
|
2315
2040
|
var getUserCapabilities = (0, import_toolkit15.createSelector)([getUserRoles, getIsServiceProvider], ({ uiPermissions }, isServiceProvider) => {
|
|
2316
|
-
const canManageReleases = hasPermission(uiPermissions.releases, uiPermissionsById.manage.value);
|
|
2317
|
-
const canReadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.read.value);
|
|
2318
|
-
const canUploadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.upload.value);
|
|
2319
|
-
const canAuditlog = uiPermissions.auditlog.includes(uiPermissionsById.read.value);
|
|
2320
|
-
const canReadUsers = uiPermissions.userManagement.includes(uiPermissionsById.read.value);
|
|
2321
|
-
const canManageUsers = uiPermissions.userManagement.includes(uiPermissionsById.manage.value);
|
|
2322
|
-
const canReadDevices = hasPermission(uiPermissions.groups, uiPermissionsById.read.value);
|
|
2041
|
+
const canManageReleases = hasPermission(uiPermissions.releases, import_constants3.uiPermissionsById.manage.value);
|
|
2042
|
+
const canReadReleases = canManageReleases || hasPermission(uiPermissions.releases, import_constants3.uiPermissionsById.read.value);
|
|
2043
|
+
const canUploadReleases = canManageReleases || hasPermission(uiPermissions.releases, import_constants3.uiPermissionsById.upload.value);
|
|
2044
|
+
const canAuditlog = uiPermissions.auditlog.includes(import_constants3.uiPermissionsById.read.value);
|
|
2045
|
+
const canReadUsers = uiPermissions.userManagement.includes(import_constants3.uiPermissionsById.read.value);
|
|
2046
|
+
const canManageUsers = uiPermissions.userManagement.includes(import_constants3.uiPermissionsById.manage.value);
|
|
2047
|
+
const canReadDevices = hasPermission(uiPermissions.groups, import_constants3.uiPermissionsById.read.value);
|
|
2323
2048
|
const canWriteDevices = Object.values(uiPermissions.groups).some(
|
|
2324
|
-
(groupPermissions) => groupPermissions.includes(uiPermissionsById.read.value) && groupPermissions.length > 1
|
|
2049
|
+
(groupPermissions) => groupPermissions.includes(import_constants3.uiPermissionsById.read.value) && groupPermissions.length > 1
|
|
2325
2050
|
);
|
|
2326
|
-
const canTroubleshoot = hasPermission(uiPermissions.groups, uiPermissionsById.connect.value);
|
|
2327
|
-
const canManageDevices = hasPermission(uiPermissions.groups, uiPermissionsById.manage.value);
|
|
2328
|
-
const canConfigure = hasPermission(uiPermissions.groups, uiPermissionsById.configure.value);
|
|
2329
|
-
const canDeploy = uiPermissions.deployments.includes(uiPermissionsById.deploy.value) || hasPermission(uiPermissions.groups, uiPermissionsById.deploy.value);
|
|
2330
|
-
const canReadDeployments = uiPermissions.deployments.includes(uiPermissionsById.read.value);
|
|
2051
|
+
const canTroubleshoot = hasPermission(uiPermissions.groups, import_constants3.uiPermissionsById.connect.value);
|
|
2052
|
+
const canManageDevices = hasPermission(uiPermissions.groups, import_constants3.uiPermissionsById.manage.value);
|
|
2053
|
+
const canConfigure = hasPermission(uiPermissions.groups, import_constants3.uiPermissionsById.configure.value);
|
|
2054
|
+
const canDeploy = uiPermissions.deployments.includes(import_constants3.uiPermissionsById.deploy.value) || hasPermission(uiPermissions.groups, import_constants3.uiPermissionsById.deploy.value);
|
|
2055
|
+
const canReadDeployments = uiPermissions.deployments.includes(import_constants3.uiPermissionsById.read.value);
|
|
2331
2056
|
return {
|
|
2332
2057
|
canAuditlog,
|
|
2333
2058
|
canConfigure,
|
|
@@ -2378,11 +2103,11 @@ var getTenantCapabilities = (0, import_toolkit15.createSelector)(
|
|
|
2378
2103
|
var getFilterAttributes = (0, import_toolkit15.createSelector)(
|
|
2379
2104
|
[getGlobalSettings, getFilteringAttributes],
|
|
2380
2105
|
({ previousFilters }, { identityAttributes, inventoryAttributes, systemAttributes, tagAttributes }) => {
|
|
2381
|
-
const deviceNameAttribute = { key: "name", value: "Name", scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 1 };
|
|
2382
|
-
const deviceIdAttribute = { key: "id", value: "Device ID", scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 };
|
|
2383
|
-
const checkInAttribute = { key: "check_in_time", value: "Latest activity", scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPES.system, priority: 4 };
|
|
2106
|
+
const deviceNameAttribute = { key: "name", value: "Name", scope: import_constants3.ATTRIBUTE_SCOPES.tags, category: import_constants3.ATTRIBUTE_SCOPES.tags, priority: 1 };
|
|
2107
|
+
const deviceIdAttribute = { key: "id", value: "Device ID", scope: import_constants3.ATTRIBUTE_SCOPES.identity, category: import_constants3.ATTRIBUTE_SCOPES.identity, priority: 1 };
|
|
2108
|
+
const checkInAttribute = { key: "check_in_time", value: "Latest activity", scope: import_constants3.ATTRIBUTE_SCOPES.system, category: import_constants3.ATTRIBUTE_SCOPES.system, priority: 4 };
|
|
2384
2109
|
const updateAttribute = { ...checkInAttribute, key: "updated_ts", value: "Last inventory update" };
|
|
2385
|
-
const firstRequestAttribute = { key: "created_ts", value: "First request", scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPES.system, priority: 4 };
|
|
2110
|
+
const firstRequestAttribute = { key: "created_ts", value: "First request", scope: import_constants3.ATTRIBUTE_SCOPES.system, category: import_constants3.ATTRIBUTE_SCOPES.system, priority: 4 };
|
|
2386
2111
|
const attributes = [
|
|
2387
2112
|
...previousFilters.map((item) => ({
|
|
2388
2113
|
...item,
|
|
@@ -2392,13 +2117,13 @@ var getFilterAttributes = (0, import_toolkit15.createSelector)(
|
|
|
2392
2117
|
})),
|
|
2393
2118
|
deviceNameAttribute,
|
|
2394
2119
|
deviceIdAttribute,
|
|
2395
|
-
...identityAttributes.map((item) => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 })),
|
|
2396
|
-
...inventoryAttributes.map((item) => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.inventory, category: ATTRIBUTE_SCOPES.inventory, priority: 2 })),
|
|
2397
|
-
...tagAttributes.map((item) => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 3 })),
|
|
2120
|
+
...identityAttributes.map((item) => ({ key: item, value: item, scope: import_constants3.ATTRIBUTE_SCOPES.identity, category: import_constants3.ATTRIBUTE_SCOPES.identity, priority: 1 })),
|
|
2121
|
+
...inventoryAttributes.map((item) => ({ key: item, value: item, scope: import_constants3.ATTRIBUTE_SCOPES.inventory, category: import_constants3.ATTRIBUTE_SCOPES.inventory, priority: 2 })),
|
|
2122
|
+
...tagAttributes.map((item) => ({ key: item, value: item, scope: import_constants3.ATTRIBUTE_SCOPES.tags, category: import_constants3.ATTRIBUTE_SCOPES.tags, priority: 3 })),
|
|
2398
2123
|
checkInAttribute,
|
|
2399
2124
|
updateAttribute,
|
|
2400
2125
|
firstRequestAttribute,
|
|
2401
|
-
...systemAttributes.map((item) => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPES.system, priority: 4 }))
|
|
2126
|
+
...systemAttributes.map((item) => ({ key: item, value: item, scope: import_constants3.ATTRIBUTE_SCOPES.system, category: import_constants3.ATTRIBUTE_SCOPES.system, priority: 4 }))
|
|
2402
2127
|
];
|
|
2403
2128
|
return (0, import_helpers5.attributeDuplicateFilter)(attributes, "key");
|
|
2404
2129
|
}
|
|
@@ -2440,7 +2165,7 @@ var getSelectedDeploymentData = (0, import_toolkit15.createSelector)(
|
|
|
2440
2165
|
);
|
|
2441
2166
|
var getAvailableIssueOptionsByType = (0, import_toolkit15.createSelector)(
|
|
2442
2167
|
[getFeatures, getTenantCapabilities, getIssueCountsByType],
|
|
2443
|
-
({ hasReporting }, { hasFullFiltering, hasMonitor }, issueCounts) => Object.values(DEVICE_ISSUE_OPTIONS).reduce((accu, { isCategory, key, needsFullFiltering, needsMonitor, needsReporting, title }) => {
|
|
2168
|
+
({ hasReporting }, { hasFullFiltering, hasMonitor }, issueCounts) => Object.values(import_constants3.DEVICE_ISSUE_OPTIONS).reduce((accu, { isCategory, key, needsFullFiltering, needsMonitor, needsReporting, title }) => {
|
|
2444
2169
|
if (isCategory || needsReporting && !hasReporting || needsFullFiltering && !hasFullFiltering || needsMonitor && !hasMonitor) {
|
|
2445
2170
|
return accu;
|
|
2446
2171
|
}
|
|
@@ -2448,14 +2173,11 @@ var getAvailableIssueOptionsByType = (0, import_toolkit15.createSelector)(
|
|
|
2448
2173
|
return accu;
|
|
2449
2174
|
}, {})
|
|
2450
2175
|
);
|
|
2451
|
-
var getGroupNames = (0, import_toolkit15.createSelector)([getGroupsById, getUserRoles
|
|
2176
|
+
var getGroupNames = (0, import_toolkit15.createSelector)([getGroupsById, getUserRoles], (groupsById, { uiPermissions }) => {
|
|
2452
2177
|
const { [UNGROUPED_GROUP.id]: ungrouped, ...groups } = groupsById;
|
|
2453
|
-
if (staticOnly) {
|
|
2454
|
-
return Object.keys(uiPermissions.groups).sort();
|
|
2455
|
-
}
|
|
2456
2178
|
return Object.keys(
|
|
2457
2179
|
Object.entries(groups).reduce((accu, [groupName, group]) => {
|
|
2458
|
-
if (group.filterId || uiPermissions.groups[ALL_DEVICES]) {
|
|
2180
|
+
if (group.filterId || uiPermissions.groups[import_constants3.ALL_DEVICES]) {
|
|
2459
2181
|
accu[groupName] = group;
|
|
2460
2182
|
}
|
|
2461
2183
|
return accu;
|
|
@@ -2488,14 +2210,14 @@ var getAuditlogDevice = (0, import_toolkit15.createSelector)([getAuditLogEntry,
|
|
|
2488
2210
|
var getRelevantRoles = (0, import_toolkit15.createSelector)([getOrganization, getRolesList], ({ service_provider }, roles) => {
|
|
2489
2211
|
if (service_provider) {
|
|
2490
2212
|
return roles.reduce((accu, role) => {
|
|
2491
|
-
if (rolesById[role.value]) {
|
|
2213
|
+
if (import_constants3.rolesById[role.value]) {
|
|
2492
2214
|
return accu;
|
|
2493
2215
|
}
|
|
2494
2216
|
accu.push(role);
|
|
2495
2217
|
return accu;
|
|
2496
|
-
}, Object.values(serviceProviderRolesById));
|
|
2218
|
+
}, Object.values(import_constants3.serviceProviderRolesById));
|
|
2497
2219
|
}
|
|
2498
|
-
return Object.keys(rolesById).reverse().reduce((accu, key) => {
|
|
2220
|
+
return Object.keys(import_constants3.rolesById).reverse().reduce((accu, key) => {
|
|
2499
2221
|
const index = accu.findIndex(({ value }) => value === key);
|
|
2500
2222
|
accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];
|
|
2501
2223
|
return accu;
|
|
@@ -2506,6 +2228,7 @@ var getRelevantRoles = (0, import_toolkit15.createSelector)([getOrganization, ge
|
|
|
2506
2228
|
var import_react_redux = require("react-redux");
|
|
2507
2229
|
var import_helpers6 = require("@northern.tech/utils/helpers");
|
|
2508
2230
|
var import_toolkit16 = require("@reduxjs/toolkit");
|
|
2231
|
+
var import_react = require("@sentry/react");
|
|
2509
2232
|
var { setSnackbar, uploadProgress } = actions_default;
|
|
2510
2233
|
var keys = ["sessionDeploymentChecker", settingsKeys.initialized];
|
|
2511
2234
|
var resetEnvironment = () => keys.forEach((key) => window.sessionStorage.removeItem(key));
|
|
@@ -2542,20 +2265,50 @@ var rejectionLoggerMiddleware = () => (next) => (action) => {
|
|
|
2542
2265
|
}
|
|
2543
2266
|
return next(action);
|
|
2544
2267
|
};
|
|
2268
|
+
var tracingActionIgnoreList = [actions8.successfullyLoggedIn.type, "users/loginUser/pending", "users/loginUser/fulfilled", "users/loginUser/rejected"];
|
|
2269
|
+
var sentryReduxEnhancer = (0, import_react.createReduxEnhancer)({
|
|
2270
|
+
actionTransformer: (action) => {
|
|
2271
|
+
if (tracingActionIgnoreList.includes(action.type)) {
|
|
2272
|
+
return null;
|
|
2273
|
+
}
|
|
2274
|
+
return action;
|
|
2275
|
+
},
|
|
2276
|
+
// Transform the state to remove sensitive information
|
|
2277
|
+
stateTransformer: (state) => {
|
|
2278
|
+
const transformedState = {
|
|
2279
|
+
...state,
|
|
2280
|
+
users: { ...state.users, currentSession: null },
|
|
2281
|
+
organization: {
|
|
2282
|
+
...state.organization,
|
|
2283
|
+
organization: {
|
|
2284
|
+
...state.organization.organization,
|
|
2285
|
+
tenant_token: null
|
|
2286
|
+
}
|
|
2287
|
+
}
|
|
2288
|
+
};
|
|
2289
|
+
return transformedState;
|
|
2290
|
+
}
|
|
2291
|
+
});
|
|
2545
2292
|
var getConfiguredStore = (options = {}) => {
|
|
2546
2293
|
const { preloadedState = {}, ...config } = options;
|
|
2547
2294
|
return (0, import_toolkit16.configureStore)({
|
|
2548
2295
|
...config,
|
|
2549
2296
|
preloadedState,
|
|
2297
|
+
enhancers: (getDefaultEnhancers) => {
|
|
2298
|
+
if (window.mender_environment?.sentry?.isReduxEnabled) {
|
|
2299
|
+
return getDefaultEnhancers().concat(sentryReduxEnhancer);
|
|
2300
|
+
}
|
|
2301
|
+
return getDefaultEnhancers();
|
|
2302
|
+
},
|
|
2550
2303
|
reducer: sessionReducer,
|
|
2551
2304
|
middleware: (getDefaultMiddleware) => getDefaultMiddleware({
|
|
2552
2305
|
immutableCheck: {
|
|
2553
2306
|
ignoredPaths: ["app.uploadsById"]
|
|
2554
2307
|
},
|
|
2555
2308
|
serializableCheck: {
|
|
2556
|
-
ignoredActions: [actions6.receiveExternalDeviceIntegrations.name,
|
|
2557
|
-
ignoredActionPaths: ["uploads", "
|
|
2558
|
-
ignoredPaths: ["app.uploadsById", "
|
|
2309
|
+
ignoredActions: [actions6.receiveExternalDeviceIntegrations.name, uploadProgress.name],
|
|
2310
|
+
ignoredActionPaths: ["uploads", /payload\..*$/, "meta.arg.file", "meta.arg.integration.configHint"],
|
|
2311
|
+
ignoredPaths: ["app.uploadsById", "organization.externalDeviceIntegrations"]
|
|
2559
2312
|
}
|
|
2560
2313
|
}).concat(rejectionLoggerMiddleware)
|
|
2561
2314
|
});
|
|
@@ -2563,64 +2316,74 @@ var getConfiguredStore = (options = {}) => {
|
|
|
2563
2316
|
var store = getConfiguredStore({
|
|
2564
2317
|
preloadedState: {}
|
|
2565
2318
|
});
|
|
2319
|
+
var createAppAsyncThunk = import_toolkit16.createAsyncThunk.withTypes();
|
|
2566
2320
|
|
|
2567
2321
|
// src/monitorSlice/thunks.ts
|
|
2568
|
-
var
|
|
2569
|
-
var { page: defaultPage, perPage: defaultPerPage } = DEVICE_LIST_DEFAULTS;
|
|
2322
|
+
var { page: defaultPage, perPage: defaultPerPage } = import_constants3.DEVICE_LIST_DEFAULTS;
|
|
2570
2323
|
var cutoffLength = 75;
|
|
2571
2324
|
var ellipsis = "...";
|
|
2572
2325
|
var longTextTrimmer = (text) => text.length >= cutoffLength + ellipsis.length ? `${text.substring(0, cutoffLength + ellipsis.length)}${ellipsis}` : text;
|
|
2573
|
-
var sanitizeDeviceAlerts = (alerts) => alerts.map((alert) => ({ ...alert, fullName: alert.name, name: longTextTrimmer(alert.name) }));
|
|
2574
|
-
var getDeviceAlerts = (
|
|
2326
|
+
var sanitizeDeviceAlerts = (alerts) => alerts.map((alert) => ({ ...alert, fullName: alert.name, name: longTextTrimmer(alert.name || "") }));
|
|
2327
|
+
var getDeviceAlerts = createAppAsyncThunk(`${sliceName}/getDeviceAlerts`, ({ id, config = {} }, { dispatch }) => {
|
|
2575
2328
|
const { page = defaultPage, perPage = defaultPerPage, issuedBefore, issuedAfter, sortAscending = false } = config;
|
|
2576
2329
|
const issued_after = issuedAfter ? `&issued_after=${issuedAfter}` : "";
|
|
2577
2330
|
const issued_before = issuedBefore ? `&issued_before=${issuedBefore}` : "";
|
|
2578
|
-
return general_api_default.get(
|
|
2331
|
+
return general_api_default.get(
|
|
2332
|
+
`${import_constants3.monitorApiUrlv1}/devices/${id}/alerts?page=${page}&per_page=${perPage}${issued_after}${issued_before}&sort_ascending=${sortAscending}`
|
|
2333
|
+
).catch((err) => commonErrorHandler(err, `Retrieving device alerts for device ${id} failed:`, dispatch)).then(
|
|
2579
2334
|
(res) => Promise.all([
|
|
2580
|
-
dispatch(
|
|
2581
|
-
dispatch(
|
|
2335
|
+
dispatch(actions.receiveDeviceAlerts({ deviceId: id, alerts: sanitizeDeviceAlerts(res.data) })),
|
|
2336
|
+
dispatch(actions.setAlertListState({ total: Number(res.headers[import_constants3.headerNames.total]) }))
|
|
2582
2337
|
])
|
|
2583
2338
|
);
|
|
2584
2339
|
});
|
|
2585
|
-
var getLatestDeviceAlerts = (
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
}
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
}
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2340
|
+
var getLatestDeviceAlerts = createAppAsyncThunk(
|
|
2341
|
+
`${sliceName}/getLatestDeviceAlerts`,
|
|
2342
|
+
({ id, config = {} }, { dispatch }) => {
|
|
2343
|
+
const { page = defaultPage, perPage = 10 } = config;
|
|
2344
|
+
return general_api_default.get(`${import_constants3.monitorApiUrlv1}/devices/${id}/alerts/latest?page=${page}&per_page=${perPage}`).catch((err) => commonErrorHandler(err, `Retrieving device alerts for device ${id} failed:`, dispatch)).then((res) => Promise.resolve(dispatch(actions.receiveLatestDeviceAlerts({ deviceId: id, alerts: sanitizeDeviceAlerts(res.data) }))));
|
|
2345
|
+
}
|
|
2346
|
+
);
|
|
2347
|
+
var getIssueCountsByType2 = createAppAsyncThunk(
|
|
2348
|
+
`${sliceName}/getIssueCountsByType`,
|
|
2349
|
+
({ type, options = {} }, { dispatch, getState }) => {
|
|
2350
|
+
const state = getState();
|
|
2351
|
+
const { filters = getDeviceFilters(state), group, status, ...remainder } = options;
|
|
2352
|
+
const { applicableFilters: nonMonitorFilters, filterTerms } = convertDeviceListStateToFilters({
|
|
2353
|
+
...remainder,
|
|
2354
|
+
filters,
|
|
2355
|
+
group,
|
|
2356
|
+
offlineThreshold: state.app.offlineThreshold,
|
|
2357
|
+
selectedIssues: [type],
|
|
2358
|
+
status
|
|
2359
|
+
});
|
|
2360
|
+
return general_api_default.post(getSearchEndpoint(getState()), {
|
|
2361
|
+
page: 1,
|
|
2362
|
+
per_page: 1,
|
|
2363
|
+
filters: filterTerms,
|
|
2364
|
+
attributes: [{ scope: "identity", attribute: "status" }]
|
|
2365
|
+
}).catch((err) => commonErrorHandler(err, `Retrieving issue counts failed:`, dispatch, commonErrorFallback)).then((res) => {
|
|
2366
|
+
const total = nonMonitorFilters.length ? state.monitor.issueCounts.byType[type].total : Number(res.headers[import_constants3.headerNames.total]);
|
|
2367
|
+
const filtered = nonMonitorFilters.length ? Number(res.headers[import_constants3.headerNames.total]) : total;
|
|
2368
|
+
if (total === state.monitor.issueCounts.byType[type].total && filtered === state.monitor.issueCounts.byType[type].filtered) {
|
|
2369
|
+
return Promise.resolve();
|
|
2370
|
+
}
|
|
2371
|
+
return Promise.resolve(dispatch(actions.receiveDeviceIssueCounts({ counts: { filtered, total }, issueType: type })));
|
|
2372
|
+
});
|
|
2373
|
+
}
|
|
2374
|
+
);
|
|
2375
|
+
var getDeviceMonitorConfig = createAppAsyncThunk(
|
|
2376
|
+
`${sliceName}/getDeviceMonitorConfig`,
|
|
2377
|
+
(id, { dispatch }) => general_api_default.get(`${import_constants3.monitorApiUrlv1}/devices/${id}/config`).catch((err) => commonErrorHandler(err, `Retrieving device monitor config for device ${id} failed:`, dispatch)).then(({ data }) => Promise.all([dispatch(actions_default.receivedDevice({ id, monitors: data }), Promise.resolve(data))]))
|
|
2617
2378
|
);
|
|
2618
|
-
var changeNotificationSetting = (
|
|
2619
|
-
`${
|
|
2620
|
-
({ enabled, channel = alertChannels.email }, { dispatch }) => general_api_default.put(`${monitorApiUrlv1}/settings/global/channel/alerts/${channel}/status`, { enabled }).catch((err) => commonErrorHandler(err, `${enabled ? "En" : "Dis"}abling ${channel} alerts failed:`, dispatch)).then(
|
|
2379
|
+
var changeNotificationSetting = createAppAsyncThunk(
|
|
2380
|
+
`${sliceName}/changeNotificationSetting`,
|
|
2381
|
+
({ enabled, channel = import_constants3.alertChannels.email }, { dispatch }) => general_api_default.put(`${import_constants3.monitorApiUrlv1}/settings/global/channel/alerts/${channel}/status`, { enabled }).catch((err) => commonErrorHandler(err, `${enabled ? "En" : "Dis"}abling ${channel} alerts failed:`, dispatch)).then(
|
|
2621
2382
|
() => Promise.all([
|
|
2622
|
-
dispatch(
|
|
2623
|
-
dispatch(
|
|
2383
|
+
dispatch(actions.changeAlertChannel({ channel, enabled })),
|
|
2384
|
+
dispatch(
|
|
2385
|
+
actions_default.setSnackbar({ message: `Successfully ${enabled ? "en" : "dis"}abled ${channel} alerts`, autoHideDuration: TIMEOUTS.fiveSeconds })
|
|
2386
|
+
)
|
|
2624
2387
|
])
|
|
2625
2388
|
)
|
|
2626
2389
|
);
|