From 0c621514042da57665afc28336be9cfa03fe430d Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Thu, 13 Jun 2024 13:39:33 +0200 Subject: [PATCH] Rename HealthService to RootHealthService Signed-off-by: Vincenzo Scamporlino --- docs/backend-system/core-services/01-index.md | 2 +- .../core-services/{health.md => root-health.md} | 0 packages/backend-defaults/package.json | 8 ++++---- packages/backend-defaults/src/CreateBackend.ts | 4 ++-- .../src/entrypoints/{health => rootHealth}/index.ts | 2 +- .../rootHealthServiceFactory.test.ts} | 12 ++++++------ .../rootHealthServiceFactory.ts} | 8 ++++---- .../entrypoints/rootHttpRouter/createHealthRouter.ts | 4 ++-- .../{HealthService.ts => RootHealthService.ts} | 8 +++++++- .../src/services/definitions/index.ts | 2 +- .../src/next/services/mockServices.ts | 6 +++--- 11 files changed, 31 insertions(+), 25 deletions(-) rename docs/backend-system/core-services/{health.md => root-health.md} (100%) rename packages/backend-defaults/src/entrypoints/{health => rootHealth}/index.ts (89%) rename packages/backend-defaults/src/entrypoints/{health/healthServiceFactory.test.ts => rootHealth/rootHealthServiceFactory.test.ts} (88%) rename packages/backend-defaults/src/entrypoints/{health/healthServiceFactory.ts => rootHealth/rootHealthServiceFactory.ts} (88%) rename packages/backend-plugin-api/src/services/definitions/{HealthService.ts => RootHealthService.ts} (83%) diff --git a/docs/backend-system/core-services/01-index.md b/docs/backend-system/core-services/01-index.md index 63324292c1..3be12b2e26 100644 --- a/docs/backend-system/core-services/01-index.md +++ b/docs/backend-system/core-services/01-index.md @@ -20,7 +20,6 @@ import { coreServices } from '@backstage/backend-plugin-api'; - [Cache Service](./cache.md) - Key-value store for caching data. - [Database Service](./database.md) - Database access and management via [knex](https://knexjs.org/). - [Discovery Service](./discovery.md) - Service discovery for inter-plugin communication. -- [Health Service](./health.md) - Health check endpoints for the backend. - [Http Auth Service](./http-auth.md) - Authentication of HTTP requests. - [Http Router Service](./http-router.md) - HTTP route registration for plugins. - [Identity Service](./identity.md) - Deprecated user authentication service, use the [Auth Service](./auth.md) instead. @@ -29,6 +28,7 @@ import { coreServices } from '@backstage/backend-plugin-api'; - [Permissions Service](./permissions.md) - Permission system integration for authorization of user actions. - [Plugin Metadata Service](./plugin-metadata.md) - Built-in service for accessing metadata about the current plugin. - [Root Config Service](./root-config.md) - Access to static configuration. +- [Root Health Service](./root-health.md) - Health check endpoints for the backend. - [Root Http Router Service](./root-http-router.md) - HTTP route registration for root services. - [Root Lifecycle Service](./root-lifecycle.md) - Registration of backend startup and shutdown lifecycle hooks. - [Root Logger Service](./root-logger.md) - Root-level logging. diff --git a/docs/backend-system/core-services/health.md b/docs/backend-system/core-services/root-health.md similarity index 100% rename from docs/backend-system/core-services/health.md rename to docs/backend-system/core-services/root-health.md diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index c29d973997..2d84bae308 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -24,13 +24,13 @@ "./cache": "./src/entrypoints/cache/index.ts", "./database": "./src/entrypoints/database/index.ts", "./discovery": "./src/entrypoints/discovery/index.ts", - "./health": "./src/entrypoints/health/index.ts", "./httpAuth": "./src/entrypoints/httpAuth/index.ts", "./httpRouter": "./src/entrypoints/httpRouter/index.ts", "./lifecycle": "./src/entrypoints/lifecycle/index.ts", "./logger": "./src/entrypoints/logger/index.ts", "./permissions": "./src/entrypoints/permissions/index.ts", "./rootConfig": "./src/entrypoints/rootConfig/index.ts", + "./rootHealth": "./src/entrypoints/rootHealth/index.ts", "./rootHttpRouter": "./src/entrypoints/rootHttpRouter/index.ts", "./rootLifecycle": "./src/entrypoints/rootLifecycle/index.ts", "./rootLogger": "./src/entrypoints/rootLogger/index.ts", @@ -55,9 +55,6 @@ "discovery": [ "src/entrypoints/discovery/index.ts" ], - "health": [ - "src/entrypoints/health/index.ts" - ], "httpAuth": [ "src/entrypoints/httpAuth/index.ts" ], @@ -76,6 +73,9 @@ "rootConfig": [ "src/entrypoints/rootConfig/index.ts" ], + "rootHealth": [ + "src/entrypoints/rootHealth/index.ts" + ], "rootHttpRouter": [ "src/entrypoints/rootHttpRouter/index.ts" ], diff --git a/packages/backend-defaults/src/CreateBackend.ts b/packages/backend-defaults/src/CreateBackend.ts index 453c5fe592..e3195748a6 100644 --- a/packages/backend-defaults/src/CreateBackend.ts +++ b/packages/backend-defaults/src/CreateBackend.ts @@ -24,13 +24,13 @@ import { authServiceFactory } from '@backstage/backend-defaults/auth'; import { cacheServiceFactory } from '@backstage/backend-defaults/cache'; import { databaseServiceFactory } from '@backstage/backend-defaults/database'; import { discoveryServiceFactory } from '@backstage/backend-defaults/discovery'; -import { rootHealthServiceFactory } from './entrypoints/rootHealth'; import { httpAuthServiceFactory } from '@backstage/backend-defaults/httpAuth'; import { httpRouterServiceFactory } from '@backstage/backend-defaults/httpRouter'; import { lifecycleServiceFactory } from '@backstage/backend-defaults/lifecycle'; import { loggerServiceFactory } from '@backstage/backend-defaults/logger'; import { permissionsServiceFactory } from '@backstage/backend-defaults/permissions'; import { rootConfigServiceFactory } from '@backstage/backend-defaults/rootConfig'; +import { rootHealthServiceFactory } from '@backstage/backend-defaults/rootHealth'; import { rootHttpRouterServiceFactory } from '@backstage/backend-defaults/rootHttpRouter'; import { rootLifecycleServiceFactory } from '@backstage/backend-defaults/rootLifecycle'; import { rootLoggerServiceFactory } from '@backstage/backend-defaults/rootLogger'; @@ -51,6 +51,7 @@ export const defaultServiceFactories = [ lifecycleServiceFactory(), loggerServiceFactory(), permissionsServiceFactory(), + rootHealthServiceFactory(), rootHttpRouterServiceFactory(), rootLifecycleServiceFactory(), rootLoggerServiceFactory(), @@ -59,7 +60,6 @@ export const defaultServiceFactories = [ userInfoServiceFactory(), urlReaderServiceFactory(), eventsServiceFactory(), - rootHealthServiceFactory(), ]; /** diff --git a/packages/backend-defaults/src/entrypoints/health/index.ts b/packages/backend-defaults/src/entrypoints/rootHealth/index.ts similarity index 89% rename from packages/backend-defaults/src/entrypoints/health/index.ts rename to packages/backend-defaults/src/entrypoints/rootHealth/index.ts index 4aeb4b7979..35225b39c4 100644 --- a/packages/backend-defaults/src/entrypoints/health/index.ts +++ b/packages/backend-defaults/src/entrypoints/rootHealth/index.ts @@ -14,4 +14,4 @@ * limitations under the License. */ -export { healthServiceFactory } from './healthServiceFactory'; +export { rootHealthServiceFactory } from './rootHealthServiceFactory'; diff --git a/packages/backend-defaults/src/entrypoints/health/healthServiceFactory.test.ts b/packages/backend-defaults/src/entrypoints/rootHealth/rootHealthServiceFactory.test.ts similarity index 88% rename from packages/backend-defaults/src/entrypoints/health/healthServiceFactory.test.ts rename to packages/backend-defaults/src/entrypoints/rootHealth/rootHealthServiceFactory.test.ts index 7e160cbd82..fd786e2b28 100644 --- a/packages/backend-defaults/src/entrypoints/health/healthServiceFactory.test.ts +++ b/packages/backend-defaults/src/entrypoints/rootHealth/rootHealthServiceFactory.test.ts @@ -1,5 +1,5 @@ import { mockServices } from '@backstage/backend-test-utils'; -import { DefaultHealthService } from './healthServiceFactory'; +import { DefaultRootHealthService } from './rootHealthServiceFactory'; /* * Copyright 2024 The Backstage Authors @@ -16,10 +16,10 @@ import { DefaultHealthService } from './healthServiceFactory'; * See the License for the specific language governing permissions and * limitations under the License. */ -describe('DefaultHealthService', () => { +describe('DefaultRootHealthService', () => { describe('readiness', () => { it(`should return a 500 response if the server hasn't started yet`, async () => { - const service = new DefaultHealthService({ + const service = new DefaultRootHealthService({ lifecycle: mockServices.rootLifecycle.mock(), }); await expect(service.getReadiness()).resolves.toEqual({ @@ -38,7 +38,7 @@ describe('DefaultHealthService', () => { fn => (mockServerStartedFn = fn), ); - const service = new DefaultHealthService({ + const service = new DefaultRootHealthService({ lifecycle, }); @@ -61,7 +61,7 @@ describe('DefaultHealthService', () => { fn => (mockServerStoppedFn = fn), ); - const service = new DefaultHealthService({ + const service = new DefaultRootHealthService({ lifecycle: mockServices.rootLifecycle.mock(), }); @@ -79,7 +79,7 @@ describe('DefaultHealthService', () => { describe('liveness', () => { it('should return 200 if the server has started', async () => { - const service = new DefaultHealthService({ + const service = new DefaultRootHealthService({ lifecycle: mockServices.rootLifecycle.mock(), }); diff --git a/packages/backend-defaults/src/entrypoints/health/healthServiceFactory.ts b/packages/backend-defaults/src/entrypoints/rootHealth/rootHealthServiceFactory.ts similarity index 88% rename from packages/backend-defaults/src/entrypoints/health/healthServiceFactory.ts rename to packages/backend-defaults/src/entrypoints/rootHealth/rootHealthServiceFactory.ts index 652ad8758f..3a00db8285 100644 --- a/packages/backend-defaults/src/entrypoints/health/healthServiceFactory.ts +++ b/packages/backend-defaults/src/entrypoints/rootHealth/rootHealthServiceFactory.ts @@ -15,14 +15,14 @@ */ import { - HealthService, + RootHealthService, RootLifecycleService, coreServices, createServiceFactory, } from '@backstage/backend-plugin-api'; /** @internal */ -export class DefaultHealthService implements HealthService { +export class DefaultRootHealthService implements RootHealthService { #isRunning = false; constructor(readonly options: { lifecycle: RootLifecycleService }) { @@ -53,12 +53,12 @@ export class DefaultHealthService implements HealthService { /** * @public */ -export const healthServiceFactory = createServiceFactory({ +export const rootHealthServiceFactory = createServiceFactory({ service: coreServices.health, deps: { lifecycle: coreServices.rootLifecycle, }, async factory({ lifecycle }) { - return new DefaultHealthService({ lifecycle }); + return new DefaultRootHealthService({ lifecycle }); }, }); diff --git a/packages/backend-defaults/src/entrypoints/rootHttpRouter/createHealthRouter.ts b/packages/backend-defaults/src/entrypoints/rootHttpRouter/createHealthRouter.ts index 012a268e02..13691ede28 100644 --- a/packages/backend-defaults/src/entrypoints/rootHttpRouter/createHealthRouter.ts +++ b/packages/backend-defaults/src/entrypoints/rootHttpRouter/createHealthRouter.ts @@ -1,4 +1,4 @@ -import { HealthService } from '@backstage/backend-plugin-api'; +import { RootHealthService } from '@backstage/backend-plugin-api'; /* * Copyright 2024 The Backstage Authors @@ -19,7 +19,7 @@ import { HealthService } from '@backstage/backend-plugin-api'; import Router from 'express-promise-router'; import { Request, Response } from 'express'; -export function createHealthRouter(options: { health: HealthService }) { +export function createHealthRouter(options: { health: RootHealthService }) { const router = Router(); router.get( diff --git a/packages/backend-plugin-api/src/services/definitions/HealthService.ts b/packages/backend-plugin-api/src/services/definitions/RootHealthService.ts similarity index 83% rename from packages/backend-plugin-api/src/services/definitions/HealthService.ts rename to packages/backend-plugin-api/src/services/definitions/RootHealthService.ts index b2dc4f415e..ac482b5dbb 100644 --- a/packages/backend-plugin-api/src/services/definitions/HealthService.ts +++ b/packages/backend-plugin-api/src/services/definitions/RootHealthService.ts @@ -17,7 +17,13 @@ /** * @public */ -export interface HealthService { +export interface RootHealthService { + /** + * Get the liveness status of the backend. + */ getLiveness(): Promise<{ status: number; payload?: any }>; + /** + * Get the readiness status of the backend. + */ getReadiness(): Promise<{ status: number; payload?: any }>; } diff --git a/packages/backend-plugin-api/src/services/definitions/index.ts b/packages/backend-plugin-api/src/services/definitions/index.ts index af0d991f58..5e30d444fd 100644 --- a/packages/backend-plugin-api/src/services/definitions/index.ts +++ b/packages/backend-plugin-api/src/services/definitions/index.ts @@ -32,7 +32,7 @@ export type { export type { RootConfigService } from './RootConfigService'; export type { DatabaseService } from './DatabaseService'; export type { DiscoveryService } from './DiscoveryService'; -export type { HealthService } from './HealthService'; +export type { RootHealthService } from './RootHealthService'; export type { HttpRouterService, HttpRouterServiceAuthPolicy, diff --git a/packages/backend-test-utils/src/next/services/mockServices.ts b/packages/backend-test-utils/src/next/services/mockServices.ts index a59d053b95..5055a9eae8 100644 --- a/packages/backend-test-utils/src/next/services/mockServices.ts +++ b/packages/backend-test-utils/src/next/services/mockServices.ts @@ -20,11 +20,11 @@ import { HostDiscovery, discoveryServiceFactory, } from '@backstage/backend-defaults/discovery'; -import { healthServiceFactory } from '@backstage/backend-defaults/health'; import { httpRouterServiceFactory } from '@backstage/backend-defaults/httpRouter'; import { lifecycleServiceFactory } from '@backstage/backend-defaults/lifecycle'; import { loggerServiceFactory } from '@backstage/backend-defaults/logger'; import { permissionsServiceFactory } from '@backstage/backend-defaults/permissions'; +import { rootHealthServiceFactory } from '@backstage/backend-defaults/rootHealth'; import { rootHttpRouterServiceFactory } from '@backstage/backend-defaults/rootHttpRouter'; import { rootLifecycleServiceFactory } from '@backstage/backend-defaults/rootLifecycle'; import { schedulerServiceFactory } from '@backstage/backend-defaults/scheduler'; @@ -345,8 +345,8 @@ export namespace mockServices { })); } - export namespace health { - export const factory = healthServiceFactory; + export namespace rootHealth { + export const factory = rootHealthServiceFactory; export const mock = simpleMock(coreServices.health, () => ({ getLiveness: jest.fn(), getReadiness: jest.fn(),