diff --git a/package-lock.json b/package-lock.json index 853a00077c..503ddff7a2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,7 @@ "use-query-params": "^2.2.1", "uuid": "^10.0.0", "web-vitals": "^1.1.2", - "ydb-ui-components": "^5.2.0", + "ydb-ui-components": "^5.3.0", "zod": "^3.24.1" }, "devDependencies": { @@ -29853,9 +29853,10 @@ } }, "node_modules/ydb-ui-components": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ydb-ui-components/-/ydb-ui-components-5.2.0.tgz", - "integrity": "sha512-7AdT4iFznQKXEVbUaqjWsdH/LA/WbSVwyxsgcwX5e2rUCvxi6Hsdd1gGFwfHslcYqHBTDbInUJol6v5kaLS9nQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ydb-ui-components/-/ydb-ui-components-5.3.0.tgz", + "integrity": "sha512-mgpOEACtOdZyvbmisHIW14AX+mUglGuMf9HBeSudzaIE1XtmJtdjH8k0KSMkuHuLOEhUZ7PbpHCovIIUIZDTXA==", + "license": "MIT", "dependencies": { "@bem-react/classname": "^1.6.0", "react-list": "^0.8.17", diff --git a/package.json b/package.json index e3531f8855..6e894fbaed 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "use-query-params": "^2.2.1", "uuid": "^10.0.0", "web-vitals": "^1.1.2", - "ydb-ui-components": "^5.2.0", + "ydb-ui-components": "^5.3.0", "zod": "^3.24.1" }, "scripts": { diff --git a/src/containers/Tenant/Diagnostics/DiagnosticsPages.ts b/src/containers/Tenant/Diagnostics/DiagnosticsPages.ts index 2768cb85f6..312d9cf059 100644 --- a/src/containers/Tenant/Diagnostics/DiagnosticsPages.ts +++ b/src/containers/Tenant/Diagnostics/DiagnosticsPages.ts @@ -175,6 +175,8 @@ const EXTERNAL_TABLE_PAGES = [overview, schema, describe, access]; const VIEW_PAGES = [overview, schema, describe, access]; +const STREAMING_QUERY_PAGES = [overview, topShards, nodes, describe, access]; + // verbose mapping to guarantee correct tabs for new path types // TS will error when a new type is added but not mapped here const pathTypeToPages: Record = { @@ -198,6 +200,8 @@ const pathTypeToPages: Record = { [EPathType.EPathTypeExternalDataSource]: EXTERNAL_DATA_SOURCE_PAGES, [EPathType.EPathTypeExternalTable]: EXTERNAL_TABLE_PAGES, + [EPathType.EPathTypeStreamingQuery]: STREAMING_QUERY_PAGES, + [EPathType.EPathTypeView]: VIEW_PAGES, [EPathType.EPathTypeReplication]: ASYNC_REPLICATION_PAGES, diff --git a/src/containers/Tenant/Diagnostics/Overview/Overview.tsx b/src/containers/Tenant/Diagnostics/Overview/Overview.tsx index 488ceb886f..4e4e17aa5f 100644 --- a/src/containers/Tenant/Diagnostics/Overview/Overview.tsx +++ b/src/containers/Tenant/Diagnostics/Overview/Overview.tsx @@ -77,6 +77,7 @@ function Overview({type, path, database, databaseFullPath}: OverviewProps) { data={data} /> ), + [EPathType.EPathTypeStreamingQuery]: undefined, }; return (type && pathTypeToComponent[type]?.()) || ; diff --git a/src/containers/Tenant/ObjectSummary/ObjectSummary.tsx b/src/containers/Tenant/ObjectSummary/ObjectSummary.tsx index 3035d20802..c3fe7b3e86 100644 --- a/src/containers/Tenant/ObjectSummary/ObjectSummary.tsx +++ b/src/containers/Tenant/ObjectSummary/ObjectSummary.tsx @@ -343,6 +343,7 @@ export function ObjectSummary({ }, ]; }, + [EPathType.EPathTypeStreamingQuery]: undefined, }; const pathTypeOverview = (PathType && getPathTypeOverview[PathType]?.()) || []; diff --git a/src/containers/Tenant/i18n/en.json b/src/containers/Tenant/i18n/en.json index 07d30799a9..4ff6ad3ca3 100644 --- a/src/containers/Tenant/i18n/en.json +++ b/src/containers/Tenant/i18n/en.json @@ -90,5 +90,6 @@ "entity-name_resource-pool": "Resource Pool", "entity-name_secondary-index-table": "Secondary Index Table", "entity-name_vector-index-table": "Vector Index Table", - "entity-name_fulltext-index-table": "Fulltext Index Table" + "entity-name_fulltext-index-table": "Fulltext Index Table", + "entity-name_streaming_query": "Streaming Query" } diff --git a/src/containers/Tenant/utils/controls.tsx b/src/containers/Tenant/utils/controls.tsx index 4cbaca6787..4feccde5d5 100644 --- a/src/containers/Tenant/utils/controls.tsx +++ b/src/containers/Tenant/utils/controls.tsx @@ -87,6 +87,8 @@ export const getSchemaControls = external_data_source: undefined, view: openPreview, + + streaming_query: undefined, }; return nodeTypeToControls[type]; diff --git a/src/containers/Tenant/utils/schema.ts b/src/containers/Tenant/utils/schema.ts index fca7b829a3..751670b521 100644 --- a/src/containers/Tenant/utils/schema.ts +++ b/src/containers/Tenant/utils/schema.ts @@ -45,6 +45,8 @@ const pathTypeToNodeType: Record [EPathType.EPathTypeReplication]: 'async_replication', [EPathType.EPathTypeTransfer]: 'transfer', [EPathType.EPathTypeResourcePool]: 'resource_pool', + + [EPathType.EPathTypeStreamingQuery]: 'streaming_query', }; export const nodeTableTypeToPathType: Partial> = { @@ -94,6 +96,8 @@ const pathTypeToEntityName: Record = { [EPathType.EPathTypeExternalDataSource]: i18n('entity-name_external-data-source'), [EPathType.EPathTypeExternalTable]: i18n('entity-name_external-table'), + [EPathType.EPathTypeStreamingQuery]: i18n('entity-name_streaming_query'), + [EPathType.EPathTypeView]: i18n('entity-name_view'), [EPathType.EPathTypeReplication]: i18n('entity-name_async-replication'), @@ -154,6 +158,7 @@ const pathTypeToIsTable: Record = { [EPathType.EPathTypeReplication]: false, [EPathType.EPathTypeTransfer]: false, [EPathType.EPathTypeResourcePool]: false, + [EPathType.EPathTypeStreamingQuery]: false, }; //if add entity with tableType, make sure that Schema is available in Diagnostics section @@ -194,6 +199,8 @@ const pathTypeToIsColumn: Record = { [EPathType.EPathTypeExternalDataSource]: false, [EPathType.EPathTypeExternalTable]: false, + [EPathType.EPathTypeStreamingQuery]: false, + [EPathType.EPathTypeView]: false, [EPathType.EPathTypeReplication]: false, @@ -222,6 +229,8 @@ const pathTypeToIsDatabase: Record = { [EPathType.EPathTypeExternalDataSource]: false, [EPathType.EPathTypeExternalTable]: false, + [EPathType.EPathTypeStreamingQuery]: false, + [EPathType.EPathTypeView]: false, [EPathType.EPathTypeReplication]: false, @@ -272,6 +281,7 @@ const pathTypeToChildless: Record = { [EPathType.EPathTypeSubDomain]: false, [EPathType.EPathTypeTableIndex]: false, [EPathType.EPathTypeExtSubDomain]: false, + [EPathType.EPathTypeStreamingQuery]: false, }; export const isChildlessPathType = (type?: EPathType, subType?: EPathSubType) => diff --git a/src/containers/Tenant/utils/schemaActions.tsx b/src/containers/Tenant/utils/schemaActions.tsx index 135b237092..27a8be54a3 100644 --- a/src/containers/Tenant/utils/schemaActions.tsx +++ b/src/containers/Tenant/utils/schemaActions.tsx @@ -361,6 +361,8 @@ export const getActions = external_data_source: EXTERNAL_DATA_SOURCE_SET, view: VIEW_SET, + + streaming_query: JUST_COPY, }; return nodeTypeToActions[type]; diff --git a/src/types/api/schema/schema.ts b/src/types/api/schema/schema.ts index df2909125a..319268cc69 100644 --- a/src/types/api/schema/schema.ts +++ b/src/types/api/schema/schema.ts @@ -301,6 +301,8 @@ export enum EPathType { EPathTypeReplication = 'EPathTypeReplication', EPathTypeTransfer = 'EPathTypeTransfer', EPathTypeResourcePool = 'EPathTypeResourcePool', + + EPathTypeStreamingQuery = 'EPathTypeStreamingQuery', } export enum EPathSubType {