From 617d2df982ca33c56455b7373a308e01630c6f87 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 11 Mar 2024 15:46:31 +0100 Subject: [PATCH 1/2] chore: support unauthenticated request Signed-off-by: blam --- plugins/scaffolder-backend/src/service/router.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 7ea794796d..18262a4f50 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -461,13 +461,18 @@ export async function createRouter( defaultKind: 'template', }); - const credentials = await httpAuth.credentials(req, { allow: ['user'] }); + // TODO(blam): This should be forced user auth eventually, but let's keep it as is for now, + // with the ability to do unauthenticated task creation. + const credentials = await httpAuth.credentials(req); const { token } = await auth.getPluginRequestToken({ onBehalfOf: credentials, targetPluginId: 'catalog', }); - const userEntityRef = credentials.principal.userEntityRef; + + const userEntityRef = auth.isPrincipal(credentials, 'user') + ? credentials.principal.userEntityRef + : undefined; const userEntity = userEntityRef ? await catalogClient.getEntityByRef(userEntityRef, { token }) From 703ebc976757c639280b65cf6e36cb9d5a31ff02 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 11 Mar 2024 15:53:20 +0100 Subject: [PATCH 2/2] chore: added changeset Signed-off-by: blam --- .changeset/grumpy-turtles-vanish.md | 5 +++++ plugins/scaffolder-backend/src/service/router.ts | 3 --- 2 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 .changeset/grumpy-turtles-vanish.md diff --git a/.changeset/grumpy-turtles-vanish.md b/.changeset/grumpy-turtles-vanish.md new file mode 100644 index 0000000000..ec3733872f --- /dev/null +++ b/.changeset/grumpy-turtles-vanish.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Fix support for unauthenticated requests to create scaffolder tasks diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 18262a4f50..50f6fc372f 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -461,10 +461,7 @@ export async function createRouter( defaultKind: 'template', }); - // TODO(blam): This should be forced user auth eventually, but let's keep it as is for now, - // with the ability to do unauthenticated task creation. const credentials = await httpAuth.credentials(req); - const { token } = await auth.getPluginRequestToken({ onBehalfOf: credentials, targetPluginId: 'catalog',