From 450ca923306b95a07e29a0a106f89c890f9ccafb Mon Sep 17 00:00:00 2001 From: MT Lewis Date: Wed, 1 Dec 2021 11:40:44 +0000 Subject: [PATCH] permissions: change permission integration route to use /.well-known prefix Signed-off-by: MT Lewis --- .changeset/long-suits-retire.md | 6 ++++++ .../src/service/PermissionIntegrationClient.test.ts | 2 +- .../src/service/PermissionIntegrationClient.ts | 2 +- .../createPermissionIntegrationRouter.test.ts | 12 ++++++------ .../integration/createPermissionIntegrationRouter.ts | 2 +- 5 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 .changeset/long-suits-retire.md diff --git a/.changeset/long-suits-retire.md b/.changeset/long-suits-retire.md new file mode 100644 index 0000000000..ae79d94cbb --- /dev/null +++ b/.changeset/long-suits-retire.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-permission-backend': minor +'@backstage/plugin-permission-node': minor +--- + +Change route used for integration between the authorization framework and other plugin backends to use the /.well-known prefix. diff --git a/plugins/permission-backend/src/service/PermissionIntegrationClient.test.ts b/plugins/permission-backend/src/service/PermissionIntegrationClient.test.ts index 6a35488117..7f46490ce2 100644 --- a/plugins/permission-backend/src/service/PermissionIntegrationClient.test.ts +++ b/plugins/permission-backend/src/service/PermissionIntegrationClient.test.ts @@ -64,7 +64,7 @@ describe('PermissionIntegrationClient', () => { server.listen({ onUnhandledRequest: 'error' }); server.use( rest.post( - `${mockBaseUrl}/permissions/apply-conditions`, + `${mockBaseUrl}/.well-known/backstage/permissions/apply-conditions`, mockApplyConditionsHandler, ), ); diff --git a/plugins/permission-backend/src/service/PermissionIntegrationClient.ts b/plugins/permission-backend/src/service/PermissionIntegrationClient.ts index 0d6017cfd3..de42a7f194 100644 --- a/plugins/permission-backend/src/service/PermissionIntegrationClient.ts +++ b/plugins/permission-backend/src/service/PermissionIntegrationClient.ts @@ -54,7 +54,7 @@ export class PermissionIntegrationClient { ): Promise { const endpoint = `${await this.discovery.getBaseUrl( pluginId, - )}/permissions/apply-conditions`; + )}/.well-known/backstage/permissions/apply-conditions`; const request: ApplyConditionsRequest = { resourceRef, diff --git a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.test.ts b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.test.ts index af216dfcb8..15c9cf4003 100644 --- a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.test.ts +++ b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.test.ts @@ -61,7 +61,7 @@ describe('createPermissionIntegrationRouter', () => { expect(router).toBeDefined(); }); - describe('POST /permissions/apply-conditions', () => { + describe('POST /.well-known/backstage/permissions/apply-conditions', () => { it.each([ { rule: 'test-rule-1', params: ['abc', 123] }, { @@ -94,7 +94,7 @@ describe('createPermissionIntegrationRouter', () => { }, ])('returns 200/ALLOW when criteria match (case %#)', async conditions => { const response = await request(app) - .post('/permissions/apply-conditions') + .post('/.well-known/backstage/permissions/apply-conditions') .send({ resourceRef: 'default:test/resource', resourceType: 'test-resource', @@ -135,7 +135,7 @@ describe('createPermissionIntegrationRouter', () => { 'returns 200/DENY when criteria do not match (case %#)', async conditions => { const response = await request(app) - .post('/permissions/apply-conditions') + .post('/.well-known/backstage/permissions/apply-conditions') .send({ resourceRef: 'default:test/resource', resourceType: 'test-resource', @@ -149,7 +149,7 @@ describe('createPermissionIntegrationRouter', () => { it('returns 400 when called with incorrect resource type', async () => { const response = await request(app) - .post('/permissions/apply-conditions') + .post('/.well-known/backstage/permissions/apply-conditions') .send({ resourceRef: 'default:test/resource', resourceType: 'test-incorrect-resource', @@ -168,7 +168,7 @@ describe('createPermissionIntegrationRouter', () => { mockGetResource.mockReturnValueOnce(Promise.resolve(undefined)); const response = await request(app) - .post('/permissions/apply-conditions') + .post('/.well-known/backstage/permissions/apply-conditions') .send({ resourceRef: 'default:test/resource', resourceType: 'test-resource', @@ -198,7 +198,7 @@ describe('createPermissionIntegrationRouter', () => { { conditions: { anyOf: [] } }, ])(`returns 400 for invalid input %#`, async input => { const response = await request(app) - .post('/permissions/apply-conditions') + .post('/.well-known/backstage/permissions/apply-conditions') .send(input); expect(response.status).toEqual(400); diff --git a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts index 99e282b144..70b72fef7e 100644 --- a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts +++ b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts @@ -132,7 +132,7 @@ export const createPermissionIntegrationRouter = ({ const getRule = createGetRule(rules); router.post( - '/permissions/apply-conditions', + '/.well-known/backstage/permissions/apply-conditions', express.json(), async ( req,