ydb-embedded-ui 21.0.0 → 22.0.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 (272) hide show
  1. package/dist/components/ComponentsProvider/ComponentsProvider.d.ts +0 -4
  2. package/dist/components/ComponentsProvider/componentsRegistry.d.ts +0 -2
  3. package/dist/components/ComponentsProvider/componentsRegistry.js +1 -3
  4. package/dist/components/ComponentsProvider/componentsRegistry.js.map +1 -1
  5. package/dist/components/ContentWithPopup/ContentWithPopup.d.ts +1 -1
  6. package/dist/components/ContentWithPopup/ContentWithPopup.js +4 -2
  7. package/dist/components/ContentWithPopup/ContentWithPopup.js.map +1 -1
  8. package/dist/components/CriticalActionDialog/CriticalActionDialog.js +10 -6
  9. package/dist/components/CriticalActionDialog/CriticalActionDialog.js.map +1 -1
  10. package/dist/components/CriticalActionDialog/i18n/en.json +1 -2
  11. package/dist/components/CriticalActionDialog/i18n/index.d.ts +1 -1
  12. package/dist/components/DropdownMenu/DropdownMenu.d.ts +2 -1
  13. package/dist/components/DropdownMenu/DropdownMenu.js +1 -1
  14. package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -1
  15. package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
  16. package/dist/components/HoverPopup/HoverPopup.js +27 -4
  17. package/dist/components/HoverPopup/HoverPopup.js.map +1 -1
  18. package/dist/components/HoverPopup/getPopupScrollContainer.d.ts +1 -0
  19. package/dist/components/HoverPopup/getPopupScrollContainer.js +20 -0
  20. package/dist/components/HoverPopup/getPopupScrollContainer.js.map +1 -0
  21. package/dist/components/MetricChart/reducer.d.ts +2 -2
  22. package/dist/components/SegmentedProgress/SegmentedProgress.d.ts +22 -1
  23. package/dist/components/SegmentedProgress/SegmentedProgress.js +44 -3
  24. package/dist/components/SegmentedProgress/SegmentedProgress.js.map +1 -1
  25. package/dist/components/SegmentedProgress/SegmentedProgress.scss +5 -0
  26. package/dist/components/StorageGroupInfo/StorageGroupInfo.js +1 -13
  27. package/dist/components/StorageGroupInfo/StorageGroupInfo.js.map +1 -1
  28. package/dist/components/StorageGroupInfo/i18n/en.json +0 -1
  29. package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
  30. package/dist/components/nodesColumns/i18n/index.d.ts +1 -1
  31. package/dist/containers/App/App.js +3 -3
  32. package/dist/containers/App/App.js.map +1 -1
  33. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js +8 -5
  34. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js.map +1 -1
  35. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.scss +8 -0
  36. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.d.ts +4 -3
  37. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.js +62 -25
  38. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.js.map +1 -1
  39. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.scss +18 -0
  40. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/utils.d.ts +22 -0
  41. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/utils.js +49 -0
  42. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/utils.js.map +1 -0
  43. package/dist/containers/Cluster/i18n/en.json +13 -4
  44. package/dist/containers/Cluster/i18n/index.d.ts +1 -1
  45. package/dist/containers/Header/HeaderActionsMenu.js +19 -3
  46. package/dist/containers/Header/HeaderActionsMenu.js.map +1 -1
  47. package/dist/containers/Header/hooks/useSharedDatabasePath.d.ts +4 -1
  48. package/dist/containers/Header/hooks/useSharedDatabasePath.js +14 -10
  49. package/dist/containers/Header/hooks/useSharedDatabasePath.js.map +1 -1
  50. package/dist/containers/Header/i18n/en.json +1 -0
  51. package/dist/containers/Header/i18n/index.d.ts +1 -1
  52. package/dist/containers/Node/Node.js +20 -17
  53. package/dist/containers/Node/Node.js.map +1 -1
  54. package/dist/containers/Node/NodePages.d.ts +3 -9
  55. package/dist/containers/Node/NodePages.js +2 -10
  56. package/dist/containers/Node/NodePages.js.map +1 -1
  57. package/dist/containers/Node/i18n/en.json +0 -3
  58. package/dist/containers/Node/i18n/index.d.ts +1 -1
  59. package/dist/containers/Nodes/NodesTable.js +2 -2
  60. package/dist/containers/Nodes/NodesTable.js.map +1 -1
  61. package/dist/containers/Operations/columns.js +2 -2
  62. package/dist/containers/Operations/columns.js.map +1 -1
  63. package/dist/containers/Operations/i18n/en.json +2 -2
  64. package/dist/containers/PDiskPage/DecommissionButton/DecommissionButton.js +1 -1
  65. package/dist/containers/PDiskPage/DecommissionButton/DecommissionButton.js.map +1 -1
  66. package/dist/containers/PDiskPage/PDiskPage.js +1 -1
  67. package/dist/containers/PDiskPage/PDiskPage.js.map +1 -1
  68. package/dist/containers/PDiskPage/i18n/en.json +3 -3
  69. package/dist/containers/Storage/PDisks/PDisks.js +1 -1
  70. package/dist/containers/Storage/PDisks/PDisks.js.map +1 -1
  71. package/dist/containers/Storage/PaginatedStorageGroups/GroupedStorageGroupsComponent.js +0 -1
  72. package/dist/containers/Storage/PaginatedStorageGroups/GroupedStorageGroupsComponent.js.map +1 -1
  73. package/dist/containers/Storage/PaginatedStorageGroupsTable/PaginatedStorageGroupsTable.js +2 -3
  74. package/dist/containers/Storage/PaginatedStorageGroupsTable/PaginatedStorageGroupsTable.js.map +1 -1
  75. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.d.ts +2 -2
  76. package/dist/containers/Storage/PaginatedStorageGroupsTable/getGroups.d.ts +1 -1
  77. package/dist/containers/Storage/PaginatedStorageGroupsTable/getGroups.js +2 -3
  78. package/dist/containers/Storage/PaginatedStorageGroupsTable/getGroups.js.map +1 -1
  79. package/dist/containers/StorageGroupPage/StorageGroupPage.js +2 -3
  80. package/dist/containers/StorageGroupPage/StorageGroupPage.js.map +1 -1
  81. package/dist/containers/Tablet/components/TabletControls/TabletControls.js +1 -1
  82. package/dist/containers/Tablet/components/TabletControls/TabletControls.js.map +1 -1
  83. package/dist/containers/Tablet/i18n/en.json +3 -3
  84. package/dist/containers/Tablets/TabletsTable.js +1 -1
  85. package/dist/containers/Tablets/TabletsTable.js.map +1 -1
  86. package/dist/containers/Tablets/i18n/en.json +1 -1
  87. package/dist/containers/Tenant/Diagnostics/Partitions/utils/constants.d.ts +2 -2
  88. package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.js +3 -1
  89. package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.js.map +1 -1
  90. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +2 -2
  91. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  92. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js +1 -3
  93. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js.map +1 -1
  94. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/useTenantStorageNewData.d.ts +5 -5
  95. package/dist/containers/Tenant/Diagnostics/useDiagnosticsPages.js +2 -4
  96. package/dist/containers/Tenant/Diagnostics/useDiagnosticsPages.js.map +1 -1
  97. package/dist/containers/Tenant/Healthcheck/components/HealthcheckDrawer.js +10 -2
  98. package/dist/containers/Tenant/Healthcheck/components/HealthcheckDrawer.js.map +1 -1
  99. package/dist/routes.d.ts +1 -0
  100. package/dist/routes.js.map +1 -1
  101. package/dist/services/api/viewer.d.ts +1 -2
  102. package/dist/services/api/viewer.js +0 -11
  103. package/dist/services/api/viewer.js.map +1 -1
  104. package/dist/store/configureStore.d.ts +12 -12
  105. package/dist/store/defaultStore.d.ts +6 -6
  106. package/dist/store/reducers/api.d.ts +1 -1
  107. package/dist/store/reducers/api.js +3 -0
  108. package/dist/store/reducers/api.js.map +1 -1
  109. package/dist/store/reducers/authentication/authentication.d.ts +4 -4
  110. package/dist/store/reducers/cancelQuery.d.ts +2 -2
  111. package/dist/store/reducers/capabilities/capabilities.d.ts +43 -43
  112. package/dist/store/reducers/capabilities/hooks.d.ts +5 -6
  113. package/dist/store/reducers/capabilities/hooks.js +0 -3
  114. package/dist/store/reducers/capabilities/hooks.js.map +1 -1
  115. package/dist/store/reducers/cluster/cluster.d.ts +5 -5
  116. package/dist/store/reducers/cluster/cluster.js +3 -2
  117. package/dist/store/reducers/cluster/cluster.js.map +1 -1
  118. package/dist/store/reducers/clusters/clusters.d.ts +2 -2
  119. package/dist/store/reducers/clusters/clusters.js +2 -1
  120. package/dist/store/reducers/clusters/clusters.js.map +1 -1
  121. package/dist/store/reducers/codeAssist/codeAssist.d.ts +6 -6
  122. package/dist/store/reducers/configs.d.ts +3 -3
  123. package/dist/store/reducers/entityDataTags.d.ts +21 -0
  124. package/dist/store/reducers/entityDataTags.js +24 -0
  125. package/dist/store/reducers/entityDataTags.js.map +1 -0
  126. package/dist/store/reducers/environments/environments.d.ts +2 -2
  127. package/dist/store/reducers/executeTopQueries/executeTopQueries.d.ts +4 -4
  128. package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +111 -111
  129. package/dist/store/reducers/heatmap.d.ts +2 -2
  130. package/dist/store/reducers/hotKeys/hotKeys.d.ts +2 -2
  131. package/dist/store/reducers/index.d.ts +8 -8
  132. package/dist/store/reducers/network/network.d.ts +2 -2
  133. package/dist/store/reducers/node/node.d.ts +2 -5
  134. package/dist/store/reducers/node/node.js +0 -12
  135. package/dist/store/reducers/node/node.js.map +1 -1
  136. package/dist/store/reducers/node/types.d.ts +0 -14
  137. package/dist/store/reducers/nodes/nodes.d.ts +2 -2
  138. package/dist/store/reducers/nodesList.d.ts +12 -12
  139. package/dist/store/reducers/operations.d.ts +5 -5
  140. package/dist/store/reducers/overview/overview.d.ts +2 -2
  141. package/dist/store/reducers/partitions/partitions.d.ts +3 -3
  142. package/dist/store/reducers/pdisk/pdisk.d.ts +2 -2
  143. package/dist/store/reducers/planToSvg.d.ts +2 -2
  144. package/dist/store/reducers/preview.d.ts +2 -2
  145. package/dist/store/reducers/query/api.d.ts +4 -4
  146. package/dist/store/reducers/replication.d.ts +2 -2
  147. package/dist/store/reducers/schema/schema.d.ts +16 -16
  148. package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +40 -40
  149. package/dist/store/reducers/settings/api.d.ts +4 -4
  150. package/dist/store/reducers/settings/settings.d.ts +1 -1
  151. package/dist/store/reducers/shardsWorkload/shardsWorkload.d.ts +2 -2
  152. package/dist/store/reducers/showCreateTable/showCreateTable.d.ts +2 -2
  153. package/dist/store/reducers/storage/requestStorageData.d.ts +2 -4
  154. package/dist/store/reducers/storage/requestStorageData.js +4 -10
  155. package/dist/store/reducers/storage/requestStorageData.js.map +1 -1
  156. package/dist/store/reducers/storage/storage.d.ts +4 -6
  157. package/dist/store/reducers/storage/storage.js.map +1 -1
  158. package/dist/store/reducers/storage/types.d.ts +0 -9
  159. package/dist/store/reducers/storage/utils.d.ts +1 -2
  160. package/dist/store/reducers/storage/utils.js +3 -114
  161. package/dist/store/reducers/storage/utils.js.map +1 -1
  162. package/dist/store/reducers/storageUsage/StorageUsage.d.ts +2 -2
  163. package/dist/store/reducers/streamingQuery/streamingQuery.d.ts +2 -2
  164. package/dist/store/reducers/table/table.d.ts +4 -4
  165. package/dist/store/reducers/tableData.d.ts +1 -1
  166. package/dist/store/reducers/tablePartitioning/tablePartitioning.d.ts +2 -2
  167. package/dist/store/reducers/tableSchemaData.d.ts +2 -2
  168. package/dist/store/reducers/tablet.d.ts +8 -8
  169. package/dist/store/reducers/tablets.d.ts +3 -3
  170. package/dist/store/reducers/tenant/tenant.d.ts +2 -2
  171. package/dist/store/reducers/tenant/tenant.js +14 -1
  172. package/dist/store/reducers/tenant/tenant.js.map +1 -1
  173. package/dist/store/reducers/tenantOverview/executeTopTables/executeTopTables.d.ts +2 -2
  174. package/dist/store/reducers/tenantOverview/storage/tenantOverviewStorage.d.ts +2 -2
  175. package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.d.ts +2 -2
  176. package/dist/store/reducers/tenants/tenants.d.ts +3 -3
  177. package/dist/store/reducers/tenants/tenants.js +2 -1
  178. package/dist/store/reducers/tenants/tenants.js.map +1 -1
  179. package/dist/store/reducers/topic/topic.d.ts +84 -84
  180. package/dist/store/reducers/vdisk/vdisk.d.ts +3 -3
  181. package/dist/store/reducers/viewSchema/viewSchema.d.ts +2 -2
  182. package/dist/store/state-url-mapping.js +5 -1
  183. package/dist/store/state-url-mapping.js.map +1 -1
  184. package/dist/types/api/storage.d.ts +2 -111
  185. package/dist/types/api/storage.js.map +1 -1
  186. package/dist/uiFactory/types.d.ts +8 -0
  187. package/dist/uiFactory/uiFactory.js +5 -2
  188. package/dist/uiFactory/uiFactory.js.map +1 -1
  189. package/dist/utils/hooks/useWhoami.d.ts +5 -5
  190. package/package.json +2 -2
  191. package/src/components/ComponentsProvider/componentsRegistry.ts +1 -4
  192. package/src/components/ContentWithPopup/ContentWithPopup.tsx +7 -0
  193. package/src/components/CriticalActionDialog/CriticalActionDialog.tsx +12 -25
  194. package/src/components/CriticalActionDialog/i18n/en.json +1 -2
  195. package/src/components/DropdownMenu/DropdownMenu.tsx +3 -2
  196. package/src/components/HoverPopup/HoverPopup.tsx +32 -3
  197. package/src/components/HoverPopup/getPopupScrollContainer.ts +20 -0
  198. package/src/components/SegmentedProgress/SegmentedProgress.scss +5 -0
  199. package/src/components/SegmentedProgress/SegmentedProgress.tsx +99 -10
  200. package/src/components/StorageGroupInfo/StorageGroupInfo.tsx +0 -13
  201. package/src/components/StorageGroupInfo/i18n/en.json +0 -1
  202. package/src/containers/App/App.tsx +3 -3
  203. package/src/containers/Cluster/ClusterInfo/ClusterInfo.scss +8 -0
  204. package/src/containers/Cluster/ClusterInfo/ClusterInfo.tsx +12 -11
  205. package/src/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.scss +18 -0
  206. package/src/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.tsx +143 -58
  207. package/src/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/utils.ts +89 -0
  208. package/src/containers/Cluster/i18n/en.json +13 -4
  209. package/src/containers/Header/HeaderActionsMenu.tsx +22 -2
  210. package/src/containers/Header/hooks/useSharedDatabasePath.ts +33 -26
  211. package/src/containers/Header/i18n/en.json +1 -0
  212. package/src/containers/Node/Node.tsx +32 -18
  213. package/src/containers/Node/NodePages.ts +5 -10
  214. package/src/containers/Node/i18n/en.json +0 -4
  215. package/src/containers/Nodes/NodesTable.tsx +7 -1
  216. package/src/containers/Operations/columns.tsx +4 -0
  217. package/src/containers/Operations/i18n/en.json +2 -2
  218. package/src/containers/PDiskPage/DecommissionButton/DecommissionButton.tsx +2 -0
  219. package/src/containers/PDiskPage/PDiskPage.tsx +3 -1
  220. package/src/containers/PDiskPage/i18n/en.json +3 -3
  221. package/src/containers/Storage/PDisks/PDisks.tsx +1 -1
  222. package/src/containers/Storage/PaginatedStorageGroups/GroupedStorageGroupsComponent.tsx +0 -1
  223. package/src/containers/Storage/PaginatedStorageGroupsTable/PaginatedStorageGroupsTable.tsx +2 -6
  224. package/src/containers/Storage/PaginatedStorageGroupsTable/columns/constants.ts +2 -2
  225. package/src/containers/Storage/PaginatedStorageGroupsTable/getGroups.ts +40 -47
  226. package/src/containers/StorageGroupPage/StorageGroupPage.tsx +2 -6
  227. package/src/containers/Tablet/components/TabletControls/TabletControls.tsx +7 -1
  228. package/src/containers/Tablet/i18n/en.json +3 -3
  229. package/src/containers/Tablets/TabletsTable.tsx +3 -1
  230. package/src/containers/Tablets/i18n/en.json +1 -1
  231. package/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.tsx +3 -1
  232. package/src/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.tsx +2 -2
  233. package/src/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.tsx +1 -6
  234. package/src/containers/Tenant/Diagnostics/useDiagnosticsPages.ts +1 -4
  235. package/src/containers/Tenant/Healthcheck/components/HealthcheckDrawer.tsx +16 -1
  236. package/src/routes.ts +1 -1
  237. package/src/services/api/viewer.ts +1 -25
  238. package/src/store/reducers/api.ts +4 -0
  239. package/src/store/reducers/capabilities/hooks.ts +0 -4
  240. package/src/store/reducers/cluster/cluster.ts +3 -2
  241. package/src/store/reducers/clusters/clusters.ts +2 -1
  242. package/src/store/reducers/entityDataTags.ts +34 -0
  243. package/src/store/reducers/node/node.ts +0 -11
  244. package/src/store/reducers/node/types.ts +0 -18
  245. package/src/store/reducers/storage/requestStorageData.ts +5 -17
  246. package/src/store/reducers/storage/storage.ts +2 -6
  247. package/src/store/reducers/storage/types.ts +0 -9
  248. package/src/store/reducers/storage/utils.ts +5 -178
  249. package/src/store/reducers/tenant/tenant.ts +17 -1
  250. package/src/store/reducers/tenants/tenants.ts +2 -1
  251. package/src/store/state-url-mapping.ts +5 -1
  252. package/src/types/api/storage.ts +7 -131
  253. package/src/uiFactory/types.ts +9 -0
  254. package/src/uiFactory/uiFactory.ts +12 -2
  255. package/dist/containers/Node/NodeStructure/NodeStructure.d.ts +0 -7
  256. package/dist/containers/Node/NodeStructure/NodeStructure.js +0 -76
  257. package/dist/containers/Node/NodeStructure/NodeStructure.js.map +0 -1
  258. package/dist/containers/Node/NodeStructure/NodeStructure.scss +0 -155
  259. package/dist/containers/Node/NodeStructure/PDiskTitleBadge.d.ts +0 -7
  260. package/dist/containers/Node/NodeStructure/PDiskTitleBadge.js +0 -7
  261. package/dist/containers/Node/NodeStructure/PDiskTitleBadge.js.map +0 -1
  262. package/dist/containers/Node/NodeStructure/Pdisk.d.ts +0 -10
  263. package/dist/containers/Node/NodeStructure/Pdisk.js +0 -125
  264. package/dist/containers/Node/NodeStructure/Pdisk.js.map +0 -1
  265. package/dist/store/reducers/node/selectors.d.ts +0 -47
  266. package/dist/store/reducers/node/selectors.js +0 -43
  267. package/dist/store/reducers/node/selectors.js.map +0 -1
  268. package/src/containers/Node/NodeStructure/NodeStructure.scss +0 -155
  269. package/src/containers/Node/NodeStructure/NodeStructure.tsx +0 -121
  270. package/src/containers/Node/NodeStructure/PDiskTitleBadge.tsx +0 -18
  271. package/src/containers/Node/NodeStructure/Pdisk.tsx +0 -274
  272. package/src/store/reducers/node/selectors.ts +0 -68
@@ -1,5 +1,6 @@
1
1
  import type {TTenantInfo} from '../../../types/api/tenant';
2
2
  import {api} from '../api';
3
+ import {DATABASE_DATA_LIST_TAG} from '../entityDataTags';
3
4
 
4
5
  import type {PreparedTenant, SharedDatabaseTarget} from './types';
5
6
  import {prepareTenants} from './utils';
@@ -47,7 +48,7 @@ export const tenantsApi = api.injectEndpoints({
47
48
  const {clusterName, environmentName} = queryArgs;
48
49
  return {clusterName, environmentName};
49
50
  },
50
- providesTags: ['All'],
51
+ providesTags: ['All', DATABASE_DATA_LIST_TAG],
51
52
  }),
52
53
  getSharedDatabase: build.query<
53
54
  SharedDatabaseTarget | null,
@@ -1,4 +1,5 @@
1
1
  import type {Action, Reducer, UnknownAction} from '@reduxjs/toolkit';
2
+ import {createNextState} from '@reduxjs/toolkit';
2
3
  import type {History, Location} from 'history';
3
4
  import each from 'lodash/each';
4
5
  import keys from 'lodash/keys';
@@ -75,7 +76,10 @@ export const paramSetup = {
75
76
  } as const;
76
77
 
77
78
  function mergeLocationToState<S>(state: S, location: Pick<LocationWithQuery, 'query'>): S {
78
- return merge({}, state, location.query);
79
+ // Preserve cached API data when updating only URL-backed state.
80
+ return createNextState(state, (draft) => {
81
+ merge(draft, location.query);
82
+ });
79
83
  }
80
84
 
81
85
  function restoreUnknownParams(location: Location, prevLocation: Location) {
@@ -3,110 +3,6 @@ import type {ECapacityAlert, EFlag} from './enums';
3
3
  import type {EDecommitStatus, EDriveStatus, EMaintenanceStatus, TPDiskStateInfo} from './pdisk';
4
4
  import type {EVDiskStatus, TVDiskStateInfo} from './vdisk';
5
5
 
6
- /**
7
- * endpoint: /viewer/storage
8
- *
9
- * source: https://github.com/ydb-platform/ydb/blob/main/ydb/core/viewer/protos/viewer.proto
10
- */
11
- export interface TStorageInfo {
12
- Overall?: EFlag;
13
- StoragePools?: TStoragePoolInfo[]; // v1
14
- StorageGroups?: TStorageGroupInfoV2[]; // v2
15
- /** uint64 */
16
- TotalGroups?: string;
17
- /** uint64 */
18
- FoundGroups?: string;
19
- }
20
-
21
- export interface TStoragePoolInfo {
22
- Overall?: EFlag;
23
- Name?: string;
24
- Kind?: string;
25
- Groups?: TStorageGroupInfo[];
26
- /** uint64 */
27
- AcquiredUnits?: string;
28
- AcquiredIOPS?: number;
29
- /** uint64 */
30
- AcquiredThroughput?: string;
31
- /** uint64 */
32
- AcquiredSize?: string;
33
- MaximumIOPS?: number;
34
- /** uint64 */
35
- MaximumThroughput?: string;
36
- /** uint64 */
37
- MaximumSize?: string;
38
- MediaType?: string;
39
- }
40
-
41
- export interface TStorageGroupInfoV2 extends TStorageGroupInfo {
42
- PoolName?: string;
43
- Kind?: string;
44
- MediaType?: string;
45
-
46
- /** uint64 */
47
- Degraded?: string;
48
-
49
- /** uint64 */
50
- Used: string;
51
- /** uint64 */
52
- Limit: string;
53
- /** uint64 */
54
- Read: string;
55
- /** uint64 */
56
- Write: string;
57
-
58
- /** uint64 */
59
- Usage?: string;
60
- }
61
-
62
- export type TStorageGroupInfo = TBSGroupStateInfo &
63
- THiveStorageGroupStats & {
64
- DiskSpace?: EFlag;
65
- };
66
-
67
- interface TBSGroupStateInfo {
68
- GroupID?: number;
69
- ErasureSpecies?: Erasure;
70
- VDisks?: TVDiskStateInfo[];
71
- /** uint64 */
72
- ChangeTime?: string;
73
- NodeId?: number;
74
- GroupGeneration?: number;
75
- Overall?: EFlag;
76
- Latency?: EFlag;
77
- Count?: number;
78
- StoragePoolName?: string;
79
- /** uint64 */
80
- AllocatedSize?: string;
81
- /** uint64 */
82
- AvailableSize?: string;
83
- /** uint64 */
84
- ReadThroughput?: string;
85
- /** uint64 */
86
- WriteThroughput?: string;
87
- Encryption?: boolean;
88
- }
89
-
90
- interface THiveStorageGroupStats {
91
- GroupID?: number;
92
- /** uint64 */
93
- AcquiredUnits?: string;
94
- AcquiredIOPS?: number;
95
- /** uint64 */
96
- AcquiredThroughput?: string;
97
- /** uint64 */
98
- AcquiredSize?: string;
99
- MaximumIOPS?: number;
100
- /** uint64 */
101
- MaximumThroughput?: string;
102
- /** uint64 */
103
- MaximumSize?: string;
104
- /** uint64 */
105
- AllocatedSize?: string;
106
- /** uint64 */
107
- AvailableSize?: string;
108
- }
109
-
110
6
  /**
111
7
  * endpoint: /storage/groups
112
8
  *
@@ -255,12 +151,10 @@ export type Erasure = 'none' | 'block-4-2' | 'mirror-3-dc' | 'mirror-3of4';
255
151
 
256
152
  // ==== Request types ====
257
153
 
258
- export type EVersion = 'v1' | 'v2'; // only v2 versions works with sorting
259
-
260
154
  /**
261
- * Values to sort /viewer/storage v2 response
155
+ * Values to sort /storage/groups response
262
156
  */
263
- export type StorageV2SortValue =
157
+ export type GroupsSortField =
264
158
  | 'PoolName'
265
159
  | 'Kind'
266
160
  | 'MediaType'
@@ -272,10 +166,6 @@ export type StorageV2SortValue =
272
166
  | 'Limit'
273
167
  | 'Read'
274
168
  | 'Write'
275
-
276
- // These fields are not present in storage v2
277
- // So this sort does nothing
278
- // Added them here for types compatibility
279
169
  | 'AllocationUnits'
280
170
  | 'Latency'
281
171
  | 'DiskSpaceUsage'
@@ -284,14 +174,11 @@ export type StorageV2SortValue =
284
174
  | 'MaxVDiskSlotUsage'
285
175
  | 'MaxVDiskRawUsage'
286
176
  | 'MaxNormalizedOccupancy'
287
- | 'CapacityAlert';
288
-
289
- /**
290
- * Values to sort /storage/groups response
291
- */
292
- export type GroupsSortField = StorageV2SortValue | 'MissingDisks' | 'Available' | 'Encryption';
177
+ | 'CapacityAlert'
178
+ | 'MissingDisks'
179
+ | 'Available'
180
+ | 'Encryption';
293
181
 
294
- export type StorageV2Sort = BackendSortParam<StorageV2SortValue>;
295
182
  export type GroupsSort = BackendSortParam<GroupsSortField>;
296
183
 
297
184
  export type StorageWithFilter = 'space' | 'missing' | 'all';
@@ -341,7 +228,7 @@ export type GroupsRequiredField =
341
228
  | 'MaxNormalizedOccupancy'
342
229
  | 'CapacityAlert';
343
230
 
344
- interface BaseStorageRequestParams {
231
+ export interface GroupsRequestParams {
345
232
  database?: string;
346
233
  pool?: string;
347
234
  with?: StorageWithFilter;
@@ -349,18 +236,7 @@ interface BaseStorageRequestParams {
349
236
  filter?: string;
350
237
  offset?: number;
351
238
  limit?: number;
352
- }
353
-
354
- export interface StorageRequestParams extends BaseStorageRequestParams {
355
- nodeId?: string | number;
356
- pDiskId?: string | number;
357
- groupId?: string | number;
358
-
359
- sort?: StorageV2Sort;
360
- version?: EVersion;
361
- }
362
239
 
363
- export interface GroupsRequestParams extends BaseStorageRequestParams {
364
240
  nodeId?: string | number | (string | number)[];
365
241
  pDiskId?: string | number | (string | number)[];
366
242
  groupId?: string | number | (string | number)[];
@@ -51,8 +51,10 @@ export interface UIFactory<H extends string = CommonIssueCategory, T extends str
51
51
  renderEvents?: RenderEvents;
52
52
  renderMonitoring?: RenderMonitoring;
53
53
  renderNodeTooltipActions?: RenderNodeTooltipActions;
54
+ renderChatPanel?: RenderChatPanel;
54
55
  clusterOrDatabaseAccessError?: Partial<EmptyStateProps>;
55
56
 
57
+ /** Defaults to true. Undefined preserves the current value when configuring the UI. */
56
58
  enableMultiTabQueryEditor?: boolean;
57
59
 
58
60
  /** Creates a fresh computation-graph layout worker for each layout run. */
@@ -64,6 +66,11 @@ export interface UIFactory<H extends string = CommonIssueCategory, T extends str
64
66
  getHealthckechViewTitles: GetHealthcheckViewTitles<H>;
65
67
  getHealthcheckViewsOrder: GetHealthcheckViewsOrder<H>;
66
68
  renderAssistantAction?: RenderHealthcheckAssistantAction;
69
+ /**
70
+ * Renders after the drawer header and before Healthcheck content.
71
+ * Stays mounted while the drawer is open, independent of loading, error or issue state.
72
+ */
73
+ renderDrawerExtension?: () => React.ReactNode;
67
74
  };
68
75
  hasAccess: HasAccess;
69
76
  hideGrantAccess?: boolean;
@@ -202,6 +209,8 @@ export type RenderMonitoring = (props: {
202
209
 
203
210
  export type RenderNodeTooltipActions = (props: {data?: PreparedStorageNode}) => React.ReactNode;
204
211
 
212
+ export type RenderChatPanel = () => React.ReactNode;
213
+
205
214
  export type RenderHealthcheckAssistantAction = (
206
215
  props: HealthcheckAssistantActionProps,
207
216
  ) => React.ReactNode;
@@ -30,7 +30,7 @@ const uiFactoryBase: ResolvedUIFactory = {
30
30
  useDatabaseId: false,
31
31
  settingsBackend: undefined,
32
32
  docs: undefined,
33
- enableMultiTabQueryEditor: false,
33
+ enableMultiTabQueryEditor: true,
34
34
  hasDeveloperUi: true,
35
35
  isDetailedStorageViewAvailable: () => true,
36
36
  maxVDisksInStorageGroup: 9,
@@ -46,10 +46,20 @@ type UIFactoryOverrides<H extends string, T extends string> = Omit<
46
46
  export function configureUIFactory<H extends string, T extends string = string>(
47
47
  overrides: UIFactoryOverrides<H, T>,
48
48
  ) {
49
- const {healthcheck, hasAccess, maxVDisksInStorageGroup, ...restOverrides} = overrides;
49
+ const {
50
+ healthcheck,
51
+ hasAccess,
52
+ maxVDisksInStorageGroup,
53
+ enableMultiTabQueryEditor,
54
+ ...restOverrides
55
+ } = overrides;
50
56
 
51
57
  Object.assign(uiFactoryBase, restOverrides);
52
58
 
59
+ if (typeof enableMultiTabQueryEditor === 'boolean') {
60
+ uiFactoryBase.enableMultiTabQueryEditor = enableMultiTabQueryEditor;
61
+ }
62
+
53
63
  // Only override hasAccess when an actual function is provided.
54
64
  // Forwarding an optional config field could pass `undefined` here,
55
65
  // which would overwrite the default and crash on the next hasAccess(...) call.
@@ -1,7 +0,0 @@
1
- import './NodeStructure.scss';
2
- interface NodeStructureProps {
3
- nodeId: string;
4
- className?: string;
5
- }
6
- declare function NodeStructure({ nodeId, className }: NodeStructureProps): import("react/jsx-runtime").JSX.Element;
7
- export default NodeStructure;
@@ -1,76 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
3
- import isEmpty from 'lodash/isEmpty';
4
- import { StringParam, useQueryParams } from 'use-query-params';
5
- import { Loader } from '../.././../components/Loader';
6
- import { ResponseError } from '../../../components/Errors/ResponseError';
7
- import { nodeApi } from '../../../store/reducers/node/node';
8
- import { selectNodeStructure } from '../../../store/reducers/node/selectors';
9
- import { cn } from '../../../utils/cn';
10
- import { useAutoRefreshInterval, useTypedSelector } from '../../../utils/hooks';
11
- import { PDisk } from './Pdisk';
12
- import './NodeStructure.scss';
13
- const b = cn('kv-node-structure');
14
- function generateId({ type, id }) {
15
- return `${type}-${id}`;
16
- }
17
- function NodeStructure({ nodeId, className }) {
18
- const nodeStructure = useTypedSelector((state) => selectNodeStructure(state, nodeId));
19
- const [autoRefreshInterval] = useAutoRefreshInterval();
20
- const { currentData, isFetching, error } = nodeApi.useGetNodeStructureQuery({ nodeId }, { pollingInterval: autoRefreshInterval });
21
- const loadingStructure = isFetching && currentData === undefined;
22
- const [{ pdiskId: pdiskIdFromUrl, vdiskId: vdiskIdFromUrl }] = useQueryParams({
23
- pdiskId: StringParam,
24
- vdiskId: StringParam,
25
- });
26
- const scrollContainerRef = React.useRef(null);
27
- const scrolled = React.useRef(false);
28
- React.useEffect(() => {
29
- var _a;
30
- if (!isEmpty(nodeStructure) &&
31
- !scrolled.current &&
32
- scrollContainerRef.current &&
33
- pdiskIdFromUrl) {
34
- const element = document.getElementById(generateId({ type: 'pdisk', id: pdiskIdFromUrl }));
35
- let scrollToVdisk = 0;
36
- if (vdiskIdFromUrl) {
37
- const vDisks = (_a = nodeStructure[pdiskIdFromUrl]) === null || _a === void 0 ? void 0 : _a.vDisks;
38
- const vDisk = vDisks === null || vDisks === void 0 ? void 0 : vDisks.find((el) => el.id === vdiskIdFromUrl);
39
- const dataTable = vDisk ? document.querySelector('.data-table') : undefined;
40
- const order = (vDisk === null || vDisk === void 0 ? void 0 : vDisk.order) || 0;
41
- if (dataTable) {
42
- scrollToVdisk += dataTable.offsetTop + 40 * order;
43
- }
44
- }
45
- if (element) {
46
- scrollContainerRef.current.scrollTo({
47
- behavior: 'smooth',
48
- // should subtract 20 to avoid sticking the element to tabs
49
- top: scrollToVdisk ? scrollToVdisk : element.offsetTop,
50
- });
51
- scrolled.current = true;
52
- }
53
- }
54
- }, [nodeStructure, pdiskIdFromUrl, vdiskIdFromUrl]);
55
- const renderStub = () => {
56
- return 'There is no information about node structure.';
57
- };
58
- const renderStructure = () => {
59
- const pDisksIds = Object.keys(nodeStructure);
60
- return pDisksIds.length > 0
61
- ? pDisksIds.map((pDiskId) => (_jsx(PDisk, { data: nodeStructure[pDiskId], id: generateId({ type: 'pdisk', id: pDiskId }), unfolded: pdiskIdFromUrl === pDiskId, selectedVdiskId: vdiskIdFromUrl, nodeId: nodeId }, pDiskId)))
62
- : renderStub();
63
- };
64
- const renderContent = () => {
65
- if (loadingStructure) {
66
- return _jsx(Loader, { size: "m" });
67
- }
68
- if (error && !currentData) {
69
- return null;
70
- }
71
- return renderStructure();
72
- };
73
- return (_jsxs("div", { className: b(), ref: scrollContainerRef, children: [error ? _jsx(ResponseError, { error: error, className: b('error') }) : null, _jsx("div", { className: className, children: renderContent() })] }));
74
- }
75
- export default NodeStructure;
76
- //# sourceMappingURL=NodeStructure.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeStructure.js","sourceRoot":"","sources":["../../../../src/containers/Node/NodeStructure/NodeStructure.tsx"],"names":[],"mappings":"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"}
@@ -1,155 +0,0 @@
1
- @use '../../../styles/mixins.scss';
2
-
3
- .kv-node-structure {
4
- position: relative;
5
-
6
- display: flex;
7
- overflow: auto;
8
- flex-direction: column;
9
- flex-shrink: 0;
10
- @include mixins.flex-container();
11
- @include mixins.body-2-typography();
12
-
13
- &__error {
14
- padding: 20px 20px 0;
15
- }
16
-
17
- &__pdisk {
18
- display: flex;
19
- flex-direction: column;
20
-
21
- width: 573px;
22
- margin-bottom: 8px;
23
- padding: 0 10px 0 20px;
24
-
25
- border: 1px solid var(--g-color-line-generic);
26
- border-radius: 5px;
27
- }
28
-
29
- &__pdisk-id {
30
- display: flex;
31
- align-items: flex-end;
32
- }
33
-
34
- &__pdisk-header {
35
- display: flex;
36
- justify-content: space-between;
37
- align-items: center;
38
-
39
- height: 48px;
40
- }
41
-
42
- &__pdisk-title-wrapper {
43
- display: flex;
44
- align-items: center;
45
- gap: 16px;
46
-
47
- font-weight: 600;
48
-
49
- .ydb-status-icon__status-icon {
50
- margin-right: 0;
51
- }
52
- }
53
-
54
- &__pdisk-title-item {
55
- display: flex;
56
- gap: 4px;
57
-
58
- &-label {
59
- font-weight: 400;
60
-
61
- color: var(--g-color-text-secondary);
62
- }
63
- }
64
-
65
- &__pdisk-title-id {
66
- min-width: 110px;
67
- }
68
-
69
- &__pdisk-title-type {
70
- justify-content: flex-end;
71
-
72
- min-width: 50px;
73
- }
74
-
75
- &__pdisk-title-size {
76
- min-width: 150px;
77
- }
78
-
79
- &__pdisk-details {
80
- margin-bottom: 20px;
81
- }
82
-
83
- &__link {
84
- text-decoration: none;
85
-
86
- color: var(--g-color-base-brand);
87
- }
88
-
89
- &__vdisks-header {
90
- font-weight: 600;
91
- }
92
-
93
- &__vdisks-container {
94
- margin-bottom: 42px;
95
- }
96
-
97
- &__vdisk-details {
98
- overflow: auto;
99
-
100
- min-width: 200px;
101
- max-width: unset;
102
- max-height: 90vh;
103
-
104
- .vdisk-pdisk-node__column {
105
- margin-bottom: 0;
106
- }
107
- .vdisk-pdisk-node__section {
108
- padding-bottom: 0;
109
- }
110
- }
111
-
112
- &__vdisk-id {
113
- display: flex;
114
- align-items: center;
115
-
116
- &_selected {
117
- color: var(--g-color-text-info);
118
- }
119
- }
120
-
121
- &__vdisk-details-button {
122
- &_selected {
123
- color: var(--g-color-text-info);
124
- }
125
- }
126
-
127
- &__external-button {
128
- display: inline-flex;
129
- align-items: center;
130
-
131
- margin-left: 4px;
132
-
133
- transform: translateY(-1px);
134
-
135
- &_hidden {
136
- visibility: hidden;
137
- }
138
- }
139
-
140
- .data-table__row:hover {
141
- .kv-node-structure__external-button_hidden {
142
- visibility: visible;
143
- }
144
- }
145
-
146
- &__selected-vdisk {
147
- animation: onSelectedVdiskAnimation 4s;
148
- }
149
- }
150
-
151
- @keyframes onSelectedVdiskAnimation {
152
- 0% {
153
- background-color: var(--g-color-base-info-light-hover);
154
- }
155
- }
@@ -1,7 +0,0 @@
1
- interface PDiskTitleBadgeProps {
2
- label?: string;
3
- value: React.ReactNode;
4
- className?: string;
5
- }
6
- export declare function PDiskTitleBadge({ label, value, className }: PDiskTitleBadgeProps): import("react/jsx-runtime").JSX.Element;
7
- export {};
@@ -1,7 +0,0 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from '../../../utils/cn';
3
- const b = cn('kv-node-structure');
4
- export function PDiskTitleBadge({ label, value, className }) {
5
- return (_jsxs("span", { className: b('pdisk-title-item', className), children: [label && _jsxs("span", { className: b('pdisk-title-item-label'), children: [label, ":"] }), _jsx("span", { className: b('pdisk-title-item-value'), children: value })] }));
6
- }
7
- //# sourceMappingURL=PDiskTitleBadge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PDiskTitleBadge.js","sourceRoot":"","sources":["../../../../src/containers/Node/NodeStructure/PDiskTitleBadge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,mBAAmB,CAAC;AAErC,MAAM,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAQlC,MAAM,UAAU,eAAe,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAuB;IAC3E,OAAO,CACH,gBAAM,SAAS,EAAE,CAAC,CAAC,kBAAkB,EAAE,SAAS,CAAC,aAC5C,KAAK,IAAI,gBAAM,SAAS,EAAE,CAAC,CAAC,wBAAwB,CAAC,aAAG,KAAK,SAAS,EACvE,eAAM,SAAS,EAAE,CAAC,CAAC,wBAAwB,CAAC,YAAG,KAAK,GAAQ,IACzD,CACV,CAAC;AACN,CAAC"}
@@ -1,10 +0,0 @@
1
- import type { PreparedStructurePDisk } from '../../../store/reducers/node/types';
2
- interface PDiskProps {
3
- data: PreparedStructurePDisk;
4
- unfolded?: boolean;
5
- id: string;
6
- selectedVdiskId?: string;
7
- nodeId: string | number;
8
- }
9
- export declare function PDisk({ id, data, selectedVdiskId, nodeId, unfolded: unfoldedFromProps, }: PDiskProps): import("react/jsx-runtime").JSX.Element;
10
- export {};