ydb-embedded-ui 6.12.0 → 6.13.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/AutoRefreshControl/i18n/index.d.ts +1 -1
- package/dist/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.d.ts +3 -2
- package/dist/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.js +9 -5
- package/dist/components/CriticalActionDialog/CriticalActionDialog.d.ts +5 -3
- package/dist/components/CriticalActionDialog/CriticalActionDialog.js +8 -7
- package/dist/components/CriticalActionDialog/CriticalActionDialog.scss +1 -1
- package/dist/components/CriticalActionDialog/i18n/en.json +1 -0
- package/dist/components/CriticalActionDialog/i18n/index.d.ts +1 -1
- package/dist/components/Errors/PageError/PageError.d.ts +11 -0
- package/dist/components/Errors/PageError/PageError.js +19 -0
- package/dist/components/Errors/i18n/en.json +2 -1
- package/dist/components/Errors/i18n/index.d.ts +1 -1
- package/dist/components/Errors/i18n/ru.json +2 -1
- package/dist/components/Fullscreen/Fullscreen.d.ts +1 -1
- package/dist/components/Fullscreen/Fullscreen.js +34 -27
- package/dist/components/Fullscreen/Fullscreen.scss +16 -8
- package/dist/components/Graph/Graph.d.ts +13 -0
- package/dist/components/Graph/Graph.js +41 -0
- package/dist/components/LabelWithPopover/LabelWithPopover.d.ts +4 -1
- package/dist/components/LabelWithPopover/LabelWithPopover.js +1 -1
- package/dist/components/Loader/Loader.d.ts +2 -1
- package/dist/components/Loader/Loader.js +6 -1
- package/dist/components/LoaderWrapper/LoaderWrapper.d.ts +10 -0
- package/dist/components/LoaderWrapper/LoaderWrapper.js +8 -0
- package/dist/components/MetricChart/reducer.d.ts +2 -2
- package/dist/components/PDiskInfo/PDiskInfo.d.ts +2 -2
- package/dist/components/PDiskInfo/PDiskInfo.js +9 -6
- package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/ProgressViewer/ProgressViewer.js +3 -0
- package/dist/components/QueryExecutionStatus/QueryExecutionStatus.js +13 -3
- package/dist/components/QueryExecutionStatus/QueryExecutionStatus.scss +4 -0
- package/dist/components/QuerySettingsDescription/QuerySettingsDescription.d.ts +7 -0
- package/dist/components/QuerySettingsDescription/QuerySettingsDescription.js +8 -0
- package/dist/components/QuerySettingsDescription/QuerySettingsDescription.scss +8 -0
- package/dist/components/QuerySettingsDescription/index.d.ts +1 -0
- package/dist/components/QuerySettingsDescription/index.js +1 -0
- package/dist/components/VDisk/VDisk.js +3 -4
- package/dist/components/VDiskInfo/VDiskInfo.d.ts +2 -2
- package/dist/components/VDiskInfo/VDiskInfo.js +4 -2
- package/dist/containers/App/Content.js +15 -19
- package/dist/containers/AsideNavigation/AsideNavigation.js +2 -1
- package/dist/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.js +4 -4
- package/dist/containers/Authentication/Authentication.js +8 -10
- package/dist/containers/Authentication/utils.d.ts +8 -0
- package/dist/containers/Authentication/utils.js +15 -0
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js +6 -6
- package/dist/containers/Clusters/constants.d.ts +1 -1
- package/dist/containers/Heatmap/Heatmap.js +5 -4
- package/dist/containers/Node/Node.js +5 -7
- package/dist/containers/Node/Node.scss +4 -0
- package/dist/containers/Node/NodeStructure/NodeStructure.js +4 -4
- package/dist/containers/Node/NodeStructure/NodeStructure.scss +4 -0
- package/dist/containers/Node/NodeStructure/Pdisk.js +2 -2
- package/dist/containers/Nodes/Nodes.js +6 -8
- package/dist/containers/Nodes/getNodesColumns.js +6 -21
- package/dist/containers/PDiskPage/PDiskPage.js +19 -8
- package/dist/containers/PDiskPage/i18n/en.json +1 -0
- package/dist/containers/PDiskPage/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/PDisk/PDisk.js +3 -4
- package/dist/containers/Storage/Storage.js +4 -6
- package/dist/containers/Tablet/Tablet.js +2 -2
- package/dist/containers/Tablet/TabletControls/TabletControls.js +2 -1
- package/dist/containers/Tablets/Tablets.js +3 -5
- package/dist/containers/Tenant/Diagnostics/Consumers/Consumers.js +2 -5
- package/dist/containers/Tenant/Diagnostics/Describe/Describe.js +10 -13
- package/dist/containers/Tenant/Diagnostics/DetailedOverview/DetailedOverview.scss +1 -0
- package/dist/containers/Tenant/Diagnostics/Network/Network.js +8 -11
- package/dist/containers/Tenant/Diagnostics/Network/Network.scss +1 -0
- package/dist/containers/Tenant/Diagnostics/Overview/Overview.d.ts +1 -2
- package/dist/containers/Tenant/Diagnostics/Overview/Overview.js +3 -5
- package/dist/containers/Tenant/Diagnostics/Overview/TopicStats/TopicStats.js +3 -4
- package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js +1 -4
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverviewTableLayout.js +3 -3
- package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueries.js +4 -3
- package/dist/containers/Tenant/Diagnostics/TopShards/TopShards.js +4 -3
- package/dist/containers/Tenant/Query/ExecuteResult/ExecuteResult.d.ts +2 -2
- package/dist/containers/Tenant/Query/ExecuteResult/ExecuteResult.js +56 -20
- package/dist/containers/Tenant/Query/ExecuteResult/ExecuteResult.scss +10 -6
- package/dist/containers/Tenant/Query/ExecuteResult/i18n/en.json +7 -0
- package/dist/containers/Tenant/Query/ExecuteResult/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/Query/ExecuteResult/i18n/index.js +4 -0
- package/dist/containers/Tenant/Query/ExecuteResult/utils.d.ts +18 -0
- package/dist/containers/Tenant/Query/ExecuteResult/utils.js +36 -0
- package/dist/containers/Tenant/Query/ExplainResult/ExplainResult.d.ts +23 -1
- package/dist/containers/Tenant/Query/ExplainResult/ExplainResult.js +56 -111
- package/dist/containers/Tenant/Query/ExplainResult/ExplainResult.scss +1 -30
- package/dist/containers/Tenant/Query/ExplainResult/components/Ast/Ast.d.ts +7 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/Ast/Ast.js +18 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/Ast/Ast.scss +8 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/Graph/Graph.d.ts +8 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/Graph/Graph.js +14 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/Graph/Graph.scss +14 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/MetricsCell.d.ts +6 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/MetricsCell.js +11 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/OperationCell.d.ts +13 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/OperationCell.js +48 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/OperationParams.d.ts +6 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/OperationParams.js +66 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/SimplifiedPlan.d.ts +7 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/SimplifiedPlan.js +100 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/SimplifiedPlan.scss +128 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/types.d.ts +5 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/utils.d.ts +5 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/utils.js +59 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/TextExplain/TextExplain.d.ts +8 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/TextExplain/TextExplain.js +11 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/TextExplain/TextExplain.scss +14 -0
- package/dist/containers/Tenant/Query/ExplainResult/i18n/en.json +8 -0
- package/dist/containers/Tenant/Query/ExplainResult/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/Query/ExplainResult/i18n/index.js +4 -0
- package/dist/containers/Tenant/Query/Preview/Preview.js +2 -3
- package/dist/containers/Tenant/Query/QueriesHistory/QueriesHistory.js +1 -19
- package/dist/containers/Tenant/Query/QueryDuration/QueryDuration.js +1 -1
- package/dist/containers/Tenant/Query/QueryDuration/QueryDuration.scss +11 -0
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.d.ts +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +91 -95
- package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.d.ts +4 -6
- package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js +18 -49
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettings.d.ts +2 -0
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettings.js +5 -0
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettings.test.d.ts +1 -0
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettings.test.js +42 -0
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettingsDescription.d.ts +5 -0
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettingsDescription.js +19 -0
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettingsDescription.test.d.ts +1 -0
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettingsDescription.test.js +56 -0
- package/dist/containers/Tenant/Query/QuerySettingsBanner/QuerySettingsBanner.d.ts +2 -0
- package/dist/containers/Tenant/Query/QuerySettingsBanner/QuerySettingsBanner.js +12 -0
- package/dist/containers/Tenant/Query/QuerySettingsBanner/QuerySettingsBanner.scss +3 -0
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js +20 -23
- package/dist/containers/Tenant/Query/QuerySettingsDialog/constants.d.ts +123 -7
- package/dist/containers/Tenant/Query/QuerySettingsDialog/constants.js +32 -10
- package/dist/containers/Tenant/Query/i18n/en.json +3 -1
- package/dist/containers/Tenant/Query/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Schema/SchemaTree/SchemaTree.js +6 -6
- package/dist/containers/Tenant/Schema/SchemaViewer/SchemaViewer.js +5 -2
- package/dist/containers/Tenant/Schema/SchemaViewer/columns.d.ts +2 -1
- package/dist/containers/Tenant/Schema/SchemaViewer/columns.js +13 -1
- package/dist/containers/Tenant/Schema/SchemaViewer/i18n/en.json +1 -0
- package/dist/containers/Tenant/Schema/SchemaViewer/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Schema/SchemaViewer/prepareData.js +3 -2
- package/dist/containers/Tenant/Schema/SchemaViewer/types.d.ts +1 -0
- package/dist/containers/Tenant/Tenant.js +4 -8
- package/dist/containers/Tenant/utils/schemaActions.d.ts +2 -2
- package/dist/containers/Tenant/utils/schemaActions.js +2 -2
- package/dist/containers/Tenants/Tenants.js +4 -7
- package/dist/containers/UserSettings/i18n/en.json +3 -5
- package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
- package/dist/containers/UserSettings/settings.d.ts +2 -3
- package/dist/containers/UserSettings/settings.js +17 -23
- package/dist/containers/VDiskPage/VDiskPage.js +27 -13
- package/dist/containers/VDiskPage/i18n/en.json +1 -0
- package/dist/containers/VDiskPage/i18n/index.d.ts +1 -1
- package/dist/services/api.d.ts +21 -8
- package/dist/services/api.js +29 -42
- package/dist/services/settings.d.ts +11 -4
- package/dist/services/settings.js +7 -6
- package/dist/store/configureStore.d.ts +7 -7
- package/dist/store/defaultStore.d.ts +3 -3
- package/dist/store/reducers/api.d.ts +1 -1
- package/dist/store/reducers/api.js +1 -1
- package/dist/store/reducers/authentication/authentication.d.ts +37 -24
- package/dist/store/reducers/authentication/authentication.js +77 -57
- package/dist/store/reducers/authentication/types.d.ts +0 -8
- package/dist/store/reducers/capabilities/capabilities.d.ts +106 -0
- package/dist/store/reducers/capabilities/capabilities.js +22 -0
- package/dist/store/reducers/capabilities/hooks.d.ts +2 -0
- package/dist/store/reducers/capabilities/hooks.js +13 -0
- package/dist/store/reducers/cluster/cluster.d.ts +2 -2
- package/dist/store/reducers/clusterNodes/clusterNodes.d.ts +2 -2
- package/dist/store/reducers/clusters/clusters.d.ts +2 -2
- package/dist/store/reducers/describe.d.ts +2 -2
- package/dist/store/reducers/executeQuery.d.ts +7 -14
- package/dist/store/reducers/executeQuery.js +19 -14
- package/dist/store/reducers/executeTopQueries/executeTopQueries.d.ts +2 -2
- package/dist/store/reducers/explainQuery/explainQuery.d.ts +5 -4
- package/dist/store/reducers/explainQuery/explainQuery.js +14 -4
- package/dist/store/reducers/explainQuery/types.d.ts +13 -1
- package/dist/store/reducers/explainQuery/utils.js +7 -2
- package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +58 -58
- package/dist/store/reducers/heatmap.d.ts +2 -2
- package/dist/store/reducers/hotKeys/hotKeys.d.ts +2 -2
- package/dist/store/reducers/index.d.ts +6 -6
- package/dist/store/reducers/network/network.d.ts +2 -2
- package/dist/store/reducers/node/node.d.ts +3 -3
- package/dist/store/reducers/node/selectors.d.ts +1 -1
- package/dist/store/reducers/nodes/nodes.d.ts +3 -3
- package/dist/store/reducers/nodesList.d.ts +3 -3
- package/dist/store/reducers/overview/overview.d.ts +2 -2
- package/dist/store/reducers/partitions/partitions.d.ts +2 -2
- package/dist/store/reducers/pdisk/pdisk.d.ts +3 -3
- package/dist/store/reducers/preview.d.ts +2 -2
- package/dist/store/reducers/schema/schema.d.ts +3 -3
- package/dist/store/reducers/schema/schema.js +10 -3
- package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +2 -2
- package/dist/store/reducers/shardsWorkload/shardsWorkload.d.ts +2 -2
- package/dist/store/reducers/storage/storage.d.ts +3 -3
- package/dist/store/reducers/tablet.d.ts +3 -3
- package/dist/store/reducers/tablets.d.ts +13 -13
- package/dist/store/reducers/tabletsFilters.d.ts +1 -1
- package/dist/store/reducers/tenant/tenant.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/executeTopTables/executeTopTables.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/topNodes/topNodes.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/topStorageGroups/topStorageGroups.d.ts +2 -2
- package/dist/store/reducers/tenants/selectors.d.ts +31 -30
- package/dist/store/reducers/tenants/selectors.js +8 -2
- package/dist/store/reducers/tenants/tenants.d.ts +2 -2
- package/dist/store/reducers/topic.d.ts +44 -44
- package/dist/store/reducers/vdisk/vdisk.d.ts +2 -2
- package/dist/store/reducers/viewSchema/viewSchema.d.ts +2 -2
- package/dist/styles/mixins.scss +2 -0
- package/dist/types/api/capabilities.d.ts +7 -0
- package/dist/types/api/capabilities.js +1 -0
- package/dist/types/api/modifyDisk.d.ts +8 -0
- package/dist/types/api/modifyDisk.js +1 -0
- package/dist/types/api/query.d.ts +39 -3
- package/dist/types/api/query.js +9 -1
- package/dist/types/api/schema/shared.d.ts +8 -0
- package/dist/types/store/query.d.ts +7 -0
- package/dist/utils/__test__/prepareQueryExplain.test.d.ts +1 -0
- package/dist/utils/__test__/prepareQueryExplain.test.js +115 -0
- package/dist/utils/constants.d.ts +13 -4
- package/dist/utils/constants.js +15 -4
- package/dist/utils/dataFormatters/dataFormatters.d.ts +0 -1
- package/dist/utils/dataFormatters/dataFormatters.js +1 -4
- package/dist/utils/hooks/index.d.ts +2 -1
- package/dist/utils/hooks/index.js +2 -1
- package/dist/utils/hooks/useChangedQuerySettings.d.ts +10 -0
- package/dist/utils/hooks/useChangedQuerySettings.js +46 -0
- package/dist/utils/hooks/useDelayed.d.ts +1 -0
- package/dist/utils/hooks/useDelayed.js +13 -0
- package/dist/utils/hooks/useEventHandler.d.ts +6 -0
- package/dist/utils/hooks/useEventHandler.js +17 -0
- package/dist/utils/hooks/useLastQueryExecutionSettings.d.ts +2 -0
- package/dist/utils/hooks/useLastQueryExecutionSettings.js +5 -0
- package/dist/utils/hooks/useQueryExecutionSettings.d.ts +8 -0
- package/dist/utils/hooks/useQueryExecutionSettings.js +15 -0
- package/dist/utils/prepareQueryExplain.d.ts +3 -1
- package/dist/utils/prepareQueryExplain.js +54 -2
- package/dist/utils/query.js +1 -0
- package/dist/utils/query.test.js +3 -0
- package/dist/utils/utils.d.ts +8 -7
- package/dist/utils/utils.js +23 -11
- package/package.json +4 -2
- package/dist/containers/Tenant/Query/ExplainResult/utils.d.ts +0 -2
- package/dist/containers/Tenant/Query/ExplainResult/utils.js +0 -4
- package/dist/store/utils.d.ts +0 -23
- package/dist/store/utils.js +0 -49
- package/dist/types/api/restartPDisk.d.ts +0 -4
- package/dist/utils/hooks/useQueryModes.d.ts +0 -2
- package/dist/utils/hooks/useQueryModes.js +0 -5
- /package/dist/{types/api/restartPDisk.js → containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/types.js} +0 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
2
2
|
import { CircleInfo, Flask, PencilToSquare, StarFill } from '@gravity-ui/icons';
|
3
3
|
import { createNextState } from '@reduxjs/toolkit';
|
4
|
-
import { AUTOCOMPLETE_ON_ENTER, BINARY_DATA_IN_PLAIN_TEXT_DISPLAY, ENABLE_AUTOCOMPLETE, INVERTED_DISKS_KEY, LANGUAGE_KEY,
|
4
|
+
import { AUTOCOMPLETE_ON_ENTER, BINARY_DATA_IN_PLAIN_TEXT_DISPLAY, ENABLE_AUTOCOMPLETE, ENABLE_TRACING_LEVEL_KEY, INVERTED_DISKS_KEY, LANGUAGE_KEY, QUERY_USE_MULTI_SCHEMA_KEY, SHOW_DOMAIN_DATABASE_KEY, THEME_KEY, USE_CLUSTER_BALANCER_AS_BACKEND_KEY, USE_NODES_ENDPOINT_IN_DIAGNOSTICS_KEY, USE_PAGINATED_TABLES_KEY, } from '../../utils/constants';
|
5
5
|
import { Lang, defaultLang } from '../../utils/i18n';
|
6
6
|
import { ClusterModeGuard } from '../ClusterModeGuard';
|
7
7
|
import i18n from './i18n';
|
@@ -65,25 +65,20 @@ export const usePaginatedTables = {
|
|
65
65
|
title: i18n('settings.usePaginatedTables.title'),
|
66
66
|
description: i18n('settings.usePaginatedTables.description'),
|
67
67
|
};
|
68
|
-
export const
|
69
|
-
settingKey:
|
70
|
-
title: i18n('settings.
|
71
|
-
|
68
|
+
export const showDomainDatabase = {
|
69
|
+
settingKey: SHOW_DOMAIN_DATABASE_KEY,
|
70
|
+
title: i18n('settings.showDomainDatabase.title'),
|
71
|
+
};
|
72
|
+
export const enableTracingLevel = {
|
73
|
+
settingKey: ENABLE_TRACING_LEVEL_KEY,
|
74
|
+
title: i18n('settings.enableTracingLevel.title'),
|
75
|
+
description: i18n('settings.enableTracingLevel.description'),
|
72
76
|
};
|
73
77
|
export const queryUseMultiSchemaSetting = {
|
74
78
|
settingKey: QUERY_USE_MULTI_SCHEMA_KEY,
|
75
79
|
title: i18n('settings.queryUseMultiSchema.title'),
|
76
80
|
description: i18n('settings.queryUseMultiSchema.description'),
|
77
81
|
};
|
78
|
-
export const useSeparateDisksPagesSetting = {
|
79
|
-
settingKey: USE_SEPARATE_DISKS_PAGES_KEY,
|
80
|
-
title: i18n('settings.useSeparateDisksPages.title'),
|
81
|
-
description: i18n('settings.useSeparateDisksPages.description'),
|
82
|
-
};
|
83
|
-
export const useDirectoryActionsSetting = {
|
84
|
-
settingKey: USE_DIRECTORY_OPERATIONS,
|
85
|
-
title: i18n('settings.useDirectoryOperations.title'),
|
86
|
-
};
|
87
82
|
export const useClusterBalancerAsBackendSetting = {
|
88
83
|
settingKey: USE_CLUSTER_BALANCER_AS_BACKEND_KEY,
|
89
84
|
title: i18n('settings.useClusterBalancerAsBackend.title'),
|
@@ -107,23 +102,22 @@ export const interfaceVersionInfoField = {
|
|
107
102
|
export const appearanceSection = {
|
108
103
|
id: 'appearanceSection',
|
109
104
|
title: i18n('section.appearance'),
|
110
|
-
settings: [
|
105
|
+
settings: [
|
106
|
+
themeSetting,
|
107
|
+
invertedDisksSetting,
|
108
|
+
binaryDataInPlainTextDisplay,
|
109
|
+
showDomainDatabase,
|
110
|
+
],
|
111
111
|
};
|
112
112
|
export const experimentsSection = {
|
113
113
|
id: 'experimentsSection',
|
114
114
|
title: i18n('section.experiments'),
|
115
|
-
settings: [
|
116
|
-
useNodesEndpointSetting,
|
117
|
-
usePaginatedTables,
|
118
|
-
queryUseMultiSchemaSetting,
|
119
|
-
useSeparateDisksPagesSetting,
|
120
|
-
useDirectoryActionsSetting,
|
121
|
-
],
|
115
|
+
settings: [useNodesEndpointSetting, usePaginatedTables, queryUseMultiSchemaSetting],
|
122
116
|
};
|
123
117
|
export const devSettingsSection = {
|
124
118
|
id: 'devSettingsSection',
|
125
119
|
title: i18n('section.dev-setting'),
|
126
|
-
settings: [enableAutocompleteSetting, autocompleteOnEnterSetting],
|
120
|
+
settings: [enableAutocompleteSetting, autocompleteOnEnterSetting, enableTracingLevel],
|
127
121
|
};
|
128
122
|
export const aboutSettingsSection = {
|
129
123
|
id: 'aboutSettingsSection',
|
@@ -8,11 +8,13 @@ import { StringParam, useQueryParams } from 'use-query-params';
|
|
8
8
|
import { AutoRefreshControl } from '../../components/AutoRefreshControl/AutoRefreshControl';
|
9
9
|
import { ButtonWithConfirmDialog } from '../../components/ButtonWithConfirmDialog/ButtonWithConfirmDialog';
|
10
10
|
import { DiskPageTitle } from '../../components/DiskPageTitle/DiskPageTitle';
|
11
|
+
import { ResponseError } from '../../components/Errors/ResponseError';
|
11
12
|
import { GroupInfo } from '../../components/GroupInfo/GroupInfo';
|
12
13
|
import { InfoViewerSkeleton } from '../../components/InfoViewerSkeleton/InfoViewerSkeleton';
|
13
14
|
import { PageMeta } from '../../components/PageMeta/PageMeta';
|
14
15
|
import { VDiskWithDonorsStack } from '../../components/VDisk/VDiskWithDonorsStack';
|
15
16
|
import { VDiskInfo } from '../../components/VDiskInfo/VDiskInfo';
|
17
|
+
import { selectIsUserAllowedToMakeChanges } from '../../store/reducers/authentication/authentication';
|
16
18
|
import { setHeaderBreadcrumbs } from '../../store/reducers/header/header';
|
17
19
|
import { selectNodesMap } from '../../store/reducers/nodesList';
|
18
20
|
import { vDiskApi } from '../../store/reducers/vdisk/vdisk';
|
@@ -27,7 +29,7 @@ const vDiskPageCn = cn('ydb-vdisk-page');
|
|
27
29
|
export function VDiskPage() {
|
28
30
|
const dispatch = useTypedDispatch();
|
29
31
|
const nodesMap = useTypedSelector(selectNodesMap);
|
30
|
-
const
|
32
|
+
const isUserAllowedToMakeChanges = useTypedSelector(selectIsUserAllowedToMakeChanges);
|
31
33
|
const [{ nodeId, pDiskId, vDiskSlotId }] = useQueryParams({
|
32
34
|
nodeId: StringParam,
|
33
35
|
pDiskId: StringParam,
|
@@ -40,25 +42,37 @@ export function VDiskPage() {
|
|
40
42
|
const params = valueIsDefined(nodeId) && valueIsDefined(pDiskId) && valueIsDefined(vDiskSlotId)
|
41
43
|
? { nodeId, pDiskId, vDiskSlotId }
|
42
44
|
: skipToken;
|
43
|
-
const { currentData, isFetching, refetch } = vDiskApi.useGetVDiskDataQuery(params, {
|
45
|
+
const { currentData, isFetching, refetch, error } = vDiskApi.useGetVDiskDataQuery(params, {
|
44
46
|
pollingInterval: autoRefreshInterval,
|
45
47
|
});
|
46
48
|
const loading = isFetching && currentData === undefined;
|
47
49
|
const { vDiskData = {}, groupData } = currentData || {};
|
48
50
|
const { NodeHost, NodeId, NodeType, NodeDC, PDiskId, PDiskType, Severity, VDiskId } = vDiskData;
|
49
|
-
const
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
51
|
+
const { GroupID, GroupGeneration, Ring, Domain, VDisk } = VDiskId || {};
|
52
|
+
const vDiskIdParamsDefined = valueIsDefined(GroupID) &&
|
53
|
+
valueIsDefined(GroupGeneration) &&
|
54
|
+
valueIsDefined(Ring) &&
|
55
|
+
valueIsDefined(Domain) &&
|
56
|
+
valueIsDefined(VDisk);
|
57
|
+
const handleEvictVDisk = async (isRetry) => {
|
58
|
+
if (vDiskIdParamsDefined) {
|
59
|
+
return window.api
|
60
|
+
.evictVDisk({
|
57
61
|
groupId: GroupID,
|
58
62
|
groupGeneration: GroupGeneration,
|
59
63
|
failRealmIdx: Ring,
|
60
64
|
failDomainIdx: Domain,
|
61
65
|
vDiskIdx: VDisk,
|
66
|
+
force: isRetry,
|
67
|
+
})
|
68
|
+
.then((response) => {
|
69
|
+
if ((response === null || response === void 0 ? void 0 : response.result) === false) {
|
70
|
+
const err = {
|
71
|
+
statusText: response.error,
|
72
|
+
retryPossible: response.forceRetryPossible,
|
73
|
+
};
|
74
|
+
throw err;
|
75
|
+
}
|
62
76
|
});
|
63
77
|
}
|
64
78
|
return undefined;
|
@@ -86,10 +100,10 @@ export function VDiskPage() {
|
|
86
100
|
return (_jsx(DiskPageTitle, { entityName: vDiskPageKeyset('vdisk'), status: getSeverityColor(Severity), id: stringifyVdiskId(vDiskData === null || vDiskData === void 0 ? void 0 : vDiskData.VDiskId) }));
|
87
101
|
};
|
88
102
|
const renderControls = () => {
|
89
|
-
return (_jsxs("div", { className: vDiskPageCn('controls'), children: [_jsxs(ButtonWithConfirmDialog, { onConfirmAction: handleEvictVDisk, onConfirmActionSuccess: handleAfterEvictVDisk, buttonDisabled: !
|
103
|
+
return (_jsxs("div", { className: vDiskPageCn('controls'), children: [_jsxs(ButtonWithConfirmDialog, { onConfirmAction: handleEvictVDisk, onConfirmActionSuccess: handleAfterEvictVDisk, buttonDisabled: !vDiskIdParamsDefined || !isUserAllowedToMakeChanges, buttonView: "normal", dialogContent: vDiskPageKeyset('evict-vdisk-dialog'), retryButtonText: vDiskPageKeyset('force-evict-vdisk-button'), withPopover: true, popoverContent: vDiskPageKeyset('evict-vdisk-not-allowed'), popoverDisabled: isUserAllowedToMakeChanges, children: [_jsx(Icon, { data: ArrowsOppositeToDots }), vDiskPageKeyset('evict-vdisk-button')] }), _jsx(AutoRefreshControl, { className: vDiskPageCn('auto-refresh-control') })] }));
|
90
104
|
};
|
91
105
|
const renderInfo = () => {
|
92
|
-
return _jsx(VDiskInfo, { data: vDiskData
|
106
|
+
return _jsx(VDiskInfo, { data: vDiskData });
|
93
107
|
};
|
94
108
|
const renderGroupInfo = () => {
|
95
109
|
var _a;
|
@@ -104,7 +118,7 @@ export function VDiskPage() {
|
|
104
118
|
if (loading) {
|
105
119
|
return _jsx(InfoViewerSkeleton, { rows: 20 });
|
106
120
|
}
|
107
|
-
return (_jsxs(React.Fragment, { children: [renderInfo(), renderGroupInfo()] }));
|
121
|
+
return (_jsxs(React.Fragment, { children: [error ? _jsx(ResponseError, { error: error }) : null, renderInfo(), renderGroupInfo()] }));
|
108
122
|
};
|
109
123
|
return (_jsxs("div", { className: vDiskPageCn(null), children: [renderHelmet(), renderPageMeta(), renderPageTitle(), renderControls(), renderContent()] }));
|
110
124
|
}
|
@@ -5,6 +5,7 @@
|
|
5
5
|
"vdisk": "VDisk",
|
6
6
|
"group": "Group",
|
7
7
|
"evict-vdisk-button": "Evict VDisk",
|
8
|
+
"force-evict-vdisk-button": "Evict anyway",
|
8
9
|
"evict-vdisk-dialog": "VDisk will be evicted. Do you want to proceed?",
|
9
10
|
"evict-vdisk-not-allowed": "You don't have enough rights to evict VDisk"
|
10
11
|
}
|
@@ -1 +1 @@
|
|
1
|
-
export declare const vDiskPageKeyset: (key: "node" | "fqdn" | "group" | "pdisk" | "vdisk" | "evict-vdisk-button" | "evict-vdisk-dialog" | "evict-vdisk-not-allowed", params?: import("@gravity-ui/i18n").Params) => string;
|
1
|
+
export declare const vDiskPageKeyset: (key: "node" | "fqdn" | "group" | "pdisk" | "vdisk" | "evict-vdisk-button" | "force-evict-vdisk-button" | "evict-vdisk-dialog" | "evict-vdisk-not-allowed", params?: import("@gravity-ui/i18n").Params) => string;
|
package/dist/services/api.d.ts
CHANGED
@@ -4,19 +4,20 @@ import type { ComputeApiRequestParams, NodesApiRequestParams } from '../store/re
|
|
4
4
|
import type { StorageApiRequestParams } from '../store/reducers/storage/types';
|
5
5
|
import type { TMetaInfo } from '../types/api/acl';
|
6
6
|
import type { TQueryAutocomplete } from '../types/api/autocomplete';
|
7
|
+
import type { CapabilitiesResponse } from '../types/api/capabilities';
|
7
8
|
import type { TClusterInfo } from '../types/api/cluster';
|
8
9
|
import type { TComputeInfo } from '../types/api/compute';
|
9
10
|
import type { DescribeConsumerResult } from '../types/api/consumer';
|
10
11
|
import type { HealthCheckAPIResponse } from '../types/api/healthcheck';
|
11
12
|
import type { JsonHotKeysResponse } from '../types/api/hotkeys';
|
12
13
|
import type { MetaClusters } from '../types/api/meta';
|
14
|
+
import type { ModifyDiskResponse } from '../types/api/modifyDisk';
|
13
15
|
import type { TNetInfo } from '../types/api/netInfo';
|
14
16
|
import type { TNodesInfo } from '../types/api/nodes';
|
15
17
|
import type { TEvNodesInfo } from '../types/api/nodesList';
|
16
18
|
import type { TEvPDiskStateResponse, TPDiskInfoResponse } from '../types/api/pdisk';
|
17
|
-
import type { Actions, ErrorResponse, QueryAPIResponse, Schemas } from '../types/api/query';
|
19
|
+
import type { Actions, ErrorResponse, QueryAPIResponse, Schemas, Stats, Timeout, TracingLevel, TransactionMode } from '../types/api/query';
|
18
20
|
import type { JsonRenderRequestParams, JsonRenderResponse } from '../types/api/render';
|
19
|
-
import type { RestartPDiskResponse } from '../types/api/restartPDisk';
|
20
21
|
import type { TEvDescribeSchemeResult } from '../types/api/schema';
|
21
22
|
import type { TStorageInfo } from '../types/api/storage';
|
22
23
|
import type { TEvSystemStateResponse } from '../types/api/systemState';
|
@@ -36,6 +37,7 @@ export declare class YdbEmbeddedAPI extends AxiosWrapper {
|
|
36
37
|
DEFAULT_RETRIES_COUNT: number;
|
37
38
|
constructor(options?: AxiosWrapperOptions);
|
38
39
|
getPath(path: string): string;
|
40
|
+
getClusterCapabilities(): Promise<CapabilitiesResponse>;
|
39
41
|
getClusterInfo(clusterName?: string, { concurrentId, signal }?: AxiosOptions): Promise<TClusterInfo>;
|
40
42
|
getClusterNodes({ concurrentId, signal }?: AxiosOptions): Promise<TEvSystemStateResponse>;
|
41
43
|
getNodeInfo(id?: string | number, { concurrentId, signal }?: AxiosOptions): Promise<TEvSystemStateResponse>;
|
@@ -104,13 +106,16 @@ export declare class YdbEmbeddedAPI extends AxiosWrapper {
|
|
104
106
|
}, { concurrentId, signal }?: AxiosOptions): Promise<UnmergedTEvTabletStateResponse>;
|
105
107
|
getNodesList({ concurrentId, signal }?: AxiosOptions): Promise<TEvNodesInfo>;
|
106
108
|
getTenantsList({ concurrentId, signal }?: AxiosOptions): Promise<TTenants>;
|
107
|
-
sendQuery<Action extends Actions, Schema extends Schemas = undefined>(
|
109
|
+
sendQuery<Action extends Actions, Schema extends Schemas = undefined>(params: {
|
108
110
|
query?: string;
|
109
111
|
database?: string;
|
110
112
|
action?: Action;
|
111
|
-
stats?: string;
|
112
113
|
schema?: Schema;
|
113
114
|
syntax?: QuerySyntax;
|
115
|
+
stats?: Stats;
|
116
|
+
tracingLevel?: TracingLevel;
|
117
|
+
transaction_mode?: TransactionMode;
|
118
|
+
timeout?: Timeout;
|
114
119
|
}, { concurrentId, signal, withRetries }?: AxiosOptions): Promise<ErrorResponse | QueryAPIResponse<Action, Schema>>;
|
115
120
|
getHotKeys({ path, database, enableSampling }: {
|
116
121
|
path: string;
|
@@ -121,20 +126,28 @@ export declare class YdbEmbeddedAPI extends AxiosWrapper {
|
|
121
126
|
database: string;
|
122
127
|
maxLevel?: number;
|
123
128
|
}, { concurrentId, signal }?: AxiosOptions): Promise<HealthCheckAPIResponse>;
|
124
|
-
evictVDisk({ groupId, groupGeneration, failRealmIdx, failDomainIdx, vDiskIdx, }: {
|
129
|
+
evictVDisk({ groupId, groupGeneration, failRealmIdx, failDomainIdx, vDiskIdx, force, }: {
|
125
130
|
groupId: string | number;
|
126
131
|
groupGeneration: string | number;
|
127
132
|
failRealmIdx: string | number;
|
128
133
|
failDomainIdx: string | number;
|
129
134
|
vDiskIdx: string | number;
|
130
|
-
|
131
|
-
|
135
|
+
force?: boolean;
|
136
|
+
}): Promise<ModifyDiskResponse>;
|
137
|
+
restartPDisk({ nodeId, pDiskId, force, }: {
|
138
|
+
nodeId: number | string;
|
139
|
+
pDiskId: number | string;
|
140
|
+
force?: boolean;
|
141
|
+
}): Promise<ModifyDiskResponse>;
|
132
142
|
killTablet(id?: string): Promise<string>;
|
133
143
|
stopTablet(id?: string, hiveId?: string): Promise<string>;
|
134
144
|
resumeTablet(id?: string, hiveId?: string): Promise<string>;
|
135
145
|
getTabletDescribe(tenantId: TDomainKey, { concurrentId, signal }?: AxiosOptions): Promise<Nullable<TEvDescribeSchemeResult>>;
|
136
146
|
getChartData({ target, from, until, maxDataPoints, database }: JsonRenderRequestParams, { concurrentId, signal }?: AxiosOptions): Promise<JsonRenderResponse>;
|
137
|
-
authenticate(
|
147
|
+
authenticate(params: {
|
148
|
+
user: string;
|
149
|
+
password: string;
|
150
|
+
}): Promise<any>;
|
138
151
|
logout(): Promise<any>;
|
139
152
|
whoami(): Promise<TUserToken>;
|
140
153
|
autocomplete(params: {
|
package/dist/services/api.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
import AxiosWrapper from '@gravity-ui/axios-wrapper';
|
2
2
|
import axiosRetry from 'axios-retry';
|
3
|
+
import qs from 'qs';
|
3
4
|
import { backend as BACKEND, metaBackend as META_BACKEND } from '../store';
|
4
5
|
import { BINARY_DATA_IN_PLAIN_TEXT_DISPLAY } from '../utils/constants';
|
5
|
-
import { createPDiskDeveloperUILink } from '../utils/developerUI/developerUI';
|
6
6
|
import { prepareSortValue } from '../utils/filters';
|
7
7
|
import { parseMetaCluster } from './parsers/parseMetaCluster';
|
8
8
|
import { parseMetaTenants } from './parsers/parseMetaTenants';
|
@@ -23,7 +23,7 @@ export class YdbEmbeddedAPI extends AxiosWrapper {
|
|
23
23
|
// authUrl - external auth service link, after successful auth additional cookies will be appended
|
24
24
|
// that will allow access to clusters where OIDC proxy is a balancer
|
25
25
|
if (response && response.status === 401 && ((_a = response.data) === null || _a === void 0 ? void 0 : _a.authUrl)) {
|
26
|
-
|
26
|
+
window.location.assign(response.data.authUrl);
|
27
27
|
}
|
28
28
|
return Promise.reject(error);
|
29
29
|
});
|
@@ -31,6 +31,9 @@ export class YdbEmbeddedAPI extends AxiosWrapper {
|
|
31
31
|
getPath(path) {
|
32
32
|
return `${BACKEND !== null && BACKEND !== void 0 ? BACKEND : ''}${path}`;
|
33
33
|
}
|
34
|
+
getClusterCapabilities() {
|
35
|
+
return this.get(this.getPath('/viewer/capabilities'), {}, {});
|
36
|
+
}
|
34
37
|
getClusterInfo(clusterName, { concurrentId, signal } = {}) {
|
35
38
|
return this.get(this.getPath('/viewer/json/cluster'), {
|
36
39
|
name: clusterName,
|
@@ -211,22 +214,24 @@ export class YdbEmbeddedAPI extends AxiosWrapper {
|
|
211
214
|
requestConfig: { signal },
|
212
215
|
});
|
213
216
|
}
|
214
|
-
sendQuery(
|
215
|
-
// Time difference to ensure that timeout from ui will be shown rather than backend error
|
216
|
-
const uiTimeout = 9 * 60 * 1000;
|
217
|
-
const backendTimeout = 10 * 60 * 1000;
|
217
|
+
sendQuery(params, { concurrentId, signal, withRetries } = {}) {
|
218
218
|
/**
|
219
219
|
* Return strings using base64 encoding.
|
220
220
|
* @link https://github.com/ydb-platform/ydb/pull/647
|
221
221
|
*/
|
222
222
|
const base64 = !settingsManager.readUserSettingsValue(BINARY_DATA_IN_PLAIN_TEXT_DISPLAY, true);
|
223
|
-
return this.post(this.getPath(
|
223
|
+
return this.post(this.getPath('/viewer/json/query'), { ...params, base64 }, {}, {
|
224
224
|
concurrentId,
|
225
|
-
timeout:
|
225
|
+
timeout: params.timeout,
|
226
226
|
requestConfig: {
|
227
227
|
signal,
|
228
228
|
'axios-retry': { retries: withRetries ? this.DEFAULT_RETRIES_COUNT : 0 },
|
229
229
|
},
|
230
|
+
headers: params.tracingLevel
|
231
|
+
? {
|
232
|
+
'X-Trace-Verbosity': params.tracingLevel,
|
233
|
+
}
|
234
|
+
: undefined,
|
230
235
|
});
|
231
236
|
}
|
232
237
|
getHotKeys({ path, database, enableSampling }, { concurrentId, signal } = {}) {
|
@@ -239,38 +244,23 @@ export class YdbEmbeddedAPI extends AxiosWrapper {
|
|
239
244
|
getHealthcheckInfo({ database, maxLevel }, { concurrentId, signal } = {}) {
|
240
245
|
return this.get(this.getPath('/viewer/json/healthcheck?merge_records=true'), { database, tenant: database, max_level: maxLevel }, { concurrentId, requestConfig: { signal } });
|
241
246
|
}
|
242
|
-
evictVDisk({ groupId, groupGeneration, failRealmIdx, failDomainIdx, vDiskIdx, }) {
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
},
|
255
|
-
}, {}, {
|
256
|
-
headers: {
|
257
|
-
// This handler requires exactly this string
|
258
|
-
// Automatic headers may not suit
|
259
|
-
Accept: 'application/json',
|
260
|
-
},
|
247
|
+
evictVDisk({ groupId, groupGeneration, failRealmIdx, failDomainIdx, vDiskIdx, force, }) {
|
248
|
+
const params = {
|
249
|
+
group_id: groupId,
|
250
|
+
group_generation_id: groupGeneration,
|
251
|
+
fail_realm_idx: failRealmIdx,
|
252
|
+
fail_domain_idx: failDomainIdx,
|
253
|
+
vdisk_idx: vDiskIdx,
|
254
|
+
force,
|
255
|
+
};
|
256
|
+
const paramsString = qs.stringify(params);
|
257
|
+
const path = this.getPath(`/vdisk/evict?${paramsString}`);
|
258
|
+
return this.post(path, {}, {}, {
|
261
259
|
requestConfig: { 'axios-retry': { retries: 0 } },
|
262
260
|
});
|
263
261
|
}
|
264
|
-
restartPDisk(nodeId, pDiskId) {
|
265
|
-
|
266
|
-
nodeId,
|
267
|
-
pDiskId,
|
268
|
-
host: this.getPath(''),
|
269
|
-
});
|
270
|
-
return this.post(pDiskPath, 'restartPDisk=', {}, {
|
271
|
-
headers: {
|
272
|
-
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
|
273
|
-
},
|
262
|
+
restartPDisk({ nodeId, pDiskId, force, }) {
|
263
|
+
return this.post(this.getPath(`/pdisk/restart?node_id=${nodeId}&pdisk_id=${pDiskId}&force=${force}`), {}, {}, {
|
274
264
|
requestConfig: { 'axios-retry': { retries: 0 } },
|
275
265
|
});
|
276
266
|
}
|
@@ -299,11 +289,8 @@ export class YdbEmbeddedAPI extends AxiosWrapper {
|
|
299
289
|
requestConfig: { signal },
|
300
290
|
});
|
301
291
|
}
|
302
|
-
authenticate(
|
303
|
-
return this.post(this.getPath('/login'), {
|
304
|
-
user,
|
305
|
-
password,
|
306
|
-
}, {});
|
292
|
+
authenticate(params) {
|
293
|
+
return this.post(this.getPath('/login'), params, {});
|
307
294
|
}
|
308
295
|
logout() {
|
309
296
|
return this.post(this.getPath('/logout'), {}, {});
|
@@ -9,19 +9,26 @@ export declare const DEFAULT_USER_SETTINGS: {
|
|
9
9
|
readonly binaryDataInPlainTextDisplay: true;
|
10
10
|
readonly saved_queries: readonly [];
|
11
11
|
readonly saved_tenant_initial_tab: "query";
|
12
|
-
readonly query_initial_mode: "script";
|
13
12
|
readonly last_used_query_action: "execute";
|
14
13
|
readonly asideHeaderCompact: true;
|
15
14
|
readonly partitionsHiddenColumns: readonly [];
|
16
15
|
readonly useBackendParamsForTables: false;
|
17
16
|
readonly useClusterBalancerAsBacked: true;
|
18
|
-
readonly useSeparateDisksPages: false;
|
19
17
|
readonly enableAutocomplete: true;
|
20
18
|
readonly autocompleteOnEnter: true;
|
21
19
|
readonly isHotKeysHelpHidden: false;
|
22
20
|
readonly "auto-refresh-interval": 0;
|
23
|
-
readonly
|
24
|
-
readonly
|
21
|
+
readonly enableTracingLevel: false;
|
22
|
+
readonly showDomainDatabase: false;
|
23
|
+
readonly last_query_execution_settings: undefined;
|
24
|
+
readonly querySettingsBannerLastClosed: undefined;
|
25
|
+
readonly queryExecutionSettings: {
|
26
|
+
queryMode: "script";
|
27
|
+
isolationLevel: "serializable-read-write";
|
28
|
+
timeout: string;
|
29
|
+
statisticsMode: "none";
|
30
|
+
tracingLevel: "detailed";
|
31
|
+
};
|
25
32
|
};
|
26
33
|
declare class SettingsManager {
|
27
34
|
/**
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { TENANT_PAGES_IDS } from '../store/reducers/tenant/constants';
|
2
|
-
import { ASIDE_HEADER_COMPACT_KEY, AUTOCOMPLETE_ON_ENTER, AUTO_REFRESH_INTERVAL, BINARY_DATA_IN_PLAIN_TEXT_DISPLAY, ENABLE_AUTOCOMPLETE, INVERTED_DISKS_KEY, IS_HOTKEYS_HELP_HIDDEN_KEY, LANGUAGE_KEY, LAST_USED_QUERY_ACTION_KEY, PARTITIONS_HIDDEN_COLUMNS_KEY,
|
3
|
-
import { QUERY_ACTIONS
|
2
|
+
import { ASIDE_HEADER_COMPACT_KEY, AUTOCOMPLETE_ON_ENTER, AUTO_REFRESH_INTERVAL, BINARY_DATA_IN_PLAIN_TEXT_DISPLAY, DEFAULT_QUERY_SETTINGS, ENABLE_AUTOCOMPLETE, ENABLE_TRACING_LEVEL_KEY, INVERTED_DISKS_KEY, IS_HOTKEYS_HELP_HIDDEN_KEY, LANGUAGE_KEY, LAST_QUERY_EXECUTION_SETTINGS_KEY, LAST_USED_QUERY_ACTION_KEY, PARTITIONS_HIDDEN_COLUMNS_KEY, QUERY_EXECUTION_SETTINGS_KEY, QUERY_SETTINGS_BANNER_LAST_CLOSED_KEY, QUERY_USE_MULTI_SCHEMA_KEY, SAVED_QUERIES_KEY, SHOW_DOMAIN_DATABASE_KEY, TENANT_INITIAL_PAGE_KEY, THEME_KEY, USE_CLUSTER_BALANCER_AS_BACKEND_KEY, USE_NODES_ENDPOINT_IN_DIAGNOSTICS_KEY, USE_PAGINATED_TABLES_KEY, } from '../utils/constants';
|
3
|
+
import { QUERY_ACTIONS } from '../utils/query';
|
4
4
|
import { parseJson } from '../utils/utils';
|
5
5
|
/** User settings keys and their default values */
|
6
6
|
export const DEFAULT_USER_SETTINGS = {
|
@@ -12,19 +12,20 @@ export const DEFAULT_USER_SETTINGS = {
|
|
12
12
|
[BINARY_DATA_IN_PLAIN_TEXT_DISPLAY]: true,
|
13
13
|
[SAVED_QUERIES_KEY]: [],
|
14
14
|
[TENANT_INITIAL_PAGE_KEY]: TENANT_PAGES_IDS.query,
|
15
|
-
[QUERY_INITIAL_MODE_KEY]: QUERY_MODES.script,
|
16
15
|
[LAST_USED_QUERY_ACTION_KEY]: QUERY_ACTIONS.execute,
|
17
16
|
[ASIDE_HEADER_COMPACT_KEY]: true,
|
18
17
|
[PARTITIONS_HIDDEN_COLUMNS_KEY]: [],
|
19
18
|
[USE_PAGINATED_TABLES_KEY]: false,
|
20
19
|
[USE_CLUSTER_BALANCER_AS_BACKEND_KEY]: true,
|
21
|
-
[USE_SEPARATE_DISKS_PAGES_KEY]: false,
|
22
20
|
[ENABLE_AUTOCOMPLETE]: true,
|
23
21
|
[AUTOCOMPLETE_ON_ENTER]: true,
|
24
22
|
[IS_HOTKEYS_HELP_HIDDEN_KEY]: false,
|
25
23
|
[AUTO_REFRESH_INTERVAL]: 0,
|
26
|
-
[
|
27
|
-
[
|
24
|
+
[ENABLE_TRACING_LEVEL_KEY]: false,
|
25
|
+
[SHOW_DOMAIN_DATABASE_KEY]: false,
|
26
|
+
[LAST_QUERY_EXECUTION_SETTINGS_KEY]: undefined,
|
27
|
+
[QUERY_SETTINGS_BANNER_LAST_CLOSED_KEY]: undefined,
|
28
|
+
[QUERY_EXECUTION_SETTINGS_KEY]: DEFAULT_QUERY_SETTINGS,
|
28
29
|
};
|
29
30
|
class SettingsManager {
|
30
31
|
constructor() {
|
@@ -6,7 +6,7 @@ export declare const customBackend: string | undefined;
|
|
6
6
|
export declare const metaBackend: string | undefined;
|
7
7
|
export declare function configureStore({ aRootReducer, singleClusterMode, api, }?: {
|
8
8
|
aRootReducer?: Reducer<{
|
9
|
-
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All" | "PDiskData", "api">;
|
9
|
+
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All" | "PDiskData" | "UserData", "api">;
|
10
10
|
singleClusterMode: boolean;
|
11
11
|
cluster: import("./reducers/cluster/types").ClusterState;
|
12
12
|
tenant: import("./reducers/tenant/types").TenantState;
|
@@ -28,7 +28,7 @@ export declare function configureStore({ aRootReducer, singleClusterMode, api, }
|
|
28
28
|
}, UnknownAction | import("../types/store/tooltip").ITooltipAction | {
|
29
29
|
readonly type: "schema/SET_SHOW_PREVIEW";
|
30
30
|
readonly data: boolean;
|
31
|
-
} | import("../types/store/executeQuery").ExecuteQueryAction |
|
31
|
+
} | import("../types/store/executeQuery").ExecuteQueryAction | {
|
32
32
|
readonly type: "header/SET_HEADER_BREADCRUMBS";
|
33
33
|
readonly page: import("./reducers/header/types").Page;
|
34
34
|
readonly options: {} | import("./reducers/header/types").TabletsBreadcrumbsOptions | import("./reducers/header/types").TenantBreadcrumbsOptions | import("./reducers/header/types").ClusterBreadcrumbsOptions | import("./reducers/header/types").TabletBreadcrumbsOptions | import("./reducers/header/types").NodeBreadcrumbsOptions;
|
@@ -37,7 +37,7 @@ export declare function configureStore({ aRootReducer, singleClusterMode, api, }
|
|
37
37
|
} | {
|
38
38
|
readonly type: "DISABLE_FULLSCREEN_MODE";
|
39
39
|
} | Action<string>, Partial<{
|
40
|
-
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All" | "PDiskData", "api"> | undefined;
|
40
|
+
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All" | "PDiskData" | "UserData", "api"> | undefined;
|
41
41
|
singleClusterMode: boolean | undefined;
|
42
42
|
cluster: import("./reducers/cluster/types").ClusterState | undefined;
|
43
43
|
tenant: import("./reducers/tenant/types").TenantState | undefined;
|
@@ -51,7 +51,7 @@ export declare function configureStore({ aRootReducer, singleClusterMode, api, }
|
|
51
51
|
settings: import("./reducers/settings/types").SettingsState | undefined;
|
52
52
|
executeTopQueries: import("./reducers/executeTopQueries/types").TopQueriesFilters | undefined;
|
53
53
|
shardsWorkload: import("./reducers/shardsWorkload/types").ShardsWorkloadFilters | undefined;
|
54
|
-
authentication:
|
54
|
+
authentication: import("./reducers/authentication/types").AuthenticationState | undefined;
|
55
55
|
header: never;
|
56
56
|
queryActions: import("./reducers/queryActions/types").QueryActionsState | undefined;
|
57
57
|
fullscreen: never;
|
@@ -62,7 +62,7 @@ export declare function configureStore({ aRootReducer, singleClusterMode, api, }
|
|
62
62
|
}): {
|
63
63
|
history: History<unknown>;
|
64
64
|
store: import("@reduxjs/toolkit").EnhancedStore<{
|
65
|
-
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All" | "PDiskData", "api">;
|
65
|
+
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All" | "PDiskData" | "UserData", "api">;
|
66
66
|
singleClusterMode: boolean;
|
67
67
|
cluster: import("./reducers/cluster/types").ClusterState;
|
68
68
|
tenant: import("./reducers/tenant/types").TenantState;
|
@@ -84,7 +84,7 @@ export declare function configureStore({ aRootReducer, singleClusterMode, api, }
|
|
84
84
|
}, UnknownAction | import("../types/store/tooltip").ITooltipAction | {
|
85
85
|
readonly type: "schema/SET_SHOW_PREVIEW";
|
86
86
|
readonly data: boolean;
|
87
|
-
} | import("../types/store/executeQuery").ExecuteQueryAction |
|
87
|
+
} | import("../types/store/executeQuery").ExecuteQueryAction | {
|
88
88
|
readonly type: "header/SET_HEADER_BREADCRUMBS";
|
89
89
|
readonly page: import("./reducers/header/types").Page;
|
90
90
|
readonly options: {} | import("./reducers/header/types").TabletsBreadcrumbsOptions | import("./reducers/header/types").TenantBreadcrumbsOptions | import("./reducers/header/types").ClusterBreadcrumbsOptions | import("./reducers/header/types").TabletBreadcrumbsOptions | import("./reducers/header/types").NodeBreadcrumbsOptions;
|
@@ -94,7 +94,7 @@ export declare function configureStore({ aRootReducer, singleClusterMode, api, }
|
|
94
94
|
readonly type: "DISABLE_FULLSCREEN_MODE";
|
95
95
|
} | Action<string>, import("@reduxjs/toolkit").Tuple<[import("redux").StoreEnhancer<{
|
96
96
|
dispatch: import("redux-thunk").ThunkDispatch<{
|
97
|
-
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All" | "PDiskData", "api">;
|
97
|
+
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All" | "PDiskData" | "UserData", "api">;
|
98
98
|
singleClusterMode: boolean;
|
99
99
|
cluster: import("./reducers/cluster/types").ClusterState;
|
100
100
|
tenant: import("./reducers/tenant/types").TenantState;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
|
2
|
-
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All" | "PDiskData", "api">;
|
2
|
+
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All" | "PDiskData" | "UserData", "api">;
|
3
3
|
singleClusterMode: boolean;
|
4
4
|
cluster: import("./reducers/cluster/types").ClusterState;
|
5
5
|
tenant: import("./reducers/tenant/types").TenantState;
|
@@ -21,7 +21,7 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
|
|
21
21
|
}, import("redux").UnknownAction | import("../types/store/tooltip").ITooltipAction | {
|
22
22
|
readonly type: "schema/SET_SHOW_PREVIEW";
|
23
23
|
readonly data: boolean;
|
24
|
-
} | import("../types/store/executeQuery").ExecuteQueryAction |
|
24
|
+
} | import("../types/store/executeQuery").ExecuteQueryAction | {
|
25
25
|
readonly type: "header/SET_HEADER_BREADCRUMBS";
|
26
26
|
readonly page: import("./reducers/header/types").Page;
|
27
27
|
readonly options: {} | import("./reducers/header/types").TabletsBreadcrumbsOptions | import("./reducers/header/types").TenantBreadcrumbsOptions | import("./reducers/header/types").ClusterBreadcrumbsOptions | import("./reducers/header/types").TabletBreadcrumbsOptions | import("./reducers/header/types").NodeBreadcrumbsOptions;
|
@@ -31,7 +31,7 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
|
|
31
31
|
readonly type: "DISABLE_FULLSCREEN_MODE";
|
32
32
|
} | import("redux").Action<string>, import("@reduxjs/toolkit").Tuple<[import("redux").StoreEnhancer<{
|
33
33
|
dispatch: import("redux-thunk").ThunkDispatch<{
|
34
|
-
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All" | "PDiskData", "api">;
|
34
|
+
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All" | "PDiskData" | "UserData", "api">;
|
35
35
|
singleClusterMode: boolean;
|
36
36
|
cluster: import("./reducers/cluster/types").ClusterState;
|
37
37
|
tenant: import("./reducers/tenant/types").TenantState;
|
@@ -1,3 +1,3 @@
|
|
1
1
|
import type { BaseQueryFn } from '@reduxjs/toolkit/query';
|
2
|
-
export declare const api: import("@reduxjs/toolkit/query").Api<BaseQueryFn<void, typeof _NEVER, unknown, {}>, {}, "api", "All" | "PDiskData", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
|
2
|
+
export declare const api: import("@reduxjs/toolkit/query").Api<BaseQueryFn<void, typeof _NEVER, unknown, {}>, {}, "api", "All" | "PDiskData" | "UserData", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
|
3
3
|
export declare const _NEVER: unique symbol;
|
@@ -1,25 +1,38 @@
|
|
1
|
-
import type {
|
2
|
-
import type {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
import type { PayloadAction } from '@reduxjs/toolkit';
|
2
|
+
import type { TUserToken } from '../../../types/api/whoami';
|
3
|
+
import type { AuthenticationState } from './types';
|
4
|
+
export declare const slice: import("@reduxjs/toolkit").Slice<AuthenticationState, {
|
5
|
+
setIsAuthenticated: (state: {
|
6
|
+
isAuthenticated: boolean;
|
7
|
+
isUserAllowedToMakeChanges?: boolean;
|
8
|
+
user: string | undefined;
|
9
|
+
}, action: PayloadAction<boolean>) => void;
|
10
|
+
setUser: (state: {
|
11
|
+
isAuthenticated: boolean;
|
12
|
+
isUserAllowedToMakeChanges?: boolean;
|
13
|
+
user: string | undefined;
|
14
|
+
}, action: PayloadAction<TUserToken>) => void;
|
15
|
+
}, "authentication", "authentication", {
|
16
|
+
selectIsUserAllowedToMakeChanges: (state: AuthenticationState) => boolean | undefined;
|
17
|
+
selectUser: (state: AuthenticationState) => string | undefined;
|
18
|
+
}>;
|
19
|
+
declare const _default: import("redux").Reducer<AuthenticationState>;
|
20
|
+
export default _default;
|
21
|
+
export declare const setIsAuthenticated: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "authentication/setIsAuthenticated">, setUser: import("@reduxjs/toolkit").ActionCreatorWithPayload<TUserToken, "authentication/setUser">;
|
22
|
+
export declare const selectIsUserAllowedToMakeChanges: import("reselect").Selector<{
|
23
|
+
authentication: AuthenticationState;
|
24
|
+
}, boolean | undefined, []> & {
|
25
|
+
unwrapped: (state: AuthenticationState) => boolean | undefined;
|
26
|
+
}, selectUser: import("reselect").Selector<{
|
27
|
+
authentication: AuthenticationState;
|
28
|
+
}, string | undefined, []> & {
|
29
|
+
unwrapped: (state: AuthenticationState) => string | undefined;
|
7
30
|
};
|
8
|
-
export declare const
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
readonly FAILURE: "authentication/FETCH_USER_FAILURE";
|
17
|
-
};
|
18
|
-
declare const authentication: Reducer<AuthenticationState, AuthenticationAction>;
|
19
|
-
export declare const authenticate: (user: string, password: string) => (dispatch: import("../..").AppDispatch, getState: import("../..").GetState) => Promise<unknown>;
|
20
|
-
export declare const logout: () => (dispatch: import("../..").AppDispatch, getState: import("../..").GetState) => Promise<unknown>;
|
21
|
-
export declare const getUser: () => (dispatch: import("../..").AppDispatch, getState: import("../..").GetState) => Promise<{
|
22
|
-
user: string | undefined;
|
23
|
-
isUserAllowedToMakeChanges: boolean;
|
24
|
-
} | undefined>;
|
25
|
-
export default authentication;
|
31
|
+
export declare const authenticationApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("../api")._NEVER, unknown, {}>, {
|
32
|
+
whoami: import("@reduxjs/toolkit/query").QueryDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("../api")._NEVER, unknown, {}>, "All" | "PDiskData" | "UserData", TUserToken | undefined, "api">;
|
33
|
+
authenticate: import("@reduxjs/toolkit/query").MutationDefinition<{
|
34
|
+
user: string;
|
35
|
+
password: string;
|
36
|
+
}, import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("../api")._NEVER, unknown, {}>, "All" | "PDiskData" | "UserData", any, "api">;
|
37
|
+
logout: import("@reduxjs/toolkit/query").MutationDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("../api")._NEVER, unknown, {}>, "All" | "PDiskData" | "UserData", any, "api">;
|
38
|
+
}, "api", "All" | "PDiskData" | "UserData", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
|