Rename backend-plugin-manager package and make it public

Signed-off-by: David Festal <dfestal@redhat.com>
This commit is contained in:
David Festal
2024-01-10 18:05:28 +01:00
parent 776ac8b283
commit eb81f4228a
24 changed files with 62 additions and 62 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-dynamic-feature-service': minor
---
New `backend-dynamic-feature-service` package, for the discovery of dynamic frontend and backend plugins (and modules) and the loading of the backend ones inside the backend application.
@@ -1,4 +1,4 @@
# @backstage/backend-plugin-manager
# @backstage/backend-dynamic-feature-service
## 0.0.5-next.2
@@ -1,10 +1,6 @@
# @backstage/backend-plugin-manager
# @backstage/backend-dynamic-feature-service
This package adds experimental support for **dynamic backend plugins**, according to the content of the proposal in [RFC 18390](https://github.com/backstage/backstage/issues/18390)
## Status
**This package is EXPERIMENTAL, and is subject to change according to the discussions and conclusions that happen around the RFC mentioned above.**
This package adds experimental support for **dynamic backend features (plugins and modules)**, according to the content of the proposal in [RFC 18390](https://github.com/backstage/backstage/issues/18390)
## Testing the backend dynamic plugins feature
@@ -12,9 +8,9 @@ In order to test the dynamic backend plugins feature provided by this package, e
## How it works
The backend plugin manager is a service that scans a configured root directory (`dynamicPlugins.rootDirectory` in the app config) for dynamic plugin packages, and loads them dynamically.
The dynamic plugin manager is a service that scans a configured root directory (`dynamicPlugins.rootDirectory` in the app config) for dynamic plugin packages, and loads them dynamically.
In the `backend-next` application, it can be enabled by adding the `backend-plugin-manager` as a dependency in the `package.json` and the following lines in the `src/index.ts` file:
In the `backend-next` application, it can be enabled by adding the `backend-dynamic-feature-service` as a dependency in the `package.json` and the following lines in the `src/index.ts` file:
```ts
const backend = createBackend();
@@ -36,9 +32,9 @@ Points 2 and 3 can be done by the `export-dynamic-plugin` CLI command used to pe
### About the `export-dynamic-plugin` command
The `export-dynamic-plugin` CLI command, used the dynamic plugin examples provided in the [showcase repository](https://github.com/janus-idp/dynamic-backend-plugins-showcase), is part of a `@backstage/cli` fork (`@dfatwork-pkgs/backstage-cli@0.22.9-next.6`), and can be used to help packaging the dynamic plugins according to the constraints mentioned above, in order to allow straightforward testing of the dynamic plugins feature.
The `export-dynamic-plugin` CLI command, used the dynamic plugin examples provided in the [showcase repository](https://github.com/janus-idp/dynamic-backend-plugins-showcase), is part of the `@janus-idp/cli` package, and can be used to help packaging the dynamic plugins according to the constraints mentioned above, in order to allow straightforward testing of the dynamic plugins feature.
However the `backend-plugin-manager` experimental package does **not** depend on the use of this additional CLI command, and in future steps of this backend dynamic plugin work, the use of such a dedicated command might not even be necessary.
However the `backend-dynamic-feature-service` experimental package does **not** depend on the use of this additional CLI command, and in future steps of this backend dynamic plugin work, the use of such a dedicated command might not even be necessary.
### About the support of the legacy backend system
@@ -49,4 +45,4 @@ This is why the API related to the old backend is already marked as deprecated.
### Future work
The current implementation of the backend plugin manager is a first step towards the final implementation of the dynamic backend plugins feature, which will be completed / simplified in future steps, as the status of the backstage codebase allows it.
The current implementation of the dynamic plugin manager is a first step towards the final implementation of the dynamic features loading, which will be completed / simplified in future steps, as the status of the backstage codebase allows it.
@@ -1,4 +1,4 @@
## API Report File for "@backstage/backend-plugin-manager"
## API Report File for "@backstage/backend-dynamic-feature-service"
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
@@ -0,0 +1,10 @@
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: backstage-backend-dynamic-feature-service
title: '@backstage/backend-dynamic-feature-service'
description: Backstage backend service to handle dynamic features
spec:
lifecycle: experimental
type: backstage-node-library
owner: maintainers
@@ -1,8 +1,7 @@
{
"name": "@backstage/backend-plugin-manager",
"description": "Backstage plugin management backend",
"version": "0.0.5-next.2",
"private": true,
"name": "@backstage/backend-dynamic-feature-service",
"description": "Backstage dynamic feature service",
"version": "0.0.0",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
@@ -47,7 +47,7 @@ import { PluginScanner } from '../scanner/plugin-scanner';
import { findPaths } from '@backstage/cli-common';
import { createMockDirectory } from '@backstage/backend-test-utils';
describe('backend-plugin-manager', () => {
describe('backend-dynamic-feature-service', () => {
const mockDir = createMockDirectory();
describe('loadPlugins', () => {
@@ -1,10 +0,0 @@
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: backstage-backend-plugin-manager
title: '@backstage/backend-plugin-manager'
description: Backstage plugin management backend
spec:
lifecycle: experimental
type: backstage-node-library
owner: maintainers
+34 -34
View File
@@ -3344,6 +3344,40 @@ __metadata:
languageName: unknown
linkType: soft
"@backstage/backend-dynamic-feature-service@workspace:packages/backend-dynamic-feature-service":
version: 0.0.0-use.local
resolution: "@backstage/backend-dynamic-feature-service@workspace:packages/backend-dynamic-feature-service"
dependencies:
"@backstage/backend-app-api": "workspace:^"
"@backstage/backend-common": "workspace:^"
"@backstage/backend-plugin-api": "workspace:^"
"@backstage/backend-tasks": "workspace:^"
"@backstage/backend-test-utils": "workspace:^"
"@backstage/cli": "workspace:^"
"@backstage/cli-common": "workspace:^"
"@backstage/cli-node": "workspace:^"
"@backstage/config": "workspace:^"
"@backstage/config-loader": "workspace:^"
"@backstage/errors": "workspace:^"
"@backstage/plugin-auth-node": "workspace:^"
"@backstage/plugin-catalog-backend": "workspace:^"
"@backstage/plugin-events-backend": "workspace:^"
"@backstage/plugin-events-node": "workspace:^"
"@backstage/plugin-permission-common": "workspace:^"
"@backstage/plugin-permission-node": "workspace:^"
"@backstage/plugin-scaffolder-node": "workspace:^"
"@backstage/plugin-search-backend-node": "workspace:^"
"@backstage/plugin-search-common": "workspace:^"
"@backstage/types": "workspace:^"
"@types/express": ^4.17.6
chokidar: ^3.5.3
express: ^4.17.1
lodash: ^4.17.21
wait-for-expect: ^3.0.2
winston: ^3.2.1
languageName: unknown
linkType: soft
"@backstage/backend-openapi-utils@workspace:^, @backstage/backend-openapi-utils@workspace:packages/backend-openapi-utils":
version: 0.0.0-use.local
resolution: "@backstage/backend-openapi-utils@workspace:packages/backend-openapi-utils"
@@ -3380,40 +3414,6 @@ __metadata:
languageName: unknown
linkType: soft
"@backstage/backend-plugin-manager@workspace:packages/backend-plugin-manager":
version: 0.0.0-use.local
resolution: "@backstage/backend-plugin-manager@workspace:packages/backend-plugin-manager"
dependencies:
"@backstage/backend-app-api": "workspace:^"
"@backstage/backend-common": "workspace:^"
"@backstage/backend-plugin-api": "workspace:^"
"@backstage/backend-tasks": "workspace:^"
"@backstage/backend-test-utils": "workspace:^"
"@backstage/cli": "workspace:^"
"@backstage/cli-common": "workspace:^"
"@backstage/cli-node": "workspace:^"
"@backstage/config": "workspace:^"
"@backstage/config-loader": "workspace:^"
"@backstage/errors": "workspace:^"
"@backstage/plugin-auth-node": "workspace:^"
"@backstage/plugin-catalog-backend": "workspace:^"
"@backstage/plugin-events-backend": "workspace:^"
"@backstage/plugin-events-node": "workspace:^"
"@backstage/plugin-permission-common": "workspace:^"
"@backstage/plugin-permission-node": "workspace:^"
"@backstage/plugin-scaffolder-node": "workspace:^"
"@backstage/plugin-search-backend-node": "workspace:^"
"@backstage/plugin-search-common": "workspace:^"
"@backstage/types": "workspace:^"
"@types/express": ^4.17.6
chokidar: ^3.5.3
express: ^4.17.1
lodash: ^4.17.21
wait-for-expect: ^3.0.2
winston: ^3.2.1
languageName: unknown
linkType: soft
"@backstage/backend-tasks@workspace:^, @backstage/backend-tasks@workspace:packages/backend-tasks":
version: 0.0.0-use.local
resolution: "@backstage/backend-tasks@workspace:packages/backend-tasks"