diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index ee62ef966d..bc778b6589 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -41,7 +41,6 @@ import { ServiceRegistry } from './ServiceRegistry'; import { createInitializationLogger } from './createInitializationLogger'; import { deepFreeze, unwrapFeature } from './helpers'; import type { RootInstanceMetadataServicePluginInfo } from '@backstage/backend-plugin-api'; -import { instanceMetadataServiceRef } from '@backstage/backend-plugin-api/alpha'; export interface BackendRegisterInit { consumes: Set; diff --git a/packages/backend-defaults/report-alpha.api.md b/packages/backend-defaults/report-alpha.api.md index 58277b5e1e..2ca3525946 100644 --- a/packages/backend-defaults/report-alpha.api.md +++ b/packages/backend-defaults/report-alpha.api.md @@ -5,6 +5,7 @@ ```ts import { ActionsRegistryService } from '@backstage/backend-plugin-api/alpha'; import { ActionsService } from '@backstage/backend-plugin-api/alpha'; +import { InstanceMetadataService } from '@backstage/backend-plugin-api/alpha'; import { ServiceFactory } from '@backstage/backend-plugin-api'; // @public (undocumented) @@ -21,5 +22,12 @@ export const actionsServiceFactory: ServiceFactory< 'singleton' >; +// @alpha @deprecated (undocumented) +export const instanceMetadataServiceFactory: ServiceFactory< + InstanceMetadataService, + 'plugin', + 'singleton' +>; + // (No @packageDocumentation comment for this package) ``` diff --git a/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/instanceMetadataServiceFactory.ts b/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/instanceMetadataServiceFactory.ts index f5e3af503b..a50c8f0058 100644 --- a/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/instanceMetadataServiceFactory.ts +++ b/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/instanceMetadataServiceFactory.ts @@ -20,6 +20,10 @@ import { } from '@backstage/backend-plugin-api'; import { instanceMetadataServiceRef } from '@backstage/backend-plugin-api/alpha'; +/** + * @alpha + * @deprecated use {@link @backstage/backend-plugin-api#coreServices.rootInstanceMetadata} instead + */ export const instanceMetadataServiceFactory = createServiceFactory({ service: instanceMetadataServiceRef, deps: { diff --git a/packages/backend-plugin-api/report-alpha.api.md b/packages/backend-plugin-api/report-alpha.api.md index cefed593c0..9be7a29ed5 100644 --- a/packages/backend-plugin-api/report-alpha.api.md +++ b/packages/backend-plugin-api/report-alpha.api.md @@ -103,5 +103,30 @@ 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 fdb30434ed..cce3221c80 100644 --- a/packages/backend-plugin-api/report.api.md +++ b/packages/backend-plugin-api/report.api.md @@ -232,8 +232,8 @@ export namespace coreServices { const rootLogger: ServiceRef; const scheduler: ServiceRef; const urlReader: ServiceRef; - const instanceMetadata: ServiceRef< - InstanceMetadataService, + const rootInstanceMetadata: ServiceRef< + RootInstanceMetadataService, 'plugin', 'singleton' >; @@ -421,24 +421,6 @@ export interface HttpRouterServiceAuthPolicy { path: string; } -// @public (undocumented) -export interface InstanceMetadataService { - // (undocumented) - getInstalledPlugins: () => Promise< - ReadonlyArray - >; -} - -// @public (undocumented) -export interface InstanceMetadataServicePluginInfo { - // (undocumented) - readonly modules: ReadonlyArray<{ - moduleId: string; - }>; - // (undocumented) - readonly pluginId: string; -} - export { isChildPath }; // @public @@ -601,6 +583,24 @@ export interface RootHttpRouterService { use(path: string, handler: Handler): void; } +// @public (undocumented) +export interface RootInstanceMetadataService { + // (undocumented) + getInstalledPlugins: () => Promise< + ReadonlyArray + >; +} + +// @public (undocumented) +export interface RootInstanceMetadataServicePluginInfo { + // (undocumented) + readonly modules: ReadonlyArray<{ + moduleId: string; + }>; + // (undocumented) + readonly pluginId: string; +} + // @public export interface RootLifecycleService extends LifecycleService { // (undocumented) diff --git a/packages/backend-test-utils/report.api.md b/packages/backend-test-utils/report.api.md index 8650036014..ebe5eaaf15 100644 --- a/packages/backend-test-utils/report.api.md +++ b/packages/backend-test-utils/report.api.md @@ -23,7 +23,6 @@ import { ExtendedHttpServer } from '@backstage/backend-defaults/rootHttpRouter'; import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { HttpAuthService } from '@backstage/backend-plugin-api'; import { HttpRouterService } from '@backstage/backend-plugin-api'; -import { InstanceMetadataService } from '@backstage/backend-plugin-api'; import { JsonObject } from '@backstage/types'; import Keyv from 'keyv'; import { Knex } from 'knex'; @@ -36,6 +35,7 @@ import { PermissionsService } from '@backstage/backend-plugin-api'; import { RootConfigService } from '@backstage/backend-plugin-api'; import { RootHealthService } from '@backstage/backend-plugin-api'; import { RootHttpRouterService } from '@backstage/backend-plugin-api'; +import { RootInstanceMetadataService } from '@backstage/backend-plugin-api'; import { RootLifecycleService } from '@backstage/backend-plugin-api'; import { RootLoggerService } from '@backstage/backend-plugin-api'; import { SchedulerService } from '@backstage/backend-plugin-api'; @@ -263,21 +263,6 @@ export namespace mockServices { ) => ServiceMock; } // (undocumented) - export function instanceMetadata(): InstanceMetadataService; - // (undocumented) - export namespace instanceMetadata { - const // (undocumented) - mock: ( - partialImpl?: Partial | undefined, - ) => ServiceMock; - const // (undocumented) - factory: () => ServiceFactory< - InstanceMetadataService, - 'plugin', - 'singleton' | 'multiton' - >; - } - // (undocumented) export namespace lifecycle { const // (undocumented) factory: () => ServiceFactory; @@ -360,6 +345,21 @@ export namespace mockServices { ) => ServiceMock; } // (undocumented) + export function rootInstanceMetadata(): RootInstanceMetadataService; + // (undocumented) + export namespace rootInstanceMetadata { + const // (undocumented) + mock: ( + partialImpl?: Partial | undefined, + ) => ServiceMock; + const // (undocumented) + factory: () => ServiceFactory< + RootInstanceMetadataService, + 'plugin', + 'singleton' | 'multiton' + >; + } + // (undocumented) export namespace rootLifecycle { const // (undocumented) factory: () => ServiceFactory; diff --git a/packages/backend/src/instanceMetadata.ts b/packages/backend/src/instanceMetadata.ts index 4f12fc889d..026fc6fd02 100644 --- a/packages/backend/src/instanceMetadata.ts +++ b/packages/backend/src/instanceMetadata.ts @@ -24,7 +24,7 @@ export default createBackendPlugin({ register(env) { env.registerInit({ deps: { - instanceMetadata: coreServices.instanceMetadata, + instanceMetadata: coreServices.rootInstanceMetadata, logger: coreServices.logger, }, async init({ instanceMetadata, logger }) { diff --git a/plugins/gateway-backend/src/plugin.ts b/plugins/gateway-backend/src/plugin.ts index efd7a372de..6facc1ddea 100644 --- a/plugins/gateway-backend/src/plugin.ts +++ b/plugins/gateway-backend/src/plugin.ts @@ -32,7 +32,7 @@ export const gatewayPlugin = createBackendPlugin({ deps: { logger: coreServices.logger, rootHttpRouter: coreServices.rootHttpRouter, - instanceMeta: coreServices.instanceMetadata, + instanceMeta: coreServices.rootInstanceMetadata, discovery: coreServices.discovery, }, async init({ logger, discovery, instanceMeta, rootHttpRouter }) { diff --git a/plugins/gateway-backend/src/router.ts b/plugins/gateway-backend/src/router.ts index 7f8c898761..8263fb27ab 100644 --- a/plugins/gateway-backend/src/router.ts +++ b/plugins/gateway-backend/src/router.ts @@ -15,7 +15,7 @@ */ import { DiscoveryService, - InstanceMetadataService, + RootInstanceMetadataService, LoggerService, } from '@backstage/backend-plugin-api'; import { Request, Response, NextFunction } from 'express'; @@ -28,7 +28,7 @@ export async function createRouter({ instanceMeta, }: { discovery: DiscoveryService; - instanceMeta: InstanceMetadataService; + instanceMeta: RootInstanceMetadataService; logger: LoggerService; }) { const plugins = await instanceMeta.getInstalledPlugins();