diff --git a/.changeset/mean-years-deliver.md b/.changeset/mean-years-deliver.md new file mode 100644 index 0000000000..82b4a12688 --- /dev/null +++ b/.changeset/mean-years-deliver.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Fix issue with token not being available because it's now non-enumerable diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 80406496d2..35dacf6559 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -493,6 +493,7 @@ export async function createRouter( }); const credentials = await httpAuth.credentials(req); + await checkPermission({ credentials, permissions: [taskCreatePermission], @@ -563,7 +564,11 @@ export async function createRouter( const secrets: InternalTaskSecrets = { ...req.body.secrets, backstageToken: token, - __initiatorCredentials: JSON.stringify(credentials), + __initiatorCredentials: JSON.stringify({ + ...credentials, + // credentials.token is nonenumerable and will not be serialized, so we need to add it explicitly + token: (credentials as any).token, + }), }; const result = await taskBroker.dispatch({