From 0102b3e5a1d2e28f4ba8f03e677ec5d25a19d86a Mon Sep 17 00:00:00 2001 From: aramissennyeydd Date: Wed, 3 Sep 2025 10:45:17 -0400 Subject: [PATCH] address PR feedback and fix api reports Signed-off-by: aramissennyeydd --- .../src/wiring/BackendInitializer.ts | 6 +++-- .../backend-plugin-api/report-alpha.api.md | 25 ------------------- packages/backend-plugin-api/report.api.md | 21 ++++++++++++++++ .../definitions/InstanceMetadataService.ts | 7 +++--- .../src/services/definitions/index.ts | 2 +- .../src/services/mockServices.ts | 12 +++++++++ 6 files changed, 42 insertions(+), 31 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index 75d5fd5a70..419b7f4d9d 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -41,7 +41,7 @@ import { ServiceRegistry } from './ServiceRegistry'; import { createInitializationLogger } from './createInitializationLogger'; import { unwrapFeature } from './helpers'; // eslint-disable-next-line @backstage/no-relative-monorepo-imports -import type { BackendPlugin } from '../../../backend-plugin-api/src/services/definitions/InstanceMetadataService'; +import type { InstanceMetadataServicePluginInfo } from '../../../backend-plugin-api/src/services/definitions/InstanceMetadataService'; import Router from 'express-promise-router'; export interface BackendRegisterInit { @@ -103,7 +103,9 @@ const instanceRegistry = new (class InstanceRegistry { function createInstanceMetadataServiceFactory( registrations: InternalBackendRegistrations[], ) { - const installedPlugins: { [pluginId: string]: BackendPlugin } = {}; + const installedPlugins: { + [pluginId: string]: InstanceMetadataServicePluginInfo; + } = {}; for (const registration of registrations) { if (registration.featureType === 'registrations') { for (const feature of registration.getRegistrations()) { diff --git a/packages/backend-plugin-api/report-alpha.api.md b/packages/backend-plugin-api/report-alpha.api.md index 9be7a29ed5..cefed593c0 100644 --- a/packages/backend-plugin-api/report-alpha.api.md +++ b/packages/backend-plugin-api/report-alpha.api.md @@ -103,30 +103,5 @@ export const actionsServiceRef: ServiceRef< 'singleton' >; -// @alpha (undocumented) -export type BackendFeatureMeta = - | { - type: 'plugin'; - pluginId: string; - } - | { - type: 'module'; - pluginId: string; - moduleId: string; - }; - -// @alpha (undocumented) -export interface InstanceMetadataService { - // (undocumented) - getInstalledFeatures: () => BackendFeatureMeta[]; -} - -// @alpha (undocumented) -export const instanceMetadataServiceRef: ServiceRef< - InstanceMetadataService, - 'plugin', - 'singleton' ->; - // (No @packageDocumentation comment for this package) ``` diff --git a/packages/backend-plugin-api/report.api.md b/packages/backend-plugin-api/report.api.md index 52843dec96..ebc544deed 100644 --- a/packages/backend-plugin-api/report.api.md +++ b/packages/backend-plugin-api/report.api.md @@ -232,6 +232,11 @@ export namespace coreServices { const rootLogger: ServiceRef; const scheduler: ServiceRef; const urlReader: ServiceRef; + const instanceMetadata: ServiceRef< + InstanceMetadataService, + 'plugin', + 'singleton' + >; } // @public @@ -416,6 +421,22 @@ export interface HttpRouterServiceAuthPolicy { path: string; } +// @public (undocumented) +export interface InstanceMetadataService { + // (undocumented) + getInstalledPlugins: () => readonly InstanceMetadataServicePluginInfo[]; +} + +// @public (undocumented) +export interface InstanceMetadataServicePluginInfo { + // (undocumented) + modules: { + moduleId: string; + }[]; + // (undocumented) + pluginId: string; +} + export { isChildPath }; // @public diff --git a/packages/backend-plugin-api/src/services/definitions/InstanceMetadataService.ts b/packages/backend-plugin-api/src/services/definitions/InstanceMetadataService.ts index 2a42631ec7..78d6f8356c 100644 --- a/packages/backend-plugin-api/src/services/definitions/InstanceMetadataService.ts +++ b/packages/backend-plugin-api/src/services/definitions/InstanceMetadataService.ts @@ -14,14 +14,15 @@ * limitations under the License. */ -export interface BackendPlugin { +/** @public */ +export interface InstanceMetadataServicePluginInfo { pluginId: string; modules: { moduleId: string; }[]; } -/** @alpha */ +/** @public */ export interface InstanceMetadataService { - getInstalledPlugins: () => readonly BackendPlugin[]; + getInstalledPlugins: () => readonly InstanceMetadataServicePluginInfo[]; } diff --git a/packages/backend-plugin-api/src/services/definitions/index.ts b/packages/backend-plugin-api/src/services/definitions/index.ts index 2c606bc370..111bd86ba9 100644 --- a/packages/backend-plugin-api/src/services/definitions/index.ts +++ b/packages/backend-plugin-api/src/services/definitions/index.ts @@ -87,6 +87,6 @@ export type { export type { BackstageUserInfo, UserInfoService } from './UserInfoService'; export type { InstanceMetadataService, - BackendPlugin, + InstanceMetadataServicePluginInfo, } from './InstanceMetadataService'; export { coreServices } from './coreServices'; diff --git a/packages/backend-test-utils/src/services/mockServices.ts b/packages/backend-test-utils/src/services/mockServices.ts index f7d57d3fb1..d7c0474838 100644 --- a/packages/backend-test-utils/src/services/mockServices.ts +++ b/packages/backend-test-utils/src/services/mockServices.ts @@ -34,6 +34,7 @@ import { DatabaseService, DiscoveryService, HttpAuthService, + InstanceMetadataService, LoggerService, PermissionsService, RootConfigService, @@ -556,4 +557,15 @@ export namespace mockServices { subscribe: jest.fn(), })); } + + export function instanceMetadata(): InstanceMetadataService { + return { + getInstalledPlugins: () => [], + }; + } + export namespace instanceMetadata { + export const mock = simpleMock(coreServices.instanceMetadata, () => ({ + getInstalledPlugins: jest.fn(), + })); + } }