ydb-embedded-ui 6.37.1 → 7.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (274) hide show
  1. package/dist/components/BasicNodeViewer/BasicNodeViewer.scss +2 -2
  2. package/dist/components/DeveloperUILinkButton/DeveloperUILinkButton.scss +2 -2
  3. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.scss +2 -2
  4. package/dist/components/EmptyState/EmptyState.scss +4 -4
  5. package/dist/components/EntityPageTitle/EntityPageTitle.scss +2 -2
  6. package/dist/components/EntityStatus/EntityStatus.scss +4 -4
  7. package/dist/components/ErrorBoundary/ErrorBoundary.scss +3 -3
  8. package/dist/components/FullNodeViewer/FullNodeViewer.scss +2 -2
  9. package/dist/components/Fullscreen/Fullscreen.js +1 -1
  10. package/dist/components/Fullscreen/Fullscreen.js.map +1 -1
  11. package/dist/components/Fullscreen/Fullscreen.scss +8 -1
  12. package/dist/components/MemoryViewer/MemoryViewer.js +8 -7
  13. package/dist/components/MemoryViewer/MemoryViewer.js.map +1 -1
  14. package/dist/components/MemoryViewer/MemoryViewer.scss +0 -2
  15. package/dist/components/MemoryViewer/utils.d.ts +3 -1
  16. package/dist/components/MemoryViewer/utils.js +15 -13
  17. package/dist/components/MemoryViewer/utils.js.map +1 -1
  18. package/dist/components/MetricChart/getChartData.js +1 -1
  19. package/dist/components/MetricChart/getChartData.js.map +1 -1
  20. package/dist/components/PageMeta/PageMeta.scss +2 -2
  21. package/dist/components/PaginatedTable/PaginatedTable.scss +4 -4
  22. package/dist/components/PoolUsage/PoolUsage.scss +2 -2
  23. package/dist/components/ProgressViewer/ProgressViewer.scss +2 -2
  24. package/dist/components/QueryResultTable/QueryResultTable.js +4 -3
  25. package/dist/components/QueryResultTable/QueryResultTable.js.map +1 -1
  26. package/dist/components/QueryResultTable/QueryResultTable.scss +2 -2
  27. package/dist/components/TableWithControlsLayout/TableWithControlsLayout.scss +4 -4
  28. package/dist/components/User/User.scss +2 -2
  29. package/dist/components/YDBDefinitionList/YDBDefinitionList.scss +3 -3
  30. package/dist/components/nodesColumns/columns.js +1 -0
  31. package/dist/components/nodesColumns/columns.js.map +1 -1
  32. package/dist/components/nodesColumns/i18n/index.d.ts +1 -1
  33. package/dist/containers/App/App.scss +7 -6
  34. package/dist/containers/AsideNavigation/AsideNavigation.js +11 -2
  35. package/dist/containers/AsideNavigation/AsideNavigation.js.map +1 -1
  36. package/dist/containers/Authentication/Authentication.scss +2 -2
  37. package/dist/containers/Cluster/Cluster.scss +4 -4
  38. package/dist/containers/Cluster/ClusterDashboard/ClusterDashboard.scss +2 -2
  39. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.scss +2 -2
  40. package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.scss +2 -2
  41. package/dist/containers/Clusters/constants.d.ts +1 -1
  42. package/dist/containers/Header/Header.scss +0 -2
  43. package/dist/containers/Heatmap/Heatmap.scss +3 -3
  44. package/dist/containers/Node/Node.scss +4 -4
  45. package/dist/containers/Node/NodeStructure/NodeStructure.scss +3 -3
  46. package/dist/containers/Nodes/Nodes.d.ts +2 -1
  47. package/dist/containers/Nodes/Nodes.js +12 -11
  48. package/dist/containers/Nodes/Nodes.js.map +1 -1
  49. package/dist/containers/Nodes/Nodes.scss +2 -2
  50. package/dist/containers/Nodes/NodesControls/NodesControls.d.ts +2 -1
  51. package/dist/containers/Nodes/NodesControls/NodesControls.js +7 -4
  52. package/dist/containers/Nodes/NodesControls/NodesControls.js.map +1 -1
  53. package/dist/containers/Nodes/NodesTable.d.ts +3 -2
  54. package/dist/containers/Nodes/NodesTable.js +12 -2
  55. package/dist/containers/Nodes/NodesTable.js.map +1 -1
  56. package/dist/containers/Nodes/PeerRoleFilter/PeerRoleFilter.d.ts +7 -0
  57. package/dist/containers/Nodes/PeerRoleFilter/PeerRoleFilter.js +9 -0
  58. package/dist/containers/Nodes/PeerRoleFilter/PeerRoleFilter.js.map +1 -0
  59. package/dist/containers/Nodes/PeerRoleFilter/utils.d.ts +4 -0
  60. package/dist/containers/Nodes/PeerRoleFilter/utils.js +20 -0
  61. package/dist/containers/Nodes/PeerRoleFilter/utils.js.map +1 -0
  62. package/dist/containers/Nodes/columns/columns.js +4 -4
  63. package/dist/containers/Nodes/columns/columns.js.map +1 -1
  64. package/dist/containers/Nodes/columns/constants.js +3 -6
  65. package/dist/containers/Nodes/columns/constants.js.map +1 -1
  66. package/dist/containers/Nodes/getNodes.js +3 -2
  67. package/dist/containers/Nodes/getNodes.js.map +1 -1
  68. package/dist/containers/Nodes/i18n/en.json +6 -1
  69. package/dist/containers/Nodes/i18n/index.d.ts +1 -1
  70. package/dist/containers/Nodes/useNodesPageQueryParams.d.ts +3 -1
  71. package/dist/containers/Nodes/useNodesPageQueryParams.js +8 -0
  72. package/dist/containers/Nodes/useNodesPageQueryParams.js.map +1 -1
  73. package/dist/containers/PDiskPage/PDiskPage.js +2 -2
  74. package/dist/containers/PDiskPage/PDiskPage.js.map +1 -1
  75. package/dist/containers/PDiskPage/PDiskPage.scss +2 -2
  76. package/dist/containers/ReduxTooltip/ReduxTooltip.scss +2 -2
  77. package/dist/containers/Storage/Storage.scss +2 -2
  78. package/dist/containers/Storage/StorageGroups/columns/constants.js +0 -5
  79. package/dist/containers/Storage/StorageGroups/columns/constants.js.map +1 -1
  80. package/dist/containers/Storage/StorageNodes/columns/columns.js +6 -6
  81. package/dist/containers/Storage/StorageNodes/columns/columns.js.map +1 -1
  82. package/dist/containers/Storage/StorageNodes/columns/constants.js +2 -3
  83. package/dist/containers/Storage/StorageNodes/columns/constants.js.map +1 -1
  84. package/dist/containers/Storage/StorageNodes/getNodes.js +1 -1
  85. package/dist/containers/Storage/StorageNodes/getNodes.js.map +1 -1
  86. package/dist/containers/StorageGroupPage/StorageGroupPage.scss +2 -2
  87. package/dist/containers/Tablet/Tablet.scss +2 -2
  88. package/dist/containers/Tablet/components/TabletInfo/TabletInfo.scss +2 -2
  89. package/dist/containers/Tablet/components/TabletStorageInfo/TabletStorageInfo.scss +4 -4
  90. package/dist/containers/Tablets/i18n/index.d.ts +1 -1
  91. package/dist/containers/Tenant/Acl/Acl.scss +3 -3
  92. package/dist/containers/Tenant/Diagnostics/Consumers/Consumers.scss +6 -6
  93. package/dist/containers/Tenant/Diagnostics/Consumers/TopicStats/ConsumersTopicStats.scss +2 -2
  94. package/dist/containers/Tenant/Diagnostics/Describe/Describe.scss +2 -2
  95. package/dist/containers/Tenant/Diagnostics/Diagnostics.scss +2 -2
  96. package/dist/containers/Tenant/Diagnostics/HotKeys/HotKeys.scss +0 -2
  97. package/dist/containers/Tenant/Diagnostics/Network/Network.scss +6 -6
  98. package/dist/containers/Tenant/Diagnostics/Network/NetworkWrapper.js +1 -1
  99. package/dist/containers/Tenant/Diagnostics/Network/NetworkWrapper.js.map +1 -1
  100. package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationPaths/AsyncReplicationPaths.scss +2 -2
  101. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/TableInfo.scss +2 -2
  102. package/dist/containers/Tenant/Diagnostics/Overview/TopicStats/TopicStats.scss +2 -2
  103. package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.scss +6 -6
  104. package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/Healthcheck.scss +2 -2
  105. package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/IssuesViewer/IssueTree.scss +2 -2
  106. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricCard/MetricCard.scss +2 -2
  107. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.scss +2 -2
  108. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
  109. package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueries.scss +3 -3
  110. package/dist/containers/Tenant/Diagnostics/TopQueries/getTopQueriesColumns.js +1 -0
  111. package/dist/containers/Tenant/Diagnostics/TopQueries/getTopQueriesColumns.js.map +1 -1
  112. package/dist/containers/Tenant/ObjectGeneral/ObjectGeneral.scss +0 -2
  113. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.scss +3 -3
  114. package/dist/containers/Tenant/Query/CancelQueryButton/CancelQueryButton.scss +2 -2
  115. package/dist/containers/Tenant/Query/Preview/Preview.js +11 -5
  116. package/dist/containers/Tenant/Query/Preview/Preview.js.map +1 -1
  117. package/dist/containers/Tenant/Query/Preview/Preview.scss +4 -3
  118. package/dist/containers/Tenant/Query/QueriesHistory/QueriesHistory.scss +3 -3
  119. package/dist/containers/Tenant/Query/Query.scss +2 -2
  120. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.scss +2 -2
  121. package/dist/containers/Tenant/Query/QueryResult/components/QueryJSONViewer/QueryJSONViewer.scss +2 -2
  122. package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.scss +2 -2
  123. package/dist/containers/Tenant/Query/QueryResult/components/SimplifiedPlan/SimplifiedPlan.scss +4 -4
  124. package/dist/containers/Tenant/Query/SavedQueries/SavedQueries.scss +3 -3
  125. package/dist/containers/Tenant/Query/i18n/en.json +1 -0
  126. package/dist/containers/Tenant/Query/i18n/index.d.ts +1 -1
  127. package/dist/containers/Tenant/Schema/SchemaViewer/SchemaViewer.scss +3 -3
  128. package/dist/containers/Tenant/Tenant.scss +3 -3
  129. package/dist/containers/Tenants/Tenants.scss +2 -2
  130. package/dist/containers/VDiskPage/VDiskPage.js +1 -1
  131. package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
  132. package/dist/containers/VDiskPage/VDiskPage.scss +2 -2
  133. package/dist/containers/Versions/GroupedNodesTree/GroupedNodesTree.d.ts +2 -2
  134. package/dist/containers/Versions/GroupedNodesTree/GroupedNodesTree.js.map +1 -1
  135. package/dist/containers/Versions/GroupedNodesTree/GroupedNodesTree.scss +2 -5
  136. package/dist/containers/Versions/NodesTable/NodesTable.d.ts +2 -2
  137. package/dist/containers/Versions/NodesTable/NodesTable.js +16 -85
  138. package/dist/containers/Versions/NodesTable/NodesTable.js.map +1 -1
  139. package/dist/containers/Versions/Versions.scss +0 -2
  140. package/dist/containers/Versions/groupNodes.d.ts +4 -4
  141. package/dist/containers/Versions/groupNodes.js.map +1 -1
  142. package/dist/containers/Versions/types.d.ts +2 -2
  143. package/dist/lib.d.ts +1 -1
  144. package/dist/lib.js +1 -1
  145. package/dist/lib.js.map +1 -1
  146. package/dist/services/api/auth.d.ts +8 -0
  147. package/dist/services/api/auth.js +10 -0
  148. package/dist/services/api/auth.js.map +1 -0
  149. package/dist/services/api/base.d.ts +13 -0
  150. package/dist/services/api/base.js +57 -0
  151. package/dist/services/api/base.js.map +1 -0
  152. package/dist/services/api/index.d.ts +31 -0
  153. package/dist/services/api/index.js +32 -0
  154. package/dist/services/api/index.js.map +1 -0
  155. package/dist/services/api/meta.d.ts +12 -0
  156. package/dist/services/api/meta.js +30 -0
  157. package/dist/services/api/meta.js.map +1 -0
  158. package/dist/services/api/operation.d.ts +8 -0
  159. package/dist/services/api/operation.js +22 -0
  160. package/dist/services/api/operation.js.map +1 -0
  161. package/dist/services/api/pdisk.d.ts +25 -0
  162. package/dist/services/api/pdisk.js +43 -0
  163. package/dist/services/api/pdisk.js.map +1 -0
  164. package/dist/services/api/scheme.d.ts +11 -0
  165. package/dist/services/api/scheme.js +12 -0
  166. package/dist/services/api/scheme.js.map +1 -0
  167. package/dist/services/api/storage.d.ts +6 -0
  168. package/dist/services/api/storage.js +28 -0
  169. package/dist/services/api/storage.js.map +1 -0
  170. package/dist/services/api/tablets.d.ts +21 -0
  171. package/dist/services/api/tablets.js +44 -0
  172. package/dist/services/api/tablets.js.map +1 -0
  173. package/dist/services/api/trace.d.ts +7 -0
  174. package/dist/services/api/trace.js +33 -0
  175. package/dist/services/api/trace.js.map +1 -0
  176. package/dist/services/api/vdisk.d.ts +12 -0
  177. package/dist/services/api/vdisk.js +16 -0
  178. package/dist/services/api/vdisk.js.map +1 -0
  179. package/dist/services/api/viewer.d.ts +129 -0
  180. package/dist/services/api/viewer.js +251 -0
  181. package/dist/services/api/viewer.js.map +1 -0
  182. package/dist/store/reducers/authentication/authentication.js +3 -3
  183. package/dist/store/reducers/authentication/authentication.js.map +1 -1
  184. package/dist/store/reducers/cancelQuery.js +1 -1
  185. package/dist/store/reducers/cancelQuery.js.map +1 -1
  186. package/dist/store/reducers/capabilities/capabilities.js +1 -1
  187. package/dist/store/reducers/capabilities/capabilities.js.map +1 -1
  188. package/dist/store/reducers/capabilities/hooks.js +1 -1
  189. package/dist/store/reducers/cluster/cluster.js +8 -3
  190. package/dist/store/reducers/cluster/cluster.js.map +1 -1
  191. package/dist/store/reducers/clusters/clusters.js +7 -2
  192. package/dist/store/reducers/clusters/clusters.js.map +1 -1
  193. package/dist/store/reducers/executeTopQueries/executeTopQueries.js +2 -2
  194. package/dist/store/reducers/executeTopQueries/executeTopQueries.js.map +1 -1
  195. package/dist/store/reducers/healthcheckInfo/healthcheckInfo.js +1 -1
  196. package/dist/store/reducers/healthcheckInfo/healthcheckInfo.js.map +1 -1
  197. package/dist/store/reducers/heatmap.js +2 -2
  198. package/dist/store/reducers/heatmap.js.map +1 -1
  199. package/dist/store/reducers/hotKeys/hotKeys.js +2 -2
  200. package/dist/store/reducers/hotKeys/hotKeys.js.map +1 -1
  201. package/dist/store/reducers/network/network.js +1 -1
  202. package/dist/store/reducers/network/network.js.map +1 -1
  203. package/dist/store/reducers/node/node.js +2 -2
  204. package/dist/store/reducers/node/node.js.map +1 -1
  205. package/dist/store/reducers/nodes/nodes.js +1 -1
  206. package/dist/store/reducers/nodes/nodes.js.map +1 -1
  207. package/dist/store/reducers/nodes/types.d.ts +2 -1
  208. package/dist/store/reducers/nodesList.js +1 -1
  209. package/dist/store/reducers/nodesList.js.map +1 -1
  210. package/dist/store/reducers/operations.js +3 -3
  211. package/dist/store/reducers/operations.js.map +1 -1
  212. package/dist/store/reducers/overview/overview.js +2 -2
  213. package/dist/store/reducers/overview/overview.js.map +1 -1
  214. package/dist/store/reducers/partitions/partitions.js +2 -2
  215. package/dist/store/reducers/partitions/partitions.js.map +1 -1
  216. package/dist/store/reducers/pdisk/pdisk.js +3 -3
  217. package/dist/store/reducers/pdisk/pdisk.js.map +1 -1
  218. package/dist/store/reducers/planToSvg.js +1 -1
  219. package/dist/store/reducers/planToSvg.js.map +1 -1
  220. package/dist/store/reducers/preview.d.ts +1 -0
  221. package/dist/store/reducers/preview.js +2 -2
  222. package/dist/store/reducers/preview.js.map +1 -1
  223. package/dist/store/reducers/query/query.js +1 -1
  224. package/dist/store/reducers/query/query.js.map +1 -1
  225. package/dist/store/reducers/schema/schema.js +2 -2
  226. package/dist/store/reducers/schema/schema.js.map +1 -1
  227. package/dist/store/reducers/schemaAcl/schemaAcl.js +1 -1
  228. package/dist/store/reducers/schemaAcl/schemaAcl.js.map +1 -1
  229. package/dist/store/reducers/shardsWorkload/shardsWorkload.js +1 -1
  230. package/dist/store/reducers/shardsWorkload/shardsWorkload.js.map +1 -1
  231. package/dist/store/reducers/storage/requestStorageData.d.ts +1 -1
  232. package/dist/store/reducers/storage/requestStorageData.js +2 -2
  233. package/dist/store/reducers/storage/requestStorageData.js.map +1 -1
  234. package/dist/store/reducers/storage/storage.js +1 -1
  235. package/dist/store/reducers/storage/storage.js.map +1 -1
  236. package/dist/store/reducers/tablet.js +10 -8
  237. package/dist/store/reducers/tablet.js.map +1 -1
  238. package/dist/store/reducers/tablets.js +1 -1
  239. package/dist/store/reducers/tablets.js.map +1 -1
  240. package/dist/store/reducers/tenant/tenant.js +2 -2
  241. package/dist/store/reducers/tenant/tenant.js.map +1 -1
  242. package/dist/store/reducers/tenantOverview/executeTopTables/executeTopTables.js +1 -1
  243. package/dist/store/reducers/tenantOverview/executeTopTables/executeTopTables.js.map +1 -1
  244. package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.js +1 -1
  245. package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.js.map +1 -1
  246. package/dist/store/reducers/tenants/tenants.js +3 -1
  247. package/dist/store/reducers/tenants/tenants.js.map +1 -1
  248. package/dist/store/reducers/tooltip.d.ts +1 -1
  249. package/dist/store/reducers/topic.js +1 -1
  250. package/dist/store/reducers/topic.js.map +1 -1
  251. package/dist/store/reducers/trace.js +1 -1
  252. package/dist/store/reducers/trace.js.map +1 -1
  253. package/dist/store/reducers/vdisk/vdisk.js +3 -3
  254. package/dist/store/reducers/vdisk/vdisk.js.map +1 -1
  255. package/dist/store/reducers/viewSchema/viewSchema.js +1 -1
  256. package/dist/store/reducers/viewSchema/viewSchema.js.map +1 -1
  257. package/dist/styles/mixins.scss +2 -1
  258. package/dist/styles/themes.scss +8 -8
  259. package/dist/types/api/nodes.d.ts +4 -1
  260. package/dist/types/api/nodes.js.map +1 -1
  261. package/dist/utils/hooks/useLastQueryExecutionSettings.d.ts +2 -2
  262. package/dist/utils/hooks/useQueryExecutionSettings.d.ts +1 -1
  263. package/dist/utils/monaco/yql/generateSuggestions.js +6 -2
  264. package/dist/utils/monaco/yql/generateSuggestions.js.map +1 -1
  265. package/dist/utils/query.d.ts +3 -3
  266. package/dist/utils/query.js +2 -2
  267. package/dist/utils/query.js.map +1 -1
  268. package/dist/utils/versions/getVersionsColors.d.ts +1 -1
  269. package/dist/utils/versions/getVersionsColors.js +3 -2
  270. package/dist/utils/versions/getVersionsColors.js.map +1 -1
  271. package/package.json +2 -2
  272. package/dist/services/api.d.ts +0 -219
  273. package/dist/services/api.js +0 -522
  274. package/dist/services/api.js.map +0 -1
@@ -1,522 +0,0 @@
1
- import AxiosWrapper from '@gravity-ui/axios-wrapper';
2
- import axiosRetry from 'axios-retry';
3
- import { backend as BACKEND, metaBackend as META_BACKEND } from '../store';
4
- import { BINARY_DATA_IN_PLAIN_TEXT_DISPLAY, DEV_ENABLE_TRACING_FOR_ALL_REQUESTS, SECOND_IN_MS, } from '../utils/constants';
5
- import { createPDiskDeveloperUILink } from '../utils/developerUI/developerUI';
6
- import { isAxiosError } from '../utils/response';
7
- import { parseMetaCluster } from './parsers/parseMetaCluster';
8
- import { parseMetaTenants } from './parsers/parseMetaTenants';
9
- import { settingsManager } from './settings';
10
- const TRACE_RETRY_DELAY = 4 * SECOND_IN_MS;
11
- const TRACE_CHECK_TIMEOUT = 10 * SECOND_IN_MS;
12
- const TRACE_API_ERROR_RETRY_DELAY = 10 * SECOND_IN_MS;
13
- const MAX_TRACE_CHECK_RETRIES = 30;
14
- export class YdbEmbeddedAPI extends AxiosWrapper {
15
- constructor(options) {
16
- super(options);
17
- this.DEFAULT_RETRIES_COUNT = 3;
18
- axiosRetry(this._axios, {
19
- retries: this.DEFAULT_RETRIES_COUNT,
20
- retryDelay: axiosRetry.exponentialDelay,
21
- });
22
- // Make possible manually enable tracing for all requests
23
- // For development purposes
24
- this._axios.interceptors.request.use(function (config) {
25
- const enableTracing = settingsManager.readUserSettingsValue(DEV_ENABLE_TRACING_FOR_ALL_REQUESTS);
26
- if (enableTracing) {
27
- config.headers['X-Want-Trace'] = 1;
28
- }
29
- return config;
30
- });
31
- // Add traceId to response if it exists
32
- this._axios.interceptors.response.use(function (response) {
33
- if (response.data &&
34
- response.data instanceof Object &&
35
- !Array.isArray(response.data) &&
36
- response.headers['traceresponse']) {
37
- const traceId = response.headers['traceresponse'].split('-')[1];
38
- response.data = {
39
- ...response.data,
40
- _meta: { ...response.data._meta, traceId },
41
- };
42
- }
43
- return response;
44
- });
45
- // Interceptor to process OIDC auth
46
- this._axios.interceptors.response.use(null, function (error) {
47
- var _a;
48
- const response = error.response;
49
- // OIDC proxy returns 401 response with authUrl in it
50
- // authUrl - external auth service link, after successful auth additional cookies will be appended
51
- // that will allow access to clusters where OIDC proxy is a balancer
52
- if (response && response.status === 401 && ((_a = response.data) === null || _a === void 0 ? void 0 : _a.authUrl)) {
53
- window.location.assign(response.data.authUrl);
54
- }
55
- return Promise.reject(error);
56
- });
57
- }
58
- getPath(path) {
59
- return `${BACKEND !== null && BACKEND !== void 0 ? BACKEND : ''}${path}`;
60
- }
61
- prepareArrayRequestParam(arr) {
62
- return arr.join(',');
63
- }
64
- getClusterCapabilities({ database }) {
65
- return this.get(this.getPath('/viewer/capabilities'), { database }, {});
66
- }
67
- getClusterInfo(clusterName, { concurrentId, signal } = {}) {
68
- return this.get(this.getPath('/viewer/json/cluster'), {
69
- name: clusterName,
70
- tablets: true,
71
- }, { concurrentId: concurrentId || `getClusterInfo`, requestConfig: { signal } });
72
- }
73
- getClusterConfig(database, { concurrentId, signal } = {}) {
74
- return this.get(this.getPath('/viewer/feature_flags'), {
75
- database,
76
- }, { concurrentId, requestConfig: { signal } });
77
- }
78
- getNodeInfo(id, { concurrentId, signal } = {}) {
79
- return this.get(this.getPath('/viewer/json/sysinfo?enums=true'), {
80
- node_id: id,
81
- }, { concurrentId, requestConfig: { signal } });
82
- }
83
- getTenants(clusterName, { concurrentId, signal } = {}) {
84
- return this.get(this.getPath('/viewer/json/tenantinfo'), {
85
- tablets: false,
86
- storage: true,
87
- cluster_name: clusterName,
88
- }, { concurrentId, requestConfig: { signal } });
89
- }
90
- getTenantInfo({ path, database = path }, { concurrentId, signal } = {}) {
91
- return this.get(this.getPath('/viewer/json/tenantinfo'), {
92
- database,
93
- path,
94
- tablets: false,
95
- storage: true,
96
- memory: true,
97
- }, { concurrentId, requestConfig: { signal } });
98
- }
99
- getNodes({ type = 'any', tablets = false, database, tenant, fieldsRequired, filter, ...params }, { concurrentId, signal } = {}) {
100
- const preparedFieldsRequired = Array.isArray(fieldsRequired)
101
- ? this.prepareArrayRequestParam(fieldsRequired)
102
- : fieldsRequired;
103
- return this.get(this.getPath('/viewer/json/nodes?enums=true'), {
104
- type,
105
- tablets,
106
- // Do not send empty string
107
- filter: filter || undefined,
108
- // TODO: remove after remove tenant param
109
- database: database || tenant,
110
- tenant: tenant || database,
111
- fields_required: preparedFieldsRequired,
112
- ...params,
113
- }, { concurrentId, requestConfig: { signal } });
114
- }
115
- getStorageInfo({ tenant, database, nodeId, groupId, pDiskId, filter, ...params }, { concurrentId, signal } = {}) {
116
- return this.get(this.getPath(`/viewer/json/storage?enums=true`), {
117
- database: database || tenant,
118
- tenant: tenant || database,
119
- node_id: nodeId,
120
- group_id: groupId,
121
- pdisk_id: pDiskId,
122
- // Do not send empty string
123
- filter: filter || undefined,
124
- ...params,
125
- }, { concurrentId, requestConfig: { signal } });
126
- }
127
- getStorageGroups({ nodeId, pDiskId, groupId, fieldsRequired, filter, ...params }, { concurrentId, signal } = {}) {
128
- const preparedNodeId = Array.isArray(nodeId)
129
- ? this.prepareArrayRequestParam(nodeId)
130
- : nodeId;
131
- const preparedPDiskId = Array.isArray(pDiskId)
132
- ? this.prepareArrayRequestParam(pDiskId)
133
- : pDiskId;
134
- const preparedGroupId = Array.isArray(groupId)
135
- ? this.prepareArrayRequestParam(groupId)
136
- : groupId;
137
- const preparedFieldsRequired = Array.isArray(fieldsRequired)
138
- ? this.prepareArrayRequestParam(fieldsRequired)
139
- : fieldsRequired;
140
- return this.get(this.getPath('/storage/groups'), {
141
- node_id: preparedNodeId,
142
- pdisk_id: preparedPDiskId,
143
- group_id: preparedGroupId,
144
- fields_required: preparedFieldsRequired,
145
- // Do not send empty string
146
- filter: filter || undefined,
147
- timeout: 20000,
148
- ...params,
149
- }, { concurrentId, requestConfig: { signal } });
150
- }
151
- getNodeWhiteboardPDiskInfo({ nodeId, pDiskId }, { concurrentId, signal } = {}) {
152
- return this.get(this.getPath('/viewer/json/pdiskinfo?enums=true'), {
153
- filter: `(NodeId=${nodeId}${pDiskId ? `;PDiskId=${pDiskId}` : ''})`,
154
- }, { concurrentId, requestConfig: { signal } });
155
- }
156
- getPDiskInfo({ nodeId, pDiskId }, { concurrentId, signal } = {}) {
157
- return this.get(this.getPath('/pdisk/info'), {
158
- node_id: nodeId,
159
- pdisk_id: pDiskId,
160
- }, { concurrentId, requestConfig: { signal } });
161
- }
162
- getVDiskInfo({ vDiskSlotId, pDiskId, nodeId, }, { concurrentId, signal } = {}) {
163
- return this.get(this.getPath('/viewer/json/vdiskinfo?enums=true'), {
164
- node_id: nodeId,
165
- filter: `(PDiskId=${pDiskId};VDiskSlotId=${vDiskSlotId})`,
166
- }, { concurrentId, requestConfig: { signal } });
167
- }
168
- getGroupInfo(groupId, { concurrentId, signal } = {}) {
169
- return this.get(this.getPath('/viewer/json/storage?enums=true'), {
170
- group_id: groupId,
171
- }, { concurrentId, requestConfig: { signal } });
172
- }
173
- getTabletsInfo({ nodeId, path, database }, { concurrentId, signal } = {}) {
174
- return this.get(this.getPath('/viewer/json/tabletinfo'), {
175
- database,
176
- node_id: nodeId,
177
- path,
178
- enums: true,
179
- }, { concurrentId, requestConfig: { signal } });
180
- }
181
- getSchema({ path, database }, { concurrentId, signal } = {}) {
182
- return this.get(this.getPath('/viewer/json/describe'), {
183
- database,
184
- path,
185
- enums: true,
186
- backup: false,
187
- private: true,
188
- partition_config: false,
189
- partition_stats: false,
190
- partitioning_info: false,
191
- subs: 1,
192
- }, { concurrentId, requestConfig: { signal } });
193
- }
194
- getDescribe({ path, database, timeout }, { concurrentId, signal } = {}) {
195
- return this.get(this.getPath('/viewer/json/describe'), {
196
- database,
197
- path,
198
- enums: true,
199
- partition_stats: true,
200
- subs: 0,
201
- }, { concurrentId: concurrentId || `getDescribe|${path}`, requestConfig: { signal }, timeout });
202
- }
203
- getSchemaAcl({ path, database }, { concurrentId, signal } = {}) {
204
- return this.get(this.getPath('/viewer/json/acl'), {
205
- database,
206
- path,
207
- merge_rules: true,
208
- }, { concurrentId, requestConfig: { signal } });
209
- }
210
- getHeatmapData({ path, database }, { concurrentId, signal } = {}) {
211
- return this.get(this.getPath('/viewer/json/describe'), {
212
- database,
213
- path,
214
- enums: true,
215
- backup: false,
216
- children: false,
217
- partition_config: false,
218
- partition_stats: true,
219
- }, { concurrentId, requestConfig: { signal } });
220
- }
221
- getNetwork({ path, database }, { concurrentId, signal } = {}) {
222
- return this.get(this.getPath('/viewer/json/netinfo'), {
223
- enums: true,
224
- database,
225
- path,
226
- }, { concurrentId, requestConfig: { signal } });
227
- }
228
- getTopic({ path, database }, { concurrentId, signal } = {}) {
229
- return this.get(this.getPath('/viewer/json/describe_topic'), {
230
- enums: true,
231
- include_stats: true,
232
- database,
233
- path,
234
- }, { concurrentId, requestConfig: { signal } });
235
- }
236
- getConsumer({ path, consumer, database }, { concurrentId, signal } = {}) {
237
- return this.get(this.getPath('/viewer/json/describe_consumer'), {
238
- enums: true,
239
- include_stats: true,
240
- database,
241
- path,
242
- consumer,
243
- }, { concurrentId: concurrentId || 'getConsumer', requestConfig: { signal } });
244
- }
245
- getTablet({ id, database }, { concurrentId, signal } = {}) {
246
- return this.get(this.getPath('/viewer/json/tabletinfo'), {
247
- enums: true,
248
- database,
249
- filter: `(TabletId=${id})`,
250
- }, {
251
- concurrentId,
252
- requestConfig: { signal },
253
- });
254
- }
255
- getTabletHistory({ id, database }, { concurrentId, signal } = {}) {
256
- return this.get(this.getPath('/viewer/json/tabletinfo'), {
257
- enums: true,
258
- merge: false,
259
- database,
260
- filter: `(TabletId=${id})`,
261
- }, {
262
- concurrentId,
263
- requestConfig: { signal },
264
- });
265
- }
266
- getNodesList({ concurrentId, signal } = {}) {
267
- return this.get(this.getPath('/viewer/json/nodelist'), {
268
- enums: true,
269
- }, {
270
- concurrentId,
271
- requestConfig: { signal },
272
- });
273
- }
274
- getTenantsList({ concurrentId, signal } = {}) {
275
- return this.get(this.getPath('/viewer/json/tenants'), {
276
- enums: true,
277
- state: 0,
278
- }, {
279
- concurrentId,
280
- requestConfig: { signal },
281
- });
282
- }
283
- sendQuery(params, { concurrentId, signal, withRetries } = {}) {
284
- /**
285
- * Return strings using base64 encoding.
286
- * @link https://github.com/ydb-platform/ydb/pull/647
287
- */
288
- const base64 = !settingsManager.readUserSettingsValue(BINARY_DATA_IN_PLAIN_TEXT_DISPLAY, true);
289
- // FIXME: base64 is passed both to params and body to work on versions before and after 24-3
290
- return this.post(this.getPath('/viewer/json/query'), { ...params, base64 }, { schema: 'multi', base64, timeout: params.timeout }, {
291
- concurrentId,
292
- timeout: params.timeout,
293
- requestConfig: {
294
- signal,
295
- 'axios-retry': { retries: withRetries ? this.DEFAULT_RETRIES_COUNT : 0 },
296
- },
297
- headers: params.tracingLevel
298
- ? {
299
- 'X-Trace-Verbosity': params.tracingLevel,
300
- }
301
- : undefined,
302
- });
303
- }
304
- planToSvg({ database, plan }, { signal } = {}) {
305
- return this.post(this.getPath('/viewer/plan2svg'), plan, { database }, {
306
- requestConfig: {
307
- signal,
308
- responseType: 'text',
309
- headers: {
310
- Accept: 'image/svg+xml',
311
- },
312
- },
313
- });
314
- }
315
- getHotKeys({ path, database, enableSampling }, { concurrentId, signal } = {}) {
316
- return this.get(this.getPath('/viewer/json/hotkeys'), {
317
- database,
318
- path,
319
- enable_sampling: enableSampling,
320
- }, { concurrentId: concurrentId || 'getHotKeys', requestConfig: { signal } });
321
- }
322
- checkTrace({ url }, { concurrentId, signal } = {}) {
323
- return this.get(url, {}, {
324
- concurrentId: concurrentId || 'checkTrace',
325
- requestConfig: {
326
- signal,
327
- timeout: TRACE_CHECK_TIMEOUT,
328
- 'axios-retry': {
329
- retries: MAX_TRACE_CHECK_RETRIES,
330
- retryDelay: (_, error) => {
331
- var _a;
332
- const isTracingError = isAxiosError(error) &&
333
- (((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status) === 404 || error.code === 'ERR_NETWORK');
334
- if (isTracingError) {
335
- return TRACE_RETRY_DELAY;
336
- }
337
- return TRACE_API_ERROR_RETRY_DELAY;
338
- },
339
- shouldResetTimeout: true,
340
- retryCondition: () => true,
341
- },
342
- },
343
- });
344
- }
345
- getHealthcheckInfo({ database, maxLevel }, { concurrentId, signal } = {}) {
346
- return this.get(this.getPath('/viewer/json/healthcheck?merge_records=true'), { database, tenant: database, max_level: maxLevel }, { concurrentId, requestConfig: { signal } });
347
- }
348
- evictVDiskOld({ groupId, groupGeneration, failRealmIdx, failDomainIdx, vDiskIdx, }) {
349
- // BSC Id is constant for all ydb clusters
350
- const BSC_TABLET_ID = '72057594037932033';
351
- return this.post(this.getPath(`/tablets/app?TabletID=${BSC_TABLET_ID}&exec=1`), {
352
- Command: {
353
- ReassignGroupDisk: {
354
- GroupId: groupId,
355
- GroupGeneration: groupGeneration,
356
- FailRealmIdx: failRealmIdx,
357
- FailDomainIdx: failDomainIdx,
358
- VDiskIdx: vDiskIdx,
359
- },
360
- },
361
- }, {}, {
362
- headers: {
363
- // This handler requires exactly this string
364
- // Automatic headers may not suit
365
- Accept: 'application/json',
366
- },
367
- });
368
- }
369
- evictVDisk({ groupId, groupGeneration, failRealmIdx, failDomainIdx, vDiskIdx, force, }) {
370
- return this.post(this.getPath('/vdisk/evict'), {}, {
371
- group_id: groupId,
372
- group_generation_id: groupGeneration,
373
- fail_realm_idx: failRealmIdx,
374
- fail_domain_idx: failDomainIdx,
375
- vdisk_idx: vDiskIdx,
376
- force,
377
- }, {
378
- requestConfig: { 'axios-retry': { retries: 0 } },
379
- });
380
- }
381
- restartPDiskOld({ nodeId, pDiskId }) {
382
- const pDiskPath = createPDiskDeveloperUILink({
383
- nodeId,
384
- pDiskId,
385
- host: this.getPath(''),
386
- });
387
- return this.post(pDiskPath, 'restartPDisk=', {}, {
388
- headers: {
389
- 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
390
- },
391
- });
392
- }
393
- restartPDisk({ nodeId, pDiskId, force, }) {
394
- return this.post(this.getPath('/pdisk/restart'), {}, {
395
- node_id: nodeId,
396
- pdisk_id: pDiskId,
397
- force,
398
- }, {
399
- requestConfig: { 'axios-retry': { retries: 0 } },
400
- });
401
- }
402
- changePDiskStatus({ nodeId, pDiskId, force, decommissionStatus, }) {
403
- return this.post(this.getPath('/pdisk/status'), {
404
- decommit_status: decommissionStatus,
405
- }, {
406
- node_id: nodeId,
407
- pdisk_id: pDiskId,
408
- force,
409
- }, {
410
- requestConfig: { 'axios-retry': { retries: 0 } },
411
- });
412
- }
413
- killTablet(id) {
414
- return this.get(this.getPath(`/tablets?KillTabletID=${id}`), {}, { requestConfig: { 'axios-retry': { retries: 0 } } });
415
- }
416
- stopTablet(id, hiveId) {
417
- return this.get(this.getPath(`/tablets/app?TabletID=${hiveId}&page=StopTablet&tablet=${id}`), {}, { requestConfig: { 'axios-retry': { retries: 0 } } });
418
- }
419
- resumeTablet(id, hiveId) {
420
- return this.get(this.getPath(`/tablets/app?TabletID=${hiveId}&page=ResumeTablet&tablet=${id}`), {}, { requestConfig: { 'axios-retry': { retries: 0 } } });
421
- }
422
- getTabletFromHive({ id, hiveId }, { concurrentId, signal } = {}) {
423
- return this.get(this.getPath('/tablets/app'), {
424
- TabletID: hiveId,
425
- page: 'TabletInfo',
426
- tablet: id,
427
- }, {
428
- concurrentId,
429
- requestConfig: { signal },
430
- });
431
- }
432
- getTabletDescribe(tenantId, { concurrentId, signal } = {}) {
433
- return this.get(this.getPath('/viewer/json/describe'), {
434
- schemeshard_id: tenantId === null || tenantId === void 0 ? void 0 : tenantId.SchemeShard,
435
- path_id: tenantId === null || tenantId === void 0 ? void 0 : tenantId.PathId,
436
- }, { concurrentId, requestConfig: { signal } });
437
- }
438
- getChartData({ target, from, until, maxDataPoints, database }, { concurrentId, signal } = {}) {
439
- const requestString = `${target}&from=${from}&until=${until}&maxDataPoints=${maxDataPoints}&format=json`;
440
- return this.post(this.getPath(`/viewer/json/render?database=${database}`), requestString, {}, {
441
- concurrentId,
442
- headers: {
443
- 'Content-Type': 'application/x-www-form-urlencoded',
444
- },
445
- requestConfig: { signal },
446
- });
447
- }
448
- authenticate(params) {
449
- return this.post(this.getPath('/login'), params, {});
450
- }
451
- logout() {
452
- return this.post(this.getPath('/logout'), {}, {});
453
- }
454
- whoami() {
455
- return this.get(this.getPath('/viewer/json/whoami'), {});
456
- }
457
- autocomplete(params) {
458
- const { table, ...rest } = params;
459
- const tablesParam = table === null || table === void 0 ? void 0 : table.join(',');
460
- return this.get(this.getPath('/viewer/json/autocomplete'), { ...rest, table: tablesParam }, { concurrentId: 'sql-autocomplete' });
461
- }
462
- createSchemaDirectory({ database, path }, { signal } = {}) {
463
- return this.post(this.getPath('/scheme/directory'), {}, {
464
- database,
465
- path,
466
- }, {
467
- requestConfig: { signal },
468
- });
469
- }
470
- getClustersList(_, __ = {}) {
471
- throw new Error('Method is not implemented.');
472
- }
473
- getOperationList(params, { concurrentId, signal } = {}) {
474
- return this.get(this.getPath('/operation/list'), { ...params }, {
475
- concurrentId,
476
- requestConfig: { signal },
477
- });
478
- }
479
- cancelOperation(params, { concurrentId, signal } = {}) {
480
- return this.post(this.getPath('/operation/cancel'), {}, { ...params }, {
481
- concurrentId,
482
- requestConfig: { signal },
483
- });
484
- }
485
- forgetOperation(params, { concurrentId, signal } = {}) {
486
- return this.post(this.getPath('/operation/forget'), {}, { ...params }, {
487
- concurrentId,
488
- requestConfig: { signal },
489
- });
490
- }
491
- getClusterBaseInfo(_clusterName, _opts = {}) {
492
- throw new Error('Method is not implemented.');
493
- }
494
- }
495
- export class YdbWebVersionAPI extends YdbEmbeddedAPI {
496
- getClustersList(_, { signal } = {}) {
497
- return this.get(`${META_BACKEND || ''}/meta/clusters`, null, {
498
- requestConfig: { signal },
499
- });
500
- }
501
- getClusterInfo(clusterName, { signal } = {}) {
502
- return this.get(`${META_BACKEND || ''}/meta/cluster`, {
503
- name: clusterName,
504
- }, { concurrentId: `getCluster${clusterName}`, requestConfig: { signal } }).then(parseMetaCluster);
505
- }
506
- getTenants(clusterName, { signal } = {}) {
507
- return this.get(`${META_BACKEND || ''}/meta/cp_databases`, {
508
- cluster_name: clusterName,
509
- }, { requestConfig: { signal } }).then(parseMetaTenants);
510
- }
511
- getClusterBaseInfo(clusterName, { concurrentId, signal } = {}) {
512
- return this.get(`${META_BACKEND || ''}/meta/db_clusters`, {
513
- name: clusterName,
514
- }, { concurrentId, requestConfig: { signal } }).then((data) => data.clusters[0]);
515
- }
516
- }
517
- export function createApi({ webVersion = false, withCredentials = false } = {}) {
518
- const config = { withCredentials };
519
- const api = webVersion ? new YdbWebVersionAPI({ config }) : new YdbEmbeddedAPI({ config });
520
- return api;
521
- }
522
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/services/api.ts"],"names":[],"mappings":"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"}