From 36417fbe266884c6b9d1e0a9bcdad34ed0394905 Mon Sep 17 00:00:00 2001 From: benjdlambert Date: Mon, 16 Jun 2025 16:34:05 +0200 Subject: [PATCH] feat: moving the actions and actions registry to alpha services Signed-off-by: benjdlambert Signed-off-by: benjdlambert --- packages/backend-defaults/package.json | 12 ++++------ .../backend-defaults/report-actions.api.md | 17 -------------- ...onsRegistry.api.md => report-alpha.api.md} | 10 ++++++++- .../backend-defaults/src/CreateBackend.ts | 12 ++++++---- .../actions/DefaultActionsService.ts | 6 +++-- .../actions/actionsServiceFactory.test.ts | 10 +++++---- .../actions/actionsServiceFactory.ts | 3 ++- .../{ => alpha}/entrypoints/actions/index.ts | 0 .../DefaultActionsRegistryService.ts | 6 +++-- .../actionsRegistryServiceFactory.test.ts | 22 +++++++++---------- .../actionsRegistryServiceFactory.ts | 3 ++- .../entrypoints/actionsRegistry/index.ts | 0 packages/backend-defaults/src/alpha/index.ts | 17 ++++++++++++++ 13 files changed, 66 insertions(+), 52 deletions(-) delete mode 100644 packages/backend-defaults/report-actions.api.md rename packages/backend-defaults/{report-actionsRegistry.api.md => report-alpha.api.md} (69%) rename packages/backend-defaults/src/{ => alpha}/entrypoints/actions/DefaultActionsService.ts (98%) rename packages/backend-defaults/src/{ => alpha}/entrypoints/actions/actionsServiceFactory.test.ts (96%) rename packages/backend-defaults/src/{ => alpha}/entrypoints/actions/actionsServiceFactory.ts (92%) rename packages/backend-defaults/src/{ => alpha}/entrypoints/actions/index.ts (100%) rename packages/backend-defaults/src/{ => alpha}/entrypoints/actionsRegistry/DefaultActionsRegistryService.ts (98%) rename packages/backend-defaults/src/{ => alpha}/entrypoints/actionsRegistry/actionsRegistryServiceFactory.test.ts (95%) rename packages/backend-defaults/src/{ => alpha}/entrypoints/actionsRegistry/actionsRegistryServiceFactory.ts (92%) rename packages/backend-defaults/src/{ => alpha}/entrypoints/actionsRegistry/index.ts (100%) create mode 100644 packages/backend-defaults/src/alpha/index.ts diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 9ae78c119a..49a7699fdd 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -20,8 +20,6 @@ "license": "Apache-2.0", "exports": { ".": "./src/index.ts", - "./actions": "./src/entrypoints/actions/index.ts", - "./actionsRegistry": "./src/entrypoints/actionsRegistry/index.ts", "./auditor": "./src/entrypoints/auditor/index.ts", "./auth": "./src/entrypoints/auth/index.ts", "./cache": "./src/entrypoints/cache/index.ts", @@ -41,18 +39,13 @@ "./scheduler": "./src/entrypoints/scheduler/index.ts", "./urlReader": "./src/entrypoints/urlReader/index.ts", "./userInfo": "./src/entrypoints/userInfo/index.ts", + "./alpha": "./src/alpha/index.ts", "./package.json": "./package.json" }, "main": "src/index.ts", "types": "src/index.ts", "typesVersions": { "*": { - "actions": [ - "src/entrypoints/actions/index.ts" - ], - "actionsRegistry": [ - "src/entrypoints/actionsRegistry/index.ts" - ], "auditor": [ "src/entrypoints/auditor/index.ts" ], @@ -110,6 +103,9 @@ "userInfo": [ "src/entrypoints/userInfo/index.ts" ], + "alpha": [ + "src/alpha/index.ts" + ], "package.json": [ "package.json" ] diff --git a/packages/backend-defaults/report-actions.api.md b/packages/backend-defaults/report-actions.api.md deleted file mode 100644 index 4c072af02a..0000000000 --- a/packages/backend-defaults/report-actions.api.md +++ /dev/null @@ -1,17 +0,0 @@ -## API Report File for "@backstage/backend-defaults" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts -import { ActionsService } from '@backstage/backend-plugin-api'; -import { ServiceFactory } from '@backstage/backend-plugin-api'; - -// @public (undocumented) -export const actionsServiceFactory: ServiceFactory< - ActionsService, - 'plugin', - 'singleton' ->; - -// (No @packageDocumentation comment for this package) -``` diff --git a/packages/backend-defaults/report-actionsRegistry.api.md b/packages/backend-defaults/report-alpha.api.md similarity index 69% rename from packages/backend-defaults/report-actionsRegistry.api.md rename to packages/backend-defaults/report-alpha.api.md index d35bf4cef4..58277b5e1e 100644 --- a/packages/backend-defaults/report-actionsRegistry.api.md +++ b/packages/backend-defaults/report-alpha.api.md @@ -3,7 +3,8 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { ActionsRegistryService } from '@backstage/backend-plugin-api'; +import { ActionsRegistryService } from '@backstage/backend-plugin-api/alpha'; +import { ActionsService } from '@backstage/backend-plugin-api/alpha'; import { ServiceFactory } from '@backstage/backend-plugin-api'; // @public (undocumented) @@ -13,5 +14,12 @@ export const actionsRegistryServiceFactory: ServiceFactory< 'singleton' >; +// @public (undocumented) +export const actionsServiceFactory: ServiceFactory< + ActionsService, + '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 032978c806..4b201fded3 100644 --- a/packages/backend-defaults/src/CreateBackend.ts +++ b/packages/backend-defaults/src/CreateBackend.ts @@ -35,12 +35,12 @@ import { schedulerServiceFactory } from '@backstage/backend-defaults/scheduler'; import { urlReaderServiceFactory } from '@backstage/backend-defaults/urlReader'; import { userInfoServiceFactory } from '@backstage/backend-defaults/userInfo'; import { eventsServiceFactory } from '@backstage/plugin-events-node'; -import { actionsRegistryServiceFactory } from './entrypoints/actionsRegistry'; -import { actionsServiceFactory } from './entrypoints/actions'; - -export const defaultServiceFactories = [ +import { actionsRegistryServiceFactory, actionsServiceFactory, +} from '@backstage/backend-defaults/alpha'; + +export const defaultServiceFactories = [ auditorServiceFactory, authServiceFactory, cacheServiceFactory, @@ -61,6 +61,10 @@ export const defaultServiceFactories = [ userInfoServiceFactory, urlReaderServiceFactory, eventsServiceFactory, + + // alpha services + actionsRegistryServiceFactory, + actionsServiceFactory, ]; /** diff --git a/packages/backend-defaults/src/entrypoints/actions/DefaultActionsService.ts b/packages/backend-defaults/src/alpha/entrypoints/actions/DefaultActionsService.ts similarity index 98% rename from packages/backend-defaults/src/entrypoints/actions/DefaultActionsService.ts rename to packages/backend-defaults/src/alpha/entrypoints/actions/DefaultActionsService.ts index 2421482f4c..d8847c2187 100644 --- a/packages/backend-defaults/src/entrypoints/actions/DefaultActionsService.ts +++ b/packages/backend-defaults/src/alpha/entrypoints/actions/DefaultActionsService.ts @@ -14,8 +14,6 @@ * limitations under the License. */ import { - ActionsService, - ActionsServiceAction, AuthService, BackstageCredentials, DiscoveryService, @@ -24,6 +22,10 @@ import { } from '@backstage/backend-plugin-api'; import { ResponseError } from '@backstage/errors'; import { JsonObject } from '@backstage/types'; +import { + ActionsService, + ActionsServiceAction, +} from '@backstage/backend-plugin-api/alpha'; export class DefaultActionsService implements ActionsService { private constructor( diff --git a/packages/backend-defaults/src/entrypoints/actions/actionsServiceFactory.test.ts b/packages/backend-defaults/src/alpha/entrypoints/actions/actionsServiceFactory.test.ts similarity index 96% rename from packages/backend-defaults/src/entrypoints/actions/actionsServiceFactory.test.ts rename to packages/backend-defaults/src/alpha/entrypoints/actions/actionsServiceFactory.test.ts index c43945f1d5..af2fcb0c12 100644 --- a/packages/backend-defaults/src/entrypoints/actions/actionsServiceFactory.test.ts +++ b/packages/backend-defaults/src/alpha/entrypoints/actions/actionsServiceFactory.test.ts @@ -21,18 +21,20 @@ import { startTestBackend, } from '@backstage/backend-test-utils'; import { actionsRegistryServiceFactory } from '../actionsRegistry'; -import { httpRouterServiceFactory } from '../httpRouter'; +import { httpRouterServiceFactory } from '../../../entrypoints/httpRouter'; import { actionsServiceFactory } from './actionsServiceFactory'; import { setupServer } from 'msw/node'; import { rest } from 'msw'; import { - ActionsServiceAction, coreServices, createBackendPlugin, } from '@backstage/backend-plugin-api'; import { json } from 'express'; import Router from 'express-promise-router'; import request from 'supertest'; +import { ActionsServiceAction } from '@backstage/backend-plugin-api/alpha'; +import { actionsRegistryServiceRef } from '@backstage/backend-plugin-api/alpha'; +import { actionsServiceRef } from '@backstage/backend-plugin-api/alpha'; const server = setupServer(); @@ -201,7 +203,7 @@ describe('actionsServiceFactory', () => { pluginId: 'plugin-with-action', register({ registerInit }) { registerInit({ - deps: { actionsRegistry: coreServices.actionsRegistry }, + deps: { actionsRegistry: actionsRegistryServiceRef }, async init({ actionsRegistry }) { actionsRegistry.register({ name: 'with-validation', @@ -236,7 +238,7 @@ describe('actionsServiceFactory', () => { register({ registerInit }) { registerInit({ deps: { - actionsService: coreServices.actions, + actionsService: actionsServiceRef, router: coreServices.httpRouter, httpAuth: coreServices.httpAuth, }, diff --git a/packages/backend-defaults/src/entrypoints/actions/actionsServiceFactory.ts b/packages/backend-defaults/src/alpha/entrypoints/actions/actionsServiceFactory.ts similarity index 92% rename from packages/backend-defaults/src/entrypoints/actions/actionsServiceFactory.ts rename to packages/backend-defaults/src/alpha/entrypoints/actions/actionsServiceFactory.ts index 466cc02121..4325da7d13 100644 --- a/packages/backend-defaults/src/entrypoints/actions/actionsServiceFactory.ts +++ b/packages/backend-defaults/src/alpha/entrypoints/actions/actionsServiceFactory.ts @@ -16,12 +16,13 @@ import { createServiceFactory } from '@backstage/backend-plugin-api'; import { coreServices } from '@backstage/backend-plugin-api'; import { DefaultActionsService } from './DefaultActionsService'; +import { actionsServiceRef } from '@backstage/backend-plugin-api/alpha'; /** * @public */ export const actionsServiceFactory = createServiceFactory({ - service: coreServices.actions, + service: actionsServiceRef, deps: { discovery: coreServices.discovery, config: coreServices.rootConfig, diff --git a/packages/backend-defaults/src/entrypoints/actions/index.ts b/packages/backend-defaults/src/alpha/entrypoints/actions/index.ts similarity index 100% rename from packages/backend-defaults/src/entrypoints/actions/index.ts rename to packages/backend-defaults/src/alpha/entrypoints/actions/index.ts diff --git a/packages/backend-defaults/src/entrypoints/actionsRegistry/DefaultActionsRegistryService.ts b/packages/backend-defaults/src/alpha/entrypoints/actionsRegistry/DefaultActionsRegistryService.ts similarity index 98% rename from packages/backend-defaults/src/entrypoints/actionsRegistry/DefaultActionsRegistryService.ts rename to packages/backend-defaults/src/alpha/entrypoints/actionsRegistry/DefaultActionsRegistryService.ts index bee3f7d565..2284935787 100644 --- a/packages/backend-defaults/src/entrypoints/actionsRegistry/DefaultActionsRegistryService.ts +++ b/packages/backend-defaults/src/alpha/entrypoints/actionsRegistry/DefaultActionsRegistryService.ts @@ -15,8 +15,6 @@ */ import { - ActionsRegistryActionOptions, - ActionsRegistryService, AuthService, HttpAuthService, LoggerService, @@ -26,6 +24,10 @@ import PromiseRouter from 'express-promise-router'; import { Router, json } from 'express'; import { z, AnyZodObject } from 'zod'; import zodToJsonSchema from 'zod-to-json-schema'; +import { + ActionsRegistryActionOptions, + ActionsRegistryService, +} from '@backstage/backend-plugin-api/alpha'; import { ForwardedError, InputError, diff --git a/packages/backend-defaults/src/entrypoints/actionsRegistry/actionsRegistryServiceFactory.test.ts b/packages/backend-defaults/src/alpha/entrypoints/actionsRegistry/actionsRegistryServiceFactory.test.ts similarity index 95% rename from packages/backend-defaults/src/entrypoints/actionsRegistry/actionsRegistryServiceFactory.test.ts rename to packages/backend-defaults/src/alpha/entrypoints/actionsRegistry/actionsRegistryServiceFactory.test.ts index 2de6272365..79c103c284 100644 --- a/packages/backend-defaults/src/entrypoints/actionsRegistry/actionsRegistryServiceFactory.test.ts +++ b/packages/backend-defaults/src/alpha/entrypoints/actionsRegistry/actionsRegistryServiceFactory.test.ts @@ -13,19 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { - coreServices, - createBackendPlugin, -} from '@backstage/backend-plugin-api'; +import { createBackendPlugin } from '@backstage/backend-plugin-api'; import { mockCredentials, mockServices, startTestBackend, } from '@backstage/backend-test-utils'; -import { httpRouterServiceFactory } from '../httpRouter'; +import { httpRouterServiceFactory } from '../../../entrypoints/httpRouter'; import request from 'supertest'; import { actionsRegistryServiceFactory } from './actionsRegistryServiceFactory'; import { InputError } from '@backstage/errors'; +import { actionsRegistryServiceRef } from '@backstage/backend-plugin-api/alpha'; describe('actionsRegistryServiceFactory', () => { const defaultServices = [ @@ -43,7 +41,7 @@ describe('actionsRegistryServiceFactory', () => { register(reg) { reg.registerInit({ deps: { - actionsRegistry: coreServices.actionsRegistry, + actionsRegistry: actionsRegistryServiceRef, }, async init({ actionsRegistry }) { actionsRegistry.register({ @@ -80,7 +78,7 @@ describe('actionsRegistryServiceFactory', () => { register(reg) { reg.registerInit({ deps: { - actionsRegistry: coreServices.actionsRegistry, + actionsRegistry: actionsRegistryServiceRef, }, async init({ actionsRegistry }) { actionsRegistry.register({ @@ -118,7 +116,7 @@ describe('actionsRegistryServiceFactory', () => { register(reg) { reg.registerInit({ deps: { - actionsRegistry: coreServices.actionsRegistry, + actionsRegistry: actionsRegistryServiceRef, }, async init({ actionsRegistry }) { actionsRegistry.register({ @@ -187,7 +185,7 @@ describe('actionsRegistryServiceFactory', () => { register(reg) { reg.registerInit({ deps: { - actionsRegistry: coreServices.actionsRegistry, + actionsRegistry: actionsRegistryServiceRef, }, async init({ actionsRegistry }) { actionsRegistry.register({ @@ -235,7 +233,7 @@ describe('actionsRegistryServiceFactory', () => { register(reg) { reg.registerInit({ deps: { - actionsRegistry: coreServices.actionsRegistry, + actionsRegistry: actionsRegistryServiceRef, }, async init({ actionsRegistry }) { actionsRegistry.register({ @@ -290,7 +288,7 @@ describe('actionsRegistryServiceFactory', () => { register(reg) { reg.registerInit({ deps: { - actionsRegistry: coreServices.actionsRegistry, + actionsRegistry: actionsRegistryServiceRef, }, async init({ actionsRegistry }) { actionsRegistry.register({ @@ -349,7 +347,7 @@ describe('actionsRegistryServiceFactory', () => { register(reg) { reg.registerInit({ deps: { - actionsRegistry: coreServices.actionsRegistry, + actionsRegistry: actionsRegistryServiceRef, }, async init({ actionsRegistry }) { actionsRegistry.register({ diff --git a/packages/backend-defaults/src/entrypoints/actionsRegistry/actionsRegistryServiceFactory.ts b/packages/backend-defaults/src/alpha/entrypoints/actionsRegistry/actionsRegistryServiceFactory.ts similarity index 92% rename from packages/backend-defaults/src/entrypoints/actionsRegistry/actionsRegistryServiceFactory.ts rename to packages/backend-defaults/src/alpha/entrypoints/actionsRegistry/actionsRegistryServiceFactory.ts index 85515a6046..8c19b8148c 100644 --- a/packages/backend-defaults/src/entrypoints/actionsRegistry/actionsRegistryServiceFactory.ts +++ b/packages/backend-defaults/src/alpha/entrypoints/actionsRegistry/actionsRegistryServiceFactory.ts @@ -19,12 +19,13 @@ import { createServiceFactory, } from '@backstage/backend-plugin-api'; import { DefaultActionsRegistryService } from './DefaultActionsRegistryService'; +import { actionsRegistryServiceRef } from '@backstage/backend-plugin-api/alpha'; /** * @public */ export const actionsRegistryServiceFactory = createServiceFactory({ - service: coreServices.actionsRegistry, + service: actionsRegistryServiceRef, deps: { metadata: coreServices.pluginMetadata, httpRouter: coreServices.httpRouter, diff --git a/packages/backend-defaults/src/entrypoints/actionsRegistry/index.ts b/packages/backend-defaults/src/alpha/entrypoints/actionsRegistry/index.ts similarity index 100% rename from packages/backend-defaults/src/entrypoints/actionsRegistry/index.ts rename to packages/backend-defaults/src/alpha/entrypoints/actionsRegistry/index.ts diff --git a/packages/backend-defaults/src/alpha/index.ts b/packages/backend-defaults/src/alpha/index.ts new file mode 100644 index 0000000000..13bb439acd --- /dev/null +++ b/packages/backend-defaults/src/alpha/index.ts @@ -0,0 +1,17 @@ +/* + * 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 { actionsRegistryServiceFactory } from './entrypoints/actionsRegistry'; +export { actionsServiceFactory } from './entrypoints/actions';