mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-10-28 17:23:28 +00:00
fix(ui): supported pending services in assets (#13372)
* supported pending services in assets * localization key change * added storage service * sonar fixes * fix broken paths --------- Co-authored-by: 07Himank <112613760+07Himank@users.noreply.github.com>
This commit is contained in:
parent
de2b2c6428
commit
11b034231a
@ -32,7 +32,7 @@ public class DatabaseServiceIndex implements SearchIndex {
|
|||||||
databaseService.getFullyQualifiedName(),
|
databaseService.getFullyQualifiedName(),
|
||||||
suggest.stream().map(SearchSuggest::getInput).collect(Collectors.toList())));
|
suggest.stream().map(SearchSuggest::getInput).collect(Collectors.toList())));
|
||||||
doc.put("suggest", suggest);
|
doc.put("suggest", suggest);
|
||||||
doc.put("entityType", Entity.DASHBOARD_SERVICE);
|
doc.put("entityType", Entity.DATABASE_SERVICE);
|
||||||
if (databaseService.getOwner() != null) {
|
if (databaseService.getOwner() != null) {
|
||||||
doc.put("owner", getOwnerWithDisplayName(databaseService.getOwner()));
|
doc.put("owner", getOwnerWithDisplayName(databaseService.getOwner()));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,6 +29,7 @@ import { DatabaseService } from '../../../generated/entity/services/databaseServ
|
|||||||
import { MessagingService } from '../../../generated/entity/services/messagingService';
|
import { MessagingService } from '../../../generated/entity/services/messagingService';
|
||||||
import { MlmodelService } from '../../../generated/entity/services/mlmodelService';
|
import { MlmodelService } from '../../../generated/entity/services/mlmodelService';
|
||||||
import { PipelineService } from '../../../generated/entity/services/pipelineService';
|
import { PipelineService } from '../../../generated/entity/services/pipelineService';
|
||||||
|
import { SearchService } from '../../../generated/entity/services/searchService';
|
||||||
import { StorageService } from '../../../generated/entity/services/storageService';
|
import { StorageService } from '../../../generated/entity/services/storageService';
|
||||||
|
|
||||||
export interface AssetSelectionModalProps {
|
export interface AssetSelectionModalProps {
|
||||||
@ -57,7 +58,8 @@ export type AssetsUnion =
|
|||||||
| EntityType.PIPELINE_SERVICE
|
| EntityType.PIPELINE_SERVICE
|
||||||
| EntityType.MLMODEL_SERVICE
|
| EntityType.MLMODEL_SERVICE
|
||||||
| EntityType.STORAGE_SERVICE
|
| EntityType.STORAGE_SERVICE
|
||||||
| EntityType.DATABASE_SERVICE;
|
| EntityType.DATABASE_SERVICE
|
||||||
|
| EntityType.SEARCH_SERVICE;
|
||||||
|
|
||||||
export type MapPatchAPIResponse = {
|
export type MapPatchAPIResponse = {
|
||||||
[EntityType.TABLE]: Table;
|
[EntityType.TABLE]: Table;
|
||||||
@ -78,4 +80,5 @@ export type MapPatchAPIResponse = {
|
|||||||
[EntityType.MLMODEL_SERVICE]: MlmodelService;
|
[EntityType.MLMODEL_SERVICE]: MlmodelService;
|
||||||
[EntityType.STORAGE_SERVICE]: StorageService;
|
[EntityType.STORAGE_SERVICE]: StorageService;
|
||||||
[EntityType.DATABASE_SERVICE]: DatabaseService;
|
[EntityType.DATABASE_SERVICE]: DatabaseService;
|
||||||
|
[EntityType.SEARCH_SERVICE]: SearchService;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -59,6 +59,7 @@ import TabsLabel from '../../../components/TabsLabel/TabsLabel.component';
|
|||||||
import { FQN_SEPARATOR_CHAR } from '../../../constants/char.constants';
|
import { FQN_SEPARATOR_CHAR } from '../../../constants/char.constants';
|
||||||
import { DE_ACTIVE_COLOR } from '../../../constants/constants';
|
import { DE_ACTIVE_COLOR } from '../../../constants/constants';
|
||||||
import { EntityField } from '../../../constants/Feeds.constants';
|
import { EntityField } from '../../../constants/Feeds.constants';
|
||||||
|
import { myDataSearchIndex } from '../../../constants/Mydata.constants';
|
||||||
import { EntityType } from '../../../enums/entity.enum';
|
import { EntityType } from '../../../enums/entity.enum';
|
||||||
import {
|
import {
|
||||||
ChangeDescription,
|
ChangeDescription,
|
||||||
@ -69,7 +70,6 @@ import { Operation } from '../../../generated/entity/policies/policy';
|
|||||||
import { Style } from '../../../generated/type/tagLabel';
|
import { Style } from '../../../generated/type/tagLabel';
|
||||||
import { searchData } from '../../../rest/miscAPI';
|
import { searchData } from '../../../rest/miscAPI';
|
||||||
import { getEntityDeleteMessage } from '../../../utils/CommonUtils';
|
import { getEntityDeleteMessage } from '../../../utils/CommonUtils';
|
||||||
import { DomainAssetsSearchIndex } from '../../../utils/DomainUtils';
|
|
||||||
import { getEntityVersionByField } from '../../../utils/EntityVersionUtils';
|
import { getEntityVersionByField } from '../../../utils/EntityVersionUtils';
|
||||||
import Fqn from '../../../utils/Fqn.js';
|
import Fqn from '../../../utils/Fqn.js';
|
||||||
import {
|
import {
|
||||||
@ -221,7 +221,7 @@ const DataProductsDetailsPage = ({
|
|||||||
`(dataProducts.fullyQualifiedName:"${fqn}")`,
|
`(dataProducts.fullyQualifiedName:"${fqn}")`,
|
||||||
'',
|
'',
|
||||||
'',
|
'',
|
||||||
DomainAssetsSearchIndex
|
myDataSearchIndex
|
||||||
);
|
);
|
||||||
|
|
||||||
setAssetCount(res.data.hits.total.value ?? 0);
|
setAssetCount(res.data.hits.total.value ?? 0);
|
||||||
|
|||||||
@ -63,6 +63,7 @@ import TabsLabel from '../../../components/TabsLabel/TabsLabel.component';
|
|||||||
import { FQN_SEPARATOR_CHAR } from '../../../constants/char.constants';
|
import { FQN_SEPARATOR_CHAR } from '../../../constants/char.constants';
|
||||||
import { DE_ACTIVE_COLOR, ERROR_MESSAGE } from '../../../constants/constants';
|
import { DE_ACTIVE_COLOR, ERROR_MESSAGE } from '../../../constants/constants';
|
||||||
import { EntityField } from '../../../constants/Feeds.constants';
|
import { EntityField } from '../../../constants/Feeds.constants';
|
||||||
|
import { myDataSearchIndex } from '../../../constants/Mydata.constants';
|
||||||
import { EntityType } from '../../../enums/entity.enum';
|
import { EntityType } from '../../../enums/entity.enum';
|
||||||
import { SearchIndex } from '../../../enums/search.enum';
|
import { SearchIndex } from '../../../enums/search.enum';
|
||||||
import { CreateDataProduct } from '../../../generated/api/domains/createDataProduct';
|
import { CreateDataProduct } from '../../../generated/api/domains/createDataProduct';
|
||||||
@ -77,7 +78,6 @@ import {
|
|||||||
getEntityDeleteMessage,
|
getEntityDeleteMessage,
|
||||||
getIsErrorMatch,
|
getIsErrorMatch,
|
||||||
} from '../../../utils/CommonUtils';
|
} from '../../../utils/CommonUtils';
|
||||||
import { DomainAssetsSearchIndex } from '../../../utils/DomainUtils';
|
|
||||||
import { getEntityVersionByField } from '../../../utils/EntityVersionUtils';
|
import { getEntityVersionByField } from '../../../utils/EntityVersionUtils';
|
||||||
import Fqn from '../../../utils/Fqn';
|
import Fqn from '../../../utils/Fqn';
|
||||||
import { DEFAULT_ENTITY_PERMISSION } from '../../../utils/PermissionsUtils';
|
import { DEFAULT_ENTITY_PERMISSION } from '../../../utils/PermissionsUtils';
|
||||||
@ -264,7 +264,7 @@ const DomainDetailsPage = ({
|
|||||||
`(domain.fullyQualifiedName:"${fqn}")`,
|
`(domain.fullyQualifiedName:"${fqn}")`,
|
||||||
'',
|
'',
|
||||||
'',
|
'',
|
||||||
DomainAssetsSearchIndex
|
myDataSearchIndex
|
||||||
);
|
);
|
||||||
|
|
||||||
setAssetCount(res.data.hits.total.value ?? 0);
|
setAssetCount(res.data.hits.total.value ?? 0);
|
||||||
|
|||||||
@ -102,7 +102,7 @@ function DashboardSummary({
|
|||||||
|
|
||||||
<SummaryTagsDescription
|
<SummaryTagsDescription
|
||||||
entityDetail={entityDetails}
|
entityDetail={entityDetails}
|
||||||
tags={tags ?? []}
|
tags={tags ?? entityDetails.tags ?? []}
|
||||||
/>
|
/>
|
||||||
<Divider className="m-y-xs" />
|
<Divider className="m-y-xs" />
|
||||||
|
|
||||||
|
|||||||
@ -74,7 +74,7 @@ const DataModelSummary = ({
|
|||||||
|
|
||||||
<SummaryTagsDescription
|
<SummaryTagsDescription
|
||||||
entityDetail={entityDetails}
|
entityDetail={entityDetails}
|
||||||
tags={tags ?? []}
|
tags={tags ?? entityDetails.tags ?? []}
|
||||||
/>
|
/>
|
||||||
<Divider className="m-y-xs" />
|
<Divider className="m-y-xs" />
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2023 Collate.
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
import { Col, Divider, Row } from 'antd';
|
||||||
|
import React, { useMemo } from 'react';
|
||||||
|
import SummaryTagsDescription from '../../../../components/common/SummaryTagsDescription/SummaryTagsDescription.component';
|
||||||
|
import SummaryPanelSkeleton from '../../../../components/Skeleton/SummaryPanelSkeleton/SummaryPanelSkeleton.component';
|
||||||
|
import { ExplorePageTabs } from '../../../../enums/Explore.enum';
|
||||||
|
import {
|
||||||
|
DRAWER_NAVIGATION_OPTIONS,
|
||||||
|
getEntityOverview,
|
||||||
|
} from '../../../../utils/EntityUtils';
|
||||||
|
import CommonEntitySummaryInfo from '../CommonEntitySummaryInfo/CommonEntitySummaryInfo';
|
||||||
|
import { DatabaseSchemaSummaryProps } from './DatabaseSchemaSummary.interface';
|
||||||
|
|
||||||
|
const DatabaseSchemaSummary = ({
|
||||||
|
entityDetails,
|
||||||
|
componentType = DRAWER_NAVIGATION_OPTIONS.explore,
|
||||||
|
tags,
|
||||||
|
isLoading,
|
||||||
|
}: DatabaseSchemaSummaryProps) => {
|
||||||
|
const entityInfo = useMemo(
|
||||||
|
() => getEntityOverview(ExplorePageTabs.DATABASE_SCHEMA, entityDetails),
|
||||||
|
[entityDetails]
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<SummaryPanelSkeleton loading={Boolean(isLoading)}>
|
||||||
|
<>
|
||||||
|
<Row className="m-md" gutter={[0, 4]}>
|
||||||
|
<Col span={24}>
|
||||||
|
<CommonEntitySummaryInfo
|
||||||
|
componentType={componentType}
|
||||||
|
entityInfo={entityInfo}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
|
||||||
|
<Divider className="m-y-xs" />
|
||||||
|
|
||||||
|
<SummaryTagsDescription
|
||||||
|
entityDetail={entityDetails}
|
||||||
|
tags={tags ?? entityDetails.tags ?? []}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
</SummaryPanelSkeleton>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default DatabaseSchemaSummary;
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2023 Collate.
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { DatabaseSchema } from '../../../../generated/entity/data/databaseSchema';
|
||||||
|
import { TagLabel } from '../../../../generated/type/tagLabel';
|
||||||
|
import { DRAWER_NAVIGATION_OPTIONS } from '../../../../utils/EntityUtils';
|
||||||
|
|
||||||
|
export interface DatabaseSchemaSummaryProps {
|
||||||
|
entityDetails: DatabaseSchema;
|
||||||
|
componentType?: DRAWER_NAVIGATION_OPTIONS;
|
||||||
|
tags?: TagLabel[];
|
||||||
|
isLoading?: boolean;
|
||||||
|
}
|
||||||
@ -0,0 +1,92 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2023 Collate.
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
import { Col, Divider, Row, Typography } from 'antd';
|
||||||
|
import React, { useMemo } from 'react';
|
||||||
|
import { useTranslation } from 'react-i18next';
|
||||||
|
import SummaryTagsDescription from '../../../../components/common/SummaryTagsDescription/SummaryTagsDescription.component';
|
||||||
|
import SummaryPanelSkeleton from '../../../../components/Skeleton/SummaryPanelSkeleton/SummaryPanelSkeleton.component';
|
||||||
|
import { SummaryEntityType } from '../../../../enums/EntitySummary.enum';
|
||||||
|
import { ExplorePageTabs } from '../../../../enums/Explore.enum';
|
||||||
|
import { getFormattedEntityData } from '../../../../utils/EntitySummaryPanelUtils';
|
||||||
|
import {
|
||||||
|
DRAWER_NAVIGATION_OPTIONS,
|
||||||
|
getEntityOverview,
|
||||||
|
} from '../../../../utils/EntityUtils';
|
||||||
|
import CommonEntitySummaryInfo from '../CommonEntitySummaryInfo/CommonEntitySummaryInfo';
|
||||||
|
import SummaryList from '../SummaryList/SummaryList.component';
|
||||||
|
import { BasicEntityInfo } from '../SummaryList/SummaryList.interface';
|
||||||
|
import { DatabaseSummaryProps } from './DatabaseSummary.interface';
|
||||||
|
|
||||||
|
const DatabaseSummary = ({
|
||||||
|
entityDetails,
|
||||||
|
componentType = DRAWER_NAVIGATION_OPTIONS.explore,
|
||||||
|
tags,
|
||||||
|
isLoading,
|
||||||
|
}: DatabaseSummaryProps) => {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
const entityInfo = useMemo(
|
||||||
|
() => getEntityOverview(ExplorePageTabs.DATABASE, entityDetails),
|
||||||
|
[entityDetails]
|
||||||
|
);
|
||||||
|
|
||||||
|
const formattedSchemaData: BasicEntityInfo[] = useMemo(
|
||||||
|
() =>
|
||||||
|
getFormattedEntityData(
|
||||||
|
SummaryEntityType.SCHEMAFIELD,
|
||||||
|
entityDetails.databaseSchemas
|
||||||
|
),
|
||||||
|
[entityDetails]
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<SummaryPanelSkeleton loading={Boolean(isLoading)}>
|
||||||
|
<>
|
||||||
|
<Row className="m-md" gutter={[0, 4]}>
|
||||||
|
<Col span={24}>
|
||||||
|
<CommonEntitySummaryInfo
|
||||||
|
componentType={componentType}
|
||||||
|
entityInfo={entityInfo}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
|
||||||
|
<Divider className="m-y-xs" />
|
||||||
|
|
||||||
|
<SummaryTagsDescription
|
||||||
|
entityDetail={entityDetails}
|
||||||
|
tags={tags ?? entityDetails.tags ?? []}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Divider className="m-y-xs" />
|
||||||
|
|
||||||
|
<Row className="m-md" gutter={[0, 8]}>
|
||||||
|
<Col span={24}>
|
||||||
|
<Typography.Text
|
||||||
|
className="summary-panel-section-title"
|
||||||
|
data-testid="schema-header">
|
||||||
|
{t('label.schema')}
|
||||||
|
</Typography.Text>
|
||||||
|
</Col>
|
||||||
|
<Col span={24}>
|
||||||
|
<SummaryList
|
||||||
|
entityType={SummaryEntityType.SCHEMAFIELD}
|
||||||
|
formattedEntityData={formattedSchemaData}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
</>
|
||||||
|
</SummaryPanelSkeleton>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default DatabaseSummary;
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2023 Collate.
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { Database } from '../../../../generated/entity/data/database';
|
||||||
|
import { TagLabel } from '../../../../generated/type/tagLabel';
|
||||||
|
import { DRAWER_NAVIGATION_OPTIONS } from '../../../../utils/EntityUtils';
|
||||||
|
|
||||||
|
export interface DatabaseSummaryProps {
|
||||||
|
entityDetails: Database;
|
||||||
|
componentType?: DRAWER_NAVIGATION_OPTIONS;
|
||||||
|
tags?: TagLabel[];
|
||||||
|
isLoading?: boolean;
|
||||||
|
}
|
||||||
@ -17,10 +17,13 @@ import React, { useEffect, useMemo, useState } from 'react';
|
|||||||
import { Link, useParams } from 'react-router-dom';
|
import { Link, useParams } from 'react-router-dom';
|
||||||
import { ERROR_PLACEHOLDER_TYPE, SIZE } from '../../../enums/common.enum';
|
import { ERROR_PLACEHOLDER_TYPE, SIZE } from '../../../enums/common.enum';
|
||||||
import { EntityType } from '../../../enums/entity.enum';
|
import { EntityType } from '../../../enums/entity.enum';
|
||||||
|
import { ExplorePageTabs } from '../../../enums/Explore.enum';
|
||||||
import { Tag } from '../../../generated/entity/classification/tag';
|
import { Tag } from '../../../generated/entity/classification/tag';
|
||||||
import { Container } from '../../../generated/entity/data/container';
|
import { Container } from '../../../generated/entity/data/container';
|
||||||
import { Dashboard } from '../../../generated/entity/data/dashboard';
|
import { Dashboard } from '../../../generated/entity/data/dashboard';
|
||||||
import { DashboardDataModel } from '../../../generated/entity/data/dashboardDataModel';
|
import { DashboardDataModel } from '../../../generated/entity/data/dashboardDataModel';
|
||||||
|
import { Database } from '../../../generated/entity/data/database';
|
||||||
|
import { DatabaseSchema } from '../../../generated/entity/data/databaseSchema';
|
||||||
import { GlossaryTerm } from '../../../generated/entity/data/glossaryTerm';
|
import { GlossaryTerm } from '../../../generated/entity/data/glossaryTerm';
|
||||||
import { Mlmodel } from '../../../generated/entity/data/mlmodel';
|
import { Mlmodel } from '../../../generated/entity/data/mlmodel';
|
||||||
import { Pipeline } from '../../../generated/entity/data/pipeline';
|
import { Pipeline } from '../../../generated/entity/data/pipeline';
|
||||||
@ -29,6 +32,13 @@ import { StoredProcedure } from '../../../generated/entity/data/storedProcedure'
|
|||||||
import { Table } from '../../../generated/entity/data/table';
|
import { Table } from '../../../generated/entity/data/table';
|
||||||
import { Topic } from '../../../generated/entity/data/topic';
|
import { Topic } from '../../../generated/entity/data/topic';
|
||||||
import { DataProduct } from '../../../generated/entity/domains/dataProduct';
|
import { DataProduct } from '../../../generated/entity/domains/dataProduct';
|
||||||
|
import { DashboardService } from '../../../generated/entity/services/dashboardService';
|
||||||
|
import { DatabaseService } from '../../../generated/entity/services/databaseService';
|
||||||
|
import { MessagingService } from '../../../generated/entity/services/messagingService';
|
||||||
|
import { MlmodelService } from '../../../generated/entity/services/mlmodelService';
|
||||||
|
import { PipelineService } from '../../../generated/entity/services/pipelineService';
|
||||||
|
import { SearchService } from '../../../generated/entity/services/searchService';
|
||||||
|
import { StorageService } from '../../../generated/entity/services/storageService';
|
||||||
import {
|
import {
|
||||||
getEntityLinkFromType,
|
getEntityLinkFromType,
|
||||||
getEntityName,
|
getEntityName,
|
||||||
@ -44,6 +54,8 @@ import {
|
|||||||
} from '../../PermissionProvider/PermissionProvider.interface';
|
} from '../../PermissionProvider/PermissionProvider.interface';
|
||||||
import ContainerSummary from './ContainerSummary/ContainerSummary.component';
|
import ContainerSummary from './ContainerSummary/ContainerSummary.component';
|
||||||
import DashboardSummary from './DashboardSummary/DashboardSummary.component';
|
import DashboardSummary from './DashboardSummary/DashboardSummary.component';
|
||||||
|
import DatabaseSchemaSummary from './DatabaseSchemaSummary/DatabaseSchemaSummary.component';
|
||||||
|
import DatabaseSummary from './DatabaseSummary/DatabaseSummary.component';
|
||||||
import DataModelSummary from './DataModelSummary/DataModelSummary.component';
|
import DataModelSummary from './DataModelSummary/DataModelSummary.component';
|
||||||
import DataProductSummary from './DataProductSummary/DataProductSummary.component';
|
import DataProductSummary from './DataProductSummary/DataProductSummary.component';
|
||||||
import { EntitySummaryPanelProps } from './EntitySummaryPanel.interface';
|
import { EntitySummaryPanelProps } from './EntitySummaryPanel.interface';
|
||||||
@ -52,6 +64,7 @@ import GlossaryTermSummary from './GlossaryTermSummary/GlossaryTermSummary.compo
|
|||||||
import MlModelSummary from './MlModelSummary/MlModelSummary.component';
|
import MlModelSummary from './MlModelSummary/MlModelSummary.component';
|
||||||
import PipelineSummary from './PipelineSummary/PipelineSummary.component';
|
import PipelineSummary from './PipelineSummary/PipelineSummary.component';
|
||||||
import SearchIndexSummary from './SearchIndexSummary/SearchIndexSummary.component';
|
import SearchIndexSummary from './SearchIndexSummary/SearchIndexSummary.component';
|
||||||
|
import ServiceSummary from './ServiceSummary/ServiceSummary.component';
|
||||||
import StoredProcedureSummary from './StoredProcedureSummary/StoredProcedureSummary.component';
|
import StoredProcedureSummary from './StoredProcedureSummary/StoredProcedureSummary.component';
|
||||||
import TableSummary from './TableSummary/TableSummary.component';
|
import TableSummary from './TableSummary/TableSummary.component';
|
||||||
import TagsSummary from './TagsSummary/TagsSummary.component';
|
import TagsSummary from './TagsSummary/TagsSummary.component';
|
||||||
@ -153,6 +166,67 @@ export default function EntitySummaryPanel({
|
|||||||
case EntityType.SEARCH_INDEX:
|
case EntityType.SEARCH_INDEX:
|
||||||
return <SearchIndexSummary entityDetails={entity as SearchIndex} />;
|
return <SearchIndexSummary entityDetails={entity as SearchIndex} />;
|
||||||
|
|
||||||
|
case EntityType.DATABASE:
|
||||||
|
return <DatabaseSummary entityDetails={entity as Database} />;
|
||||||
|
|
||||||
|
case EntityType.DATABASE_SCHEMA:
|
||||||
|
return (
|
||||||
|
<DatabaseSchemaSummary entityDetails={entity as DatabaseSchema} />
|
||||||
|
);
|
||||||
|
|
||||||
|
case EntityType.DATABASE_SERVICE:
|
||||||
|
return (
|
||||||
|
<ServiceSummary
|
||||||
|
entityDetails={entity as DatabaseService}
|
||||||
|
type={ExplorePageTabs.DATABASE_SERVICE}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
case EntityType.MESSAGING_SERVICE:
|
||||||
|
return (
|
||||||
|
<ServiceSummary
|
||||||
|
entityDetails={entity as MessagingService}
|
||||||
|
type={ExplorePageTabs.MESSAGING_SERVICE}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
case EntityType.DASHBOARD_SERVICE:
|
||||||
|
return (
|
||||||
|
<ServiceSummary
|
||||||
|
entityDetails={entity as DashboardService}
|
||||||
|
type={ExplorePageTabs.DASHBOARD_SERVICE}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
case EntityType.PIPELINE_SERVICE:
|
||||||
|
return (
|
||||||
|
<ServiceSummary
|
||||||
|
entityDetails={entity as PipelineService}
|
||||||
|
type={ExplorePageTabs.PIPELINE_SERVICE}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
|
||||||
|
case EntityType.MLMODEL_SERVICE:
|
||||||
|
return (
|
||||||
|
<ServiceSummary
|
||||||
|
entityDetails={entity as MlmodelService}
|
||||||
|
type={ExplorePageTabs.ML_MODEL_SERVICE}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
|
||||||
|
case EntityType.STORAGE_SERVICE:
|
||||||
|
return (
|
||||||
|
<ServiceSummary
|
||||||
|
entityDetails={entity as StorageService}
|
||||||
|
type={ExplorePageTabs.STORAGE_SERVICE}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
|
||||||
|
case EntityType.SEARCH_SERVICE:
|
||||||
|
return (
|
||||||
|
<ServiceSummary
|
||||||
|
entityDetails={entity as SearchService}
|
||||||
|
type={ExplorePageTabs.SEARCH_INDEX_SERVICE}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -72,7 +72,7 @@ function MlModelSummary({
|
|||||||
|
|
||||||
<SummaryTagsDescription
|
<SummaryTagsDescription
|
||||||
entityDetail={entityDetails}
|
entityDetail={entityDetails}
|
||||||
tags={tags ?? []}
|
tags={tags ?? entityDetails.tags ?? []}
|
||||||
/>
|
/>
|
||||||
<Divider className="m-y-xs" />
|
<Divider className="m-y-xs" />
|
||||||
|
|
||||||
|
|||||||
@ -68,7 +68,7 @@ function PipelineSummary({
|
|||||||
|
|
||||||
<SummaryTagsDescription
|
<SummaryTagsDescription
|
||||||
entityDetail={entityDetails}
|
entityDetail={entityDetails}
|
||||||
tags={tags ?? []}
|
tags={tags ?? entityDetails.tags ?? []}
|
||||||
/>
|
/>
|
||||||
<Divider className="m-y-xs" />
|
<Divider className="m-y-xs" />
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2023 Collate.
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
import { Col, Divider, Row } from 'antd';
|
||||||
|
import React, { useMemo } from 'react';
|
||||||
|
import SummaryTagsDescription from '../../../../components/common/SummaryTagsDescription/SummaryTagsDescription.component';
|
||||||
|
import SummaryPanelSkeleton from '../../../../components/Skeleton/SummaryPanelSkeleton/SummaryPanelSkeleton.component';
|
||||||
|
import {
|
||||||
|
DRAWER_NAVIGATION_OPTIONS,
|
||||||
|
getEntityOverview,
|
||||||
|
} from '../../../../utils/EntityUtils';
|
||||||
|
import CommonEntitySummaryInfo from '../CommonEntitySummaryInfo/CommonEntitySummaryInfo';
|
||||||
|
import { ServiceSummaryProps } from './ServiceSummary.interface';
|
||||||
|
|
||||||
|
const ServiceSummary = ({
|
||||||
|
type,
|
||||||
|
entityDetails,
|
||||||
|
componentType = DRAWER_NAVIGATION_OPTIONS.explore,
|
||||||
|
tags,
|
||||||
|
isLoading,
|
||||||
|
}: ServiceSummaryProps) => {
|
||||||
|
const entityInfo = useMemo(
|
||||||
|
() => getEntityOverview(type, entityDetails),
|
||||||
|
[entityDetails]
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<SummaryPanelSkeleton loading={Boolean(isLoading)}>
|
||||||
|
<>
|
||||||
|
<Row className="m-md" gutter={[0, 4]}>
|
||||||
|
<Col span={24}>
|
||||||
|
<CommonEntitySummaryInfo
|
||||||
|
componentType={componentType}
|
||||||
|
entityInfo={entityInfo}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
|
||||||
|
<Divider className="m-y-xs" />
|
||||||
|
|
||||||
|
<SummaryTagsDescription
|
||||||
|
entityDetail={entityDetails}
|
||||||
|
tags={tags ?? entityDetails.tags ?? []}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
</SummaryPanelSkeleton>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default ServiceSummary;
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2023 Collate.
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { EntityServiceUnion } from '../../../../components/Explore/explore.interface';
|
||||||
|
import { ExplorePageTabs } from '../../../../enums/Explore.enum';
|
||||||
|
import { TagLabel } from '../../../../generated/type/tagLabel';
|
||||||
|
import { DRAWER_NAVIGATION_OPTIONS } from '../../../../utils/EntityUtils';
|
||||||
|
|
||||||
|
export interface ServiceSummaryProps {
|
||||||
|
type: ExplorePageTabs;
|
||||||
|
entityDetails: EntityServiceUnion;
|
||||||
|
componentType?: DRAWER_NAVIGATION_OPTIONS;
|
||||||
|
tags?: TagLabel[];
|
||||||
|
isLoading?: boolean;
|
||||||
|
}
|
||||||
@ -57,7 +57,7 @@ const StoredProcedureSummary = ({
|
|||||||
|
|
||||||
<SummaryTagsDescription
|
<SummaryTagsDescription
|
||||||
entityDetail={entityDetails}
|
entityDetail={entityDetails}
|
||||||
tags={tags ?? []}
|
tags={tags ?? entityDetails.tags ?? []}
|
||||||
/>
|
/>
|
||||||
<Divider className="m-y-xs" />
|
<Divider className="m-y-xs" />
|
||||||
|
|
||||||
|
|||||||
@ -234,7 +234,7 @@ function TableSummary({
|
|||||||
|
|
||||||
<SummaryTagsDescription
|
<SummaryTagsDescription
|
||||||
entityDetail={entityDetails}
|
entityDetail={entityDetails}
|
||||||
tags={tags ?? []}
|
tags={tags ?? entityDetails.tags ?? []}
|
||||||
/>
|
/>
|
||||||
<Divider className="m-y-xs" />
|
<Divider className="m-y-xs" />
|
||||||
|
|
||||||
|
|||||||
@ -158,7 +158,7 @@ function TopicSummary({
|
|||||||
|
|
||||||
<SummaryTagsDescription
|
<SummaryTagsDescription
|
||||||
entityDetail={entityDetails}
|
entityDetail={entityDetails}
|
||||||
tags={tags ?? []}
|
tags={tags ?? entityDetails.tags ?? []}
|
||||||
/>
|
/>
|
||||||
<Divider className="m-y-xs" />
|
<Divider className="m-y-xs" />
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,13 @@ import { SearchIndex as SearchIndexEntity } from '../../generated/entity/data/se
|
|||||||
import { StoredProcedure } from '../../generated/entity/data/storedProcedure';
|
import { StoredProcedure } from '../../generated/entity/data/storedProcedure';
|
||||||
import { Table } from '../../generated/entity/data/table';
|
import { Table } from '../../generated/entity/data/table';
|
||||||
import { Topic } from '../../generated/entity/data/topic';
|
import { Topic } from '../../generated/entity/data/topic';
|
||||||
|
import { DashboardService } from '../../generated/entity/services/dashboardService';
|
||||||
|
import { DatabaseService } from '../../generated/entity/services/databaseService';
|
||||||
|
import { MessagingService } from '../../generated/entity/services/messagingService';
|
||||||
|
import { MlmodelService } from '../../generated/entity/services/mlmodelService';
|
||||||
|
import { PipelineService } from '../../generated/entity/services/pipelineService';
|
||||||
|
import { SearchService } from '../../generated/entity/services/searchService';
|
||||||
|
import { StorageService } from '../../generated/entity/services/storageService';
|
||||||
import { Aggregations, SearchResponse } from '../../interface/search.interface';
|
import { Aggregations, SearchResponse } from '../../interface/search.interface';
|
||||||
import { QueryFilterInterface } from '../../pages/explore/ExplorePage.interface';
|
import { QueryFilterInterface } from '../../pages/explore/ExplorePage.interface';
|
||||||
import { SearchDropdownOption } from '../SearchDropdown/SearchDropdown.interface';
|
import { SearchDropdownOption } from '../SearchDropdown/SearchDropdown.interface';
|
||||||
@ -127,7 +134,14 @@ export type EntityUnion =
|
|||||||
| Tag
|
| Tag
|
||||||
| DashboardDataModel
|
| DashboardDataModel
|
||||||
| StoredProcedure
|
| StoredProcedure
|
||||||
| SearchIndexEntity;
|
| SearchIndexEntity
|
||||||
|
| DatabaseService
|
||||||
|
| MessagingService
|
||||||
|
| DashboardService
|
||||||
|
| PipelineService
|
||||||
|
| MlmodelService
|
||||||
|
| StorageService
|
||||||
|
| SearchService;
|
||||||
|
|
||||||
export type EntityWithServices =
|
export type EntityWithServices =
|
||||||
| Topic
|
| Topic
|
||||||
@ -140,6 +154,15 @@ export type EntityWithServices =
|
|||||||
| DatabaseSchema
|
| DatabaseSchema
|
||||||
| SearchIndexEntity;
|
| SearchIndexEntity;
|
||||||
|
|
||||||
|
export type EntityServiceUnion =
|
||||||
|
| DatabaseService
|
||||||
|
| MessagingService
|
||||||
|
| DashboardService
|
||||||
|
| PipelineService
|
||||||
|
| MlmodelService
|
||||||
|
| StorageService
|
||||||
|
| SearchService;
|
||||||
|
|
||||||
export interface EntityDetailsObjectInterface {
|
export interface EntityDetailsObjectInterface {
|
||||||
details: SearchedDataProps['data'][number]['_source'];
|
details: SearchedDataProps['data'][number]['_source'];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -150,6 +150,16 @@ const AssetsTabs = forwardRef(
|
|||||||
containerResponse,
|
containerResponse,
|
||||||
storedProcedureResponse,
|
storedProcedureResponse,
|
||||||
dashboardDataModelResponse,
|
dashboardDataModelResponse,
|
||||||
|
databaseResponse,
|
||||||
|
databaseSchemaResponse,
|
||||||
|
searchResponse,
|
||||||
|
databaseServiceResponse,
|
||||||
|
messagingServiceResponse,
|
||||||
|
dashboardServiceResponse,
|
||||||
|
mlmodelServiceResponse,
|
||||||
|
pipelineServiceResponse,
|
||||||
|
storageServiceResponse,
|
||||||
|
searchServiceResponse,
|
||||||
glossaryResponse,
|
glossaryResponse,
|
||||||
]) => {
|
]) => {
|
||||||
const counts = {
|
const counts = {
|
||||||
@ -163,6 +173,25 @@ const AssetsTabs = forwardRef(
|
|||||||
storedProcedureResponse.data.hits.total.value,
|
storedProcedureResponse.data.hits.total.value,
|
||||||
[EntityType.DASHBOARD_DATA_MODEL]:
|
[EntityType.DASHBOARD_DATA_MODEL]:
|
||||||
dashboardDataModelResponse.data.hits.total.value,
|
dashboardDataModelResponse.data.hits.total.value,
|
||||||
|
[EntityType.DATABASE]: databaseResponse.data.hits.total.value,
|
||||||
|
[EntityType.DATABASE_SCHEMA]:
|
||||||
|
databaseSchemaResponse.data.hits.total.value,
|
||||||
|
[EntityType.SEARCH_INDEX]: searchResponse.data.hits.total.value,
|
||||||
|
[EntityType.DATABASE_SERVICE]:
|
||||||
|
databaseServiceResponse.data.hits.total.value,
|
||||||
|
[EntityType.MESSAGING_SERVICE]:
|
||||||
|
messagingServiceResponse.data.hits.total.value,
|
||||||
|
[EntityType.DASHBOARD_SERVICE]:
|
||||||
|
dashboardServiceResponse.data.hits.total.value,
|
||||||
|
[EntityType.MLMODEL_SERVICE]:
|
||||||
|
mlmodelServiceResponse.data.hits.total.value,
|
||||||
|
[EntityType.PIPELINE_SERVICE]:
|
||||||
|
pipelineServiceResponse.data.hits.total.value,
|
||||||
|
[EntityType.STORAGE_SERVICE]:
|
||||||
|
storageServiceResponse.data.hits.total.value,
|
||||||
|
[EntityType.SEARCH_SERVICE]:
|
||||||
|
searchServiceResponse.data.hits.total.value,
|
||||||
|
|
||||||
[EntityType.GLOSSARY_TERM]:
|
[EntityType.GLOSSARY_TERM]:
|
||||||
type !== AssetsOfEntity.GLOSSARY
|
type !== AssetsOfEntity.GLOSSARY
|
||||||
? glossaryResponse.data.hits.total.value
|
? glossaryResponse.data.hits.total.value
|
||||||
|
|||||||
@ -93,7 +93,7 @@ const Services = ({ serviceName }: ServicesProps) => {
|
|||||||
case ServiceCategory.DATABASE_SERVICES:
|
case ServiceCategory.DATABASE_SERVICES:
|
||||||
return SearchIndex.DATABASE_SERVICE;
|
return SearchIndex.DATABASE_SERVICE;
|
||||||
case ServiceCategory.DASHBOARD_SERVICES:
|
case ServiceCategory.DASHBOARD_SERVICES:
|
||||||
return SearchIndex.DASHBOARD_SERCVICE;
|
return SearchIndex.DASHBOARD_SERVICE;
|
||||||
case ServiceCategory.MESSAGING_SERVICES:
|
case ServiceCategory.MESSAGING_SERVICES:
|
||||||
return SearchIndex.MESSAGING_SERVICE;
|
return SearchIndex.MESSAGING_SERVICE;
|
||||||
case ServiceCategory.PIPELINE_SERVICES:
|
case ServiceCategory.PIPELINE_SERVICES:
|
||||||
|
|||||||
@ -65,6 +65,58 @@ export const AssetsFilterOptions: Array<{
|
|||||||
key: EntityType.DASHBOARD_DATA_MODEL,
|
key: EntityType.DASHBOARD_DATA_MODEL,
|
||||||
value: SearchIndex.DASHBOARD_DATA_MODEL,
|
value: SearchIndex.DASHBOARD_DATA_MODEL,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: i18n.t('label.database'),
|
||||||
|
key: EntityType.DATABASE,
|
||||||
|
value: SearchIndex.DATABASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: i18n.t('label.database-schema'),
|
||||||
|
key: EntityType.DATABASE_SCHEMA,
|
||||||
|
value: SearchIndex.DATABASE_SCHEMA,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
label: i18n.t('label.search-index'),
|
||||||
|
key: EntityType.SEARCH_INDEX,
|
||||||
|
value: SearchIndex.SEARCH_INDEX,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: i18n.t('label.database-service'),
|
||||||
|
key: EntityType.DATABASE_SERVICE,
|
||||||
|
value: SearchIndex.DATABASE_SERVICE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: i18n.t('label.messaging-service'),
|
||||||
|
key: EntityType.MESSAGING_SERVICE,
|
||||||
|
value: SearchIndex.MESSAGING_SERVICE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: i18n.t('label.dashboard-service'),
|
||||||
|
key: EntityType.DASHBOARD_SERVICE,
|
||||||
|
value: SearchIndex.DASHBOARD_SERVICE,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
label: i18n.t('label.pipeline-service'),
|
||||||
|
key: EntityType.PIPELINE_SERVICE,
|
||||||
|
value: SearchIndex.PIPELINE_SERVICE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: i18n.t('label.ml-model-service'),
|
||||||
|
key: EntityType.MLMODEL_SERVICE,
|
||||||
|
value: SearchIndex.ML_MODEL_SERVICE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: i18n.t('label.storage-service'),
|
||||||
|
key: EntityType.STORAGE_SERVICE,
|
||||||
|
value: SearchIndex.STORAGE_SERVICE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: i18n.t('label.search-index-service'),
|
||||||
|
key: EntityType.SEARCH_SERVICE,
|
||||||
|
value: SearchIndex.SEARCH_SERVICE,
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export const ASSETS_INDEXES = [
|
export const ASSETS_INDEXES = [
|
||||||
@ -76,4 +128,14 @@ export const ASSETS_INDEXES = [
|
|||||||
SearchIndex.CONTAINER,
|
SearchIndex.CONTAINER,
|
||||||
SearchIndex.STORED_PROCEDURE,
|
SearchIndex.STORED_PROCEDURE,
|
||||||
SearchIndex.DASHBOARD_DATA_MODEL,
|
SearchIndex.DASHBOARD_DATA_MODEL,
|
||||||
|
SearchIndex.DATABASE,
|
||||||
|
SearchIndex.DATABASE_SCHEMA,
|
||||||
|
SearchIndex.SEARCH_INDEX,
|
||||||
|
SearchIndex.DATABASE_SERVICE,
|
||||||
|
SearchIndex.MESSAGING_SERVICE,
|
||||||
|
SearchIndex.DASHBOARD_SERVICE,
|
||||||
|
SearchIndex.ML_MODEL_SERVICE,
|
||||||
|
SearchIndex.PIPELINE_SERVICE,
|
||||||
|
SearchIndex.STORAGE_SERVICE,
|
||||||
|
SearchIndex.SEARCH_SERVICE,
|
||||||
];
|
];
|
||||||
|
|||||||
@ -15,7 +15,7 @@ import { SearchIndex } from '../enums/search.enum';
|
|||||||
|
|
||||||
export const myDataSearchIndex =
|
export const myDataSearchIndex =
|
||||||
// eslint-disable-next-line max-len
|
// eslint-disable-next-line max-len
|
||||||
`${SearchIndex.TABLE},${SearchIndex.TOPIC},${SearchIndex.DASHBOARD},${SearchIndex.PIPELINE},${SearchIndex.MLMODEL},${SearchIndex.STORED_PROCEDURE},${SearchIndex.DASHBOARD_DATA_MODEL}` as SearchIndex;
|
`${SearchIndex.TABLE},${SearchIndex.TOPIC},${SearchIndex.DASHBOARD},${SearchIndex.PIPELINE},${SearchIndex.MLMODEL},${SearchIndex.STORED_PROCEDURE},${SearchIndex.DASHBOARD_DATA_MODEL},${SearchIndex.DATABASE},${SearchIndex.DATABASE_SCHEMA},${SearchIndex.DATABASE},${SearchIndex.DATABASE_SERVICE},${SearchIndex.MESSAGING_SERVICE},${SearchIndex.PIPELINE_SERVICE},${SearchIndex.SEARCH_SERVICE},${SearchIndex.DASHBOARD_SERVICE},${SearchIndex.ML_MODEL_SERVICE},${SearchIndex.STORAGE_SERVICE},${SearchIndex.SEARCH_INDEX}` as SearchIndex;
|
||||||
|
|
||||||
export const observerOptions = {
|
export const observerOptions = {
|
||||||
root: null,
|
root: null,
|
||||||
|
|||||||
@ -28,4 +28,13 @@ export enum ExplorePageTabs {
|
|||||||
DASHBOARD_DATA_MODEL = 'dashboardDataModel',
|
DASHBOARD_DATA_MODEL = 'dashboardDataModel',
|
||||||
STORED_PROCEDURE = 'storedProcedure',
|
STORED_PROCEDURE = 'storedProcedure',
|
||||||
SEARCH_INDEX = 'searchIndexes',
|
SEARCH_INDEX = 'searchIndexes',
|
||||||
|
DATABASE = 'database',
|
||||||
|
DATABASE_SCHEMA = 'databaseSchema',
|
||||||
|
DATABASE_SERVICE = 'databaseService',
|
||||||
|
MESSAGING_SERVICE = 'messagingService',
|
||||||
|
DASHBOARD_SERVICE = 'dashboardService',
|
||||||
|
PIPELINE_SERVICE = 'pipelineService',
|
||||||
|
ML_MODEL_SERVICE = 'mlmodelService',
|
||||||
|
STORAGE_SERVICE = 'storageService',
|
||||||
|
SEARCH_INDEX_SERVICE = 'searchIndexService',
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,7 +30,7 @@ export enum SearchIndex {
|
|||||||
MESSAGING_SERVICE = 'messaging_service_search_index',
|
MESSAGING_SERVICE = 'messaging_service_search_index',
|
||||||
PIPELINE_SERVICE = 'pipeline_service_search_index',
|
PIPELINE_SERVICE = 'pipeline_service_search_index',
|
||||||
SEARCH_SERVICE = 'search_service_search_index',
|
SEARCH_SERVICE = 'search_service_search_index',
|
||||||
DASHBOARD_SERCVICE = 'dashboard_service_search_index',
|
DASHBOARD_SERVICE = 'dashboard_service_search_index',
|
||||||
ML_MODEL_SERVICE = 'mlmodel_service_search_index',
|
ML_MODEL_SERVICE = 'mlmodel_service_search_index',
|
||||||
STORAGE_SERVICE = 'storage_service_search_index',
|
STORAGE_SERVICE = 'storage_service_search_index',
|
||||||
DOMAIN = 'domain_search_index',
|
DOMAIN = 'domain_search_index',
|
||||||
|
|||||||
@ -185,7 +185,7 @@ export type SearchIndexSearchSourceMapping = {
|
|||||||
[SearchIndex.DATABASE_SCHEMA]: DataBaseSchemaSearchSource;
|
[SearchIndex.DATABASE_SCHEMA]: DataBaseSchemaSearchSource;
|
||||||
[SearchIndex.DATABASE]: DatabaseSearchSource;
|
[SearchIndex.DATABASE]: DatabaseSearchSource;
|
||||||
[SearchIndex.DATABASE_SERVICE]: DatabaseServiceSearchSource;
|
[SearchIndex.DATABASE_SERVICE]: DatabaseServiceSearchSource;
|
||||||
[SearchIndex.DASHBOARD_SERCVICE]: DashboardServiceSearchSource;
|
[SearchIndex.DASHBOARD_SERVICE]: DashboardServiceSearchSource;
|
||||||
[SearchIndex.PIPELINE_SERVICE]: PipelineServiceSearchSource;
|
[SearchIndex.PIPELINE_SERVICE]: PipelineServiceSearchSource;
|
||||||
[SearchIndex.ML_MODEL_SERVICE]: MlModelServiceSearchSource;
|
[SearchIndex.ML_MODEL_SERVICE]: MlModelServiceSearchSource;
|
||||||
[SearchIndex.MESSAGING_SERVICE]: MessagingServiceSearchSource;
|
[SearchIndex.MESSAGING_SERVICE]: MessagingServiceSearchSource;
|
||||||
|
|||||||
@ -205,6 +205,7 @@
|
|||||||
"dashboard-lowercase-plural": "Dashboards",
|
"dashboard-lowercase-plural": "Dashboards",
|
||||||
"dashboard-name": "Dashboard-Name",
|
"dashboard-name": "Dashboard-Name",
|
||||||
"dashboard-plural": "Dashboards",
|
"dashboard-plural": "Dashboards",
|
||||||
|
"dashboard-service": "Dashboard Service",
|
||||||
"data-aggregate": "Datenaggregat",
|
"data-aggregate": "Datenaggregat",
|
||||||
"data-aggregation": "Datenaggregation",
|
"data-aggregation": "Datenaggregation",
|
||||||
"data-asset": "Daten-Asset",
|
"data-asset": "Daten-Asset",
|
||||||
@ -249,6 +250,7 @@
|
|||||||
"database-name": "Datenbankname",
|
"database-name": "Datenbankname",
|
||||||
"database-plural": "Datenbanken",
|
"database-plural": "Datenbanken",
|
||||||
"database-schema": "Datenbankschema",
|
"database-schema": "Datenbankschema",
|
||||||
|
"database-service": "Database Service",
|
||||||
"database-service-name": "Datenbankdienstname",
|
"database-service-name": "Datenbankdienstname",
|
||||||
"date": "Datum",
|
"date": "Datum",
|
||||||
"date-and-time": "Datum & Uhrzeit",
|
"date-and-time": "Datum & Uhrzeit",
|
||||||
@ -566,6 +568,7 @@
|
|||||||
"messaging": "Nachrichtenübermittlung",
|
"messaging": "Nachrichtenübermittlung",
|
||||||
"messaging-lowercase": "nachrichtenübermittlung",
|
"messaging-lowercase": "nachrichtenübermittlung",
|
||||||
"messaging-plural": "Nachrichtenübermittlungen",
|
"messaging-plural": "Nachrichtenübermittlungen",
|
||||||
|
"messaging-service": "Messaging Service",
|
||||||
"metadata": "Metadaten",
|
"metadata": "Metadaten",
|
||||||
"metadata-ingestion": "Metadateninjektion",
|
"metadata-ingestion": "Metadateninjektion",
|
||||||
"metadata-lowercase": "metadaten",
|
"metadata-lowercase": "metadaten",
|
||||||
@ -584,6 +587,7 @@
|
|||||||
"ml-model-lowercase": "Künstliches Intelligenzmodell",
|
"ml-model-lowercase": "Künstliches Intelligenzmodell",
|
||||||
"ml-model-lowercase-plural": "KI-Modelle",
|
"ml-model-lowercase-plural": "KI-Modelle",
|
||||||
"ml-model-plural": "KI-Modelle",
|
"ml-model-plural": "KI-Modelle",
|
||||||
|
"ml-model-service": "Ml Model Service",
|
||||||
"mode": "Modus",
|
"mode": "Modus",
|
||||||
"model": "Modell",
|
"model": "Modell",
|
||||||
"model-name": "Modellname",
|
"model-name": "Modellname",
|
||||||
@ -690,6 +694,7 @@
|
|||||||
"pipeline-lowercase-plural": "pipelines",
|
"pipeline-lowercase-plural": "pipelines",
|
||||||
"pipeline-name": "Pipeline-Name",
|
"pipeline-name": "Pipeline-Name",
|
||||||
"pipeline-plural": "Pipelines",
|
"pipeline-plural": "Pipelines",
|
||||||
|
"pipeline-service": "Pipeline Service",
|
||||||
"pipeline-state": "Pipeline-Status",
|
"pipeline-state": "Pipeline-Status",
|
||||||
"please-enter-value": "Bitte einen Wert für {{name}} eingeben",
|
"please-enter-value": "Bitte einen Wert für {{name}} eingeben",
|
||||||
"please-password-type-first": "Bitte zuerst das Passwort eingeben",
|
"please-password-type-first": "Bitte zuerst das Passwort eingeben",
|
||||||
@ -827,6 +832,7 @@
|
|||||||
"search-index": "Suchindex",
|
"search-index": "Suchindex",
|
||||||
"search-index-ingestion": "Suchindex für die Datenaufnahme",
|
"search-index-ingestion": "Suchindex für die Datenaufnahme",
|
||||||
"search-index-plural": "Suchindizes",
|
"search-index-plural": "Suchindizes",
|
||||||
|
"search-index-service": "Search Index Service",
|
||||||
"search-index-setting-plural": "Suchindexeinstellungen",
|
"search-index-setting-plural": "Suchindexeinstellungen",
|
||||||
"second-plural": "Sekunden",
|
"second-plural": "Sekunden",
|
||||||
"secret-key": "Geheimschlüssel",
|
"secret-key": "Geheimschlüssel",
|
||||||
|
|||||||
@ -205,6 +205,7 @@
|
|||||||
"dashboard-lowercase-plural": "dashboards",
|
"dashboard-lowercase-plural": "dashboards",
|
||||||
"dashboard-name": "Dashboard Name",
|
"dashboard-name": "Dashboard Name",
|
||||||
"dashboard-plural": "Dashboards",
|
"dashboard-plural": "Dashboards",
|
||||||
|
"dashboard-service": "Dashboard Service",
|
||||||
"data-aggregate": "Data Aggregate",
|
"data-aggregate": "Data Aggregate",
|
||||||
"data-aggregation": "Data Aggregation",
|
"data-aggregation": "Data Aggregation",
|
||||||
"data-asset": "Data Asset",
|
"data-asset": "Data Asset",
|
||||||
@ -249,6 +250,7 @@
|
|||||||
"database-name": "Database Name",
|
"database-name": "Database Name",
|
||||||
"database-plural": "Databases",
|
"database-plural": "Databases",
|
||||||
"database-schema": "Database Schema",
|
"database-schema": "Database Schema",
|
||||||
|
"database-service": "Database Service",
|
||||||
"database-service-name": "Database Service Name",
|
"database-service-name": "Database Service Name",
|
||||||
"date": "Date",
|
"date": "Date",
|
||||||
"date-and-time": "Date & Time",
|
"date-and-time": "Date & Time",
|
||||||
@ -566,6 +568,7 @@
|
|||||||
"messaging": "Messaging",
|
"messaging": "Messaging",
|
||||||
"messaging-lowercase": "messaging",
|
"messaging-lowercase": "messaging",
|
||||||
"messaging-plural": "Messagings",
|
"messaging-plural": "Messagings",
|
||||||
|
"messaging-service": "Messaging Service",
|
||||||
"metadata": "Metadata",
|
"metadata": "Metadata",
|
||||||
"metadata-ingestion": "Metadata Ingestion",
|
"metadata-ingestion": "Metadata Ingestion",
|
||||||
"metadata-lowercase": "metadata",
|
"metadata-lowercase": "metadata",
|
||||||
@ -584,6 +587,7 @@
|
|||||||
"ml-model-lowercase": "ML model",
|
"ml-model-lowercase": "ML model",
|
||||||
"ml-model-lowercase-plural": "ML models",
|
"ml-model-lowercase-plural": "ML models",
|
||||||
"ml-model-plural": "ML Models",
|
"ml-model-plural": "ML Models",
|
||||||
|
"ml-model-service": "Ml Model Service",
|
||||||
"mode": "Mode",
|
"mode": "Mode",
|
||||||
"model": "Model",
|
"model": "Model",
|
||||||
"model-name": "Model Name",
|
"model-name": "Model Name",
|
||||||
@ -690,6 +694,7 @@
|
|||||||
"pipeline-lowercase-plural": "pipelines",
|
"pipeline-lowercase-plural": "pipelines",
|
||||||
"pipeline-name": "Pipeline Name",
|
"pipeline-name": "Pipeline Name",
|
||||||
"pipeline-plural": "Pipelines",
|
"pipeline-plural": "Pipelines",
|
||||||
|
"pipeline-service": "Pipeline Service",
|
||||||
"pipeline-state": "Pipeline State",
|
"pipeline-state": "Pipeline State",
|
||||||
"please-enter-value": "Please enter {{name}} value",
|
"please-enter-value": "Please enter {{name}} value",
|
||||||
"please-password-type-first": "Please type password first",
|
"please-password-type-first": "Please type password first",
|
||||||
@ -827,6 +832,7 @@
|
|||||||
"search-index": "Search Index",
|
"search-index": "Search Index",
|
||||||
"search-index-ingestion": "Search Index Ingestion",
|
"search-index-ingestion": "Search Index Ingestion",
|
||||||
"search-index-plural": "Search Indexes",
|
"search-index-plural": "Search Indexes",
|
||||||
|
"search-index-service": "Search Index Service",
|
||||||
"search-index-setting-plural": "Search Index Settings",
|
"search-index-setting-plural": "Search Index Settings",
|
||||||
"second-plural": "Seconds",
|
"second-plural": "Seconds",
|
||||||
"secret-key": "Secret Key",
|
"secret-key": "Secret Key",
|
||||||
|
|||||||
@ -205,6 +205,7 @@
|
|||||||
"dashboard-lowercase-plural": "dashboards",
|
"dashboard-lowercase-plural": "dashboards",
|
||||||
"dashboard-name": "Nombre del dashboard",
|
"dashboard-name": "Nombre del dashboard",
|
||||||
"dashboard-plural": "Dashboards",
|
"dashboard-plural": "Dashboards",
|
||||||
|
"dashboard-service": "Dashboard Service",
|
||||||
"data-aggregate": "Data Aggregate",
|
"data-aggregate": "Data Aggregate",
|
||||||
"data-aggregation": "Data Aggregation",
|
"data-aggregation": "Data Aggregation",
|
||||||
"data-asset": "Activo de datos",
|
"data-asset": "Activo de datos",
|
||||||
@ -249,6 +250,7 @@
|
|||||||
"database-name": "Nombre de la base de datos",
|
"database-name": "Nombre de la base de datos",
|
||||||
"database-plural": "Bases de datos",
|
"database-plural": "Bases de datos",
|
||||||
"database-schema": "Esquema de la base de datos",
|
"database-schema": "Esquema de la base de datos",
|
||||||
|
"database-service": "Database Service",
|
||||||
"database-service-name": "Nombre del servicio de la base de datos",
|
"database-service-name": "Nombre del servicio de la base de datos",
|
||||||
"date": "Fecha",
|
"date": "Fecha",
|
||||||
"date-and-time": "Fecha y hora",
|
"date-and-time": "Fecha y hora",
|
||||||
@ -566,6 +568,7 @@
|
|||||||
"messaging": "Mensajería",
|
"messaging": "Mensajería",
|
||||||
"messaging-lowercase": "mensajería",
|
"messaging-lowercase": "mensajería",
|
||||||
"messaging-plural": "Messagings",
|
"messaging-plural": "Messagings",
|
||||||
|
"messaging-service": "Messaging Service",
|
||||||
"metadata": "Metadatos",
|
"metadata": "Metadatos",
|
||||||
"metadata-ingestion": "Ingesta de Metadatos",
|
"metadata-ingestion": "Ingesta de Metadatos",
|
||||||
"metadata-lowercase": "metadatos",
|
"metadata-lowercase": "metadatos",
|
||||||
@ -584,6 +587,7 @@
|
|||||||
"ml-model-lowercase": "modelo de ML",
|
"ml-model-lowercase": "modelo de ML",
|
||||||
"ml-model-lowercase-plural": "modelos de ML",
|
"ml-model-lowercase-plural": "modelos de ML",
|
||||||
"ml-model-plural": "Modelos de ML",
|
"ml-model-plural": "Modelos de ML",
|
||||||
|
"ml-model-service": "Ml Model Service",
|
||||||
"mode": "Moda",
|
"mode": "Moda",
|
||||||
"model": "Model",
|
"model": "Model",
|
||||||
"model-name": "Nombre del Modelo",
|
"model-name": "Nombre del Modelo",
|
||||||
@ -690,6 +694,7 @@
|
|||||||
"pipeline-lowercase-plural": "pipelines",
|
"pipeline-lowercase-plural": "pipelines",
|
||||||
"pipeline-name": "Nombre de la pipeline",
|
"pipeline-name": "Nombre de la pipeline",
|
||||||
"pipeline-plural": "Pipelines",
|
"pipeline-plural": "Pipelines",
|
||||||
|
"pipeline-service": "Pipeline Service",
|
||||||
"pipeline-state": "Estado de la pipeline",
|
"pipeline-state": "Estado de la pipeline",
|
||||||
"please-enter-value": "Ingrese el valor de {{name}}",
|
"please-enter-value": "Ingrese el valor de {{name}}",
|
||||||
"please-password-type-first": "Ingrese primero la contraseña",
|
"please-password-type-first": "Ingrese primero la contraseña",
|
||||||
@ -827,6 +832,7 @@
|
|||||||
"search-index": "Search Index",
|
"search-index": "Search Index",
|
||||||
"search-index-ingestion": "Search Index Ingestion",
|
"search-index-ingestion": "Search Index Ingestion",
|
||||||
"search-index-plural": "Search Indexes",
|
"search-index-plural": "Search Indexes",
|
||||||
|
"search-index-service": "Search Index Service",
|
||||||
"search-index-setting-plural": "Search Index Settings",
|
"search-index-setting-plural": "Search Index Settings",
|
||||||
"second-plural": "Segundos",
|
"second-plural": "Segundos",
|
||||||
"secret-key": "Clave Secreta",
|
"secret-key": "Clave Secreta",
|
||||||
|
|||||||
@ -205,6 +205,7 @@
|
|||||||
"dashboard-lowercase-plural": "tableaux de bord",
|
"dashboard-lowercase-plural": "tableaux de bord",
|
||||||
"dashboard-name": "Nom du Tableau de Bord",
|
"dashboard-name": "Nom du Tableau de Bord",
|
||||||
"dashboard-plural": "Tableaux de Bord",
|
"dashboard-plural": "Tableaux de Bord",
|
||||||
|
"dashboard-service": "Dashboard Service",
|
||||||
"data-aggregate": "Agrégat de Données",
|
"data-aggregate": "Agrégat de Données",
|
||||||
"data-aggregation": "Agrégation de Données",
|
"data-aggregation": "Agrégation de Données",
|
||||||
"data-asset": "Actif de Données",
|
"data-asset": "Actif de Données",
|
||||||
@ -249,6 +250,7 @@
|
|||||||
"database-name": "Nom de la Base de Données",
|
"database-name": "Nom de la Base de Données",
|
||||||
"database-plural": "Bases de Données",
|
"database-plural": "Bases de Données",
|
||||||
"database-schema": "Schéma de la Base de Données",
|
"database-schema": "Schéma de la Base de Données",
|
||||||
|
"database-service": "Database Service",
|
||||||
"database-service-name": "Nom du Service de la Base de Données",
|
"database-service-name": "Nom du Service de la Base de Données",
|
||||||
"date": "Date",
|
"date": "Date",
|
||||||
"date-and-time": "Date & Heure",
|
"date-and-time": "Date & Heure",
|
||||||
@ -566,6 +568,7 @@
|
|||||||
"messaging": "Messagerie",
|
"messaging": "Messagerie",
|
||||||
"messaging-lowercase": "messagerie",
|
"messaging-lowercase": "messagerie",
|
||||||
"messaging-plural": "Messageries",
|
"messaging-plural": "Messageries",
|
||||||
|
"messaging-service": "Messaging Service",
|
||||||
"metadata": "Métadonnée",
|
"metadata": "Métadonnée",
|
||||||
"metadata-ingestion": "Ingestion des Métadonnées",
|
"metadata-ingestion": "Ingestion des Métadonnées",
|
||||||
"metadata-lowercase": "métadonnées",
|
"metadata-lowercase": "métadonnées",
|
||||||
@ -584,6 +587,7 @@
|
|||||||
"ml-model-lowercase": "Modèle d'Apprentissage Machine",
|
"ml-model-lowercase": "Modèle d'Apprentissage Machine",
|
||||||
"ml-model-lowercase-plural": "Modèles d'Apprentissage Machine",
|
"ml-model-lowercase-plural": "Modèles d'Apprentissage Machine",
|
||||||
"ml-model-plural": "Modèles d'IA",
|
"ml-model-plural": "Modèles d'IA",
|
||||||
|
"ml-model-service": "Ml Model Service",
|
||||||
"mode": "Mode",
|
"mode": "Mode",
|
||||||
"model": "Modèle",
|
"model": "Modèle",
|
||||||
"model-name": "Nom du Modèle",
|
"model-name": "Nom du Modèle",
|
||||||
@ -690,6 +694,7 @@
|
|||||||
"pipeline-lowercase-plural": "pipelines",
|
"pipeline-lowercase-plural": "pipelines",
|
||||||
"pipeline-name": "Nom du Pipeline",
|
"pipeline-name": "Nom du Pipeline",
|
||||||
"pipeline-plural": "Pipelines",
|
"pipeline-plural": "Pipelines",
|
||||||
|
"pipeline-service": "Pipeline Service",
|
||||||
"pipeline-state": "État du Pipeline",
|
"pipeline-state": "État du Pipeline",
|
||||||
"please-enter-value": "Merci d'entrer une valeur pour {{name}} ",
|
"please-enter-value": "Merci d'entrer une valeur pour {{name}} ",
|
||||||
"please-password-type-first": "Merci d'entrer le mot de passe d'abord",
|
"please-password-type-first": "Merci d'entrer le mot de passe d'abord",
|
||||||
@ -827,6 +832,7 @@
|
|||||||
"search-index": "Index de Recherche",
|
"search-index": "Index de Recherche",
|
||||||
"search-index-ingestion": "Index de Recherche pour l'Ingestion",
|
"search-index-ingestion": "Index de Recherche pour l'Ingestion",
|
||||||
"search-index-plural": "Indexes de Recherche",
|
"search-index-plural": "Indexes de Recherche",
|
||||||
|
"search-index-service": "Search Index Service",
|
||||||
"search-index-setting-plural": "Paramètres des Index de Recherche",
|
"search-index-setting-plural": "Paramètres des Index de Recherche",
|
||||||
"second-plural": "Secondes",
|
"second-plural": "Secondes",
|
||||||
"secret-key": "Clé Secrète",
|
"secret-key": "Clé Secrète",
|
||||||
|
|||||||
@ -205,6 +205,7 @@
|
|||||||
"dashboard-lowercase-plural": "dashboards",
|
"dashboard-lowercase-plural": "dashboards",
|
||||||
"dashboard-name": "ダッシュボード名",
|
"dashboard-name": "ダッシュボード名",
|
||||||
"dashboard-plural": "ダッシュボード",
|
"dashboard-plural": "ダッシュボード",
|
||||||
|
"dashboard-service": "Dashboard Service",
|
||||||
"data-aggregate": "Data Aggregate",
|
"data-aggregate": "Data Aggregate",
|
||||||
"data-aggregation": "Data Aggregation",
|
"data-aggregation": "Data Aggregation",
|
||||||
"data-asset": "データアセット",
|
"data-asset": "データアセット",
|
||||||
@ -249,6 +250,7 @@
|
|||||||
"database-name": "データベース名",
|
"database-name": "データベース名",
|
||||||
"database-plural": "データベース",
|
"database-plural": "データベース",
|
||||||
"database-schema": "データベースのスキーマ",
|
"database-schema": "データベースのスキーマ",
|
||||||
|
"database-service": "Database Service",
|
||||||
"database-service-name": "データベースサービス名",
|
"database-service-name": "データベースサービス名",
|
||||||
"date": "日付",
|
"date": "日付",
|
||||||
"date-and-time": "日付と時間",
|
"date-and-time": "日付と時間",
|
||||||
@ -566,6 +568,7 @@
|
|||||||
"messaging": "メッセージング",
|
"messaging": "メッセージング",
|
||||||
"messaging-lowercase": "メッセージング",
|
"messaging-lowercase": "メッセージング",
|
||||||
"messaging-plural": "Messagings",
|
"messaging-plural": "Messagings",
|
||||||
|
"messaging-service": "Messaging Service",
|
||||||
"metadata": "メタデータ",
|
"metadata": "メタデータ",
|
||||||
"metadata-ingestion": "メタデータのインジェスチョン",
|
"metadata-ingestion": "メタデータのインジェスチョン",
|
||||||
"metadata-lowercase": "メタデータ",
|
"metadata-lowercase": "メタデータ",
|
||||||
@ -584,6 +587,7 @@
|
|||||||
"ml-model-lowercase": "ML model",
|
"ml-model-lowercase": "ML model",
|
||||||
"ml-model-lowercase-plural": "ML models",
|
"ml-model-lowercase-plural": "ML models",
|
||||||
"ml-model-plural": "MLモデル",
|
"ml-model-plural": "MLモデル",
|
||||||
|
"ml-model-service": "Ml Model Service",
|
||||||
"mode": "モード",
|
"mode": "モード",
|
||||||
"model": "Model",
|
"model": "Model",
|
||||||
"model-name": "モデル名",
|
"model-name": "モデル名",
|
||||||
@ -690,6 +694,7 @@
|
|||||||
"pipeline-lowercase-plural": "pipelines",
|
"pipeline-lowercase-plural": "pipelines",
|
||||||
"pipeline-name": "パイプライン名",
|
"pipeline-name": "パイプライン名",
|
||||||
"pipeline-plural": "パイプライン",
|
"pipeline-plural": "パイプライン",
|
||||||
|
"pipeline-service": "Pipeline Service",
|
||||||
"pipeline-state": "パイプラインの状態",
|
"pipeline-state": "パイプラインの状態",
|
||||||
"please-enter-value": "{{name}}の値を入力してください",
|
"please-enter-value": "{{name}}の値を入力してください",
|
||||||
"please-password-type-first": "パスワードを入力してください",
|
"please-password-type-first": "パスワードを入力してください",
|
||||||
@ -827,6 +832,7 @@
|
|||||||
"search-index": "Search Index",
|
"search-index": "Search Index",
|
||||||
"search-index-ingestion": "Search Index Ingestion",
|
"search-index-ingestion": "Search Index Ingestion",
|
||||||
"search-index-plural": "Search Indexes",
|
"search-index-plural": "Search Indexes",
|
||||||
|
"search-index-service": "Search Index Service",
|
||||||
"search-index-setting-plural": "Search Index Settings",
|
"search-index-setting-plural": "Search Index Settings",
|
||||||
"second-plural": "秒",
|
"second-plural": "秒",
|
||||||
"secret-key": "Secret Key",
|
"secret-key": "Secret Key",
|
||||||
|
|||||||
@ -205,6 +205,7 @@
|
|||||||
"dashboard-lowercase-plural": "dashboards",
|
"dashboard-lowercase-plural": "dashboards",
|
||||||
"dashboard-name": "Nome do dashboard",
|
"dashboard-name": "Nome do dashboard",
|
||||||
"dashboard-plural": "Dashboards",
|
"dashboard-plural": "Dashboards",
|
||||||
|
"dashboard-service": "Dashboard Service",
|
||||||
"data-aggregate": "Data Aggregate",
|
"data-aggregate": "Data Aggregate",
|
||||||
"data-aggregation": "Data Aggregation",
|
"data-aggregation": "Data Aggregation",
|
||||||
"data-asset": "Recurso de dados",
|
"data-asset": "Recurso de dados",
|
||||||
@ -249,6 +250,7 @@
|
|||||||
"database-name": "Nome do banco de dados",
|
"database-name": "Nome do banco de dados",
|
||||||
"database-plural": "Bancos de dados",
|
"database-plural": "Bancos de dados",
|
||||||
"database-schema": "Schema do banco de dados",
|
"database-schema": "Schema do banco de dados",
|
||||||
|
"database-service": "Database Service",
|
||||||
"database-service-name": "Nome do serviço de banco de dados",
|
"database-service-name": "Nome do serviço de banco de dados",
|
||||||
"date": "data",
|
"date": "data",
|
||||||
"date-and-time": "data e hora",
|
"date-and-time": "data e hora",
|
||||||
@ -566,6 +568,7 @@
|
|||||||
"messaging": "Mensageria",
|
"messaging": "Mensageria",
|
||||||
"messaging-lowercase": "mensageria",
|
"messaging-lowercase": "mensageria",
|
||||||
"messaging-plural": "Messagings",
|
"messaging-plural": "Messagings",
|
||||||
|
"messaging-service": "Messaging Service",
|
||||||
"metadata": "Metadados",
|
"metadata": "Metadados",
|
||||||
"metadata-ingestion": "Ingestão de metadados",
|
"metadata-ingestion": "Ingestão de metadados",
|
||||||
"metadata-lowercase": "Metadados",
|
"metadata-lowercase": "Metadados",
|
||||||
@ -584,6 +587,7 @@
|
|||||||
"ml-model-lowercase": "ML model",
|
"ml-model-lowercase": "ML model",
|
||||||
"ml-model-lowercase-plural": "ML models",
|
"ml-model-lowercase-plural": "ML models",
|
||||||
"ml-model-plural": "Modelos de ML",
|
"ml-model-plural": "Modelos de ML",
|
||||||
|
"ml-model-service": "Ml Model Service",
|
||||||
"mode": "Modo",
|
"mode": "Modo",
|
||||||
"model": "Model",
|
"model": "Model",
|
||||||
"model-name": "Nome do modelo",
|
"model-name": "Nome do modelo",
|
||||||
@ -690,6 +694,7 @@
|
|||||||
"pipeline-lowercase-plural": "pipelines",
|
"pipeline-lowercase-plural": "pipelines",
|
||||||
"pipeline-name": "Nome da pipeline",
|
"pipeline-name": "Nome da pipeline",
|
||||||
"pipeline-plural": "Pipelines",
|
"pipeline-plural": "Pipelines",
|
||||||
|
"pipeline-service": "Pipeline Service",
|
||||||
"pipeline-state": "Estado da pipeline",
|
"pipeline-state": "Estado da pipeline",
|
||||||
"please-enter-value": "Por favor digite o valor de {{name}}",
|
"please-enter-value": "Por favor digite o valor de {{name}}",
|
||||||
"please-password-type-first": "Por favor, digite a senha primeiro",
|
"please-password-type-first": "Por favor, digite a senha primeiro",
|
||||||
@ -827,6 +832,7 @@
|
|||||||
"search-index": "Search Index",
|
"search-index": "Search Index",
|
||||||
"search-index-ingestion": "Search Index Ingestion",
|
"search-index-ingestion": "Search Index Ingestion",
|
||||||
"search-index-plural": "Search Indexes",
|
"search-index-plural": "Search Indexes",
|
||||||
|
"search-index-service": "Search Index Service",
|
||||||
"search-index-setting-plural": "Search Index Settings",
|
"search-index-setting-plural": "Search Index Settings",
|
||||||
"second-plural": "Segundos",
|
"second-plural": "Segundos",
|
||||||
"secret-key": "Chave Secreta",
|
"secret-key": "Chave Secreta",
|
||||||
|
|||||||
@ -205,6 +205,7 @@
|
|||||||
"dashboard-lowercase-plural": "дашборды",
|
"dashboard-lowercase-plural": "дашборды",
|
||||||
"dashboard-name": "Наименование дашборда",
|
"dashboard-name": "Наименование дашборда",
|
||||||
"dashboard-plural": "Дашборды",
|
"dashboard-plural": "Дашборды",
|
||||||
|
"dashboard-service": "Dashboard Service",
|
||||||
"data-aggregate": "Сводные данные",
|
"data-aggregate": "Сводные данные",
|
||||||
"data-aggregation": "Агрегация данных",
|
"data-aggregation": "Агрегация данных",
|
||||||
"data-asset": "Объект данных",
|
"data-asset": "Объект данных",
|
||||||
@ -249,6 +250,7 @@
|
|||||||
"database-name": "Наименование базы данных",
|
"database-name": "Наименование базы данных",
|
||||||
"database-plural": "Базы данных",
|
"database-plural": "Базы данных",
|
||||||
"database-schema": "Схема базы данных",
|
"database-schema": "Схема базы данных",
|
||||||
|
"database-service": "Database Service",
|
||||||
"database-service-name": "Наименование сервиса базы данных",
|
"database-service-name": "Наименование сервиса базы данных",
|
||||||
"date": "Дата",
|
"date": "Дата",
|
||||||
"date-and-time": "Дата & Время",
|
"date-and-time": "Дата & Время",
|
||||||
@ -566,6 +568,7 @@
|
|||||||
"messaging": "Обмен сообщениями",
|
"messaging": "Обмен сообщениями",
|
||||||
"messaging-lowercase": "обмен сообщениями",
|
"messaging-lowercase": "обмен сообщениями",
|
||||||
"messaging-plural": "Обмен сообщениями",
|
"messaging-plural": "Обмен сообщениями",
|
||||||
|
"messaging-service": "Messaging Service",
|
||||||
"metadata": "Метаданные",
|
"metadata": "Метаданные",
|
||||||
"metadata-ingestion": "Получение метаданных",
|
"metadata-ingestion": "Получение метаданных",
|
||||||
"metadata-lowercase": "метаданные",
|
"metadata-lowercase": "метаданные",
|
||||||
@ -584,6 +587,7 @@
|
|||||||
"ml-model-lowercase": "ML модель",
|
"ml-model-lowercase": "ML модель",
|
||||||
"ml-model-lowercase-plural": "ML модели",
|
"ml-model-lowercase-plural": "ML модели",
|
||||||
"ml-model-plural": "ML Модели",
|
"ml-model-plural": "ML Модели",
|
||||||
|
"ml-model-service": "Ml Model Service",
|
||||||
"mode": "Режим",
|
"mode": "Режим",
|
||||||
"model": "Модель",
|
"model": "Модель",
|
||||||
"model-name": "Наименование модели",
|
"model-name": "Наименование модели",
|
||||||
@ -690,6 +694,7 @@
|
|||||||
"pipeline-lowercase-plural": "пайплайны",
|
"pipeline-lowercase-plural": "пайплайны",
|
||||||
"pipeline-name": "Наименование пайплайна",
|
"pipeline-name": "Наименование пайплайна",
|
||||||
"pipeline-plural": "Пайплайны",
|
"pipeline-plural": "Пайплайны",
|
||||||
|
"pipeline-service": "Pipeline Service",
|
||||||
"pipeline-state": "Состояние",
|
"pipeline-state": "Состояние",
|
||||||
"please-enter-value": "Пожалуйста введите значение {{name}} ",
|
"please-enter-value": "Пожалуйста введите значение {{name}} ",
|
||||||
"please-password-type-first": "Пожалуйста, сначала введите пароль",
|
"please-password-type-first": "Пожалуйста, сначала введите пароль",
|
||||||
@ -827,6 +832,7 @@
|
|||||||
"search-index": "Search Index",
|
"search-index": "Search Index",
|
||||||
"search-index-ingestion": "Получение поискового индекса",
|
"search-index-ingestion": "Получение поискового индекса",
|
||||||
"search-index-plural": "Search Indexes",
|
"search-index-plural": "Search Indexes",
|
||||||
|
"search-index-service": "Search Index Service",
|
||||||
"search-index-setting-plural": "Search Index Settings",
|
"search-index-setting-plural": "Search Index Settings",
|
||||||
"second-plural": "Секунды",
|
"second-plural": "Секунды",
|
||||||
"secret-key": "Секретный ключ",
|
"secret-key": "Секретный ключ",
|
||||||
|
|||||||
@ -205,6 +205,7 @@
|
|||||||
"dashboard-lowercase-plural": "仪表板",
|
"dashboard-lowercase-plural": "仪表板",
|
||||||
"dashboard-name": "仪表板名称",
|
"dashboard-name": "仪表板名称",
|
||||||
"dashboard-plural": "仪表板",
|
"dashboard-plural": "仪表板",
|
||||||
|
"dashboard-service": "Dashboard Service",
|
||||||
"data-aggregate": "数据聚合",
|
"data-aggregate": "数据聚合",
|
||||||
"data-aggregation": "数据聚合",
|
"data-aggregation": "数据聚合",
|
||||||
"data-asset": "数据资产",
|
"data-asset": "数据资产",
|
||||||
@ -249,6 +250,7 @@
|
|||||||
"database-name": "数据库名称",
|
"database-name": "数据库名称",
|
||||||
"database-plural": "数据库",
|
"database-plural": "数据库",
|
||||||
"database-schema": "数据库结构",
|
"database-schema": "数据库结构",
|
||||||
|
"database-service": "Database Service",
|
||||||
"database-service-name": "数据库服务名称",
|
"database-service-name": "数据库服务名称",
|
||||||
"date": "日期",
|
"date": "日期",
|
||||||
"date-and-time": "日期和时间",
|
"date-and-time": "日期和时间",
|
||||||
@ -566,6 +568,7 @@
|
|||||||
"messaging": "消息队列",
|
"messaging": "消息队列",
|
||||||
"messaging-lowercase": "消息队列",
|
"messaging-lowercase": "消息队列",
|
||||||
"messaging-plural": "消息队列",
|
"messaging-plural": "消息队列",
|
||||||
|
"messaging-service": "Messaging Service",
|
||||||
"metadata": "元数据",
|
"metadata": "元数据",
|
||||||
"metadata-ingestion": "元数据提取",
|
"metadata-ingestion": "元数据提取",
|
||||||
"metadata-lowercase": "元数据",
|
"metadata-lowercase": "元数据",
|
||||||
@ -584,6 +587,7 @@
|
|||||||
"ml-model-lowercase": "ML模型",
|
"ml-model-lowercase": "ML模型",
|
||||||
"ml-model-lowercase-plural": "ML模型",
|
"ml-model-lowercase-plural": "ML模型",
|
||||||
"ml-model-plural": "ML模型",
|
"ml-model-plural": "ML模型",
|
||||||
|
"ml-model-service": "Ml Model Service",
|
||||||
"mode": "模式",
|
"mode": "模式",
|
||||||
"model": "模型",
|
"model": "模型",
|
||||||
"model-name": "模型名称",
|
"model-name": "模型名称",
|
||||||
@ -690,6 +694,7 @@
|
|||||||
"pipeline-lowercase-plural": "工作流",
|
"pipeline-lowercase-plural": "工作流",
|
||||||
"pipeline-name": "工作流名称",
|
"pipeline-name": "工作流名称",
|
||||||
"pipeline-plural": "工作流",
|
"pipeline-plural": "工作流",
|
||||||
|
"pipeline-service": "Pipeline Service",
|
||||||
"pipeline-state": "工作流状态",
|
"pipeline-state": "工作流状态",
|
||||||
"please-enter-value": "请输入{{name}}值",
|
"please-enter-value": "请输入{{name}}值",
|
||||||
"please-password-type-first": "请先输入密码",
|
"please-password-type-first": "请先输入密码",
|
||||||
@ -827,6 +832,7 @@
|
|||||||
"search-index": "Search Index",
|
"search-index": "Search Index",
|
||||||
"search-index-ingestion": "搜索索引提取",
|
"search-index-ingestion": "搜索索引提取",
|
||||||
"search-index-plural": "Search Indexes",
|
"search-index-plural": "Search Indexes",
|
||||||
|
"search-index-service": "Search Index Service",
|
||||||
"search-index-setting-plural": "Search Index Settings",
|
"search-index-setting-plural": "Search Index Settings",
|
||||||
"second-plural": "秒",
|
"second-plural": "秒",
|
||||||
"secret-key": "秘钥",
|
"secret-key": "秘钥",
|
||||||
|
|||||||
@ -95,6 +95,7 @@ export const getAPIfromSource = (
|
|||||||
case EntityType.MLMODEL_SERVICE:
|
case EntityType.MLMODEL_SERVICE:
|
||||||
case EntityType.STORAGE_SERVICE:
|
case EntityType.STORAGE_SERVICE:
|
||||||
case EntityType.DATABASE_SERVICE:
|
case EntityType.DATABASE_SERVICE:
|
||||||
|
case EntityType.SEARCH_SERVICE:
|
||||||
return (id, queryFields) => {
|
return (id, queryFields) => {
|
||||||
const serviceCat = getServiceCategoryFromEntityType(source);
|
const serviceCat = getServiceCategoryFromEntityType(source);
|
||||||
|
|
||||||
@ -140,6 +141,7 @@ export const getEntityAPIfromSource = (
|
|||||||
case EntityType.MLMODEL_SERVICE:
|
case EntityType.MLMODEL_SERVICE:
|
||||||
case EntityType.STORAGE_SERVICE:
|
case EntityType.STORAGE_SERVICE:
|
||||||
case EntityType.DATABASE_SERVICE:
|
case EntityType.DATABASE_SERVICE:
|
||||||
|
case EntityType.SEARCH_SERVICE:
|
||||||
return (id, queryFields) => {
|
return (id, queryFields) => {
|
||||||
const serviceCat = getServiceCategoryFromEntityType(source);
|
const serviceCat = getServiceCategoryFromEntityType(source);
|
||||||
|
|
||||||
@ -158,6 +160,14 @@ export const getAssetsSearchIndex = (source: AssetsOfEntity) => {
|
|||||||
[EntityType.CONTAINER]: SearchIndex.CONTAINER,
|
[EntityType.CONTAINER]: SearchIndex.CONTAINER,
|
||||||
[EntityType.STORED_PROCEDURE]: SearchIndex.STORED_PROCEDURE,
|
[EntityType.STORED_PROCEDURE]: SearchIndex.STORED_PROCEDURE,
|
||||||
[EntityType.DASHBOARD_DATA_MODEL]: SearchIndex.DASHBOARD_DATA_MODEL,
|
[EntityType.DASHBOARD_DATA_MODEL]: SearchIndex.DASHBOARD_DATA_MODEL,
|
||||||
|
[EntityType.SEARCH_INDEX]: SearchIndex.SEARCH_INDEX,
|
||||||
|
[EntityType.DATABASE_SERVICE]: SearchIndex.DATABASE_SERVICE,
|
||||||
|
[EntityType.MESSAGING_SERVICE]: SearchIndex.MESSAGING_SERVICE,
|
||||||
|
[EntityType.DASHBOARD_SERVICE]: SearchIndex.DASHBOARD_SERVICE,
|
||||||
|
[EntityType.PIPELINE_SERVICE]: SearchIndex.PIPELINE_SERVICE,
|
||||||
|
[EntityType.MLMODEL_SERVICE]: SearchIndex.ML_MODEL_SERVICE,
|
||||||
|
[EntityType.STORAGE_SERVICE]: SearchIndex.STORAGE_SERVICE,
|
||||||
|
[EntityType.SEARCH_SERVICE]: SearchIndex.SEARCH_SERVICE,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (
|
if (
|
||||||
|
|||||||
@ -20,7 +20,6 @@ import {
|
|||||||
NO_DATA_PLACEHOLDER,
|
NO_DATA_PLACEHOLDER,
|
||||||
} from '../constants/constants';
|
} from '../constants/constants';
|
||||||
import { EntityField } from '../constants/Feeds.constants';
|
import { EntityField } from '../constants/Feeds.constants';
|
||||||
import { SearchIndex } from '../enums/search.enum';
|
|
||||||
import { DataProduct } from '../generated/entity/domains/dataProduct';
|
import { DataProduct } from '../generated/entity/domains/dataProduct';
|
||||||
import { Domain } from '../generated/entity/domains/domain';
|
import { Domain } from '../generated/entity/domains/domain';
|
||||||
import { ChangeDescription, EntityReference } from '../generated/entity/type';
|
import { ChangeDescription, EntityReference } from '../generated/entity/type';
|
||||||
@ -110,6 +109,3 @@ export const getUserNames = (
|
|||||||
|
|
||||||
return getOwner(hasPermission, getEntityName(entity.owner), entity.owner);
|
return getOwner(hasPermission, getEntityName(entity.owner), entity.owner);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const DomainAssetsSearchIndex =
|
|
||||||
`${SearchIndex.DASHBOARD},${SearchIndex.TABLE},${SearchIndex.TOPIC},${SearchIndex.PIPELINE},${SearchIndex.MLMODEL},${SearchIndex.GLOSSARY},${SearchIndex.CONTAINER}` as SearchIndex;
|
|
||||||
|
|||||||
@ -33,6 +33,7 @@ import {
|
|||||||
LineagePos,
|
LineagePos,
|
||||||
} from '../components/Entity/EntityLineage/EntityLineage.interface';
|
} from '../components/Entity/EntityLineage/EntityLineage.interface';
|
||||||
import {
|
import {
|
||||||
|
EntityServiceUnion,
|
||||||
EntityUnion,
|
EntityUnion,
|
||||||
EntityWithServices,
|
EntityWithServices,
|
||||||
} from '../components/Explore/explore.interface';
|
} from '../components/Explore/explore.interface';
|
||||||
@ -96,6 +97,7 @@ import { DataProduct } from '../generated/entity/domains/dataProduct';
|
|||||||
import { Edge, EntityLineage } from '../generated/type/entityLineage';
|
import { Edge, EntityLineage } from '../generated/type/entityLineage';
|
||||||
import { EntityReference } from '../generated/type/entityUsage';
|
import { EntityReference } from '../generated/type/entityUsage';
|
||||||
import { TagLabel } from '../generated/type/tagLabel';
|
import { TagLabel } from '../generated/type/tagLabel';
|
||||||
|
import { UsageDetails } from '../generated/type/usageDetails';
|
||||||
import { Votes } from '../generated/type/votes';
|
import { Votes } from '../generated/type/votes';
|
||||||
import { EntityFieldThreadCount } from '../interface/feed.interface';
|
import { EntityFieldThreadCount } from '../interface/feed.interface';
|
||||||
import {
|
import {
|
||||||
@ -188,6 +190,11 @@ export const getOwnerNameWithProfilePic = (
|
|||||||
</div>
|
</div>
|
||||||
) : null;
|
) : null;
|
||||||
|
|
||||||
|
const getUsageData = (usageSummary: UsageDetails | undefined) =>
|
||||||
|
!isNil(usageSummary?.weeklyStats?.percentileRank)
|
||||||
|
? getUsagePercentile(usageSummary?.weeklyStats?.percentileRank ?? 0)
|
||||||
|
: NO_DATA;
|
||||||
|
|
||||||
const getTableFieldsFromTableDetails = (tableDetails: Table) => {
|
const getTableFieldsFromTableDetails = (tableDetails: Table) => {
|
||||||
const {
|
const {
|
||||||
fullyQualifiedName,
|
fullyQualifiedName,
|
||||||
@ -206,10 +213,6 @@ const getTableFieldsFromTableDetails = (tableDetails: Table) => {
|
|||||||
|
|
||||||
const tier = getTierFromTableTags(tags ?? []);
|
const tier = getTierFromTableTags(tags ?? []);
|
||||||
|
|
||||||
const usage = !isNil(usageSummary?.weeklyStats?.percentileRank)
|
|
||||||
? getUsagePercentile(usageSummary?.weeklyStats?.percentileRank ?? 0)
|
|
||||||
: NO_DATA;
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
fullyQualifiedName,
|
fullyQualifiedName,
|
||||||
owner,
|
owner,
|
||||||
@ -217,7 +220,7 @@ const getTableFieldsFromTableDetails = (tableDetails: Table) => {
|
|||||||
database,
|
database,
|
||||||
schema,
|
schema,
|
||||||
tier,
|
tier,
|
||||||
usage,
|
usage: getUsageData(usageSummary),
|
||||||
profile,
|
profile,
|
||||||
columns,
|
columns,
|
||||||
tableType,
|
tableType,
|
||||||
@ -742,6 +745,140 @@ const getStoredProcedureOverview = (
|
|||||||
return overview;
|
return overview;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getDatabaseOverview = (databaseDetails: Database) => {
|
||||||
|
const { owner, service, tags, usageSummary } = databaseDetails;
|
||||||
|
|
||||||
|
const tier = getTierFromTableTags(tags ?? []);
|
||||||
|
|
||||||
|
const overview = [
|
||||||
|
{
|
||||||
|
name: i18next.t('label.owner'),
|
||||||
|
value:
|
||||||
|
getOwnerNameWithProfilePic(owner) ??
|
||||||
|
i18next.t('label.no-entity', {
|
||||||
|
entity: i18next.t('label.owner'),
|
||||||
|
}),
|
||||||
|
url: getOwnerValue(owner as EntityReference),
|
||||||
|
isLink: !isEmpty(owner?.name),
|
||||||
|
visible: [DRAWER_NAVIGATION_OPTIONS.explore],
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
name: i18next.t('label.tier'),
|
||||||
|
value: tier ? tier.split(FQN_SEPARATOR_CHAR)[1] : NO_DATA,
|
||||||
|
isLink: false,
|
||||||
|
visible: [DRAWER_NAVIGATION_OPTIONS.explore],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: i18next.t('label.service'),
|
||||||
|
value: service.fullyQualifiedName || NO_DATA,
|
||||||
|
url: getServiceDetailsPath(
|
||||||
|
service.fullyQualifiedName ?? '',
|
||||||
|
ServiceCategory.DATABASE_SERVICES
|
||||||
|
),
|
||||||
|
isLink: true,
|
||||||
|
visible: [DRAWER_NAVIGATION_OPTIONS.explore],
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
name: i18next.t('label.usage'),
|
||||||
|
value: getUsageData(usageSummary),
|
||||||
|
isLink: false,
|
||||||
|
visible: [DRAWER_NAVIGATION_OPTIONS.explore],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
return overview;
|
||||||
|
};
|
||||||
|
|
||||||
|
const getDatabaseSchemaOverview = (databaseSchemaDetails: DatabaseSchema) => {
|
||||||
|
const { owner, service, tags, usageSummary, database } =
|
||||||
|
databaseSchemaDetails;
|
||||||
|
|
||||||
|
const tier = getTierFromTableTags(tags ?? []);
|
||||||
|
|
||||||
|
const overview = [
|
||||||
|
{
|
||||||
|
name: i18next.t('label.owner'),
|
||||||
|
value:
|
||||||
|
getOwnerNameWithProfilePic(owner) ??
|
||||||
|
i18next.t('label.no-entity', {
|
||||||
|
entity: i18next.t('label.owner'),
|
||||||
|
}),
|
||||||
|
url: getOwnerValue(owner as EntityReference),
|
||||||
|
isLink: !isEmpty(owner?.name),
|
||||||
|
visible: [DRAWER_NAVIGATION_OPTIONS.explore],
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
name: i18next.t('label.tier'),
|
||||||
|
value: tier ? tier.split(FQN_SEPARATOR_CHAR)[1] : NO_DATA,
|
||||||
|
isLink: false,
|
||||||
|
visible: [DRAWER_NAVIGATION_OPTIONS.explore],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: i18next.t('label.service'),
|
||||||
|
value: service.fullyQualifiedName ?? NO_DATA,
|
||||||
|
url: getServiceDetailsPath(
|
||||||
|
service.fullyQualifiedName ?? '',
|
||||||
|
ServiceCategory.DATABASE_SERVICES
|
||||||
|
),
|
||||||
|
isLink: true,
|
||||||
|
visible: [DRAWER_NAVIGATION_OPTIONS.explore],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: i18next.t('label.database'),
|
||||||
|
value: database.fullyQualifiedName ?? NO_DATA,
|
||||||
|
url: getDatabaseDetailsPath(database.fullyQualifiedName ?? ''),
|
||||||
|
isLink: true,
|
||||||
|
visible: [DRAWER_NAVIGATION_OPTIONS.explore],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: i18next.t('label.usage'),
|
||||||
|
value: getUsageData(usageSummary),
|
||||||
|
isLink: false,
|
||||||
|
visible: [DRAWER_NAVIGATION_OPTIONS.explore],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
return overview;
|
||||||
|
};
|
||||||
|
|
||||||
|
const getEntityServiceOverview = (serviceDetails: EntityServiceUnion) => {
|
||||||
|
const { owner, tags, serviceType } = serviceDetails;
|
||||||
|
|
||||||
|
const tier = getTierFromTableTags(tags ?? []);
|
||||||
|
|
||||||
|
const overview = [
|
||||||
|
{
|
||||||
|
name: i18next.t('label.owner'),
|
||||||
|
value:
|
||||||
|
getOwnerNameWithProfilePic(owner) ??
|
||||||
|
i18next.t('label.no-entity', {
|
||||||
|
entity: i18next.t('label.owner'),
|
||||||
|
}),
|
||||||
|
url: getOwnerValue(owner as EntityReference),
|
||||||
|
isLink: !isEmpty(owner?.name),
|
||||||
|
visible: [DRAWER_NAVIGATION_OPTIONS.explore],
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
name: i18next.t('label.tier'),
|
||||||
|
value: tier ? tier.split(FQN_SEPARATOR_CHAR)[1] : NO_DATA,
|
||||||
|
isLink: false,
|
||||||
|
visible: [DRAWER_NAVIGATION_OPTIONS.explore],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: i18next.t('label.service-type'),
|
||||||
|
value: serviceType,
|
||||||
|
isLink: false,
|
||||||
|
visible: [DRAWER_NAVIGATION_OPTIONS.explore],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
return overview;
|
||||||
|
};
|
||||||
|
|
||||||
export const getEntityOverview = (
|
export const getEntityOverview = (
|
||||||
type: string,
|
type: string,
|
||||||
entityDetail: EntityUnion
|
entityDetail: EntityUnion
|
||||||
@ -778,6 +915,23 @@ export const getEntityOverview = (
|
|||||||
return getStoredProcedureOverview(entityDetail as StoredProcedure);
|
return getStoredProcedureOverview(entityDetail as StoredProcedure);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case ExplorePageTabs.DATABASE: {
|
||||||
|
return getDatabaseOverview(entityDetail as Database);
|
||||||
|
}
|
||||||
|
|
||||||
|
case ExplorePageTabs.DATABASE_SCHEMA: {
|
||||||
|
return getDatabaseSchemaOverview(entityDetail as DatabaseSchema);
|
||||||
|
}
|
||||||
|
|
||||||
|
case ExplorePageTabs.DATABASE_SERVICE:
|
||||||
|
case ExplorePageTabs.MESSAGING_SERVICE:
|
||||||
|
case ExplorePageTabs.DASHBOARD_SERVICE:
|
||||||
|
case ExplorePageTabs.ML_MODEL_SERVICE:
|
||||||
|
case ExplorePageTabs.PIPELINE_SERVICE:
|
||||||
|
case ExplorePageTabs.SEARCH_INDEX_SERVICE: {
|
||||||
|
return getEntityServiceOverview(entityDetail as EntityServiceUnion);
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
@ -1160,6 +1314,8 @@ export const getEntityLinkFromType = (
|
|||||||
return getContainerDetailPath(fullyQualifiedName);
|
return getContainerDetailPath(fullyQualifiedName);
|
||||||
case EntityType.DATABASE:
|
case EntityType.DATABASE:
|
||||||
return getDatabaseDetailsPath(fullyQualifiedName);
|
return getDatabaseDetailsPath(fullyQualifiedName);
|
||||||
|
case EntityType.DATABASE_SCHEMA:
|
||||||
|
return getDatabaseSchemaDetailsPath(fullyQualifiedName);
|
||||||
case EntityType.DATA_PRODUCT:
|
case EntityType.DATA_PRODUCT:
|
||||||
return getDataProductsDetailsPath(getEncodedFqn(fullyQualifiedName));
|
return getDataProductsDetailsPath(getEncodedFqn(fullyQualifiedName));
|
||||||
case EntityType.DASHBOARD_DATA_MODEL:
|
case EntityType.DASHBOARD_DATA_MODEL:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user