diff --git a/.changeset/four-peaches-train.md b/.changeset/four-peaches-train.md new file mode 100644 index 0000000000..81b35589c1 --- /dev/null +++ b/.changeset/four-peaches-train.md @@ -0,0 +1,6 @@ +--- +'@backstage/backend-defaults': patch +'@backstage/backend-plugin-api': patch +--- + +**BREAKING ALPHA**: The old `instanceMetadataService` has been removed from alpha. Please switch over to using the stable `coreServices.rootInstanceMetadata` and related types instead, available from `@backstage/backend-plugin-api`. diff --git a/packages/backend-defaults/report-alpha.api.md b/packages/backend-defaults/report-alpha.api.md index 2ca3525946..58277b5e1e 100644 --- a/packages/backend-defaults/report-alpha.api.md +++ b/packages/backend-defaults/report-alpha.api.md @@ -5,7 +5,6 @@ ```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) @@ -22,12 +21,5 @@ 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/CreateBackend.ts b/packages/backend-defaults/src/CreateBackend.ts index 44df59b5f1..9f8116a996 100644 --- a/packages/backend-defaults/src/CreateBackend.ts +++ b/packages/backend-defaults/src/CreateBackend.ts @@ -38,8 +38,8 @@ import { eventsServiceFactory } from '@backstage/plugin-events-node'; import { actionsRegistryServiceFactory, actionsServiceFactory, - instanceMetadataServiceFactory, } from '@backstage/backend-defaults/alpha'; +import { instanceMetadataServiceFactory } from './alpha/entrypoints/instanceMetadata/instanceMetadataServiceFactory'; export const defaultServiceFactories = [ auditorServiceFactory, @@ -66,6 +66,8 @@ export const defaultServiceFactories = [ // alpha services actionsRegistryServiceFactory, actionsServiceFactory, + + // Unexported alpha services kept around for compatibility reasons instanceMetadataServiceFactory, ]; diff --git a/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/index.ts b/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/index.ts deleted file mode 100644 index 00ee75400a..0000000000 --- a/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2025 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export { instanceMetadataServiceFactory } from './instanceMetadataServiceFactory'; diff --git a/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/instanceMetadataServiceFactory.test.ts b/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/instanceMetadataServiceFactory.test.ts index 2368ea74e8..73de60efdd 100644 --- a/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/instanceMetadataServiceFactory.test.ts +++ b/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/instanceMetadataServiceFactory.test.ts @@ -18,9 +18,11 @@ import { coreServices, createBackendPlugin, } from '@backstage/backend-plugin-api'; -import { instanceMetadataServiceFactory } from './instanceMetadataServiceFactory'; +import { + instanceMetadataServiceFactory, + instanceMetadataServiceRef, +} from './instanceMetadataServiceFactory'; import { startTestBackend } from '@backstage/backend-test-utils'; -import { instanceMetadataServiceRef } from '@backstage/backend-plugin-api/alpha'; import Router from 'express-promise-router'; import request from 'supertest'; diff --git a/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/instanceMetadataServiceFactory.ts b/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/instanceMetadataServiceFactory.ts index bd2d427a59..eb50037511 100644 --- a/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/instanceMetadataServiceFactory.ts +++ b/packages/backend-defaults/src/alpha/entrypoints/instanceMetadata/instanceMetadataServiceFactory.ts @@ -17,16 +17,46 @@ import { coreServices, createServiceFactory, + createServiceRef, } from '@backstage/backend-plugin-api'; -import { - BackendFeatureMeta, - InstanceMetadataService, - instanceMetadataServiceRef, -} from '@backstage/backend-plugin-api/alpha'; + +/* + * NOTE(freben): We have moved over to coreServices.rootInstanceMetadata. This + * old alpha implementation is kept around for a little longer for backward + * compatibility reasons. + */ /** - * @alpha - * @deprecated use {@link @backstage/backend-plugin-api#coreServices.rootInstanceMetadata} instead + * @internal + */ +export type BackendFeatureMeta = + | { + type: 'plugin'; + pluginId: string; + } + | { + type: 'module'; + pluginId: string; + moduleId: string; + }; + +/** + * @internal + */ +export interface InstanceMetadataService { + getInstalledFeatures: () => BackendFeatureMeta[]; +} + +/** + * @internal + */ +export const instanceMetadataServiceRef = + createServiceRef({ + id: 'core.instanceMetadata', + }); + +/** + * @internal */ export const instanceMetadataServiceFactory = createServiceFactory({ service: instanceMetadataServiceRef, diff --git a/packages/backend-defaults/src/alpha/index.ts b/packages/backend-defaults/src/alpha/index.ts index 744d5bc552..da63aef9de 100644 --- a/packages/backend-defaults/src/alpha/index.ts +++ b/packages/backend-defaults/src/alpha/index.ts @@ -13,6 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + export { actionsRegistryServiceFactory } from './entrypoints/actionsRegistry'; export { actionsServiceFactory } from './entrypoints/actions'; -export { instanceMetadataServiceFactory } from './entrypoints/instanceMetadata'; 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/src/alpha/InstanceMetadataService.ts b/packages/backend-plugin-api/src/alpha/InstanceMetadataService.ts deleted file mode 100644 index a82a261d9d..0000000000 --- a/packages/backend-plugin-api/src/alpha/InstanceMetadataService.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2025 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** @alpha */ -export type BackendFeatureMeta = - | { - type: 'plugin'; - pluginId: string; - } - | { - type: 'module'; - pluginId: string; - moduleId: string; - }; - -/** @alpha */ -export interface InstanceMetadataService { - getInstalledFeatures: () => BackendFeatureMeta[]; -} diff --git a/packages/backend-plugin-api/src/alpha/index.ts b/packages/backend-plugin-api/src/alpha/index.ts index 5bb69eb4e2..b1edd68adc 100644 --- a/packages/backend-plugin-api/src/alpha/index.ts +++ b/packages/backend-plugin-api/src/alpha/index.ts @@ -14,11 +14,6 @@ * limitations under the License. */ -export type { - BackendFeatureMeta, - InstanceMetadataService, -} from './InstanceMetadataService'; - export type { ActionsRegistryService, ActionsRegistryActionOptions, @@ -27,8 +22,4 @@ export type { export type { ActionsService, ActionsServiceAction } from './ActionsService'; -export { - actionsRegistryServiceRef, - actionsServiceRef, - instanceMetadataServiceRef, -} from './refs'; +export { actionsRegistryServiceRef, actionsServiceRef } from './refs'; diff --git a/packages/backend-plugin-api/src/alpha/refs.ts b/packages/backend-plugin-api/src/alpha/refs.ts index 81996679f7..cfbb215615 100644 --- a/packages/backend-plugin-api/src/alpha/refs.ts +++ b/packages/backend-plugin-api/src/alpha/refs.ts @@ -16,15 +16,6 @@ import { createServiceRef } from '@backstage/backend-plugin-api'; -/** - * @alpha - */ -export const instanceMetadataServiceRef = createServiceRef< - import('./InstanceMetadataService').InstanceMetadataService ->({ - id: 'core.instanceMetadata', -}); - /** * Service for calling distributed actions *