Merge pull request #31053 from backstage/sennyeya/instance-metadata-update
feat: promote instance metadata
This commit is contained in:
@@ -18,7 +18,6 @@ import {
|
||||
createBackendPlugin,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { createRouter } from './router';
|
||||
import { instanceMetadataServiceRef } from '@backstage/backend-plugin-api/alpha';
|
||||
import { Handler } from 'express';
|
||||
|
||||
/**
|
||||
@@ -33,17 +32,17 @@ export const gatewayPlugin = createBackendPlugin({
|
||||
deps: {
|
||||
logger: coreServices.logger,
|
||||
rootHttpRouter: coreServices.rootHttpRouter,
|
||||
instanceMeta: instanceMetadataServiceRef,
|
||||
instanceMeta: coreServices.rootInstanceMetadata,
|
||||
discovery: coreServices.discovery,
|
||||
},
|
||||
async init({ logger, discovery, instanceMeta, rootHttpRouter }) {
|
||||
rootHttpRouter.use(
|
||||
'/api/:pluginId',
|
||||
createRouter({
|
||||
(await createRouter({
|
||||
discovery,
|
||||
instanceMeta,
|
||||
logger,
|
||||
}) as Handler,
|
||||
})) as Handler,
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -13,27 +13,26 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { DiscoveryService, LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { InstanceMetadataService } from '@backstage/backend-plugin-api/alpha';
|
||||
import {
|
||||
DiscoveryService,
|
||||
RootInstanceMetadataService,
|
||||
LoggerService,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { Request, Response, NextFunction } from 'express';
|
||||
import { createProxyMiddleware } from 'http-proxy-middleware';
|
||||
import { context } from '@opentelemetry/api';
|
||||
import { getRPCMetadata } from '@opentelemetry/core';
|
||||
|
||||
export function createRouter({
|
||||
export async function createRouter({
|
||||
discovery,
|
||||
instanceMeta,
|
||||
}: {
|
||||
discovery: DiscoveryService;
|
||||
instanceMeta: InstanceMetadataService;
|
||||
instanceMeta: RootInstanceMetadataService;
|
||||
logger: LoggerService;
|
||||
}) {
|
||||
const localPluginIds = new Set(
|
||||
instanceMeta
|
||||
.getInstalledFeatures()
|
||||
.filter(f => f.type === 'plugin')
|
||||
.map(f => f.pluginId),
|
||||
);
|
||||
const plugins = await instanceMeta.getInstalledPlugins();
|
||||
const localPluginIds = new Set(plugins.map(f => f.pluginId));
|
||||
|
||||
const proxy = createProxyMiddleware({
|
||||
changeOrigin: true,
|
||||
|
||||
Reference in New Issue
Block a user