@northern.tech/store 0.1.3 → 0.2.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.
Files changed (188) hide show
  1. package/dist/actions.js +75 -13
  2. package/dist/actions.js.map +1 -1
  3. package/dist/actions.mjs +10 -10
  4. package/dist/api/general-api.js +64 -0
  5. package/dist/api/general-api.js.map +1 -1
  6. package/dist/api/general-api.mjs +4 -4
  7. package/dist/api/users-api.js +64 -0
  8. package/dist/api/users-api.js.map +1 -1
  9. package/dist/api/users-api.mjs +5 -5
  10. package/dist/appSlice/index.js +64 -0
  11. package/dist/appSlice/index.js.map +1 -1
  12. package/dist/appSlice/index.mjs +3 -3
  13. package/dist/appSlice/thunks.js +93 -15
  14. package/dist/appSlice/thunks.js.map +1 -1
  15. package/dist/appSlice/thunks.mjs +24 -24
  16. package/dist/auth.js +64 -0
  17. package/dist/auth.js.map +1 -1
  18. package/dist/auth.mjs +3 -3
  19. package/dist/{chunk-HVHZG2H4.mjs → chunk-2HCZYULZ.mjs} +3 -3
  20. package/dist/chunk-2HCZYULZ.mjs.map +1 -0
  21. package/dist/{chunk-R2GBNXLV.mjs → chunk-2P4VECEE.mjs} +3 -3
  22. package/dist/{chunk-HXPYJ6QN.mjs → chunk-4C6IY46N.mjs} +2 -2
  23. package/dist/{chunk-BRHSKNFC.mjs → chunk-4U4X4KAC.mjs} +4 -4
  24. package/dist/{chunk-DZBVTSIX.mjs → chunk-BWFTQHNM.mjs} +2 -2
  25. package/dist/{chunk-BJSH2G7W.mjs → chunk-EFHEROXZ.mjs} +2 -2
  26. package/dist/{chunk-6667TCAJ.mjs → chunk-EM2HUGUY.mjs} +3 -3
  27. package/dist/{chunk-IPPIKGIB.mjs → chunk-ENLZPHTQ.mjs} +8 -8
  28. package/dist/{chunk-IVSYYXTC.mjs → chunk-L4HIW3KB.mjs} +3 -3
  29. package/dist/{chunk-G7LATUT6.mjs → chunk-MJW4632R.mjs} +10 -10
  30. package/dist/{chunk-ZNST5R6O.mjs → chunk-MQIKQKSW.mjs} +61 -2
  31. package/dist/chunk-MQIKQKSW.mjs.map +1 -0
  32. package/dist/{chunk-7E7KJHY3.mjs → chunk-NCI6JV5R.mjs} +2 -2
  33. package/dist/{chunk-G3I53JGW.mjs → chunk-OGAMVFPS.mjs} +2 -1
  34. package/dist/{chunk-G3I53JGW.mjs.map → chunk-OGAMVFPS.mjs.map} +1 -1
  35. package/dist/{chunk-F37LUTBX.mjs → chunk-OWHFMKTA.mjs} +2 -2
  36. package/dist/{chunk-ZIYGEXSJ.mjs → chunk-QG4PT5WK.mjs} +3 -3
  37. package/dist/{chunk-XYVPYFSM.mjs → chunk-RWYS5MKN.mjs} +12 -12
  38. package/dist/{chunk-G32LAKW4.mjs → chunk-U6YTBIDT.mjs} +3 -3
  39. package/dist/{chunk-YNVSU3AA.mjs → chunk-UPMSYTWW.mjs} +22 -22
  40. package/dist/chunk-UPMSYTWW.mjs.map +1 -0
  41. package/dist/{chunk-TD45YTYK.mjs → chunk-WS3YYLTJ.mjs} +14 -16
  42. package/dist/chunk-WS3YYLTJ.mjs.map +1 -0
  43. package/dist/{chunk-HRWZJQMH.mjs → chunk-X65NMDPS.mjs} +3 -3
  44. package/dist/{chunk-O6O3D52B.mjs → chunk-XJNI62IP.mjs} +2 -2
  45. package/dist/{chunk-RQOE5OOT.mjs → chunk-Y47SYXII.mjs} +32 -12
  46. package/dist/chunk-Y47SYXII.mjs.map +1 -0
  47. package/dist/{chunk-N7G6QK2E.mjs → chunk-ZLRZO4EY.mjs} +10 -10
  48. package/dist/{chunk-RH6ONMG7.mjs → chunk-ZZ6VIQ3U.mjs} +3 -3
  49. package/dist/commonConstants.d.mts +18 -19
  50. package/dist/commonConstants.d.ts +18 -19
  51. package/dist/commonConstants.js +1 -0
  52. package/dist/commonConstants.js.map +1 -1
  53. package/dist/commonConstants.mjs +1 -1
  54. package/dist/commonSelectors.d.mts +42 -1
  55. package/dist/commonSelectors.d.ts +42 -1
  56. package/dist/commonSelectors.js +82 -0
  57. package/dist/commonSelectors.js.map +1 -1
  58. package/dist/commonSelectors.mjs +11 -9
  59. package/dist/constants.d.mts +3 -3
  60. package/dist/constants.d.ts +3 -3
  61. package/dist/constants.js +62 -0
  62. package/dist/constants.js.map +1 -1
  63. package/dist/constants.mjs +6 -2
  64. package/dist/deploymentsSlice/constants.js +64 -0
  65. package/dist/deploymentsSlice/constants.js.map +1 -1
  66. package/dist/deploymentsSlice/constants.mjs +2 -2
  67. package/dist/deploymentsSlice/index.js +64 -0
  68. package/dist/deploymentsSlice/index.js.map +1 -1
  69. package/dist/deploymentsSlice/index.mjs +3 -3
  70. package/dist/deploymentsSlice/selectors.js +64 -0
  71. package/dist/deploymentsSlice/selectors.js.map +1 -1
  72. package/dist/deploymentsSlice/selectors.mjs +3 -3
  73. package/dist/deploymentsSlice/thunks.js +93 -15
  74. package/dist/deploymentsSlice/thunks.js.map +1 -1
  75. package/dist/deploymentsSlice/thunks.mjs +24 -24
  76. package/dist/devicesSlice/constants.js +64 -0
  77. package/dist/devicesSlice/constants.js.map +1 -1
  78. package/dist/devicesSlice/constants.mjs +2 -2
  79. package/dist/devicesSlice/index.js +64 -0
  80. package/dist/devicesSlice/index.js.map +1 -1
  81. package/dist/devicesSlice/index.mjs +3 -3
  82. package/dist/devicesSlice/selectors.js +64 -0
  83. package/dist/devicesSlice/selectors.js.map +1 -1
  84. package/dist/devicesSlice/selectors.mjs +3 -3
  85. package/dist/devicesSlice/thunks.js +93 -15
  86. package/dist/devicesSlice/thunks.js.map +1 -1
  87. package/dist/devicesSlice/thunks.mjs +24 -24
  88. package/dist/monitorSlice/constants.js +64 -0
  89. package/dist/monitorSlice/constants.js.map +1 -1
  90. package/dist/monitorSlice/constants.mjs +2 -2
  91. package/dist/monitorSlice/index.js +64 -0
  92. package/dist/monitorSlice/index.js.map +1 -1
  93. package/dist/monitorSlice/index.mjs +3 -3
  94. package/dist/monitorSlice/thunks.js +91 -13
  95. package/dist/monitorSlice/thunks.js.map +1 -1
  96. package/dist/monitorSlice/thunks.mjs +21 -21
  97. package/dist/onboardingSlice/thunks.js +93 -15
  98. package/dist/onboardingSlice/thunks.js.map +1 -1
  99. package/dist/onboardingSlice/thunks.mjs +24 -24
  100. package/dist/organizationSlice/constants.d.mts +6 -1
  101. package/dist/organizationSlice/constants.d.ts +6 -1
  102. package/dist/organizationSlice/constants.js +60 -0
  103. package/dist/organizationSlice/constants.js.map +1 -1
  104. package/dist/organizationSlice/constants.mjs +4 -2
  105. package/dist/organizationSlice/index.d.mts +224 -246
  106. package/dist/organizationSlice/index.d.ts +224 -246
  107. package/dist/organizationSlice/index.js +75 -13
  108. package/dist/organizationSlice/index.js.map +1 -1
  109. package/dist/organizationSlice/index.mjs +3 -3
  110. package/dist/organizationSlice/selectors.js +65 -1
  111. package/dist/organizationSlice/selectors.js.map +1 -1
  112. package/dist/organizationSlice/selectors.mjs +3 -3
  113. package/dist/organizationSlice/thunks.js +93 -15
  114. package/dist/organizationSlice/thunks.js.map +1 -1
  115. package/dist/organizationSlice/thunks.mjs +24 -24
  116. package/dist/releasesSlice/index.js +64 -0
  117. package/dist/releasesSlice/index.js.map +1 -1
  118. package/dist/releasesSlice/index.mjs +3 -3
  119. package/dist/releasesSlice/selectors.js +64 -0
  120. package/dist/releasesSlice/selectors.js.map +1 -1
  121. package/dist/releasesSlice/selectors.mjs +4 -4
  122. package/dist/releasesSlice/thunks.js +91 -13
  123. package/dist/releasesSlice/thunks.js.map +1 -1
  124. package/dist/releasesSlice/thunks.mjs +21 -21
  125. package/dist/selectors.d.mts +1 -1
  126. package/dist/selectors.d.ts +1 -1
  127. package/dist/selectors.js +83 -1
  128. package/dist/selectors.js.map +1 -1
  129. package/dist/selectors.mjs +11 -9
  130. package/dist/store.d.mts +235 -135
  131. package/dist/store.d.ts +235 -135
  132. package/dist/store.js +75 -13
  133. package/dist/store.js.map +1 -1
  134. package/dist/store.mjs +13 -13
  135. package/dist/storehooks.d.mts +3 -1
  136. package/dist/storehooks.d.ts +3 -1
  137. package/dist/storehooks.js +125 -29
  138. package/dist/storehooks.js.map +1 -1
  139. package/dist/storehooks.mjs +59 -39
  140. package/dist/storehooks.mjs.map +1 -1
  141. package/dist/thunks.js +93 -15
  142. package/dist/thunks.js.map +1 -1
  143. package/dist/thunks.mjs +24 -24
  144. package/dist/usersSlice/constants.d.mts +192 -17
  145. package/dist/usersSlice/constants.d.ts +192 -17
  146. package/dist/usersSlice/constants.js +66 -0
  147. package/dist/usersSlice/constants.js.map +1 -1
  148. package/dist/usersSlice/constants.mjs +4 -2
  149. package/dist/usersSlice/index.d.mts +1628 -704
  150. package/dist/usersSlice/index.d.ts +1628 -704
  151. package/dist/usersSlice/index.js +64 -0
  152. package/dist/usersSlice/index.js.map +1 -1
  153. package/dist/usersSlice/index.mjs +3 -3
  154. package/dist/usersSlice/selectors.js +64 -0
  155. package/dist/usersSlice/selectors.js.map +1 -1
  156. package/dist/usersSlice/selectors.mjs +4 -4
  157. package/dist/usersSlice/thunks.js +93 -15
  158. package/dist/usersSlice/thunks.js.map +1 -1
  159. package/dist/usersSlice/thunks.mjs +24 -24
  160. package/dist/utils.d.mts +6 -5
  161. package/dist/utils.d.ts +6 -5
  162. package/dist/utils.js +64 -0
  163. package/dist/utils.js.map +1 -1
  164. package/dist/utils.mjs +3 -3
  165. package/package.json +1 -1
  166. package/dist/chunk-HVHZG2H4.mjs.map +0 -1
  167. package/dist/chunk-RQOE5OOT.mjs.map +0 -1
  168. package/dist/chunk-TD45YTYK.mjs.map +0 -1
  169. package/dist/chunk-YNVSU3AA.mjs.map +0 -1
  170. package/dist/chunk-ZNST5R6O.mjs.map +0 -1
  171. /package/dist/{chunk-R2GBNXLV.mjs.map → chunk-2P4VECEE.mjs.map} +0 -0
  172. /package/dist/{chunk-HXPYJ6QN.mjs.map → chunk-4C6IY46N.mjs.map} +0 -0
  173. /package/dist/{chunk-BRHSKNFC.mjs.map → chunk-4U4X4KAC.mjs.map} +0 -0
  174. /package/dist/{chunk-DZBVTSIX.mjs.map → chunk-BWFTQHNM.mjs.map} +0 -0
  175. /package/dist/{chunk-BJSH2G7W.mjs.map → chunk-EFHEROXZ.mjs.map} +0 -0
  176. /package/dist/{chunk-6667TCAJ.mjs.map → chunk-EM2HUGUY.mjs.map} +0 -0
  177. /package/dist/{chunk-IPPIKGIB.mjs.map → chunk-ENLZPHTQ.mjs.map} +0 -0
  178. /package/dist/{chunk-IVSYYXTC.mjs.map → chunk-L4HIW3KB.mjs.map} +0 -0
  179. /package/dist/{chunk-G7LATUT6.mjs.map → chunk-MJW4632R.mjs.map} +0 -0
  180. /package/dist/{chunk-7E7KJHY3.mjs.map → chunk-NCI6JV5R.mjs.map} +0 -0
  181. /package/dist/{chunk-F37LUTBX.mjs.map → chunk-OWHFMKTA.mjs.map} +0 -0
  182. /package/dist/{chunk-ZIYGEXSJ.mjs.map → chunk-QG4PT5WK.mjs.map} +0 -0
  183. /package/dist/{chunk-XYVPYFSM.mjs.map → chunk-RWYS5MKN.mjs.map} +0 -0
  184. /package/dist/{chunk-G32LAKW4.mjs.map → chunk-U6YTBIDT.mjs.map} +0 -0
  185. /package/dist/{chunk-HRWZJQMH.mjs.map → chunk-X65NMDPS.mjs.map} +0 -0
  186. /package/dist/{chunk-O6O3D52B.mjs.map → chunk-XJNI62IP.mjs.map} +0 -0
  187. /package/dist/{chunk-N7G6QK2E.mjs.map → chunk-ZLRZO4EY.mjs.map} +0 -0
  188. /package/dist/{chunk-RH6ONMG7.mjs.map → chunk-ZZ6VIQ3U.mjs.map} +0 -0
package/dist/store.mjs CHANGED
@@ -4,23 +4,23 @@ import {
4
4
  getConfiguredStore,
5
5
  sessionReducer,
6
6
  store
7
- } from "./chunk-XYVPYFSM.mjs";
8
- import "./chunk-IPPIKGIB.mjs";
9
- import "./chunk-BJSH2G7W.mjs";
10
- import "./chunk-TD45YTYK.mjs";
11
- import "./chunk-7E7KJHY3.mjs";
12
- import "./chunk-RH6ONMG7.mjs";
7
+ } from "./chunk-RWYS5MKN.mjs";
8
+ import "./chunk-ENLZPHTQ.mjs";
9
+ import "./chunk-EFHEROXZ.mjs";
10
+ import "./chunk-WS3YYLTJ.mjs";
11
+ import "./chunk-NCI6JV5R.mjs";
12
+ import "./chunk-ZZ6VIQ3U.mjs";
13
13
  import "./chunk-M4U5R7A4.mjs";
14
- import "./chunk-6667TCAJ.mjs";
15
- import "./chunk-HRWZJQMH.mjs";
16
- import "./chunk-F37LUTBX.mjs";
17
- import "./chunk-HXPYJ6QN.mjs";
18
- import "./chunk-G32LAKW4.mjs";
19
- import "./chunk-ZNST5R6O.mjs";
14
+ import "./chunk-EM2HUGUY.mjs";
15
+ import "./chunk-X65NMDPS.mjs";
16
+ import "./chunk-OWHFMKTA.mjs";
17
+ import "./chunk-4C6IY46N.mjs";
18
+ import "./chunk-U6YTBIDT.mjs";
19
+ import "./chunk-MQIKQKSW.mjs";
20
20
  import "./chunk-G4FGNSV3.mjs";
21
21
  import "./chunk-IU4OXOPA.mjs";
22
22
  import "./chunk-BOSBROA3.mjs";
23
- import "./chunk-G3I53JGW.mjs";
23
+ import "./chunk-OGAMVFPS.mjs";
24
24
  import "./chunk-XWBD7VOK.mjs";
25
25
  export {
26
26
  commonErrorFallback,
@@ -1,4 +1,6 @@
1
1
  declare const parseEnvironmentInfo: () => (dispatch: any, getState: any) => Promise<[any, any, any, any, any, any, any]>;
2
- declare const useAppInit: (userId: any) => void;
2
+ declare const useAppInit: (userId: any) => {
3
+ coreInitDone: boolean;
4
+ };
3
5
 
4
6
  export { parseEnvironmentInfo, useAppInit };
@@ -1,4 +1,6 @@
1
1
  declare const parseEnvironmentInfo: () => (dispatch: any, getState: any) => Promise<[any, any, any, any, any, any, any]>;
2
- declare const useAppInit: (userId: any) => void;
2
+ declare const useAppInit: (userId: any) => {
3
+ coreInitDone: boolean;
4
+ };
3
5
 
4
6
  export { parseEnvironmentInfo, useAppInit };
@@ -793,6 +793,7 @@ var emptyUiPermissions = Object.freeze({
793
793
  deployments: [],
794
794
  groups: Object.freeze({}),
795
795
  releases: Object.freeze({}),
796
+ tenantManagement: [],
796
797
  userManagement: []
797
798
  });
798
799
  var emptyRole = Object.freeze({
@@ -1040,6 +1041,13 @@ var SSO_TYPES = {
1040
1041
  configDetails: [{ key: "startURL", label: "Start Url", getValue: getOidcStartUrl }]
1041
1042
  }
1042
1043
  };
1044
+ var AUDIT_LOGS_TYPES = [
1045
+ { title: "Artifact", queryParameter: "object_type", value: "artifact" },
1046
+ { title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
1047
+ { title: "Device", queryParameter: "object_id", value: "device" },
1048
+ { title: "User", queryParameter: "object_id", value: "user" }
1049
+ ];
1050
+ var SP_AUDIT_LOGS_TYPES = [AUDIT_LOGS_TYPES[3], { title: "Tenant", queryParameter: "object_id", value: "tenant" }];
1043
1051
  var emptyWebhook = {
1044
1052
  description: "",
1045
1053
  enabled: true,
@@ -1088,10 +1096,12 @@ var permissionSetIds = {
1088
1096
  DeployToDevices: "DeployToDevices",
1089
1097
  ManageDevices: "ManageDevices",
1090
1098
  ManageReleases: "ManageReleases",
1099
+ ManageTenants: "ManageTenants",
1091
1100
  ManageUsers: "ManageUsers",
1092
1101
  ReadAuditLogs: "ReadAuditLogs",
1093
1102
  ReadDevices: "ReadDevices",
1094
1103
  ReadReleases: "ReadReleases",
1104
+ ReadTenants: "ReadTenants",
1095
1105
  ReadUsers: "ReadUsers",
1096
1106
  SuperUser: "SuperUser",
1097
1107
  UploadArtifacts: "UploadArtifacts"
@@ -1130,6 +1140,7 @@ var uiPermissionsById = {
1130
1140
  permissionSets: {
1131
1141
  groups: permissionSetIds.ManageDevices,
1132
1142
  releases: permissionSetIds.ManageReleases,
1143
+ tenantManagement: permissionSetIds.ManageTenants,
1133
1144
  userManagement: permissionSetIds.ManageUsers
1134
1145
  },
1135
1146
  title: "Manage",
@@ -1143,6 +1154,7 @@ var uiPermissionsById = {
1143
1154
  auditlog: permissionSetIds.ReadAuditLogs,
1144
1155
  groups: permissionSetIds.ReadDevices,
1145
1156
  releases: permissionSetIds.ReadReleases,
1157
+ tenantManagement: permissionSetIds.ReadTenants,
1146
1158
  userManagement: permissionSetIds.ReadUsers
1147
1159
  },
1148
1160
  title: "Read",
@@ -1167,6 +1179,7 @@ var uiPermissionsByArea = {
1167
1179
  auditlog: {
1168
1180
  endpoints: [{ path: /\/(auditlog)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] }],
1169
1181
  explanation: "Granting access to the audit log will allow tracing changes to devices, releases and user accounts, as well as providing information about deployments.",
1182
+ key: "auditlog",
1170
1183
  uiPermissions: [uiPermissionsById.read],
1171
1184
  title: "System audit log"
1172
1185
  },
@@ -1177,6 +1190,7 @@ var uiPermissionsByArea = {
1177
1190
  { path: /\/(deployments\/config)/i, types: [PermissionTypes.Get, PermissionTypes.Put], uiPermissions: [uiPermissionsById.manage] }
1178
1191
  ],
1179
1192
  explanation: "Providing deploy permissions will allow deployments to be created using the releases and devices a user has access to.",
1193
+ key: "deployments",
1180
1194
  uiPermissions: [uiPermissionsById.read, uiPermissionsById.deploy],
1181
1195
  title: "Deployments"
1182
1196
  },
@@ -1192,6 +1206,7 @@ var uiPermissionsByArea = {
1192
1206
  { path: /\/(deviceconnect\/devices)/i, types: [PermissionTypes.Get, PermissionTypes.Post], uiPermissions: [uiPermissionsById.connect] }
1193
1207
  ],
1194
1208
  explanation: "Device group management permissions control the degree to which devices in a group can be accessed and moved to other groups.",
1209
+ key: "groups",
1195
1210
  scope: scopedPermissionAreas.groups.scopeType,
1196
1211
  uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage, uiPermissionsById.deploy, uiPermissionsById.configure, uiPermissionsById.connect],
1197
1212
  title: "Group Management"
@@ -1211,16 +1226,29 @@ var uiPermissionsByArea = {
1211
1226
  }
1212
1227
  ],
1213
1228
  explanation: "Release permissions can be granted to allow artifact & release modifications, as well as the creation of new releases.",
1229
+ key: "releases",
1214
1230
  scope: "ReleaseTags",
1215
1231
  uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage, uiPermissionsById.upload],
1216
1232
  title: "Release Management"
1217
1233
  },
1234
+ tenantManagement: {
1235
+ endpoints: [
1236
+ { path: /\/(tenantadm\/tenants)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
1237
+ { path: /\/(tenantadm\/tenants)/i, types: [PermissionTypes.Post, PermissionTypes.Put], uiPermissions: [uiPermissionsById.manage] },
1238
+ { path: /\/(users\/exists)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.manage] }
1239
+ ],
1240
+ explanation: "Tenant management permissions allow listing, creating and modifying child tenants",
1241
+ key: "tenantManagement",
1242
+ uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage],
1243
+ title: "Tenant Management"
1244
+ },
1218
1245
  userManagement: {
1219
1246
  endpoints: [
1220
1247
  { path: /\/(useradm)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
1221
1248
  { path: /\/(useradm)/i, types: [PermissionTypes.Post], uiPermissions: [uiPermissionsById.manage] }
1222
1249
  ],
1223
1250
  explanation: "User management permissions should be granted carefully, as these allow privilege increases for any users managed by a user with user management permissions",
1251
+ key: "userManagement",
1224
1252
  uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage],
1225
1253
  title: "User Management"
1226
1254
  }
@@ -1284,6 +1312,30 @@ var rolesById = Object.freeze({
1284
1312
  })
1285
1313
  }
1286
1314
  });
1315
+ var serviceProviderRolesById = {
1316
+ admin: {
1317
+ name: "Admin",
1318
+ value: staticRolesByName.admin,
1319
+ description: "Full access",
1320
+ permissions: [],
1321
+ uiPermissions: __spreadProps(__spreadValues({}, emptyUiPermissions), {
1322
+ auditlog: uiPermissionsByArea.auditlog.uiPermissions.map(permissionMapper),
1323
+ userManagement: uiPermissionsByArea.userManagement.uiPermissions.map(permissionMapper),
1324
+ tenantManagement: uiPermissionsByArea.tenantManagement.uiPermissions.map(permissionMapper)
1325
+ })
1326
+ },
1327
+ readOnly: {
1328
+ name: "Read access",
1329
+ value: staticRolesByName.admin,
1330
+ description: "This role can see all linked organizations but cannot make any changes",
1331
+ permissions: [],
1332
+ uiPermissions: __spreadProps(__spreadValues({}, emptyUiPermissions), {
1333
+ auditlog: [uiPermissionsById.read.value],
1334
+ userManagement: [uiPermissionsById.read.value],
1335
+ tenantManagement: [uiPermissionsById.read.value]
1336
+ })
1337
+ }
1338
+ };
1287
1339
  var defaultPermissionSets = {
1288
1340
  [permissionSetIds.Basic]: {
1289
1341
  name: permissionSetIds.Basic,
@@ -1314,6 +1366,18 @@ var defaultPermissionSets = {
1314
1366
  releases: { [ALL_RELEASES]: [uiPermissionsById.read.value] }
1315
1367
  }
1316
1368
  },
1369
+ [permissionSetIds.ReadTenants]: {
1370
+ name: permissionSetIds.ReadTenants,
1371
+ result: {
1372
+ tenantManagement: [uiPermissionsById.read.value]
1373
+ }
1374
+ },
1375
+ [permissionSetIds.ManageTenants]: {
1376
+ name: permissionSetIds.ManageTenants,
1377
+ result: {
1378
+ tenantManagement: [uiPermissionsById.manage.value]
1379
+ }
1380
+ },
1317
1381
  [permissionSetIds.ReadUsers]: {
1318
1382
  name: permissionSetIds.ReadUsers,
1319
1383
  result: {
@@ -1890,16 +1954,16 @@ var initialState6 = {
1890
1954
  brand: ""
1891
1955
  },
1892
1956
  intentId: null,
1957
+ tenantList: __spreadProps(__spreadValues({}, TENANT_LIST_DEFAULT), {
1958
+ total: 0,
1959
+ tenants: [],
1960
+ selectedTenant: null,
1961
+ sort: {
1962
+ direction: SORTING_OPTIONS.desc,
1963
+ key: "name"
1964
+ }
1965
+ }),
1893
1966
  organization: {
1894
- tenantList: __spreadProps(__spreadValues({}, TENANT_LIST_DEFAULT), {
1895
- total: 0,
1896
- tenants: [],
1897
- selectedTenant: null,
1898
- sort: {
1899
- direction: SORTING_OPTIONS.desc,
1900
- key: "name"
1901
- }
1902
- })
1903
1967
  // id, name, status, tenant_token, plan
1904
1968
  },
1905
1969
  auditlog: {
@@ -1945,12 +2009,10 @@ var organizationSlice = (0, import_toolkit6.createSlice)({
1945
2009
  state.intentId = action.payload;
1946
2010
  },
1947
2011
  setOrganization: (state, action) => {
1948
- state.organization = __spreadProps(__spreadValues(__spreadValues({}, state.organization), action.payload), {
1949
- tenantList: __spreadValues(__spreadValues({}, state.organization.tenantList), action.payload.tenantList)
1950
- });
2012
+ state.organization = __spreadValues(__spreadValues({}, state.organization), action.payload);
1951
2013
  },
1952
2014
  setTenantListState: (state, action) => {
1953
- state.organization.tenantList = action.payload;
2015
+ state.tenantList = action.payload;
1954
2016
  },
1955
2017
  receiveExternalDeviceIntegrations: (state, action) => {
1956
2018
  state.externalDeviceIntegrations = action.payload;
@@ -2411,7 +2473,7 @@ var getExternalIntegrations = (state) => state.organization.externalDeviceIntegr
2411
2473
  var getAuditlogState = (state) => state.organization.auditlog.selectionState;
2412
2474
  var getAuditLog = (state) => state.organization.auditlog.events;
2413
2475
  var getAuditLogSelectionState = (state) => state.organization.auditlog.selectionState;
2414
- var getTenantsList = (state) => state.organization.organization.tenantList;
2476
+ var getTenantsList = (state) => state.organization.tenantList;
2415
2477
  var getWebhookEvents = (state) => state.organization.webhooks.events;
2416
2478
  var getWebhookEventTotal = (state) => state.organization.webhooks.eventTotal;
2417
2479
  var getDeviceTwinIntegrations = (0, import_toolkit12.createSelector)(
@@ -2839,6 +2901,22 @@ var getAuditlogDevice = (0, import_toolkit15.createSelector)([getAuditLogEntry,
2839
2901
  }
2840
2902
  return __spreadValues(__spreadValues({}, auditlogDevice), devicesById[auditlogDevice.id]);
2841
2903
  });
2904
+ var getRelevantRoles = (0, import_toolkit15.createSelector)([getOrganization, getRolesList], ({ service_provider }, roles) => {
2905
+ if (service_provider) {
2906
+ return roles.reduce((accu, role) => {
2907
+ if (rolesById[role.id]) {
2908
+ return accu;
2909
+ }
2910
+ accu.push(role);
2911
+ return accu;
2912
+ }, Object.values(serviceProviderRolesById));
2913
+ }
2914
+ return Object.keys(rolesById).reverse().reduce((accu, key) => {
2915
+ const index = accu.findIndex(({ id }) => id === key);
2916
+ accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];
2917
+ return accu;
2918
+ }, roles);
2919
+ });
2842
2920
 
2843
2921
  // src/api/general-api.ts
2844
2922
  var import_axios = __toESM(require("axios"));
@@ -4571,7 +4649,7 @@ var tenantListRetrieval = (config) => __async(void 0, null, function* () {
4571
4649
  const params = new URLSearchParams({ page, per_page: perPage }).toString();
4572
4650
  const tenantList = yield general_api_default.get(`${tenantadmApiUrlv2}/tenants?${params}`);
4573
4651
  const totalCount = tenantList.headers[headerNames.total] || TENANT_LIST_DEFAULT.perPage;
4574
- return [tenantList.data, totalCount];
4652
+ return [tenantList.data, Number(totalCount)];
4575
4653
  });
4576
4654
  var getTenants = (0, import_toolkit22.createAsyncThunk)(`${sliceName6}/getTenants`, (_0, _1) => __async(void 0, [_0, _1], function* (_, { dispatch, getState }) {
4577
4655
  const currentState = getTenantsList(getState());
@@ -5742,6 +5820,7 @@ var maybeAddOnboardingTasks = ({ devicesByStatus, dispatch, onboardingState, tas
5742
5820
  };
5743
5821
  var useAppInit = (userId) => {
5744
5822
  const dispatch = (0, import_react_redux.useDispatch)();
5823
+ const [coreInitDone, setCoreInitDone] = (0, import_react3.useState)(false);
5745
5824
  const isEnterprise = (0, import_react_redux.useSelector)(getIsEnterprise);
5746
5825
  const { hasMultitenancy, isHosted } = (0, import_react_redux.useSelector)(getFeatures);
5747
5826
  const devicesByStatus = (0, import_react_redux.useSelector)(getDevicesByStatus);
@@ -5751,12 +5830,27 @@ var useAppInit = (userId) => {
5751
5830
  const { interval, intervalUnit } = (0, import_react_redux.useSelector)(getOfflineThresholdSettings);
5752
5831
  const { id_attribute } = (0, import_react_redux.useSelector)(getGlobalSettings);
5753
5832
  const { identityAttributes } = (0, import_react_redux.useSelector)(getSortedFilteringAttributes);
5754
- const initRunning = (0, import_react3.useRef)(false);
5755
- const retrieveAppData = (0, import_react3.useCallback)(() => {
5833
+ const isServiceProvider = (0, import_react_redux.useSelector)(getIsServiceProvider);
5834
+ const coreInitRunning = (0, import_react3.useRef)(false);
5835
+ const fullInitRunning = (0, import_react3.useRef)(false);
5836
+ const retrieveCoreData = (0, import_react3.useCallback)(() => {
5756
5837
  let tasks = [
5757
5838
  dispatch(parseEnvironmentInfo()),
5758
5839
  dispatch(getUserSettings2()),
5759
5840
  dispatch(getGlobalSettings2()),
5841
+ dispatch(setFirstLoginAfterSignup2(stringToBoolean(cookies6.get("firstLoginAfterSignup"))))
5842
+ ];
5843
+ const multitenancy = hasMultitenancy || isHosted || isEnterprise;
5844
+ if (multitenancy) {
5845
+ tasks.push(dispatch(getUserOrganization()));
5846
+ }
5847
+ return Promise.all(tasks);
5848
+ }, [dispatch, hasMultitenancy, isHosted, isEnterprise]);
5849
+ const retrieveAppData = (0, import_react3.useCallback)(() => {
5850
+ if (isServiceProvider) {
5851
+ return Promise.resolve(dispatch(getRoles()));
5852
+ }
5853
+ return Promise.all([
5760
5854
  dispatch(getDeviceAttributes()),
5761
5855
  dispatch(getDeploymentsByStatus2({ status: DEPLOYMENT_STATES.finished, shouldSelect: false })),
5762
5856
  dispatch(getDeploymentsByStatus2({ status: DEPLOYMENT_STATES.inprogress })),
@@ -5769,15 +5863,9 @@ var useAppInit = (userId) => {
5769
5863
  dispatch(getIntegrations()),
5770
5864
  dispatch(getReleases()),
5771
5865
  dispatch(getDeviceLimit2()),
5772
- dispatch(getRoles()),
5773
- dispatch(setFirstLoginAfterSignup2(stringToBoolean(cookies6.get("firstLoginAfterSignup"))))
5774
- ];
5775
- const multitenancy = hasMultitenancy || isHosted || isEnterprise;
5776
- if (multitenancy) {
5777
- tasks.push(dispatch(getUserOrganization()));
5778
- }
5779
- return Promise.all(tasks);
5780
- }, [dispatch, hasMultitenancy, isHosted, isEnterprise]);
5866
+ dispatch(getRoles())
5867
+ ]);
5868
+ }, [dispatch, isServiceProvider]);
5781
5869
  const interpretAppData = (0, import_react3.useCallback)(() => {
5782
5870
  let settings = {};
5783
5871
  if (cookies6.get("_ga") && typeof hasTrackingEnabled === "undefined") {
@@ -5829,12 +5917,20 @@ var useAppInit = (userId) => {
5829
5917
  [dispatch, retrieveAppData, interpretAppData]
5830
5918
  );
5831
5919
  (0, import_react3.useEffect)(() => {
5832
- if (!userId || initRunning.current) {
5920
+ if (!userId || coreInitRunning.current) {
5921
+ return;
5922
+ }
5923
+ coreInitRunning.current = true;
5924
+ retrieveCoreData().then(() => setCoreInitDone(true));
5925
+ }, [userId, retrieveCoreData]);
5926
+ (0, import_react3.useEffect)(() => {
5927
+ if (fullInitRunning.current || !coreInitDone) {
5833
5928
  return;
5834
5929
  }
5835
- initRunning.current = true;
5930
+ fullInitRunning.current = true;
5836
5931
  initializeAppData();
5837
- }, [userId, initializeAppData]);
5932
+ }, [initializeAppData, coreInitDone]);
5933
+ return { coreInitDone };
5838
5934
  };
5839
5935
  // Annotate the CommonJS export names for ESM import in node:
5840
5936
  0 && (module.exports = {