@northern.tech/store 0.3.2 → 0.3.4
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/BillingProfile-ChP2_Sqw.d.cts +45 -0
- package/dist/BillingProfile-ChP2_Sqw.d.ts +45 -0
- package/dist/actions.cjs +22 -23
- package/dist/actions.cjs.map +1 -1
- package/dist/actions.js +12 -12
- package/dist/api/general-api.cjs.map +1 -1
- package/dist/api/general-api.js +5 -5
- package/dist/api/types/Tenant.ts +17 -12
- package/dist/api/users-api.cjs.map +1 -1
- package/dist/api/users-api.js +6 -6
- package/dist/appSlice/constants.cjs +18 -10
- package/dist/appSlice/constants.cjs.map +1 -1
- package/dist/appSlice/constants.d.cts +41 -84
- package/dist/appSlice/constants.d.ts +41 -84
- package/dist/appSlice/constants.js +1 -1
- package/dist/appSlice/index.cjs +1 -3
- package/dist/appSlice/index.cjs.map +1 -1
- package/dist/appSlice/index.js +4 -4
- package/dist/appSlice/thunks.cjs +153 -120
- package/dist/appSlice/thunks.cjs.map +1 -1
- package/dist/appSlice/thunks.js +28 -27
- package/dist/auth.cjs.map +1 -1
- package/dist/auth.js +4 -4
- package/dist/{chunk-NI4SZOCF.js → chunk-4RWZR3BN.js} +23 -25
- package/dist/{chunk-NI4SZOCF.js.map → chunk-4RWZR3BN.js.map} +1 -1
- package/dist/{chunk-YGBFDXXA.js → chunk-7YZCUAXZ.js} +2 -2
- package/dist/{chunk-7PVGDMNM.js → chunk-AFICTIVU.js} +3 -5
- package/dist/{chunk-7PVGDMNM.js.map → chunk-AFICTIVU.js.map} +1 -1
- package/dist/{chunk-YT73QWCN.js → chunk-AUBJUUP3.js} +3 -3
- package/dist/{chunk-UEP36GCI.js → chunk-AVX7VVOK.js} +3 -3
- package/dist/{chunk-4B3IMP4I.js → chunk-BSN2TOQC.js} +1 -1
- package/dist/{chunk-4B3IMP4I.js.map → chunk-BSN2TOQC.js.map} +1 -1
- package/dist/{chunk-VOCOFE4I.js → chunk-DCEKU6UV.js} +2 -2
- package/dist/{chunk-E5LEU5PF.js → chunk-DGQKXSRI.js} +3 -3
- package/dist/{chunk-74OJIKXF.js → chunk-EQLHIPPR.js} +182 -142
- package/dist/chunk-EQLHIPPR.js.map +1 -0
- package/dist/{chunk-MDC7Y3EX.js → chunk-EYCORLYU.js} +44 -40
- package/dist/chunk-EYCORLYU.js.map +1 -0
- package/dist/{chunk-KAQJH2YL.js → chunk-FQDSV3NK.js} +13 -5
- package/dist/chunk-FQDSV3NK.js.map +1 -0
- package/dist/{chunk-XTRPX7JZ.js → chunk-FRSA2YB5.js} +3 -3
- package/dist/chunk-FRSA2YB5.js.map +1 -0
- package/dist/{chunk-ANB5BM5J.js → chunk-FVCYB5OP.js} +37 -32
- package/dist/chunk-FVCYB5OP.js.map +1 -0
- package/dist/{chunk-AMGWP7A4.js → chunk-GAI4VYRZ.js} +2 -2
- package/dist/{chunk-YETZPQFR.js → chunk-GWJIY56H.js} +19 -20
- package/dist/chunk-GWJIY56H.js.map +1 -0
- package/dist/{chunk-Q6M5TTDQ.js → chunk-JO33IORF.js} +2 -2
- package/dist/chunk-JO33IORF.js.map +1 -0
- package/dist/chunk-K4MMUDYT.js +391 -0
- package/dist/chunk-K4MMUDYT.js.map +1 -0
- package/dist/{chunk-XXHONFSQ.js → chunk-L3SY3J5M.js} +4 -4
- package/dist/{chunk-XXHONFSQ.js.map → chunk-L3SY3J5M.js.map} +1 -1
- package/dist/{chunk-JAROCU6M.js → chunk-NCSKCF2S.js} +3 -3
- package/dist/{chunk-CYV6632F.js → chunk-NOQR3TE7.js} +2 -2
- package/dist/{chunk-A6CT6GTI.js → chunk-OEP2D6QL.js} +18 -12
- package/dist/chunk-OEP2D6QL.js.map +1 -0
- package/dist/{chunk-2RJIDREZ.js → chunk-PAIB5V27.js} +32 -23
- package/dist/chunk-PAIB5V27.js.map +1 -0
- package/dist/{chunk-FGKMJS3B.js → chunk-RX32WLVJ.js} +2 -4
- package/dist/chunk-RX32WLVJ.js.map +1 -0
- package/dist/{chunk-YTQUNAZP.js → chunk-X3GZILYD.js} +3 -3
- package/dist/{chunk-25AKG5HH.js → chunk-Y575RZHR.js} +19 -11
- package/dist/chunk-Y575RZHR.js.map +1 -0
- package/dist/{chunk-RX55KAKX.js → chunk-ZWOAFHAR.js} +2 -2
- package/dist/{chunk-NNADGHSL.js → chunk-ZZMFXRQK.js} +14 -14
- package/dist/commonConstants.cjs.map +1 -1
- package/dist/commonConstants.d.cts +1 -1
- package/dist/commonConstants.d.ts +1 -1
- package/dist/commonConstants.js +1 -1
- package/dist/commonSelectors.cjs +47 -29
- package/dist/commonSelectors.cjs.map +1 -1
- package/dist/commonSelectors.d.cts +55 -46
- package/dist/commonSelectors.d.ts +55 -46
- package/dist/commonSelectors.js +11 -11
- package/dist/constants.cjs +35 -19
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +3 -3
- package/dist/constants.d.ts +3 -3
- package/dist/constants.js +7 -3
- package/dist/deploymentdevicehook.cjs +159 -125
- package/dist/deploymentdevicehook.cjs.map +1 -1
- package/dist/deploymentdevicehook.d.cts +1 -1
- package/dist/deploymentdevicehook.d.ts +1 -1
- package/dist/deploymentdevicehook.js +34 -31
- package/dist/deploymentdevicehook.js.map +1 -1
- package/dist/deploymentsSlice/constants.cjs +8 -8
- package/dist/deploymentsSlice/constants.cjs.map +1 -1
- package/dist/deploymentsSlice/constants.js +3 -3
- package/dist/deploymentsSlice/index.cjs +8 -8
- package/dist/deploymentsSlice/index.cjs.map +1 -1
- package/dist/deploymentsSlice/index.js +4 -4
- package/dist/deploymentsSlice/selectors.cjs +8 -8
- package/dist/deploymentsSlice/selectors.cjs.map +1 -1
- package/dist/deploymentsSlice/selectors.js +4 -4
- package/dist/deploymentsSlice/thunks.cjs +153 -120
- package/dist/deploymentsSlice/thunks.cjs.map +1 -1
- package/dist/deploymentsSlice/thunks.js +28 -27
- package/dist/devicesSlice/constants.cjs +11 -8
- package/dist/devicesSlice/constants.cjs.map +1 -1
- package/dist/devicesSlice/constants.d.cts +2 -1
- package/dist/devicesSlice/constants.d.ts +2 -1
- package/dist/devicesSlice/constants.js +5 -3
- package/dist/devicesSlice/index.cjs +8 -8
- package/dist/devicesSlice/index.cjs.map +1 -1
- package/dist/devicesSlice/index.js +4 -4
- package/dist/devicesSlice/selectors.cjs +9 -9
- package/dist/devicesSlice/selectors.cjs.map +1 -1
- package/dist/devicesSlice/selectors.js +4 -4
- package/dist/devicesSlice/thunks.cjs +155 -120
- package/dist/devicesSlice/thunks.cjs.map +1 -1
- package/dist/devicesSlice/thunks.d.cts +12 -2
- package/dist/devicesSlice/thunks.d.ts +12 -2
- package/dist/devicesSlice/thunks.js +30 -27
- package/dist/flag-eu-5477R2P4.svg +130 -0
- package/dist/flag-us-HNQAF66I.svg +63 -0
- package/dist/liststatehook.cjs +971 -0
- package/dist/liststatehook.cjs.map +1 -0
- package/dist/liststatehook.d.cts +246 -0
- package/dist/liststatehook.d.ts +246 -0
- package/dist/liststatehook.js +88 -0
- package/dist/liststatehook.js.map +1 -0
- package/dist/locationutils.cjs +942 -0
- package/dist/locationutils.cjs.map +1 -0
- package/dist/locationutils.d.cts +113 -0
- package/dist/locationutils.d.ts +113 -0
- package/dist/locationutils.js +46 -0
- package/dist/locationutils.js.map +1 -0
- package/dist/monitorSlice/constants.cjs +8 -8
- package/dist/monitorSlice/constants.cjs.map +1 -1
- package/dist/monitorSlice/constants.js +3 -3
- package/dist/monitorSlice/index.cjs +8 -8
- package/dist/monitorSlice/index.cjs.map +1 -1
- package/dist/monitorSlice/index.js +4 -4
- package/dist/monitorSlice/thunks.cjs +74 -62
- package/dist/monitorSlice/thunks.cjs.map +1 -1
- package/dist/monitorSlice/thunks.js +24 -24
- package/dist/onboardingSlice/index.cjs +1 -3
- package/dist/onboardingSlice/index.cjs.map +1 -1
- package/dist/onboardingSlice/index.js +1 -1
- package/dist/onboardingSlice/thunks.cjs +157 -124
- package/dist/onboardingSlice/thunks.cjs.map +1 -1
- package/dist/onboardingSlice/thunks.d.cts +2 -34
- package/dist/onboardingSlice/thunks.d.ts +2 -34
- package/dist/onboardingSlice/thunks.js +28 -29
- package/dist/organizationSlice/constants.cjs +22 -17
- package/dist/organizationSlice/constants.cjs.map +1 -1
- package/dist/organizationSlice/constants.d.cts +33 -1
- package/dist/organizationSlice/constants.d.ts +33 -1
- package/dist/organizationSlice/constants.js +5 -3
- package/dist/organizationSlice/index.cjs +18 -15
- package/dist/organizationSlice/index.cjs.map +1 -1
- package/dist/organizationSlice/index.d.cts +27 -1012
- package/dist/organizationSlice/index.d.ts +27 -1012
- package/dist/organizationSlice/index.js +4 -4
- package/dist/organizationSlice/selectors.cjs.map +1 -1
- package/dist/organizationSlice/selectors.d.cts +10 -1
- package/dist/organizationSlice/selectors.d.ts +10 -1
- package/dist/organizationSlice/selectors.js +4 -4
- package/dist/organizationSlice/thunks.cjs +1619 -1559
- package/dist/organizationSlice/thunks.cjs.map +1 -1
- package/dist/organizationSlice/thunks.d.cts +62 -37
- package/dist/organizationSlice/thunks.d.ts +62 -37
- package/dist/organizationSlice/thunks.js +28 -27
- package/dist/organizationSlice/types.cjs +19 -0
- package/dist/organizationSlice/types.cjs.map +1 -0
- package/dist/organizationSlice/types.d.cts +5 -0
- package/dist/organizationSlice/types.d.ts +5 -0
- package/dist/organizationSlice/types.js +1 -0
- package/dist/organizationSlice/types.js.map +1 -0
- package/dist/releasesSlice/index.cjs.map +1 -1
- package/dist/releasesSlice/index.js +4 -4
- package/dist/releasesSlice/selectors.cjs +17 -8
- package/dist/releasesSlice/selectors.cjs.map +1 -1
- package/dist/releasesSlice/selectors.js +5 -5
- package/dist/releasesSlice/thunks.cjs +123 -94
- package/dist/releasesSlice/thunks.cjs.map +1 -1
- package/dist/releasesSlice/thunks.d.cts +1 -4
- package/dist/releasesSlice/thunks.d.ts +1 -4
- package/dist/releasesSlice/thunks.js +25 -24
- package/dist/selectors.cjs +53 -29
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.d.cts +10 -1
- package/dist/selectors.d.ts +10 -1
- package/dist/selectors.js +49 -43
- package/dist/sockethook.cjs +529 -0
- package/dist/sockethook.cjs.map +1 -0
- package/dist/sockethook.d.cts +10 -0
- package/dist/sockethook.d.ts +10 -0
- package/dist/sockethook.js +141 -0
- package/dist/sockethook.js.map +1 -0
- package/dist/store.cjs +38 -29
- package/dist/store.cjs.map +1 -1
- package/dist/store.d.cts +13 -231
- package/dist/store.d.ts +13 -231
- package/dist/store.js +18 -16
- package/dist/storehooks.cjs +273 -198
- package/dist/storehooks.cjs.map +1 -1
- package/dist/storehooks.js +38 -37
- package/dist/storehooks.js.map +1 -1
- package/dist/thunks.cjs +259 -184
- package/dist/thunks.cjs.map +1 -1
- package/dist/thunks.d.cts +6 -2
- package/dist/thunks.d.ts +6 -2
- package/dist/thunks.js +30 -29
- package/dist/types-DBj17FZO.d.cts +135 -0
- package/dist/types-DnfZa6xd.d.ts +135 -0
- package/dist/usersSlice/constants.cjs +10 -10
- package/dist/usersSlice/constants.cjs.map +1 -1
- package/dist/usersSlice/constants.d.cts +6 -6
- package/dist/usersSlice/constants.d.ts +6 -6
- package/dist/usersSlice/constants.js +3 -3
- package/dist/usersSlice/index.cjs +10 -10
- package/dist/usersSlice/index.cjs.map +1 -1
- package/dist/usersSlice/index.js +4 -4
- package/dist/usersSlice/selectors.cjs +35 -13
- package/dist/usersSlice/selectors.cjs.map +1 -1
- package/dist/usersSlice/selectors.d.cts +44 -1
- package/dist/usersSlice/selectors.d.ts +44 -1
- package/dist/usersSlice/selectors.js +13 -7
- package/dist/usersSlice/thunks.cjs +151 -120
- package/dist/usersSlice/thunks.cjs.map +1 -1
- package/dist/usersSlice/thunks.d.cts +10 -9
- package/dist/usersSlice/thunks.d.ts +10 -9
- package/dist/usersSlice/thunks.js +28 -27
- package/dist/utils.cjs +23 -24
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.js +4 -4
- package/package.json +7 -6
- package/dist/chunk-25AKG5HH.js.map +0 -1
- package/dist/chunk-2RJIDREZ.js.map +0 -1
- package/dist/chunk-74OJIKXF.js.map +0 -1
- package/dist/chunk-A6CT6GTI.js.map +0 -1
- package/dist/chunk-ANB5BM5J.js.map +0 -1
- package/dist/chunk-FGKMJS3B.js.map +0 -1
- package/dist/chunk-KAQJH2YL.js.map +0 -1
- package/dist/chunk-MDC7Y3EX.js.map +0 -1
- package/dist/chunk-Q6M5TTDQ.js.map +0 -1
- package/dist/chunk-XTRPX7JZ.js.map +0 -1
- package/dist/chunk-YETZPQFR.js.map +0 -1
- /package/dist/{chunk-YGBFDXXA.js.map → chunk-7YZCUAXZ.js.map} +0 -0
- /package/dist/{chunk-YT73QWCN.js.map → chunk-AUBJUUP3.js.map} +0 -0
- /package/dist/{chunk-UEP36GCI.js.map → chunk-AVX7VVOK.js.map} +0 -0
- /package/dist/{chunk-VOCOFE4I.js.map → chunk-DCEKU6UV.js.map} +0 -0
- /package/dist/{chunk-E5LEU5PF.js.map → chunk-DGQKXSRI.js.map} +0 -0
- /package/dist/{chunk-AMGWP7A4.js.map → chunk-GAI4VYRZ.js.map} +0 -0
- /package/dist/{chunk-JAROCU6M.js.map → chunk-NCSKCF2S.js.map} +0 -0
- /package/dist/{chunk-CYV6632F.js.map → chunk-NOQR3TE7.js.map} +0 -0
- /package/dist/{chunk-YTQUNAZP.js.map → chunk-X3GZILYD.js.map} +0 -0
- /package/dist/{chunk-RX55KAKX.js.map → chunk-ZWOAFHAR.js.map} +0 -0
- /package/dist/{chunk-NNADGHSL.js.map → chunk-ZZMFXRQK.js.map} +0 -0
|
@@ -76,6 +76,7 @@ __export(thunks_exports, {
|
|
|
76
76
|
setDeviceListState: () => setDeviceListState,
|
|
77
77
|
setDeviceTags: () => setDeviceTags,
|
|
78
78
|
setDeviceTwin: () => setDeviceTwin,
|
|
79
|
+
triggerDeviceUpdate: () => triggerDeviceUpdate,
|
|
79
80
|
updateDeviceAuth: () => updateDeviceAuth,
|
|
80
81
|
updateDevicesAuth: () => updateDevicesAuth,
|
|
81
82
|
updateDynamicGroup: () => updateDynamicGroup
|
|
@@ -111,28 +112,28 @@ var PLANS = {
|
|
|
111
112
|
id: "os",
|
|
112
113
|
name: "Basic",
|
|
113
114
|
offer: true,
|
|
114
|
-
price: "$32/month",
|
|
115
|
+
price: "$32 / month",
|
|
115
116
|
deviceCount: startingDeviceCount.os,
|
|
116
|
-
offerprice: "$23/month for first 50 devices",
|
|
117
|
+
offerprice: "$23 / month for first 50 devices",
|
|
117
118
|
price2: "for first 6 months;\n$29/month thereafter",
|
|
118
|
-
features: ["
|
|
119
|
+
features: ["Access to core features of Mender", "Basic support"]
|
|
119
120
|
},
|
|
120
121
|
professional: {
|
|
121
122
|
id: "professional",
|
|
122
123
|
name: "Professional",
|
|
123
124
|
offer: true,
|
|
124
|
-
price: "$269/month",
|
|
125
|
+
price: "$269 / month",
|
|
125
126
|
deviceCount: startingDeviceCount.professional,
|
|
126
|
-
offerprice: "$200/month for first 50 devices",
|
|
127
|
+
offerprice: "$200 / month for first 50 devices",
|
|
127
128
|
price2: "for first 6 months;\n$249/month thereafter",
|
|
128
|
-
features: ["
|
|
129
|
+
features: ["Advanced OTA features", "Higher priority support"]
|
|
129
130
|
},
|
|
130
131
|
enterprise: {
|
|
131
132
|
id: "enterprise",
|
|
132
133
|
name: "Enterprise",
|
|
133
134
|
price: "Custom pricing",
|
|
134
|
-
deviceCount: "
|
|
135
|
-
features: ["
|
|
135
|
+
deviceCount: "Unlimited devices",
|
|
136
|
+
features: ["All Mender features", "Advanced security features", "SLA-backed support"]
|
|
136
137
|
}
|
|
137
138
|
};
|
|
138
139
|
var ADDONS = {
|
|
@@ -603,6 +604,7 @@ var DEVICE_STATES = {
|
|
|
603
604
|
rejected: "rejected"
|
|
604
605
|
};
|
|
605
606
|
var geoAttributes = ["geo-lat", "geo-lon"].map((attribute) => ({ attribute, scope: "inventory" }));
|
|
607
|
+
var REPORT_CHART_SIZE_LIMIT = 6;
|
|
606
608
|
|
|
607
609
|
// src/monitorSlice/constants.ts
|
|
608
610
|
var alertChannels = { email: "email" };
|
|
@@ -684,13 +686,16 @@ var SSO_TYPES = {
|
|
|
684
686
|
configDetails: [{ key: "startURL", label: "Start Url", getValue: getOidcStartUrl }]
|
|
685
687
|
}
|
|
686
688
|
};
|
|
687
|
-
var
|
|
688
|
-
{ title: "Artifact", queryParameter: "object_type", value: "artifact" },
|
|
689
|
-
{ title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
|
|
690
|
-
{ title: "Device", queryParameter: "object_id", value: "device" },
|
|
691
|
-
{ title: "
|
|
692
|
-
|
|
693
|
-
|
|
689
|
+
var auditlogTypes = {
|
|
690
|
+
artifact: { title: "Artifact", queryParameter: "object_type", value: "artifact" },
|
|
691
|
+
deployment: { title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
|
|
692
|
+
device: { title: "Device", queryParameter: "object_id", value: "device" },
|
|
693
|
+
user_access_token: { title: "Personal Access Token", queryParameter: "user_access_token", value: "user_access_token" },
|
|
694
|
+
user: { title: "User", queryParameter: "object_id", value: "user" },
|
|
695
|
+
tenant: { title: "Tenant", queryParameter: "object_id", value: "tenant" }
|
|
696
|
+
};
|
|
697
|
+
var AUDIT_LOGS_TYPES = [auditlogTypes.artifact, auditlogTypes.deployment, auditlogTypes.device, auditlogTypes.user_access_token, auditlogTypes.user];
|
|
698
|
+
var SP_AUDIT_LOGS_TYPES = [auditlogTypes.user, auditlogTypes.tenant];
|
|
694
699
|
var emptyWebhook = {
|
|
695
700
|
description: "",
|
|
696
701
|
enabled: true,
|
|
@@ -823,7 +828,7 @@ var uiPermissionsByArea = {
|
|
|
823
828
|
explanation: "Granting access to the audit log will allow tracing changes to devices, releases and user accounts, as well as providing information about deployments.",
|
|
824
829
|
key: "auditlog",
|
|
825
830
|
uiPermissions: [uiPermissionsById.read],
|
|
826
|
-
title: "System
|
|
831
|
+
title: "System Audit Log"
|
|
827
832
|
},
|
|
828
833
|
deployments: {
|
|
829
834
|
endpoints: [
|
|
@@ -974,7 +979,7 @@ var serviceProviderRolesById = {
|
|
|
974
979
|
},
|
|
975
980
|
readOnly: {
|
|
976
981
|
name: "Read access",
|
|
977
|
-
value: staticRolesByName.
|
|
982
|
+
value: staticRolesByName.readOnly,
|
|
978
983
|
description: "This role can see all linked organizations but cannot make any changes",
|
|
979
984
|
permissions: [],
|
|
980
985
|
uiPermissions: {
|
|
@@ -1232,9 +1237,7 @@ var appSlice = (0, import_toolkit.createSlice)({
|
|
|
1232
1237
|
...action.payload
|
|
1233
1238
|
};
|
|
1234
1239
|
},
|
|
1235
|
-
setEnvironmentData: (state, action) => {
|
|
1236
|
-
return { ...state, ...action.payload };
|
|
1237
|
-
}
|
|
1240
|
+
setEnvironmentData: (state, action) => ({ ...state, ...action.payload })
|
|
1238
1241
|
}
|
|
1239
1242
|
});
|
|
1240
1243
|
var actions = appSlice.actions;
|
|
@@ -1609,9 +1612,7 @@ var onboardingSlice = (0, import_toolkit5.createSlice)({
|
|
|
1609
1612
|
name: sliceName5,
|
|
1610
1613
|
initialState: initialState5,
|
|
1611
1614
|
reducers: {
|
|
1612
|
-
setOnboardingState: (state, action) => {
|
|
1613
|
-
return { ...state, ...action.payload };
|
|
1614
|
-
},
|
|
1615
|
+
setOnboardingState: (state, action) => ({ ...state, ...action.payload }),
|
|
1615
1616
|
setDemoArtifactPort: (state, action) => {
|
|
1616
1617
|
state.demoArtifactPort = action.payload;
|
|
1617
1618
|
},
|
|
@@ -2179,7 +2180,7 @@ var getGroups = (0, import_toolkit11.createSelector)([getGroupsById], (groupsByI
|
|
|
2179
2180
|
(accu, [groupname, group]) => {
|
|
2180
2181
|
const name = groupname === UNGROUPED_GROUP.id ? UNGROUPED_GROUP.name : groupname;
|
|
2181
2182
|
const groupItem = { ...group, groupId: name, name: groupname };
|
|
2182
|
-
if (group.filters
|
|
2183
|
+
if (group.filters?.length > 0) {
|
|
2183
2184
|
if (groupname !== UNGROUPED_GROUP.id) {
|
|
2184
2185
|
accu.dynamic.push(groupItem);
|
|
2185
2186
|
} else {
|
|
@@ -2252,14 +2253,15 @@ var getAuditLogEntry = (0, import_toolkit12.createSelector)([getAuditLog, getAud
|
|
|
2252
2253
|
// src/utils.ts
|
|
2253
2254
|
var import_helpers4 = require("@northern.tech/utils/helpers");
|
|
2254
2255
|
var filterProcessors = {
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2256
|
+
[DEVICE_FILTERING_OPTIONS.$gt.key]: (val) => Number(val) || val,
|
|
2257
|
+
[DEVICE_FILTERING_OPTIONS.$gte.key]: (val) => Number(val) || val,
|
|
2258
|
+
[DEVICE_FILTERING_OPTIONS.$lt.key]: (val) => Number(val) || val,
|
|
2259
|
+
[DEVICE_FILTERING_OPTIONS.$lte.key]: (val) => Number(val) || val,
|
|
2260
|
+
[DEVICE_FILTERING_OPTIONS.$ltne.key]: (val) => Number(val) || val,
|
|
2261
|
+
[DEVICE_FILTERING_OPTIONS.$in.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
2262
|
+
[DEVICE_FILTERING_OPTIONS.$nin.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
2263
|
+
[DEVICE_FILTERING_OPTIONS.$exists.key]: import_helpers4.yes,
|
|
2264
|
+
[DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false
|
|
2263
2265
|
};
|
|
2264
2266
|
var filterAliases = {
|
|
2265
2267
|
$nexists: { alias: DEVICE_FILTERING_OPTIONS.$exists.key, value: false }
|
|
@@ -2303,14 +2305,12 @@ var filtersFilter = (item, index, array) => {
|
|
|
2303
2305
|
const firstIndex = array.findIndex((filter) => filterCompare(filter, item));
|
|
2304
2306
|
return firstIndex === index;
|
|
2305
2307
|
};
|
|
2306
|
-
var listItemMapper = (byId, ids, { defaultObject = {}, cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH }) => {
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
}, []);
|
|
2313
|
-
};
|
|
2308
|
+
var listItemMapper = (byId, ids, { defaultObject = {}, cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH }) => ids.slice(0, cutOffSize).reduce((accu, id) => {
|
|
2309
|
+
if (id && byId[id]) {
|
|
2310
|
+
accu.push({ ...defaultObject, ...byId[id] });
|
|
2311
|
+
}
|
|
2312
|
+
return accu;
|
|
2313
|
+
}, []);
|
|
2314
2314
|
var mergePermissions = (existingPermissions = { ...emptyUiPermissions }, addedPermissions) => Object.entries(existingPermissions).reduce(
|
|
2315
2315
|
(accu, [key, value]) => {
|
|
2316
2316
|
let values;
|
|
@@ -2383,8 +2383,13 @@ var getTooltipsById = (state) => state.users.tooltips.byId;
|
|
|
2383
2383
|
var getGlobalSettings = (state) => state.users.globalSettings;
|
|
2384
2384
|
var getCurrentUserId = (state) => state.users.currentUser;
|
|
2385
2385
|
var getUsersById = (state) => state.users.byId;
|
|
2386
|
+
var getUsersList = (0, import_toolkit14.createSelector)([getUsersById], (usersById) => Object.values(usersById));
|
|
2386
2387
|
var getCurrentUser = (0, import_toolkit14.createSelector)([getUsersById, getCurrentUserId], (usersById, userId) => usersById[userId] ?? {});
|
|
2387
2388
|
var getUserSettings = (state) => state.users.userSettings;
|
|
2389
|
+
var getSelectedDeviceAttribute = (0, import_toolkit14.createSelector)(
|
|
2390
|
+
[getUserSettings],
|
|
2391
|
+
({ columnSelection }) => columnSelection.map((attribute) => ({ attribute: attribute.key, scope: attribute.scope }))
|
|
2392
|
+
);
|
|
2388
2393
|
var getIsDarkMode = (0, import_toolkit14.createSelector)([getUserSettings], ({ mode }) => isDarkMode(mode));
|
|
2389
2394
|
var getShowHelptips = (0, import_toolkit14.createSelector)(
|
|
2390
2395
|
[getTooltipsById],
|
|
@@ -2409,7 +2414,7 @@ var getOfflineThresholdSettings = (0, import_toolkit14.createSelector)([getGloba
|
|
|
2409
2414
|
interval: offlineThreshold?.interval || DEVICE_ONLINE_CUTOFF.interval,
|
|
2410
2415
|
intervalUnit: offlineThreshold?.intervalUnit || DEVICE_ONLINE_CUTOFF.intervalName
|
|
2411
2416
|
}));
|
|
2412
|
-
var getRolesList = (0, import_toolkit14.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([
|
|
2417
|
+
var getRolesList = (0, import_toolkit14.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([value, role]) => ({ value, ...role })));
|
|
2413
2418
|
|
|
2414
2419
|
// src/commonSelectors.ts
|
|
2415
2420
|
var getIsEnterprise = (0, import_toolkit15.createSelector)(
|
|
@@ -2470,12 +2475,18 @@ var getUserCapabilities = (0, import_toolkit15.createSelector)([getUserRoles, ge
|
|
|
2470
2475
|
});
|
|
2471
2476
|
var getTenantCapabilities = (0, import_toolkit15.createSelector)(
|
|
2472
2477
|
[getFeatures, getOrganization, getIsEnterprise],
|
|
2473
|
-
({
|
|
2478
|
+
({
|
|
2479
|
+
hasAuditlogs: isAuditlogEnabled,
|
|
2480
|
+
hasDeviceConfig: isDeviceConfigEnabled,
|
|
2481
|
+
hasDeviceConnect: isDeviceConnectEnabled,
|
|
2482
|
+
hasMonitor: isMonitorEnabled,
|
|
2483
|
+
isHosted
|
|
2484
|
+
}, { addons = [], plan = PLANS.os.id }, isEnterprise) => {
|
|
2474
2485
|
const canDelta = isEnterprise || plan === PLANS.professional.id;
|
|
2475
2486
|
const hasAuditlogs = isAuditlogEnabled && isEnterprise;
|
|
2476
|
-
const hasDeviceConfig =
|
|
2477
|
-
const hasDeviceConnect =
|
|
2478
|
-
const hasMonitor = isMonitorEnabled && addons.some((addon) => addon.name ===
|
|
2487
|
+
const hasDeviceConfig = addons.some((addon) => addon.name === ADDONS.configure.id && addon.enabled) || isDeviceConfigEnabled && !isHosted;
|
|
2488
|
+
const hasDeviceConnect = addons.some((addon) => addon.name === ADDONS.troubleshoot.id && addon.enabled) || isDeviceConnectEnabled && !isHosted;
|
|
2489
|
+
const hasMonitor = isMonitorEnabled && addons.some((addon) => addon.name === ADDONS.monitor.id && addon.enabled);
|
|
2479
2490
|
return {
|
|
2480
2491
|
canDelta,
|
|
2481
2492
|
canRetry: canDelta,
|
|
@@ -2579,9 +2590,7 @@ var getGroupNames = (0, import_toolkit15.createSelector)([getGroupsById, getUser
|
|
|
2579
2590
|
});
|
|
2580
2591
|
var getDeviceReportsForUser = (0, import_toolkit15.createSelector)(
|
|
2581
2592
|
[getUserSettings, getCurrentUser, getGlobalSettings, getDevicesById],
|
|
2582
|
-
({ reports }, { id: currentUserId }, globalSettings, devicesById) => {
|
|
2583
|
-
return reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : []);
|
|
2584
|
-
}
|
|
2593
|
+
({ reports }, { id: currentUserId }, globalSettings, devicesById) => reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : [])
|
|
2585
2594
|
);
|
|
2586
2595
|
var listTypeDeviceIdMap = {
|
|
2587
2596
|
deviceList: getListedDevices,
|
|
@@ -2605,7 +2614,7 @@ var getAuditlogDevice = (0, import_toolkit15.createSelector)([getAuditLogEntry,
|
|
|
2605
2614
|
var getRelevantRoles = (0, import_toolkit15.createSelector)([getOrganization, getRolesList], ({ service_provider }, roles) => {
|
|
2606
2615
|
if (service_provider) {
|
|
2607
2616
|
return roles.reduce((accu, role) => {
|
|
2608
|
-
if (rolesById[role.
|
|
2617
|
+
if (rolesById[role.value]) {
|
|
2609
2618
|
return accu;
|
|
2610
2619
|
}
|
|
2611
2620
|
accu.push(role);
|
|
@@ -2613,20 +2622,19 @@ var getRelevantRoles = (0, import_toolkit15.createSelector)([getOrganization, ge
|
|
|
2613
2622
|
}, Object.values(serviceProviderRolesById));
|
|
2614
2623
|
}
|
|
2615
2624
|
return Object.keys(rolesById).reverse().reduce((accu, key) => {
|
|
2616
|
-
const index = accu.findIndex(({
|
|
2625
|
+
const index = accu.findIndex(({ value }) => value === key);
|
|
2617
2626
|
accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];
|
|
2618
2627
|
return accu;
|
|
2619
2628
|
}, roles);
|
|
2620
2629
|
});
|
|
2621
2630
|
|
|
2622
2631
|
// src/store.ts
|
|
2632
|
+
var import_react_redux = require("react-redux");
|
|
2623
2633
|
var import_helpers6 = require("@northern.tech/utils/helpers");
|
|
2624
2634
|
var import_toolkit16 = require("@reduxjs/toolkit");
|
|
2625
2635
|
var { setSnackbar, uploadProgress } = actions_default;
|
|
2626
2636
|
var keys = ["sessionDeploymentChecker", settingsKeys.initialized];
|
|
2627
|
-
var resetEnvironment = () =>
|
|
2628
|
-
keys.map((key) => window.sessionStorage.removeItem(key));
|
|
2629
|
-
};
|
|
2637
|
+
var resetEnvironment = () => keys.forEach((key) => window.sessionStorage.removeItem(key));
|
|
2630
2638
|
resetEnvironment();
|
|
2631
2639
|
var commonErrorFallback = "Please check your connection.";
|
|
2632
2640
|
var commonErrorHandler = (err, errorContext, dispatch, fallback, mightBeAuthRelated = false) => {
|
|
@@ -2652,6 +2660,14 @@ var sessionReducer = (state, action) => {
|
|
|
2652
2660
|
}
|
|
2653
2661
|
return rootReducer(state, action);
|
|
2654
2662
|
};
|
|
2663
|
+
var rejectionLoggerMiddleware = () => (next) => (action) => {
|
|
2664
|
+
if (action.type.endsWith("/rejected")) {
|
|
2665
|
+
const { error } = action;
|
|
2666
|
+
console.error("Rejection in action:", action);
|
|
2667
|
+
console.error(error.stack);
|
|
2668
|
+
}
|
|
2669
|
+
return next(action);
|
|
2670
|
+
};
|
|
2655
2671
|
var getConfiguredStore = (options = {}) => {
|
|
2656
2672
|
const { preloadedState = {}, ...config } = options;
|
|
2657
2673
|
return (0, import_toolkit16.configureStore)({
|
|
@@ -2667,7 +2683,7 @@ var getConfiguredStore = (options = {}) => {
|
|
|
2667
2683
|
ignoredActionPaths: ["uploads", "snackbar", /payload\..*$/],
|
|
2668
2684
|
ignoredPaths: ["app.uploadsById", "app.snackbar", "organization.externalDeviceIntegrations"]
|
|
2669
2685
|
}
|
|
2670
|
-
})
|
|
2686
|
+
}).concat(rejectionLoggerMiddleware)
|
|
2671
2687
|
});
|
|
2672
2688
|
};
|
|
2673
2689
|
var store = getConfiguredStore({
|
|
@@ -2784,12 +2800,13 @@ var setSearchState = (0, import_toolkit17.createAsyncThunk)(`${sliceName}/setSea
|
|
|
2784
2800
|
|
|
2785
2801
|
// src/deploymentsSlice/thunks.ts
|
|
2786
2802
|
var import_helpers8 = require("@northern.tech/utils/helpers");
|
|
2803
|
+
var import_tracking = __toESM(require("@northern.tech/utils/tracking"), 1);
|
|
2787
2804
|
var import_toolkit18 = require("@reduxjs/toolkit");
|
|
2788
2805
|
var import_validator = require("validator");
|
|
2789
2806
|
var { receivedDevice, setSnackbar: setSnackbar2 } = actions_default;
|
|
2790
2807
|
var { page: defaultPage, perPage: defaultPerPage } = DEVICE_LIST_DEFAULTS;
|
|
2791
2808
|
var deriveDeploymentGroup = ({ filter = {}, group, groups = [], name }) => group || groups.length === 1 && !(0, import_validator.isUUID)(name) ? groups[0] : filter.name;
|
|
2792
|
-
var transformDeployments = (deployments, deploymentsById) => deployments.sort(import_helpers8.
|
|
2809
|
+
var transformDeployments = (deployments, deploymentsById) => deployments.sort((0, import_helpers8.customSort)(true, "created")).reduce(
|
|
2793
2810
|
(accu, item) => {
|
|
2794
2811
|
const filter = item.filter ?? {};
|
|
2795
2812
|
let deployment = {
|
|
@@ -2840,6 +2857,26 @@ var getDeploymentsByStatus2 = (0, import_toolkit18.createAsyncThunk)(`${sliceNam
|
|
|
2840
2857
|
return Promise.all(tasks);
|
|
2841
2858
|
});
|
|
2842
2859
|
});
|
|
2860
|
+
var isWithinFirstMonth = (expirationDate) => {
|
|
2861
|
+
if (!expirationDate) {
|
|
2862
|
+
return false;
|
|
2863
|
+
}
|
|
2864
|
+
const endOfFirstMonth = new Date(expirationDate);
|
|
2865
|
+
endOfFirstMonth.setMonth(endOfFirstMonth.getMonth() - 11);
|
|
2866
|
+
return endOfFirstMonth > /* @__PURE__ */ new Date();
|
|
2867
|
+
};
|
|
2868
|
+
var trackDeploymentCreation = (totalDeploymentCount, hasDeployments, trial_expiration) => {
|
|
2869
|
+
import_tracking.default.event({ category: "deployments", action: "create" });
|
|
2870
|
+
if (!totalDeploymentCount) {
|
|
2871
|
+
if (!hasDeployments) {
|
|
2872
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment" });
|
|
2873
|
+
if (isWithinFirstMonth(trial_expiration)) {
|
|
2874
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment_first_month" });
|
|
2875
|
+
}
|
|
2876
|
+
}
|
|
2877
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment_user" });
|
|
2878
|
+
}
|
|
2879
|
+
};
|
|
2843
2880
|
var MAX_PREVIOUS_PHASES_COUNT = 5;
|
|
2844
2881
|
var createDeployment = (0, import_toolkit18.createAsyncThunk)(`${sliceName2}/createDeployment`, ({ newDeployment, hasNewRetryDefault = false }, { dispatch, getState }) => {
|
|
2845
2882
|
let request;
|
|
@@ -2850,6 +2887,9 @@ var createDeployment = (0, import_toolkit18.createAsyncThunk)(`${sliceName2}/cre
|
|
|
2850
2887
|
} else {
|
|
2851
2888
|
request = general_api_default.post(`${deploymentsApiUrl}/deployments`, newDeployment);
|
|
2852
2889
|
}
|
|
2890
|
+
const totalDeploymentCount = Object.values(getDeploymentsByStatus(getState())).reduce((accu, item) => accu + item.total, 0);
|
|
2891
|
+
const { hasDeployments } = getGlobalSettings(getState());
|
|
2892
|
+
const { trial_expiration } = getOrganization(getState());
|
|
2853
2893
|
return request.catch((err) => commonErrorHandler(err, "Error creating deployment.", dispatch)).then((data) => {
|
|
2854
2894
|
const lastslashindex = data.headers.location.lastIndexOf("/");
|
|
2855
2895
|
const deploymentId = data.headers.location.substring(lastslashindex + 1);
|
|
@@ -2864,6 +2904,7 @@ var createDeployment = (0, import_toolkit18.createAsyncThunk)(`${sliceName2}/cre
|
|
|
2864
2904
|
dispatch(getSingleDeployment(deploymentId)),
|
|
2865
2905
|
dispatch(setSnackbar2("Deployment created successfully", TIMEOUTS.fiveSeconds))
|
|
2866
2906
|
];
|
|
2907
|
+
trackDeploymentCreation(totalDeploymentCount, hasDeployments, trial_expiration);
|
|
2867
2908
|
const { canManageUsers } = getUserCapabilities(getState());
|
|
2868
2909
|
if (canManageUsers) {
|
|
2869
2910
|
const { phases, retries } = newDeployment;
|
|
@@ -3154,16 +3195,17 @@ var getDeviceMonitorConfig = (0, import_toolkit19.createAsyncThunk)(
|
|
|
3154
3195
|
);
|
|
3155
3196
|
var changeNotificationSetting = (0, import_toolkit19.createAsyncThunk)(
|
|
3156
3197
|
`${sliceName4}/changeNotificationSetting`,
|
|
3157
|
-
({ enabled, channel = alertChannels.email }, { dispatch }) => {
|
|
3158
|
-
|
|
3159
|
-
(
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
);
|
|
3164
|
-
}
|
|
3198
|
+
({ 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(
|
|
3199
|
+
() => Promise.all([
|
|
3200
|
+
dispatch(actions4.changeAlertChannel({ channel, enabled })),
|
|
3201
|
+
dispatch(actions_default.setSnackbar(`Successfully ${enabled ? "en" : "dis"}abled ${channel} alerts`, TIMEOUTS.fiveSeconds))
|
|
3202
|
+
])
|
|
3203
|
+
)
|
|
3165
3204
|
);
|
|
3166
3205
|
|
|
3206
|
+
// src/usersSlice/thunks.ts
|
|
3207
|
+
var import_helptips = require("@northern.tech/common-ui/helptips");
|
|
3208
|
+
|
|
3167
3209
|
// src/api/users-api.ts
|
|
3168
3210
|
var import_axios2 = __toESM(require("axios"), 1);
|
|
3169
3211
|
var Api2 = {
|
|
@@ -3197,7 +3239,7 @@ var handleLoginError = (err, { token2fa: has2FA, password }, rejectWithValue) =>
|
|
|
3197
3239
|
}
|
|
3198
3240
|
const twoFAError = is2FABackend ? " and verification code" : "";
|
|
3199
3241
|
const errorMessage = `There was a problem logging in. Please check your email${twoFAError ? "," : " and"} password${twoFAError}. If you still have problems, contact an administrator.`;
|
|
3200
|
-
return Promise.reject(dispatch(setSnackbar3((0, import_helpers9.preformatWithRequestID)(err.response, errorMessage),
|
|
3242
|
+
return Promise.reject(dispatch(setSnackbar3({ message: (0, import_helpers9.preformatWithRequestID)(err.response, errorMessage), action: "Copy to clipboard" })));
|
|
3201
3243
|
};
|
|
3202
3244
|
var loginUser = (0, import_toolkit20.createAsyncThunk)(
|
|
3203
3245
|
`${sliceName8}/loginUser`,
|
|
@@ -3221,19 +3263,16 @@ var loginUser = (0, import_toolkit20.createAsyncThunk)(
|
|
|
3221
3263
|
const expiresAt = stayLoggedIn ? void 0 : now.toISOString();
|
|
3222
3264
|
setSessionInfo({ token, expiresAt });
|
|
3223
3265
|
cookies3.remove("JWT", { path: "/" });
|
|
3224
|
-
return (
|
|
3225
|
-
|
|
3226
|
-
Promise.
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
window.
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
return Promise.resolve(dispatch(actions8.successfullyLoggedIn({ expiresAt, token })));
|
|
3235
|
-
})
|
|
3236
|
-
);
|
|
3266
|
+
return dispatch(getUser(OWN_USER_ID)).unwrap().catch((e) => {
|
|
3267
|
+
cleanUp();
|
|
3268
|
+
return Promise.reject(dispatch(setSnackbar3((0, import_helpers9.extractErrorMessage)(e))));
|
|
3269
|
+
}).then(() => {
|
|
3270
|
+
window.sessionStorage.removeItem("pendings-redirect");
|
|
3271
|
+
if (window.location.pathname !== "/ui/") {
|
|
3272
|
+
window.location.replace("/ui/");
|
|
3273
|
+
}
|
|
3274
|
+
return Promise.resolve(dispatch(actions8.successfullyLoggedIn({ expiresAt, token })));
|
|
3275
|
+
});
|
|
3237
3276
|
})
|
|
3238
3277
|
);
|
|
3239
3278
|
var logoutUser = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/logoutUser`, (_, { dispatch, getState }) => {
|
|
@@ -3251,6 +3290,7 @@ var switchUserOrganization = (0, import_toolkit20.createAsyncThunk)(`${sliceName
|
|
|
3251
3290
|
return Promise.reject();
|
|
3252
3291
|
}
|
|
3253
3292
|
return general_api_default.get(`${useradmApiUrlv1}/users/tenants/${tenantId}/token`).then(({ data: token }) => {
|
|
3293
|
+
window.sessionStorage.setItem("tenantChanged", "true");
|
|
3254
3294
|
setSessionInfo({ ...getSessionInfo(), token });
|
|
3255
3295
|
window.location.reload();
|
|
3256
3296
|
});
|
|
@@ -3291,11 +3331,18 @@ var verify2FA = (0, import_toolkit20.createAsyncThunk)(
|
|
|
3291
3331
|
);
|
|
3292
3332
|
var getUserList = (0, import_toolkit20.createAsyncThunk)(
|
|
3293
3333
|
`${sliceName8}/getUserList`,
|
|
3294
|
-
(_, { dispatch }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
|
|
3295
|
-
const
|
|
3296
|
-
|
|
3297
|
-
|
|
3298
|
-
|
|
3334
|
+
(_, { dispatch, getState }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
|
|
3335
|
+
const currentUsersById = getUsersById(getState());
|
|
3336
|
+
const users = res.data.reduce(
|
|
3337
|
+
(accu, item) => {
|
|
3338
|
+
accu[item.id] = {
|
|
3339
|
+
...accu[item.id],
|
|
3340
|
+
...item
|
|
3341
|
+
};
|
|
3342
|
+
return accu;
|
|
3343
|
+
},
|
|
3344
|
+
{ ...currentUsersById }
|
|
3345
|
+
);
|
|
3299
3346
|
return dispatch(actions8.receivedUserList(users));
|
|
3300
3347
|
}).catch((err) => commonErrorHandler(err, `Users couldn't be loaded.`, dispatch, commonErrorFallback))
|
|
3301
3348
|
);
|
|
@@ -3304,9 +3351,7 @@ var getUser = (0, import_toolkit20.createAsyncThunk)(
|
|
|
3304
3351
|
(id, { dispatch, rejectWithValue }) => general_api_default.get(`${useradmApiUrlv1}/users/${id}`).then(
|
|
3305
3352
|
({ data: user }) => Promise.all([
|
|
3306
3353
|
dispatch(actions8.receivedUser(user)),
|
|
3307
|
-
// @ts-ignore
|
|
3308
3354
|
dispatch(setHideAnnouncement({ shouldHide: false, userId: user.id })),
|
|
3309
|
-
// @ts-ignore
|
|
3310
3355
|
dispatch(updateUserColumnSettings({ currentUserId: user.id })),
|
|
3311
3356
|
user
|
|
3312
3357
|
])
|
|
@@ -3353,10 +3398,7 @@ var createUser = (0, import_toolkit20.createAsyncThunk)(
|
|
|
3353
3398
|
);
|
|
3354
3399
|
var removeUser = (0, import_toolkit20.createAsyncThunk)(
|
|
3355
3400
|
`${sliceName8}/removeUser`,
|
|
3356
|
-
(userId, { dispatch }) => (
|
|
3357
|
-
// @ts-ignore
|
|
3358
|
-
general_api_default.delete(`${useradmApiUrlv1}/users/${userId}`).then(() => Promise.all([dispatch(actions8.removedUser(userId)), dispatch(getUserList()), dispatch(setSnackbar3(userActions.remove.successMessage))])).catch((err) => userActionErrorHandler(err, "remove", dispatch))
|
|
3359
|
-
)
|
|
3401
|
+
(userId, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/users/${userId}`).then(() => Promise.all([dispatch(actions8.removedUser(userId)), dispatch(getUserList()), dispatch(setSnackbar3(userActions.remove.successMessage))])).catch((err) => userActionErrorHandler(err, "remove", dispatch))
|
|
3360
3402
|
);
|
|
3361
3403
|
var editUser = (0, import_toolkit20.createAsyncThunk)(
|
|
3362
3404
|
`${sliceName8}/editUser`,
|
|
@@ -3377,7 +3419,7 @@ var enableUser2fa = (0, import_toolkit20.createAsyncThunk)(
|
|
|
3377
3419
|
);
|
|
3378
3420
|
var disableUser2fa = (0, import_toolkit20.createAsyncThunk)(
|
|
3379
3421
|
`${sliceName8}/disableUser2fa`,
|
|
3380
|
-
(userId = OWN_USER_ID, { dispatch }) => general_api_default.post(`${useradmApiUrlv1}/users/${userId}/2fa/disable`).catch((err) => commonErrorHandler(err, `There was an error disabling Two Factor authentication for the user.`, dispatch)).then(() => Promise.
|
|
3422
|
+
(userId = OWN_USER_ID, { dispatch }) => general_api_default.post(`${useradmApiUrlv1}/users/${userId}/2fa/disable`).catch((err) => commonErrorHandler(err, `There was an error disabling Two Factor authentication for the user.`, dispatch)).then(() => Promise.all([dispatch(getUser(userId)), dispatch(actions8.receivedQrCode(null))]))
|
|
3381
3423
|
);
|
|
3382
3424
|
var mapHttpPermission = (permission) => Object.entries(uiPermissionsByArea).reduce(
|
|
3383
3425
|
(accu, [area, definition]) => {
|
|
@@ -3530,7 +3572,6 @@ var getPermissionSets = (0, import_toolkit20.createAsyncThunk)(
|
|
|
3530
3572
|
accu[permissionSet.name] = permissionSetObject;
|
|
3531
3573
|
return accu;
|
|
3532
3574
|
},
|
|
3533
|
-
// @ts-ignore
|
|
3534
3575
|
{ ...getState().users.permissionSetsById }
|
|
3535
3576
|
);
|
|
3536
3577
|
return Promise.all([dispatch(actions8.receivedPermissionSets(permissionSets)), permissionSets]);
|
|
@@ -3623,7 +3664,6 @@ var transformRoleDataToRole = (roleData, roleState = {}) => {
|
|
|
3623
3664
|
role: {
|
|
3624
3665
|
...emptyRole,
|
|
3625
3666
|
name,
|
|
3626
|
-
// @ts-ignore
|
|
3627
3667
|
description: description ? description : roleState.description,
|
|
3628
3668
|
uiPermissions: {
|
|
3629
3669
|
...emptyUiPermissions,
|
|
@@ -3666,10 +3706,7 @@ var editRole = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/editRole`,
|
|
|
3666
3706
|
});
|
|
3667
3707
|
var removeRole = (0, import_toolkit20.createAsyncThunk)(
|
|
3668
3708
|
`${sliceName8}/removeRole`,
|
|
3669
|
-
(roleId, { dispatch }) => (
|
|
3670
|
-
// @ts-ignore
|
|
3671
|
-
general_api_default.delete(`${useradmApiUrlv2}/roles/${roleId}`).then(() => Promise.all([dispatch(actions8.removedRole(roleId)), dispatch(getRoles()), dispatch(setSnackbar3(roleActions.remove.successMessage))])).catch((err) => roleActionErrorHandler(err, "remove", dispatch))
|
|
3672
|
-
)
|
|
3709
|
+
(roleId, { dispatch }) => general_api_default.delete(`${useradmApiUrlv2}/roles/${roleId}`).then(() => Promise.all([dispatch(actions8.removedRole(roleId)), dispatch(getRoles()), dispatch(setSnackbar3(roleActions.remove.successMessage))])).catch((err) => roleActionErrorHandler(err, "remove", dispatch))
|
|
3673
3710
|
);
|
|
3674
3711
|
var getGlobalSettings2 = (0, import_toolkit20.createAsyncThunk)(
|
|
3675
3712
|
`${sliceName8}/getGlobalSettings`,
|
|
@@ -3680,7 +3717,6 @@ var getGlobalSettings2 = (0, import_toolkit20.createAsyncThunk)(
|
|
|
3680
3717
|
);
|
|
3681
3718
|
var saveGlobalSettings = (0, import_toolkit20.createAsyncThunk)(
|
|
3682
3719
|
`${sliceName8}/saveGlobalSettings`,
|
|
3683
|
-
// @ts-ignore
|
|
3684
3720
|
({ beOptimistic = false, notify = false, ...settings }, { dispatch, getState }) => {
|
|
3685
3721
|
if (!window.sessionStorage.getItem(settingsKeys.initialized) && !beOptimistic) {
|
|
3686
3722
|
return;
|
|
@@ -3726,11 +3762,9 @@ var saveUserSettings = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/sav
|
|
|
3726
3762
|
const tooltipState = getTooltipsState(getState());
|
|
3727
3763
|
const updatedSettings = {
|
|
3728
3764
|
...userSettings,
|
|
3729
|
-
// @ts-ignore
|
|
3730
3765
|
...settings,
|
|
3731
3766
|
onboarding: {
|
|
3732
3767
|
...onboardingState,
|
|
3733
|
-
// @ts-ignore
|
|
3734
3768
|
...settings.onboarding
|
|
3735
3769
|
},
|
|
3736
3770
|
tooltips: tooltipState
|
|
@@ -3774,10 +3808,7 @@ var generateToken = (0, import_toolkit20.createAsyncThunk)(
|
|
|
3774
3808
|
);
|
|
3775
3809
|
var revokeToken = (0, import_toolkit20.createAsyncThunk)(
|
|
3776
3810
|
`${sliceName8}/revokeToken`,
|
|
3777
|
-
(token, { dispatch }) => (
|
|
3778
|
-
// @ts-ignore
|
|
3779
|
-
general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
3780
|
-
)
|
|
3811
|
+
(token, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
3781
3812
|
);
|
|
3782
3813
|
var setTooltipReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/setTooltipReadState`, ({ persist, ...remainder }, { dispatch }) => {
|
|
3783
3814
|
let tasks = [dispatch(actions8.setTooltipState(remainder))];
|
|
@@ -3786,23 +3817,20 @@ var setTooltipReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/
|
|
|
3786
3817
|
}
|
|
3787
3818
|
return Promise.all(tasks);
|
|
3788
3819
|
});
|
|
3789
|
-
var setAllTooltipsReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/toggleHelptips`, (
|
|
3790
|
-
const updatedTips =
|
|
3820
|
+
var setAllTooltipsReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/toggleHelptips`, (readState = READ_STATES.read, { dispatch }) => {
|
|
3821
|
+
const updatedTips = Object.keys(import_helptips.HELPTOOLTIPS).reduce((accu, id) => ({ ...accu, [id]: { readState } }), {});
|
|
3791
3822
|
return Promise.resolve(dispatch(actions8.setTooltipsState(updatedTips))).then(() => dispatch(saveUserSettings()));
|
|
3792
3823
|
});
|
|
3793
3824
|
var submitFeedback = (0, import_toolkit20.createAsyncThunk)(
|
|
3794
3825
|
`${sliceName8}/submitFeedback`,
|
|
3795
|
-
|
|
3796
|
-
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3800
|
-
|
|
3801
|
-
|
|
3802
|
-
|
|
3803
|
-
setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
3804
|
-
});
|
|
3805
|
-
}
|
|
3826
|
+
({ satisfaction, feedback, ...meta }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/contact/support`, {
|
|
3827
|
+
subject: "feedback submission",
|
|
3828
|
+
body: JSON.stringify({ feedback, satisfaction, meta })
|
|
3829
|
+
}).then(() => {
|
|
3830
|
+
const today = /* @__PURE__ */ new Date();
|
|
3831
|
+
dispatch(saveUserSettings({ feedbackCollectedAt: today.toISOString().split("T")[0] }));
|
|
3832
|
+
setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
3833
|
+
})
|
|
3806
3834
|
);
|
|
3807
3835
|
|
|
3808
3836
|
// src/devicesSlice/thunks.tsx
|
|
@@ -4241,7 +4269,7 @@ var getDevicesByStatus2 = (0, import_toolkit21.createAsyncThunk)(`${sliceName3}/
|
|
|
4241
4269
|
page = defaultPage3,
|
|
4242
4270
|
perPage = defaultPerPage3,
|
|
4243
4271
|
sortOptions = [],
|
|
4244
|
-
selectedAttributes =
|
|
4272
|
+
selectedAttributes = getSelectedDeviceAttribute(getState())
|
|
4245
4273
|
} = options;
|
|
4246
4274
|
const state = getState();
|
|
4247
4275
|
const { applicableFilters, filterTerms } = convertDeviceListStateToFilters({
|
|
@@ -4354,7 +4382,6 @@ var getReportingLimits = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4354
4382
|
})
|
|
4355
4383
|
);
|
|
4356
4384
|
var ensureVersionString = (software, fallback) => software.length && software !== "artifact_name" ? software.endsWith(".version") ? software : `${software}.version` : fallback;
|
|
4357
|
-
var REPORT_CHART_SIZE_LIMIT = 6;
|
|
4358
4385
|
var getSingleReportData = (reportConfig, groups) => {
|
|
4359
4386
|
const { attribute, group, software = "" } = reportConfig;
|
|
4360
4387
|
const filters = [{ key: "status", scope: "identity", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: "accepted" }];
|
|
@@ -4434,6 +4461,13 @@ var getDeviceConnect = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4434
4461
|
({ data }) => Promise.all([dispatch(actions3.receivedDevice({ connect_status: data.status, connect_updated_ts: data.updated_ts, id })), Promise.resolve(data)])
|
|
4435
4462
|
)
|
|
4436
4463
|
);
|
|
4464
|
+
var updateTypeMap = { deploymentUpdate: "check-update", inventoryUpdate: "send-inventory" };
|
|
4465
|
+
var triggerDeviceUpdate = (0, import_toolkit21.createAsyncThunk)(
|
|
4466
|
+
`${sliceName3}/triggerDeviceUpdate`,
|
|
4467
|
+
({ id, type }, { dispatch }) => general_api_default.post(`${deviceConnect}/devices/${id}/${updateTypeMap[type] ?? updateTypeMap.deploymentUpdate}`).then(
|
|
4468
|
+
() => new Promise((resolve) => setTimeout(() => resolve(dispatch(getDeviceById2(id))), TIMEOUTS.threeSeconds))
|
|
4469
|
+
)
|
|
4470
|
+
);
|
|
4437
4471
|
var getSessionDetails = (0, import_toolkit21.createAsyncThunk)(`${sliceName3}/getSessionDetails`, ({ sessionId, deviceId, userId, startDate, endDate }) => {
|
|
4438
4472
|
const { start: startUnix, end: endUnix } = (0, import_helpers10.dateRangeToUnix)(startDate, endDate);
|
|
4439
4473
|
const createdAfter = startDate ? `&created_after=${startUnix}` : "";
|
|
@@ -4536,12 +4570,12 @@ var deleteAuthset = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4536
4570
|
);
|
|
4537
4571
|
var preauthDevice = (0, import_toolkit21.createAsyncThunk)(
|
|
4538
4572
|
`${sliceName3}/preauthDevice`,
|
|
4539
|
-
(authset, { dispatch }) => general_api_default.post(`${deviceAuthV2}/devices`, authset).catch((err) => {
|
|
4573
|
+
(authset, { dispatch, rejectWithValue }) => general_api_default.post(`${deviceAuthV2}/devices`, authset).then(() => Promise.resolve(dispatch(setSnackbar4("Device was successfully added to the preauthorization list", TIMEOUTS.fiveSeconds)))).catch((err) => {
|
|
4540
4574
|
if (err.response.status === 409) {
|
|
4541
|
-
return
|
|
4575
|
+
return rejectWithValue("A device with a matching identity data set already exists");
|
|
4542
4576
|
}
|
|
4543
4577
|
return commonErrorHandler(err, "The device could not be added:", dispatch);
|
|
4544
|
-
})
|
|
4578
|
+
})
|
|
4545
4579
|
);
|
|
4546
4580
|
var decommissionDevice = (0, import_toolkit21.createAsyncThunk)(
|
|
4547
4581
|
`${sliceName3}/decommissionDevice`,
|
|
@@ -4752,6 +4786,7 @@ var getDevicesInBounds = (0, import_toolkit21.createAsyncThunk)(`${sliceName3}/g
|
|
|
4752
4786
|
setDeviceListState,
|
|
4753
4787
|
setDeviceTags,
|
|
4754
4788
|
setDeviceTwin,
|
|
4789
|
+
triggerDeviceUpdate,
|
|
4755
4790
|
updateDeviceAuth,
|
|
4756
4791
|
updateDevicesAuth,
|
|
4757
4792
|
updateDynamicGroup
|