Expose devtools plugin permissions through the metadata endpoint

Signed-off-by: Brian Phillips <28457+brianphillips@users.noreply.github.com>
This commit is contained in:
Brian Phillips
2023-05-17 13:48:40 -05:00
parent 41d2fb07df
commit c312192e61
3 changed files with 25 additions and 0 deletions
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/plugin-devtools-backend': patch
'@backstage/plugin-devtools-common': patch
---
Expose permissions through the metadata endpoint.
@@ -21,6 +21,7 @@ import {
devToolsConfigReadPermission,
devToolsExternalDependenciesReadPermission,
devToolsInfoReadPermission,
devToolsPermissions,
} from '@backstage/plugin-devtools-common';
import { Config } from '@backstage/config';
@@ -31,6 +32,7 @@ import Router from 'express-promise-router';
import { errorHandler } from '@backstage/backend-common';
import express from 'express';
import { getBearerTokenFromAuthorizationHeader } from '@backstage/plugin-auth-node';
import { createPermissionIntegrationRouter } from '@backstage/plugin-permission-node';
/** @public */
export interface RouterOptions {
@@ -51,6 +53,11 @@ export async function createRouter(
const router = Router();
router.use(express.json());
router.use(
createPermissionIntegrationRouter({
permissions: devToolsPermissions,
}),
);
router.get('/health', (_req, res) => {
res.status(200).json({ status: 'ok' });
@@ -47,3 +47,15 @@ export const devToolsExternalDependenciesReadPermission = createPermission({
name: 'devtools.external-dependencies',
attributes: { action: 'read' },
});
/**
* List of all Devtools permissions
*
* @public
*/
export const devToolsPermissions = [
devToolsAdministerPermission,
devToolsInfoReadPermission,
devToolsConfigReadPermission,
devToolsExternalDependenciesReadPermission,
];