refactor: Simplify code formatting and improve readability across multiple files

This commit is contained in:
Nawaz Dhandala 2026-01-09 13:58:15 +00:00
parent 2dfd33a86e
commit 94c8a25bfd
No known key found for this signature in database
GPG key ID: 96C5DCA24769DBCA
25 changed files with 116 additions and 214 deletions

View file

@ -987,10 +987,10 @@ const BaseAPIFeatureSet: FeatureSet = {
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<
new BaseAPI<ServiceDependency, ServiceDependencyServiceType>(
ServiceDependency,
ServiceDependencyServiceType
>(ServiceDependency, ServiceDependencyService).getRouter(),
ServiceDependencyService,
).getRouter(),
);
app.use(
@ -1014,10 +1014,7 @@ const BaseAPIFeatureSet: FeatureSet = {
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<
ServiceTelemetryService,
ServiceTelemetryServiceServiceType
>(
new BaseAPI<ServiceTelemetryService, ServiceTelemetryServiceServiceType>(
ServiceTelemetryService,
ServiceTelemetryServiceService,
).getRouter(),
@ -1025,10 +1022,7 @@ const BaseAPIFeatureSet: FeatureSet = {
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<
ServiceCodeRepository,
ServiceCodeRepositoryServiceType
>(
new BaseAPI<ServiceCodeRepository, ServiceCodeRepositoryServiceType>(
ServiceCodeRepository,
ServiceCodeRepositoryService,
).getRouter(),

View file

@ -165,8 +165,7 @@ export default class ServiceCodeRepository extends BaseModel {
type: TableColumnType.Entity,
modelType: Service,
title: "Service",
description:
"Relation to Service Resource in which this object belongs",
description: "Relation to Service Resource in which this object belongs",
example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
})
@ManyToOne(
@ -204,8 +203,7 @@ export default class ServiceCodeRepository extends BaseModel {
required: true,
canReadOnRelationQuery: true,
title: "Service ID",
description:
"ID of your OneUptime Service in which this object belongs",
description: "ID of your OneUptime Service in which this object belongs",
example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
})
@Column({

View file

@ -169,8 +169,7 @@ export default class ServiceDependency extends BaseModel {
type: TableColumnType.Entity,
modelType: Service,
title: "Service",
description:
"Relation to Service Resource in which this object belongs",
description: "Relation to Service Resource in which this object belongs",
example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
})
@ManyToOne(
@ -209,8 +208,7 @@ export default class ServiceDependency extends BaseModel {
required: true,
canReadOnRelationQuery: true,
title: "Service ID",
description:
"ID of your OneUptime Service in which this object belongs",
description: "ID of your OneUptime Service in which this object belongs",
example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
})
@Column({
@ -241,8 +239,7 @@ export default class ServiceDependency extends BaseModel {
type: TableColumnType.Entity,
modelType: Service,
title: "Dependency Service",
description:
"Relation to Service Resource in which this object belongs",
description: "Relation to Service Resource in which this object belongs",
example: "a7b8c9d0-e1f2-3456-ab78-cd90ef123456",
})
@ManyToOne(
@ -281,8 +278,7 @@ export default class ServiceDependency extends BaseModel {
required: true,
canReadOnRelationQuery: true,
title: "Dependency Service ID",
description:
"ID of your OneUptime Service in which this object belongs",
description: "ID of your OneUptime Service in which this object belongs",
example: "a7b8c9d0-e1f2-3456-ab78-cd90ef123456",
})
@Column({

View file

@ -169,8 +169,7 @@ export default class ServiceMonitor extends BaseModel {
type: TableColumnType.Entity,
modelType: Service,
title: "Service",
description:
"Relation to Service Resource in which this object belongs",
description: "Relation to Service Resource in which this object belongs",
example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
})
@ManyToOne(
@ -209,8 +208,7 @@ export default class ServiceMonitor extends BaseModel {
required: true,
canReadOnRelationQuery: true,
title: "Service ID",
description:
"ID of your OneUptime Service in which this object belongs",
description: "ID of your OneUptime Service in which this object belongs",
example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
})
@Column({

View file

@ -230,8 +230,7 @@ export default class ServiceOwnerTeam extends BaseModel {
type: TableColumnType.Entity,
modelType: Service,
title: "Service",
description:
"Relation to Service Resource in which this object belongs",
description: "Relation to Service Resource in which this object belongs",
example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
})
@ManyToOne(
@ -269,8 +268,7 @@ export default class ServiceOwnerTeam extends BaseModel {
required: true,
canReadOnRelationQuery: true,
title: "Service ID",
description:
"ID of your OneUptime Service in which this object belongs",
description: "ID of your OneUptime Service in which this object belongs",
example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
})
@Column({

View file

@ -229,8 +229,7 @@ export default class ServiceOwnerUser extends BaseModel {
type: TableColumnType.Entity,
modelType: Service,
title: "Service",
description:
"Relation to Service Resource in which this object belongs",
description: "Relation to Service Resource in which this object belongs",
example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
})
@ManyToOne(
@ -268,8 +267,7 @@ export default class ServiceOwnerUser extends BaseModel {
required: true,
canReadOnRelationQuery: true,
title: "Service ID",
description:
"ID of your OneUptime Service in which this object belongs",
description: "ID of your OneUptime Service in which this object belongs",
example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
})
@Column({

View file

@ -169,8 +169,7 @@ export default class ServiceTelemetryService extends BaseModel {
type: TableColumnType.Entity,
modelType: Service,
title: "Service",
description:
"Relation to Service Resource in which this object belongs",
description: "Relation to Service Resource in which this object belongs",
example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
})
@ManyToOne(
@ -209,8 +208,7 @@ export default class ServiceTelemetryService extends BaseModel {
required: true,
canReadOnRelationQuery: true,
title: "Service ID",
description:
"ID of your OneUptime Service in which this object belongs",
description: "ID of your OneUptime Service in which this object belongs",
example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
})
@Column({

View file

@ -281,14 +281,13 @@ export default class AIAgentDataAPI {
}
// Extract service IDs
const serviceIds: Array<ObjectID> =
serviceTelemetryServices
.filter((s: ServiceTelemetryService) => {
return s.serviceId;
})
.map((s: ServiceTelemetryService) => {
return s.serviceId as ObjectID;
});
const serviceIds: Array<ObjectID> = serviceTelemetryServices
.filter((s: ServiceTelemetryService) => {
return s.serviceId;
})
.map((s: ServiceTelemetryService) => {
return s.serviceId as ObjectID;
});
// Step 2: Find CodeRepositories linked to these Services
const repositories: Array<{

View file

@ -6,8 +6,10 @@ export class RenameServiceCatalogToService1767966850199
public name = "RenameServiceCatalogToService1767966850199";
public async up(queryRunner: QueryRunner): Promise<void> {
// Step 1: Rename columns in dependent tables first (before renaming the main table)
// This is done first because foreign key constraints reference the column names
/*
* Step 1: Rename columns in dependent tables first (before renaming the main table)
* This is done first because foreign key constraints reference the column names
*/
// Rename serviceCatalogId to serviceId in ServiceCatalogMonitor
await queryRunner.query(
@ -47,11 +49,11 @@ export class RenameServiceCatalogToService1767966850199
`ALTER TABLE "ServiceCatalogLabel" RENAME COLUMN "serviceCatalogId" TO "serviceId"`,
);
// Step 2: Rename tables
// Rename main ServiceCatalog table to Service
await queryRunner.query(
`ALTER TABLE "ServiceCatalog" RENAME TO "Service"`,
);
/*
* Step 2: Rename tables
* Rename main ServiceCatalog table to Service
*/
await queryRunner.query(`ALTER TABLE "ServiceCatalog" RENAME TO "Service"`);
// Rename ServiceCatalogMonitor to ServiceMonitor
await queryRunner.query(
@ -119,9 +121,7 @@ export class RenameServiceCatalogToService1767966850199
`ALTER TABLE "ServiceMonitor" RENAME TO "ServiceCatalogMonitor"`,
);
await queryRunner.query(
`ALTER TABLE "Service" RENAME TO "ServiceCatalog"`,
);
await queryRunner.query(`ALTER TABLE "Service" RENAME TO "ServiceCatalog"`);
// Step 2: Rename columns back to original names
await queryRunner.query(

View file

@ -431,5 +431,5 @@ export default [
MigrationName1766923324521,
AddGitHubAppInstallationIdToProject1766958924188,
MigrationName1767009661768,
RenameServiceCatalogToService1767966850199
RenameServiceCatalogToService1767966850199,
];

View file

@ -32,12 +32,9 @@ export class Service extends DatabaseService<Model> {
const serviceId: string | ObjectID | undefined =
createBy.data.serviceId || createBy.data.service?._id;
const dependencyServiceId: string | ObjectID | undefined =
createBy.data.dependencyServiceId ||
createBy.data.dependencyService?._id;
createBy.data.dependencyServiceId || createBy.data.dependencyService?._id;
if (
serviceId?.toString() === dependencyServiceId?.toString()
) {
if (serviceId?.toString() === dependencyServiceId?.toString()) {
throw new BadDataException("Service cannot depend on itself.");
}

View file

@ -3492,24 +3492,21 @@ export class PermissionHelper {
{
permission: Permission.DeleteService,
title: "Delete Service",
description:
"This permission can delete Service of this project.",
description: "This permission can delete Service of this project.",
isAssignableToTenant: true,
isAccessControlPermission: true,
},
{
permission: Permission.EditService,
title: "Edit Service",
description:
"This permission can edit Service of this project.",
description: "This permission can edit Service of this project.",
isAssignableToTenant: true,
isAccessControlPermission: true,
},
{
permission: Permission.ReadService,
title: "Read Service",
description:
"This permission can read Service of this project.",
description: "This permission can read Service of this project.",
isAssignableToTenant: true,
isAccessControlPermission: true,
},

View file

@ -104,9 +104,7 @@ const DashboardNavbar: FunctionComponent<ComponentProps> = (
{
title: "Services",
description: "Manage services and dependencies.",
route: RouteUtil.populateRouteParams(
RouteMap[PageMap.SERVICES] as Route,
),
route: RouteUtil.populateRouteParams(RouteMap[PageMap.SERVICES] as Route),
icon: IconProp.SquareStack,
iconColor: "blue",
},

View file

@ -20,9 +20,9 @@ const ServiceDependencyGraphPage: FunctionComponent<
PageComponentProps
> = (): ReactElement => {
const [services, setServices] = useState<Array<Service>>([]);
const [dependencies, setDependencies] = useState<
Array<ServiceDependency>
>([]);
const [dependencies, setDependencies] = useState<Array<ServiceDependency>>(
[],
);
const [loading, setLoading] = useState<boolean>(false);
const [error, setError] = useState<string>("");

View file

@ -96,11 +96,7 @@ const ServiceDependencies: FunctionComponent<
throw new BadDataException("Dependency not found");
}
return (
<ServiceElement
service={item["dependencyService"]}
/>
);
return <ServiceElement service={item["dependencyService"]} />;
},
},
]}

View file

@ -12,9 +12,7 @@ import Service from "Common/Models/DatabaseModels/Service";
import React, { Fragment, FunctionComponent, ReactElement } from "react";
import TechStackView from "../../../Components/TechStack/TechStackView";
const ServiceView: FunctionComponent<
PageComponentProps
> = (): ReactElement => {
const ServiceView: FunctionComponent<PageComponentProps> = (): ReactElement => {
const modelId: ObjectID = Navigation.getLastParamAsObjectID();
return (

View file

@ -18,9 +18,7 @@ import API from "Common/UI/Utils/API/API";
import ErrorMessage from "Common/UI/Components/ErrorMessage/ErrorMessage";
import PageLoader from "Common/UI/Components/Loader/PageLoader";
const ServiceLogs: FunctionComponent<
PageComponentProps
> = (): ReactElement => {
const ServiceLogs: FunctionComponent<PageComponentProps> = (): ReactElement => {
const modelId: ObjectID = Navigation.getLastParamAsObjectID(1);
const [telemetryServiceIds, setTelemetryServiceIds] =

View file

@ -204,8 +204,7 @@ const ServiceMonitors: FunctionComponent<
}}
onBeforeCreate={(serviceMonitor: ServiceMonitor) => {
serviceMonitor.serviceId = modelId;
serviceMonitor.projectId =
ProjectUtil.getCurrentProjectId()!;
serviceMonitor.projectId = ProjectUtil.getCurrentProjectId()!;
return Promise.resolve(serviceMonitor);
}}
formProps={{

View file

@ -37,9 +37,7 @@ const ServiceOwners: FunctionComponent<
serviceId: modelId,
projectId: ProjectUtil.getCurrentProjectId()!,
}}
onBeforeCreate={(
item: ServiceOwnerTeam,
): Promise<ServiceOwnerTeam> => {
onBeforeCreate={(item: ServiceOwnerTeam): Promise<ServiceOwnerTeam> => {
item.serviceId = modelId;
item.projectId = ProjectUtil.getCurrentProjectId()!;
return Promise.resolve(item);
@ -135,9 +133,7 @@ const ServiceOwners: FunctionComponent<
serviceId: modelId,
projectId: ProjectUtil.getCurrentProjectId()!,
}}
onBeforeCreate={(
item: ServiceOwnerUser,
): Promise<ServiceOwnerUser> => {
onBeforeCreate={(item: ServiceOwnerUser): Promise<ServiceOwnerUser> => {
item.serviceId = modelId;
item.projectId = ProjectUtil.getCurrentProjectId()!;
return Promise.resolve(item);

View file

@ -68,9 +68,7 @@ const DashboardSideMenu: FunctionComponent<ComponentProps> = (
link={{
title: "Telemetry Services",
to: RouteUtil.populateRouteParams(
RouteMap[
PageMap.SERVICE_VIEW_TELEMETRY_SERVICES
] as Route,
RouteMap[PageMap.SERVICE_VIEW_TELEMETRY_SERVICES] as Route,
{ modelId: props.modelId },
),
}}

View file

@ -64,9 +64,7 @@ const ServiceTelemetryServices: FunctionComponent<
const telemetryServiceIds: ObjectID[] =
serviceTelemetryServices.data.map(
(
serviceTelemetryService: ServiceTelemetryService,
) => {
(serviceTelemetryService: ServiceTelemetryService) => {
return serviceTelemetryService.telemetryServiceId!;
},
);

View file

@ -3,10 +3,7 @@ import ComponentProps from "../Pages/PageComponentProps";
import StatusPageViewLayout from "../Pages/Service/View/Layout";
import ServiceLayout from "../Pages/Service/Layout";
import PageMap from "../Utils/PageMap";
import RouteMap, {
RouteUtil,
ServiceRoutePath,
} from "../Utils/RouteMap";
import RouteMap, { RouteUtil, ServiceRoutePath } from "../Utils/RouteMap";
import Route from "Common/Types/API/Route";
import React, {
FunctionComponent,
@ -18,20 +15,20 @@ import React, {
import { Route as PageRoute, Routes } from "react-router-dom";
// Pages
const Services: LazyExoticComponent<FunctionComponent<ComponentProps>> =
lazy(() => {
const Services: LazyExoticComponent<FunctionComponent<ComponentProps>> = lazy(
() => {
return import("../Pages/Service/Services");
});
},
);
const ServiceDependencyGraph: LazyExoticComponent<
FunctionComponent<ComponentProps>
> = lazy(() => {
return import("../Pages/Service/DependencyGraph");
});
const ServiceView: LazyExoticComponent<
FunctionComponent<ComponentProps>
> = lazy(() => {
return import("../Pages/Service/View/Index");
});
const ServiceView: LazyExoticComponent<FunctionComponent<ComponentProps>> =
lazy(() => {
return import("../Pages/Service/View/Index");
});
const ServiceViewMonitors: LazyExoticComponent<
FunctionComponent<ComponentProps>
@ -57,11 +54,10 @@ const ServiceViewTelemetryServices: LazyExoticComponent<
return import("../Pages/Service/View/TelemetryServices");
});
const ServiceViewLogs: LazyExoticComponent<
FunctionComponent<ComponentProps>
> = lazy(() => {
return import("../Pages/Service/View/Logs");
});
const ServiceViewLogs: LazyExoticComponent<FunctionComponent<ComponentProps>> =
lazy(() => {
return import("../Pages/Service/View/Logs");
});
const ServiceViewTraces: LazyExoticComponent<
FunctionComponent<ComponentProps>
@ -123,16 +119,12 @@ const ServiceRoutes: FunctionComponent<ComponentProps> = (
}
/>
<PageRoute
path={RouteUtil.getLastPathForKey(
PageMap.SERVICE_DEPENDENCY_GRAPH,
)}
path={RouteUtil.getLastPathForKey(PageMap.SERVICE_DEPENDENCY_GRAPH)}
element={
<Suspense fallback={Loader}>
<ServiceDependencyGraph
{...props}
pageRoute={
RouteMap[PageMap.SERVICE_DEPENDENCY_GRAPH] as Route
}
pageRoute={RouteMap[PageMap.SERVICE_DEPENDENCY_GRAPH] as Route}
/>
</Suspense>
}
@ -156,80 +148,60 @@ const ServiceRoutes: FunctionComponent<ComponentProps> = (
/>
<PageRoute
path={RouteUtil.getLastPathForKey(
PageMap.SERVICE_VIEW_DELETE,
)}
path={RouteUtil.getLastPathForKey(PageMap.SERVICE_VIEW_DELETE)}
element={
<Suspense fallback={Loader}>
<ServiceViewDelete
{...props}
pageRoute={
RouteMap[PageMap.SERVICE_VIEW_DELETE] as Route
}
pageRoute={RouteMap[PageMap.SERVICE_VIEW_DELETE] as Route}
/>
</Suspense>
}
/>
<PageRoute
path={RouteUtil.getLastPathForKey(
PageMap.SERVICE_VIEW_SETTINGS,
)}
path={RouteUtil.getLastPathForKey(PageMap.SERVICE_VIEW_SETTINGS)}
element={
<Suspense fallback={Loader}>
<ServiceViewSettings
{...props}
pageRoute={
RouteMap[PageMap.SERVICE_VIEW_SETTINGS] as Route
}
pageRoute={RouteMap[PageMap.SERVICE_VIEW_SETTINGS] as Route}
/>
</Suspense>
}
/>
<PageRoute
path={RouteUtil.getLastPathForKey(
PageMap.SERVICE_VIEW_MONITORS,
)}
path={RouteUtil.getLastPathForKey(PageMap.SERVICE_VIEW_MONITORS)}
element={
<Suspense fallback={Loader}>
<ServiceViewMonitors
{...props}
pageRoute={
RouteMap[PageMap.SERVICE_VIEW_MONITORS] as Route
}
pageRoute={RouteMap[PageMap.SERVICE_VIEW_MONITORS] as Route}
/>
</Suspense>
}
/>
<PageRoute
path={RouteUtil.getLastPathForKey(
PageMap.SERVICE_VIEW_ALERTS,
)}
path={RouteUtil.getLastPathForKey(PageMap.SERVICE_VIEW_ALERTS)}
element={
<Suspense fallback={Loader}>
<ServiceViewAlerts
{...props}
pageRoute={
RouteMap[PageMap.SERVICE_VIEW_ALERTS] as Route
}
pageRoute={RouteMap[PageMap.SERVICE_VIEW_ALERTS] as Route}
/>
</Suspense>
}
/>
<PageRoute
path={RouteUtil.getLastPathForKey(
PageMap.SERVICE_VIEW_INCIDENTS,
)}
path={RouteUtil.getLastPathForKey(PageMap.SERVICE_VIEW_INCIDENTS)}
element={
<Suspense fallback={Loader}>
<ServiceViewIncidents
{...props}
pageRoute={
RouteMap[PageMap.SERVICE_VIEW_INCIDENTS] as Route
}
pageRoute={RouteMap[PageMap.SERVICE_VIEW_INCIDENTS] as Route}
/>
</Suspense>
}
@ -244,9 +216,7 @@ const ServiceRoutes: FunctionComponent<ComponentProps> = (
<ServiceViewTelemetryServices
{...props}
pageRoute={
RouteMap[
PageMap.SERVICE_VIEW_TELEMETRY_SERVICES
] as Route
RouteMap[PageMap.SERVICE_VIEW_TELEMETRY_SERVICES] as Route
}
/>
</Suspense>
@ -266,64 +236,48 @@ const ServiceRoutes: FunctionComponent<ComponentProps> = (
/>
<PageRoute
path={RouteUtil.getLastPathForKey(
PageMap.SERVICE_VIEW_TRACES,
)}
path={RouteUtil.getLastPathForKey(PageMap.SERVICE_VIEW_TRACES)}
element={
<Suspense fallback={Loader}>
<ServiceViewTraces
{...props}
pageRoute={
RouteMap[PageMap.SERVICE_VIEW_TRACES] as Route
}
pageRoute={RouteMap[PageMap.SERVICE_VIEW_TRACES] as Route}
/>
</Suspense>
}
/>
<PageRoute
path={RouteUtil.getLastPathForKey(
PageMap.SERVICE_VIEW_METRICS,
)}
path={RouteUtil.getLastPathForKey(PageMap.SERVICE_VIEW_METRICS)}
element={
<Suspense fallback={Loader}>
<ServiceViewMetrics
{...props}
pageRoute={
RouteMap[PageMap.SERVICE_VIEW_METRICS] as Route
}
pageRoute={RouteMap[PageMap.SERVICE_VIEW_METRICS] as Route}
/>
</Suspense>
}
/>
<PageRoute
path={RouteUtil.getLastPathForKey(
PageMap.SERVICE_VIEW_OWNERS,
)}
path={RouteUtil.getLastPathForKey(PageMap.SERVICE_VIEW_OWNERS)}
element={
<Suspense fallback={Loader}>
<ServiceViewOwners
{...props}
pageRoute={
RouteMap[PageMap.SERVICE_VIEW_OWNERS] as Route
}
pageRoute={RouteMap[PageMap.SERVICE_VIEW_OWNERS] as Route}
/>
</Suspense>
}
/>
<PageRoute
path={RouteUtil.getLastPathForKey(
PageMap.SERVICE_VIEW_DEPENDENCIES,
)}
path={RouteUtil.getLastPathForKey(PageMap.SERVICE_VIEW_DEPENDENCIES)}
element={
<Suspense fallback={Loader}>
<ServiceViewDependencies
{...props}
pageRoute={
RouteMap[PageMap.SERVICE_VIEW_DEPENDENCIES] as Route
}
pageRoute={RouteMap[PageMap.SERVICE_VIEW_DEPENDENCIES] as Route}
/>
</Suspense>
}
@ -338,9 +292,7 @@ const ServiceRoutes: FunctionComponent<ComponentProps> = (
<ServiceViewCodeRepositories
{...props}
pageRoute={
RouteMap[
PageMap.SERVICE_VIEW_CODE_REPOSITORIES
] as Route
RouteMap[PageMap.SERVICE_VIEW_CODE_REPOSITORIES] as Route
}
/>
</Suspense>

View file

@ -3,14 +3,9 @@ import { BuildBreadcrumbLinksByTitles } from "./Helper";
import Dictionary from "Common/Types/Dictionary";
import Link from "Common/Types/Link";
export function getServiceBreadcrumbs(
path: string,
): Array<Link> | undefined {
export function getServiceBreadcrumbs(path: string): Array<Link> | undefined {
const breadcrumpLinksMap: Dictionary<Link[]> = {
...BuildBreadcrumbLinksByTitles(PageMap.SERVICES, [
"Project",
"Services",
]),
...BuildBreadcrumbLinksByTitles(PageMap.SERVICES, ["Project", "Services"]),
...BuildBreadcrumbLinksByTitles(PageMap.SERVICE_DEPENDENCY_GRAPH, [
"Project",
"Services",
@ -81,14 +76,18 @@ export function getServiceBreadcrumbs(
"View Service",
"Metrics",
]),
...BuildBreadcrumbLinksByTitles(
PageMap.SERVICE_VIEW_TELEMETRY_SERVICES,
["Project", "Services", "View Service", "Telemetry"],
),
...BuildBreadcrumbLinksByTitles(
PageMap.SERVICE_VIEW_CODE_REPOSITORIES,
["Project", "Services", "View Service", "Code Repositories"],
),
...BuildBreadcrumbLinksByTitles(PageMap.SERVICE_VIEW_TELEMETRY_SERVICES, [
"Project",
"Services",
"View Service",
"Telemetry",
]),
...BuildBreadcrumbLinksByTitles(PageMap.SERVICE_VIEW_CODE_REPOSITORIES, [
"Project",
"Services",
"View Service",
"Code Repositories",
]),
};
return breadcrumpLinksMap[path];
}

View file

@ -864,9 +864,7 @@ const RouteMap: Dictionary<Route> = {
`/dashboard/${RouteParams.ProjectID}/service/*`,
),
[PageMap.SERVICES]: new Route(
`/dashboard/${RouteParams.ProjectID}/service`,
),
[PageMap.SERVICES]: new Route(`/dashboard/${RouteParams.ProjectID}/service`),
// Root-level Service pages
[PageMap.SERVICE_DEPENDENCY_GRAPH]: new Route(

View file

@ -11,19 +11,18 @@ export default class MigrateServiceLanguageToTechStack extends DataMigrationBase
public override async migrate(): Promise<void> {
// get all the services with serviceLanguage to migrate to techStack.
const services: Array<Service> =
await ServiceService.findBy({
query: {},
select: {
_id: true,
serviceLanguage: true,
},
skip: 0,
limit: LIMIT_MAX,
props: {
isRoot: true,
},
});
const services: Array<Service> = await ServiceService.findBy({
query: {},
select: {
_id: true,
serviceLanguage: true,
},
skip: 0,
limit: LIMIT_MAX,
props: {
isRoot: true,
},
});
for (const service of services) {
const techStack: Array<TechStack> = [];