From a89a930e8a1137a21572b36fc8cf72108e26ebb1 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Mon, 13 Mar 2023 15:03:57 +0100 Subject: [PATCH] scaffolder: mark new models as v1beta3 Signed-off-by: Vincenzo Scamporlino --- plugins/permission-node/api-report.md | 10 +++++----- plugins/scaffolder-backend/alpha-api-report.md | 4 ++-- plugins/scaffolder-backend/src/service/rules.ts | 4 ++-- plugins/scaffolder-common/api-report.md | 10 +++++----- .../src/TemplateEntityV1beta3.test.ts | 9 +++++---- plugins/scaffolder-common/src/TemplateEntityV1beta3.ts | 10 +++++----- plugins/scaffolder-common/src/index.ts | 4 ++-- 7 files changed, 26 insertions(+), 25 deletions(-) diff --git a/plugins/permission-node/api-report.md b/plugins/permission-node/api-report.md index 6af78fcebe..b3d06efdc7 100644 --- a/plugins/permission-node/api-report.md +++ b/plugins/permission-node/api-report.md @@ -73,6 +73,11 @@ export type ConditionTransformer = ( conditions: PermissionCriteria, ) => PermissionCriteria; +// @public +export const createConditionAuthorizer: ( + rules: PermissionRule[], +) => (decision: PolicyDecision, resource: TResource | undefined) => boolean; + // @public export const createConditionExports: < TResourceType extends string, @@ -111,11 +116,6 @@ export const createConditionTransformer: < permissionRules: [...TRules], ) => ConditionTransformer; -// @public -export const createIsAuthorized: ( - rules: PermissionRule[], -) => (decision: PolicyDecision, resource: TResource | undefined) => boolean; - // @public export function createPermissionIntegrationRouter< TResourceType extends string, diff --git a/plugins/scaffolder-backend/alpha-api-report.md b/plugins/scaffolder-backend/alpha-api-report.md index 208714a266..7246d768e3 100644 --- a/plugins/scaffolder-backend/alpha-api-report.md +++ b/plugins/scaffolder-backend/alpha-api-report.md @@ -16,7 +16,7 @@ import { TemplateAction } from '@backstage/plugin-scaffolder-node'; import { TemplateEntityStepV1beta3 } from '@backstage/plugin-scaffolder-common'; import { TemplateFilter } from '@backstage/plugin-scaffolder-backend'; import { TemplateGlobal } from '@backstage/plugin-scaffolder-backend'; -import { TemplateParameter } from '@backstage/plugin-scaffolder-common'; +import { TemplateParameterV1beta3 } from '@backstage/plugin-scaffolder-common'; // @alpha export const catalogModuleTemplateKind: () => BackendFeature; @@ -32,7 +32,7 @@ export const createScaffolderConditionalDecision: ( // @alpha export const scaffolderConditions: Conditions<{ hasTag: PermissionRule< - TemplateParameter | TemplateEntityStepV1beta3, + TemplateParameterV1beta3 | TemplateEntityStepV1beta3, {}, 'scaffolder-template', { diff --git a/plugins/scaffolder-backend/src/service/rules.ts b/plugins/scaffolder-backend/src/service/rules.ts index 8c9dde50e5..db7ad993e9 100644 --- a/plugins/scaffolder-backend/src/service/rules.ts +++ b/plugins/scaffolder-backend/src/service/rules.ts @@ -17,14 +17,14 @@ import { makeCreatePermissionRule } from '@backstage/plugin-permission-node'; import { TemplateEntityStepV1beta3, - TemplateParameter, + TemplateParameterV1beta3, } from '@backstage/plugin-scaffolder-common'; import { RESOURCE_TYPE_SCAFFOLDER_TEMPLATE } from '@backstage/plugin-scaffolder-common/alpha'; import { z } from 'zod'; export const createScaffolderPermissionRule = makeCreatePermissionRule< - TemplateEntityStepV1beta3 | TemplateParameter, + TemplateEntityStepV1beta3 | TemplateParameterV1beta3, {}, typeof RESOURCE_TYPE_SCAFFOLDER_TEMPLATE >(); diff --git a/plugins/scaffolder-common/api-report.md b/plugins/scaffolder-common/api-report.md index 02e52cc01d..61d6d51a78 100644 --- a/plugins/scaffolder-common/api-report.md +++ b/plugins/scaffolder-common/api-report.md @@ -45,7 +45,7 @@ export interface TaskStep { // @public export interface TemplateEntityStepV1beta3 extends JsonObject { // (undocumented) - 'backstage:permissions'?: TemplateSpecValuesMetadata; + 'backstage:permissions'?: TemplatePermissionsV1beta3; // (undocumented) action: string; // (undocumented) @@ -64,7 +64,7 @@ export interface TemplateEntityV1beta3 extends Entity { kind: 'Template'; spec: { type: string; - parameters?: TemplateParameter | TemplateParameter[]; + parameters?: TemplateParameterV1beta3 | TemplateParameterV1beta3[]; steps: Array; output?: { [name: string]: string; @@ -86,13 +86,13 @@ export type TemplateInfo = { }; // @public -export interface TemplateParameter extends JsonObject { +export interface TemplateParameterV1beta3 extends JsonObject { // (undocumented) - 'backstage:permissions'?: TemplateSpecValuesMetadata; + 'backstage:permissions'?: TemplatePermissionsV1beta3; } // @public -export interface TemplateSpecValuesMetadata extends JsonObject { +export interface TemplatePermissionsV1beta3 extends JsonObject { // (undocumented) tags?: string[]; } diff --git a/plugins/scaffolder-common/src/TemplateEntityV1beta3.test.ts b/plugins/scaffolder-common/src/TemplateEntityV1beta3.test.ts index 9358e08df5..4609a7802a 100644 --- a/plugins/scaffolder-common/src/TemplateEntityV1beta3.test.ts +++ b/plugins/scaffolder-common/src/TemplateEntityV1beta3.test.ts @@ -17,7 +17,7 @@ import { entityKindSchemaValidator } from '@backstage/catalog-model'; import type { TemplateEntityV1beta3, - TemplateParameter, + TemplateParameterV1beta3, } from './TemplateEntityV1beta3'; import schema from './Template.v1beta3.schema.json'; @@ -163,13 +163,14 @@ describe('templateEntityV1beta3Validator', () => { }); it('rejects parameters with wrong backstage:permissions', async () => { - (entity.spec.parameters as TemplateParameter)[ + (entity.spec.parameters as TemplateParameterV1beta3)[ 'backstage:permissions' ]!.tags = true as unknown as []; expect(() => validator(entity)).toThrow(/must be array/); - (entity.spec.parameters as TemplateParameter)['backstage:permissions'] = - true as {}; + (entity.spec.parameters as TemplateParameterV1beta3)[ + 'backstage:permissions' + ] = true as {}; expect(() => validator(entity)).toThrow(/must be object/); }); diff --git a/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts b/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts index 03563dc3b5..5d002ddfe4 100644 --- a/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts +++ b/plugins/scaffolder-common/src/TemplateEntityV1beta3.ts @@ -50,7 +50,7 @@ export interface TemplateEntityV1beta3 extends Entity { * to collect user input and validate it against that schema. This can then be used in the `steps` part below to template * variables passed from the user into each action in the template. */ - parameters?: TemplateParameter | TemplateParameter[]; + parameters?: TemplateParameterV1beta3 | TemplateParameterV1beta3[]; /** * A list of steps to be executed in sequence which are defined by the template. These steps are a list of the underlying * javascript action and some optional input parameters that may or may not have been collected from the end user. @@ -78,7 +78,7 @@ export interface TemplateEntityStepV1beta3 extends JsonObject { action: string; input?: JsonObject; if?: string | boolean; - 'backstage:permissions'?: TemplatePermissions; + 'backstage:permissions'?: TemplatePermissionsV1beta3; } /** @@ -86,8 +86,8 @@ export interface TemplateEntityStepV1beta3 extends JsonObject { * * @public */ -export interface TemplateParameter extends JsonObject { - 'backstage:permissions'?: TemplatePermissions; +export interface TemplateParameterV1beta3 extends JsonObject { + 'backstage:permissions'?: TemplatePermissionsV1beta3; } /** @@ -95,7 +95,7 @@ export interface TemplateParameter extends JsonObject { * * @public */ -export interface TemplatePermissions extends JsonObject { +export interface TemplatePermissionsV1beta3 extends JsonObject { tags?: string[]; } diff --git a/plugins/scaffolder-common/src/index.ts b/plugins/scaffolder-common/src/index.ts index a0133632db..701cad1f71 100644 --- a/plugins/scaffolder-common/src/index.ts +++ b/plugins/scaffolder-common/src/index.ts @@ -29,6 +29,6 @@ export { export type { TemplateEntityV1beta3, TemplateEntityStepV1beta3, - TemplateParameter, - TemplatePermissions as TemplateSpecValuesMetadata, + TemplateParameterV1beta3, + TemplatePermissionsV1beta3, } from './TemplateEntityV1beta3';