diff --git a/.changeset/selfish-boxes-itch.md b/.changeset/selfish-boxes-itch.md new file mode 100644 index 0000000..697c7a2 --- /dev/null +++ b/.changeset/selfish-boxes-itch.md @@ -0,0 +1,5 @@ +--- +'@k-phoen/backstage-plugin-announcements-backend': minor +--- + +Exposes the announcements plugin's permissions in a metadata endpoint diff --git a/plugins/announcements-backend/src/service/router.ts b/plugins/announcements-backend/src/service/router.ts index 0543253..97a785c 100644 --- a/plugins/announcements-backend/src/service/router.ts +++ b/plugins/announcements-backend/src/service/router.ts @@ -13,9 +13,11 @@ import { import { announcementCreatePermission, announcementDeletePermission, + announcementEntityPermissions, announcementUpdatePermission, } from '@k-phoen/backstage-plugin-announcements-common'; import { AnnouncementsContext } from './announcementsContextBuilder'; +import { createPermissionIntegrationRouter } from '@backstage/plugin-permission-node'; interface AnnouncementRequest { publisher: string; @@ -34,6 +36,10 @@ export async function createRouter( ): Promise { const { persistenceContext, permissions } = options; + const permissionIntegrationRouter = createPermissionIntegrationRouter({ + permissions: Object.values(announcementEntityPermissions), + }); + const isRequestAuthorized = async ( req: Request, permission: BasicPermission, @@ -53,6 +59,7 @@ export async function createRouter( const router = Router(); router.use(express.json()); + router.use(permissionIntegrationRouter); // eslint-disable-next-line spaced-comment /*****************