diff --git a/openmetadata-ui/src/main/resources/ui/src/components/recently-viewed/RecentlyViewed.tsx b/openmetadata-ui/src/main/resources/ui/src/components/recently-viewed/RecentlyViewed.tsx index b874b143ce2..18573b74d68 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/recently-viewed/RecentlyViewed.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/recently-viewed/RecentlyViewed.tsx @@ -48,7 +48,7 @@ const RecentlyViewed: FunctionComponent = () => { case EntityType.DATASET: { const res = await getTableDetailsByFQN( oData.fqn, - 'database, usageSummary, tags, owner,columns' + 'usageSummary, tags, owner,columns' ); const { @@ -79,7 +79,7 @@ const RecentlyViewed: FunctionComponent = () => { break; } case EntityType.TOPIC: { - const res = await getTopicByFqn(oData.fqn, 'owner, service, tags'); + const res = await getTopicByFqn(oData.fqn, 'owner, tags'); const { description, id, name, tags, owner, fullyQualifiedName } = res.data; @@ -100,7 +100,7 @@ const RecentlyViewed: FunctionComponent = () => { case EntityType.DASHBOARD: { const res = await getDashboardByFqn( oData.fqn, - 'owner, service, tags, usageSummary' + 'owner, tags, usageSummary' ); const { @@ -129,7 +129,7 @@ const RecentlyViewed: FunctionComponent = () => { case EntityType.PIPELINE: { const res = await getPipelineByFqn( oData.fqn, - 'owner, service, tags, usageSummary' + 'owner, tags, usageSummary' ); const { diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/DBTModelDetailsPage/DBTModelDetailsPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/DBTModelDetailsPage/DBTModelDetailsPage.component.tsx index f61dcc4c79e..c91e6869b62 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/DBTModelDetailsPage/DBTModelDetailsPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/DBTModelDetailsPage/DBTModelDetailsPage.component.tsx @@ -188,7 +188,7 @@ const DBTModelDetailsPage: FunctionComponent = () => { setOwner(getOwnerFromId(owner?.id)); setTier(getTierTags(tags)); setFollowers(followers); - getDatabase(database.id, 'service').then((resDB: AxiosResponse) => { + getDatabase(database.id).then((resDB: AxiosResponse) => { getServiceById('databaseServices', resDB.data.service?.id).then( (resService: AxiosResponse) => { setSlashedDBTModelName([ diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/DashboardDetailsPage/DashboardDetailsPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/DashboardDetailsPage/DashboardDetailsPage.component.tsx index 888598ab493..0c1cc741107 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/DashboardDetailsPage/DashboardDetailsPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/DashboardDetailsPage/DashboardDetailsPage.component.tsx @@ -24,7 +24,6 @@ import { patchDashboardDetails, removeFollower, } from '../../axiosAPIs/dashboardAPI'; -import { getServiceById } from '../../axiosAPIs/serviceAPI'; import { TitleBreadcrumbProps } from '../../components/common/title-breadcrumb/title-breadcrumb.interface'; import DashboardDetails from '../../components/DashboardDetails/DashboardDetails.component'; import Loader from '../../components/Loader/Loader'; @@ -125,9 +124,7 @@ const DashboardDetailsPage = () => { let chartsData: ChartType[] = []; let promiseArr: Array = []; if (charts?.length) { - promiseArr = charts.map((chart) => - getChartById(chart.id, ['service', 'tags']) - ); + promiseArr = charts.map((chart) => getChartById(chart.id, ['tags'])); await Promise.allSettled(promiseArr).then( (res: PromiseSettledResult[]) => { if (res.length) { @@ -149,7 +146,6 @@ const DashboardDetailsPage = () => { setLoading(true); getDashboardByFqn(dashboardFQN, [ 'owner', - 'service', 'followers', 'tags', 'usageSummary', @@ -166,6 +162,7 @@ const DashboardDetailsPage = () => { displayName, charts, dashboardUrl, + serviceType, } = res.data; setDisplayName(displayName); setDashboardDetails(res.data); @@ -175,38 +172,33 @@ const DashboardDetailsPage = () => { setOwner(getOwnerFromId(owner?.id)); setTier(getTierTags(tags)); setTags(getTagsWithoutTier(tags)); - getServiceById('dashboardServices', service?.id).then( - (serviceRes: AxiosResponse) => { - setServiceType(serviceRes.data.serviceType); - setSlashedDashboardName([ - { - name: serviceRes.data.name, - url: serviceRes.data.name - ? getServiceDetailsPath( - serviceRes.data.name, - serviceRes.data.serviceType, - ServiceCategory.DASHBOARD_SERVICES - ) - : '', - imgSrc: serviceRes.data.serviceType - ? serviceTypeLogo(serviceRes.data.serviceType) - : undefined, - }, - { - name: displayName, - url: '', - activeTitle: true, - }, - ]); + setServiceType(serviceType); + setSlashedDashboardName([ + { + name: service.name, + url: service.name + ? getServiceDetailsPath( + service.name, + serviceType, + ServiceCategory.DASHBOARD_SERVICES + ) + : '', + imgSrc: serviceType ? serviceTypeLogo(serviceType) : undefined, + }, + { + name: displayName, + url: '', + activeTitle: true, + }, + ]); + + addToRecentViewed({ + entityType: EntityType.DASHBOARD, + fqn: fullyQualifiedName, + serviceType: serviceType, + timestamp: 0, + }); - addToRecentViewed({ - entityType: EntityType.DASHBOARD, - fqn: fullyQualifiedName, - serviceType: serviceRes.data.serviceType, - timestamp: 0, - }); - } - ); setDashboardUrl(dashboardUrl); fetchCharts(charts).then((charts) => setCharts(charts)); setLoading(false); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/DatasetDetailsPage/DatasetDetailsPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/DatasetDetailsPage/DatasetDetailsPage.component.tsx index c8acd9f59f7..d92a0fa0606 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/DatasetDetailsPage/DatasetDetailsPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/DatasetDetailsPage/DatasetDetailsPage.component.tsx @@ -18,9 +18,7 @@ import { EntityTags, LeafNodes, LineagePos, LoadingNodeState } from 'Models'; import React, { FunctionComponent, useEffect, useState } from 'react'; import { useHistory, useParams } from 'react-router-dom'; import AppState from '../../AppState'; -import { getDatabase } from '../../axiosAPIs/databaseAPI'; import { getLineageByFQN } from '../../axiosAPIs/lineageAPI'; -import { getServiceById } from '../../axiosAPIs/serviceAPI'; import { addFollower, getTableDetailsByFQN, @@ -226,7 +224,7 @@ const DatasetDetailsPage: FunctionComponent = () => { setIsLoading(true); getTableDetailsByFQN( getPartialNameFromFQN(tableFQN, ['service', 'database', 'table'], '.'), - 'columns, database, usageSummary, followers, joins, tags, owner, sampleData, tableProfile' + 'columns, usageSummary, followers, joins, tags, owner, sampleData, tableProfile' ) .then((res: AxiosResponse) => { const { @@ -245,6 +243,8 @@ const DatasetDetailsPage: FunctionComponent = () => { tableProfile, version, changeDescription, + service, + serviceType, } = res.data; setTableDetails(res.data); setTableId(id); @@ -253,42 +253,34 @@ const DatasetDetailsPage: FunctionComponent = () => { setTier(getTierTags(tags)); setOwner(getOwnerFromId(owner?.id)); setFollowers(followers); - getDatabase(database.id, 'service').then((resDB: AxiosResponse) => { - getServiceById('databaseServices', resDB.data.service?.id).then( - (resService: AxiosResponse) => { - setSlashedTableName([ - { - name: resService.data.name, - url: resService.data.name - ? getServiceDetailsPath( - resService.data.name, - resService.data.serviceType, - ServiceCategory.DATABASE_SERVICES - ) - : '', - imgSrc: resService.data.serviceType - ? serviceTypeLogo(resService.data.serviceType) - : undefined, - }, - { - name: resDB.data.name, - url: getDatabaseDetailsPath(resDB.data.fullyQualifiedName), - }, - { - name: name, - url: '', - activeTitle: true, - }, - ]); + setSlashedTableName([ + { + name: service.name, + url: service.name + ? getServiceDetailsPath( + service.name, + serviceType, + ServiceCategory.DATABASE_SERVICES + ) + : '', + imgSrc: serviceType ? serviceTypeLogo(serviceType) : undefined, + }, + { + name: getPartialNameFromFQN(database.name, ['database']), + url: getDatabaseDetailsPath(database.name), + }, + { + name: name, + url: '', + activeTitle: true, + }, + ]); - addToRecentViewed({ - entityType: EntityType.DATASET, - fqn: fullyQualifiedName, - serviceType: resService.data.serviceType, - timestamp: 0, - }); - } - ); + addToRecentViewed({ + entityType: EntityType.DATASET, + fqn: fullyQualifiedName, + serviceType: serviceType, + timestamp: 0, }); setName(name); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/IngestionPage/IngestionPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/IngestionPage/IngestionPage.component.tsx index 137c93daad3..520b6467459 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/IngestionPage/IngestionPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/IngestionPage/IngestionPage.component.tsx @@ -53,7 +53,7 @@ const IngestionPage = () => { }; const getAllIngestionWorkflows = (paging?: string) => { - getIngestionWorkflows(['owner, service, tags, status'], paging) + getIngestionWorkflows(['owner, tags, status'], paging) .then((res) => { if (res.data.data) { setIngestions(res.data.data); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/MyDataPage/MyDataPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/MyDataPage/MyDataPage.component.tsx index 9ec7e21e346..32292428707 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/MyDataPage/MyDataPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/MyDataPage/MyDataPage.component.tsx @@ -68,7 +68,7 @@ const MyDataPage = () => { getAllServices() .then((res) => setCountServices(res.length)) .catch(() => setCountServices(0)); - getIngestionWorkflows(['owner, service, tags, status']) + getIngestionWorkflows(['owner,tags, status']) .then((res) => setIngestionCount(res.data.data.length)) .catch(() => setIngestionCount(0)); } diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/PipelineDetails/PipelineDetailsPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/PipelineDetails/PipelineDetailsPage.component.tsx index 46c09c11e9b..9a7a88ccc62 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/PipelineDetails/PipelineDetailsPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/PipelineDetails/PipelineDetailsPage.component.tsx @@ -31,7 +31,6 @@ import { patchPipelineDetails, removeFollower, } from '../../axiosAPIs/pipelineAPI'; -import { getServiceById } from '../../axiosAPIs/serviceAPI'; import { TitleBreadcrumbProps } from '../../components/common/title-breadcrumb/title-breadcrumb.interface'; import Loader from '../../components/Loader/Loader'; import PipelineDetails from '../../components/PipelineDetails/PipelineDetails.component'; @@ -141,13 +140,7 @@ const PipelineDetailsPage = () => { const fetchPipelineDetail = (pipelineFQN: string) => { setLoading(true); - getPipelineByFqn(pipelineFQN, [ - 'owner', - 'service', - 'followers', - 'tags', - 'tasks', - ]) + getPipelineByFqn(pipelineFQN, ['owner', 'followers', 'tags', 'tasks']) .then((res: AxiosResponse) => { const { id, @@ -155,6 +148,7 @@ const PipelineDetailsPage = () => { followers, fullyQualifiedName, service, + serviceType, tags, owner, displayName, @@ -169,38 +163,32 @@ const PipelineDetailsPage = () => { setOwner(getOwnerFromId(owner?.id)); setTier(getTierTags(tags)); setTags(getTagsWithoutTier(tags)); - getServiceById('pipelineServices', service?.id).then( - (serviceRes: AxiosResponse) => { - setServiceType(serviceRes.data.serviceType); - setSlashedPipelineName([ - { - name: serviceRes.data.name, - url: serviceRes.data.name - ? getServiceDetailsPath( - serviceRes.data.name, - serviceRes.data.serviceType, - ServiceCategory.PIPELINE_SERVICES - ) - : '', - imgSrc: serviceRes.data.serviceType - ? serviceTypeLogo(serviceRes.data.serviceType) - : undefined, - }, - { - name: displayName, - url: '', - activeTitle: true, - }, - ]); + setServiceType(serviceType); + setSlashedPipelineName([ + { + name: service.name, + url: service.name + ? getServiceDetailsPath( + service.name, + serviceType, + ServiceCategory.PIPELINE_SERVICES + ) + : '', + imgSrc: serviceType ? serviceTypeLogo(serviceType) : undefined, + }, + { + name: displayName, + url: '', + activeTitle: true, + }, + ]); - addToRecentViewed({ - entityType: EntityType.PIPELINE, - fqn: fullyQualifiedName, - serviceType: serviceRes.data.serviceType, - timestamp: 0, - }); - } - ); + addToRecentViewed({ + entityType: EntityType.PIPELINE, + fqn: fullyQualifiedName, + serviceType: serviceType, + timestamp: 0, + }); setPipelineUrl(pipelineUrl); setTasks(tasks); }) diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/TopicDetails/TopicDetailsPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/TopicDetails/TopicDetailsPage.component.tsx index 34ab1ec193e..e347c7e11bd 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/TopicDetails/TopicDetailsPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/TopicDetails/TopicDetailsPage.component.tsx @@ -18,7 +18,6 @@ import { EntityTags, TableDetail } from 'Models'; import React, { FunctionComponent, useEffect, useState } from 'react'; import { useHistory, useParams } from 'react-router-dom'; import AppState from '../../AppState'; -import { getServiceById } from '../../axiosAPIs/serviceAPI'; import { addFollower, getTopicByFqn, @@ -116,7 +115,7 @@ const TopicDetailsPage: FunctionComponent = () => { const fetchTopicDetail = (topicFQN: string) => { setLoading(true); - getTopicByFqn(topicFQN, ['owner', 'service', 'followers', 'tags']) + getTopicByFqn(topicFQN, ['owner', 'followers', 'tags']) .then((res: AxiosResponse) => { const { id, @@ -134,6 +133,7 @@ const TopicDetailsPage: FunctionComponent = () => { maximumMessageSize, replicationFactor, retentionSize, + serviceType, } = res.data; setName(name); setTopicDetails(res.data); @@ -150,45 +150,32 @@ const TopicDetailsPage: FunctionComponent = () => { setMaximumMessageSize(maximumMessageSize); setReplicationFactor(replicationFactor); setRetentionSize(retentionSize); - getServiceById('messagingServices', service?.id) - .then((serviceRes: AxiosResponse) => { - setSlashedTopicName([ - { - name: serviceRes.data.name, - url: serviceRes.data.name - ? getServiceDetailsPath( - serviceRes.data.name, - serviceRes.data.serviceType, - ServiceCategory.MESSAGING_SERVICES - ) - : '', - imgSrc: serviceRes.data.serviceType - ? serviceTypeLogo(serviceRes.data.serviceType) - : undefined, - }, - { - name: name, - url: '', - activeTitle: true, - }, - ]); + setSlashedTopicName([ + { + name: service.name, + url: service.name + ? getServiceDetailsPath( + service.name, + serviceType, + ServiceCategory.MESSAGING_SERVICES + ) + : '', + imgSrc: serviceType ? serviceTypeLogo(serviceType) : undefined, + }, + { + name: name, + url: '', + activeTitle: true, + }, + ]); - addToRecentViewed({ - entityType: EntityType.TOPIC, - fqn: fullyQualifiedName, - serviceType: serviceRes.data.serviceType, - timestamp: 0, - }); - }) - .catch((err: AxiosError) => { - const errMsg = - err.message || `Error while fetching service for ${name}`; - showToast({ - variant: 'error', - body: errMsg, - }); - }) - .finally(() => setLoading(false)); + addToRecentViewed({ + entityType: EntityType.TOPIC, + fqn: fullyQualifiedName, + serviceType: serviceType, + timestamp: 0, + }); + setLoading(false); }) .catch((err: AxiosError) => { const errMsg = err.message || 'Error while fetching topic details'; diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/database-details/index.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/database-details/index.tsx index 0acadda1623..ac9b718f6aa 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/database-details/index.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/database-details/index.tsx @@ -168,41 +168,39 @@ const DatabaseDetails: FunctionComponent = () => { }; const getDetailsByFQN = () => { - getDatabaseDetailsByFQN(databaseFQN, 'service').then( - (res: AxiosResponse) => { - const { description, id, name, service } = res.data; - setDatabase(res.data); - setDescription(description); - setDatabaseId(id); - setDatabaseName(name); + getDatabaseDetailsByFQN(databaseFQN).then((res: AxiosResponse) => { + const { description, id, name, service } = res.data; + setDatabase(res.data); + setDescription(description); + setDatabaseId(id); + setDatabaseName(name); - getServiceById('databaseServices', service?.id).then( - (resService: AxiosResponse) => { - setServiceName(resService.data.name); - setSlashedTableName([ - { - name: resService.data.name, - url: resService.data.name - ? getServiceDetailsPath( - resService.data.name, - resService.data.serviceType, - ServiceCategory.DATABASE_SERVICES - ) - : '', - imgSrc: resService.data.serviceType - ? serviceTypeLogo(resService.data.serviceType) - : undefined, - }, - { - name: name, - url: '', - activeTitle: true, - }, - ]); - } - ); - } - ); + getServiceById('databaseServices', service?.id).then( + (resService: AxiosResponse) => { + setServiceName(resService.data.name); + setSlashedTableName([ + { + name: resService.data.name, + url: resService.data.name + ? getServiceDetailsPath( + resService.data.name, + resService.data.serviceType, + ServiceCategory.DATABASE_SERVICES + ) + : '', + imgSrc: resService.data.serviceType + ? serviceTypeLogo(resService.data.serviceType) + : undefined, + }, + { + name: name, + url: '', + activeTitle: true, + }, + ]); + } + ); + }); fetchDatabaseTablesAndDBTModels(); }; diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/service/index.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/service/index.tsx index 2dec7bf99f4..dbcdfd79cff 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/service/index.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/service/index.tsx @@ -87,7 +87,7 @@ const ServicePage: FunctionComponent = () => { const fetchDatabases = (paging?: string) => { setIsloading(true); - getDatabases(serviceFQN, paging, ['owner', 'usageSummary', 'service']) + getDatabases(serviceFQN, paging, ['owner', 'usageSummary']) .then((res: AxiosResponse) => { if (res.data.data) { setData(res.data.data); @@ -107,7 +107,7 @@ const ServicePage: FunctionComponent = () => { const fetchTopics = (paging?: string) => { setIsloading(true); - getTopics(serviceFQN, paging, ['owner', 'service', 'tags']) + getTopics(serviceFQN, paging, ['owner', 'tags']) .then((res: AxiosResponse) => { if (res.data.data) { setData(res.data.data); @@ -127,12 +127,7 @@ const ServicePage: FunctionComponent = () => { const fetchDashboards = (paging?: string) => { setIsloading(true); - getDashboards(serviceFQN, paging, [ - 'owner', - 'service', - 'usageSummary', - 'tags', - ]) + getDashboards(serviceFQN, paging, ['owner', 'usageSummary', 'tags']) .then((res: AxiosResponse) => { if (res.data.data) { setData(res.data.data); @@ -152,12 +147,7 @@ const ServicePage: FunctionComponent = () => { const fetchPipeLines = (paging?: string) => { setIsloading(true); - getPipelines(serviceFQN, paging, [ - 'owner', - 'service', - 'usageSummary', - 'tags', - ]) + getPipelines(serviceFQN, paging, ['owner', 'usageSummary', 'tags']) .then((res: AxiosResponse) => { if (res.data.data) { setData(res.data.data);