From 4031764fca86600a12a716a0ffd2f77df18f8b1f Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 24 Feb 2022 14:01:51 +0100 Subject: [PATCH] chore: updating to use templateRef Signed-off-by: blam --- plugins/scaffolder-backend/src/service/router.ts | 10 ++++++---- plugins/scaffolder/src/api.ts | 8 +++++--- .../src/components/TemplatePage/TemplatePage.tsx | 7 ++++++- plugins/scaffolder/src/types.ts | 2 +- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index e1cd75dcc2..eb7c0ebd78 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -22,6 +22,7 @@ import { import { CatalogApi } from '@backstage/catalog-client'; import { DEFAULT_NAMESPACE, + parseEntityRef, stringifyEntityRef, } from '@backstage/catalog-model'; import { Entity } from '@backstage/catalog-model'; @@ -178,14 +179,15 @@ export async function createRouter( res.json(actionsList); }) .post('/v2/tasks', async (req, res) => { - const templateName: string = req.body.templateName; - const kind = 'template'; - const namespace = DEFAULT_NAMESPACE; + const templateRef: string = req.body.templateRef; + const { kind, namespace, name } = parseEntityRef(templateRef, { + defaultKind: 'template', + }); const values = req.body.values; const token = getBearerToken(req.headers.authorization); const template = await findTemplate({ catalogApi: catalogClient, - entityRef: { kind, namespace, name: templateName }, + entityRef: { kind, namespace, name }, token: getBearerToken(req.headers.authorization), }); diff --git a/plugins/scaffolder/src/api.ts b/plugins/scaffolder/src/api.ts index 39c366a500..818ee7971b 100644 --- a/plugins/scaffolder/src/api.ts +++ b/plugins/scaffolder/src/api.ts @@ -90,7 +90,9 @@ export class ScaffolderClient implements ScaffolderApi { async getTemplateParameterSchema( templateRef: string, ): Promise { - const { namespace, kind, name } = parseEntityRef(templateRef); + const { namespace, kind, name } = parseEntityRef(templateRef, { + defaultKind: 'template', + }); const baseUrl = await this.discoveryApi.getBaseUrl('scaffolder'); const templatePath = [namespace, kind, name] @@ -117,7 +119,7 @@ export class ScaffolderClient implements ScaffolderApi { async scaffold( options: ScaffolderScaffoldOptions, ): Promise { - const { templateName, values, secrets = {} } = options; + const { templateRef, values, secrets = {} } = options; const url = `${await this.discoveryApi.getBaseUrl('scaffolder')}/v2/tasks`; const response = await this.fetchApi.fetch(url, { method: 'POST', @@ -125,7 +127,7 @@ export class ScaffolderClient implements ScaffolderApi { 'Content-Type': 'application/json', }, body: JSON.stringify({ - templateName, + templateRef, values: { ...values }, secrets, }), diff --git a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx index fade247a24..798ce31539 100644 --- a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx +++ b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx @@ -41,6 +41,7 @@ import { useApiHolder, useRouteRef, } from '@backstage/core-plugin-api'; +import { stringifyEntityRef } from '@backstage/catalog-model'; const useTemplateParameterSchema = (templateRef: string) => { const scaffolderApi = useApi(scaffolderApiRef); @@ -137,7 +138,11 @@ export const TemplatePage = ({ const handleCreate = async () => { const { taskId } = await scaffolderApi.scaffold({ - templateName, + templateRef: stringifyEntityRef({ + name: templateName, + kind: 'template', + namespace: 'default', + }), values: formState, secrets: secretsContext?.secrets, }); diff --git a/plugins/scaffolder/src/types.ts b/plugins/scaffolder/src/types.ts index 9b77b9a9b0..47829885da 100644 --- a/plugins/scaffolder/src/types.ts +++ b/plugins/scaffolder/src/types.ts @@ -81,7 +81,7 @@ export type LogEvent = { }; export interface ScaffolderScaffoldOptions { - templateName: string; + templateRef: string; values: Record; secrets?: Record; }