From eb7c53a005bf05f00b06eb345d51064f13c5f676 Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 11 May 2022 11:40:20 +0200 Subject: [PATCH] chore: fix up to work with the other code Signed-off-by: blam --- .../migrations/20220211013100_created_by.js | 38 ------------------- .../src/scaffolder/tasks/DatabaseTaskStore.ts | 4 +- .../tasks/StorageTaskBroker.test.ts | 5 ++- .../src/scaffolder/tasks/types.ts | 1 - .../scaffolder-backend/src/service/router.ts | 16 -------- .../ListTasksPage/ListTasksPage.tsx | 2 +- .../columns/OwnerEntityColumn.tsx | 5 ++- 7 files changed, 10 insertions(+), 61 deletions(-) delete mode 100644 plugins/scaffolder-backend/migrations/20220211013100_created_by.js diff --git a/plugins/scaffolder-backend/migrations/20220211013100_created_by.js b/plugins/scaffolder-backend/migrations/20220211013100_created_by.js deleted file mode 100644 index 257cda21d2..0000000000 --- a/plugins/scaffolder-backend/migrations/20220211013100_created_by.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// @ts-check - -/** - * @param {import('knex').Knex} knex - */ -exports.up = async function up(knex) { - await knex.schema.alterTable('tasks', table => { - table - .text('created_by') - .nullable() - .comment('an entity ref of the user that created the task'); - }); -}; - -/** - * @param {import('knex').Knex} knex - */ -exports.down = async function down(knex) { - await knex.schema.alterTable('tasks', table => { - table.dropColumn('created_by'); - }); -}; diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts index 1c4b9b5210..2ebe1e17a7 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts @@ -100,7 +100,7 @@ export class DatabaseTaskStore implements TaskStore { id: result.id, spec: JSON.parse(result.spec), status: result.status, - createdBy: result.created_by, + createdBy: result.created_by ?? undefined, lastHeartbeatAt: typeof result.last_heartbeat_at === 'string' ? DateTime.fromSQL(result.last_heartbeat_at, { @@ -156,8 +156,6 @@ export class DatabaseTaskStore implements TaskStore { secrets: options.secrets ? JSON.stringify(options.secrets) : undefined, created_by: options.createdBy ?? null, status: 'open', - created_by: - ('createdBy' in options.spec && options.spec.createdBy) || null, }); return { taskId }; } diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts index 7ed2eb620a..8558a371d5 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts @@ -15,6 +15,7 @@ */ import { getVoidLogger, DatabaseManager } from '@backstage/backend-common'; +import { UserEntity } from '@backstage/catalog-model'; import { ConfigReader } from '@backstage/config'; import { TaskSpec } from '@backstage/plugin-scaffolder-common'; import { DatabaseTaskStore } from './DatabaseTaskStore'; @@ -220,7 +221,9 @@ describe('StorageTaskBroker', () => { it('should list only tasks createdBy a specific user', async () => { const broker = new StorageTaskBroker(storage, logger); const { taskId } = await broker.dispatch({ - spec: { createdBy: 'user:default/foo' } as TaskSpec, + spec: { + user: { ref: 'user:default/foo', entity: {} as UserEntity }, + } as TaskSpec, }); const task = await storage.getTask(taskId); diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts index 1fc7670e79..f3939a8668 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts @@ -49,7 +49,6 @@ export type SerializedTask = { lastHeartbeatAt?: string; createdBy?: string; secrets?: TaskSecrets; - createdBy: string | null; }; /** diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 61fbe74b8b..c1a9b50e0d 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -129,19 +129,6 @@ export async function createRouter( actionsToRegister.forEach(action => actionRegistry.register(action)); workers.forEach(worker => worker.start()); - const getUserEntityRefFromToken = (backstageToken: string) => { - try { - const [_header, payload, _signature] = backstageToken.split('.'); - const parsedToken = JSON.parse(Buffer.from(payload, 'base64').toString()); - - return parsedToken.sub; - } catch (e) { - logger.warn('Could not parse token from request to create template'); - logger.debug(e); - return null; - } - }; - router .get( '/v2/templates/:namespace/:kind/:name/parameter-schema', @@ -220,8 +207,6 @@ export async function createRouter( const baseUrl = getEntityBaseUrl(template); - const createdBy = token && getUserEntityRefFromToken(token); - const taskSpec: TaskSpec = { apiVersion: template.apiVersion, steps: template.spec.steps.map((step, index) => ({ @@ -243,7 +228,6 @@ export async function createRouter( }), baseUrl, }, - createdBy, }; const result = await taskBroker.dispatch({ diff --git a/plugins/scaffolder/src/components/ListTasksPage/ListTasksPage.tsx b/plugins/scaffolder/src/components/ListTasksPage/ListTasksPage.tsx index d66355b0a5..7866375fb1 100644 --- a/plugins/scaffolder/src/components/ListTasksPage/ListTasksPage.tsx +++ b/plugins/scaffolder/src/components/ListTasksPage/ListTasksPage.tsx @@ -109,7 +109,7 @@ const ListTaskPageContent = (props: MyTaskPageProps) => { title: 'Owner', field: 'createdBy', render: row => ( - + ), }, { diff --git a/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.tsx b/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.tsx index e595c11199..49c00316c7 100644 --- a/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.tsx +++ b/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.tsx @@ -39,7 +39,10 @@ export const OwnerEntityColumn = ({ entityRef }: { entityRef?: string }) => { return ( );