diff --git a/plugins/scaffolder-backend/src/service/conditionExports.ts b/plugins/scaffolder-backend/src/service/conditionExports.ts index 1a36b4d7f3..0c502c6075 100644 --- a/plugins/scaffolder-backend/src/service/conditionExports.ts +++ b/plugins/scaffolder-backend/src/service/conditionExports.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { RESOURCE_TYPE_SCAFFOLDER_TEMPLATE } from '@backstage/plugin-scaffolder-common'; +import { RESOURCE_TYPE_SCAFFOLDER_TEMPLATE } from '@backstage/plugin-scaffolder-common/alpha'; import { createConditionExports } from '@backstage/plugin-permission-node'; import { scaffolderTemplateRules } from './rules'; diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 0a0c45653d..6a22547b12 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -32,9 +32,11 @@ import { TaskSpec, TemplateEntityV1beta3, templateEntityV1beta3Validator, +} from '@backstage/plugin-scaffolder-common'; +import { templateParameterReadPermission, templateStepReadPermission, -} from '@backstage/plugin-scaffolder-common'; +} from '@backstage/plugin-scaffolder-common/alpha'; import express from 'express'; import Router from 'express-promise-router'; import { validate } from 'jsonschema'; diff --git a/plugins/scaffolder-backend/src/service/rules.ts b/plugins/scaffolder-backend/src/service/rules.ts index ba91b18bf5..8c9dde50e5 100644 --- a/plugins/scaffolder-backend/src/service/rules.ts +++ b/plugins/scaffolder-backend/src/service/rules.ts @@ -16,10 +16,11 @@ import { makeCreatePermissionRule } from '@backstage/plugin-permission-node'; import { - RESOURCE_TYPE_SCAFFOLDER_TEMPLATE, TemplateEntityStepV1beta3, TemplateParameter, } from '@backstage/plugin-scaffolder-common'; +import { RESOURCE_TYPE_SCAFFOLDER_TEMPLATE } from '@backstage/plugin-scaffolder-common/alpha'; + import { z } from 'zod'; export const createScaffolderPermissionRule = makeCreatePermissionRule< diff --git a/plugins/scaffolder-common/alpha-api-report.md b/plugins/scaffolder-common/alpha-api-report.md new file mode 100644 index 0000000000..e89999ad85 --- /dev/null +++ b/plugins/scaffolder-common/alpha-api-report.md @@ -0,0 +1,21 @@ +## API Report File for "@backstage/plugin-scaffolder-common" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { ResourcePermission } from '@backstage/plugin-permission-common'; + +// @alpha +export const RESOURCE_TYPE_SCAFFOLDER_TEMPLATE = 'scaffolder-template'; + +// @alpha +export const scaffolderPermissions: ResourcePermission<'scaffolder-template'>[]; + +// @alpha +export const templateParameterReadPermission: ResourcePermission<'scaffolder-template'>; + +// @alpha +export const templateStepReadPermission: ResourcePermission<'scaffolder-template'>; + +// (No @packageDocumentation comment for this package) +``` diff --git a/plugins/scaffolder-common/api-report.md b/plugins/scaffolder-common/api-report.md index aba929228f..5417504eb8 100644 --- a/plugins/scaffolder-common/api-report.md +++ b/plugins/scaffolder-common/api-report.md @@ -8,15 +8,8 @@ import type { EntityMeta } from '@backstage/catalog-model'; import { JsonObject } from '@backstage/types'; import type { JsonValue } from '@backstage/types'; import { KindValidator } from '@backstage/catalog-model'; -import { ResourcePermission } from '@backstage/plugin-permission-common'; import type { UserEntity } from '@backstage/catalog-model'; -// @alpha -export const RESOURCE_TYPE_SCAFFOLDER_TEMPLATE = 'scaffolder-template'; - -// @alpha -export const scaffolderPermissions: ResourcePermission<'scaffolder-template'>[]; - // @public export const isTemplateEntityV1beta3: ( entity: Entity, @@ -102,15 +95,9 @@ export interface TemplateParameter extends JsonObject { }; } -// @alpha -export const templateParameterReadPermission: ResourcePermission<'scaffolder-template'>; - // @public export interface TemplateSpecValuesMetadata extends JsonObject { // (undocumented) tags?: string[]; } - -// @alpha -export const templateStepReadPermission: ResourcePermission<'scaffolder-template'>; ``` diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index d315754462..cc79e676fd 100644 --- a/plugins/scaffolder-common/package.json +++ b/plugins/scaffolder-common/package.json @@ -11,6 +11,21 @@ "module": "dist/index.esm.js", "types": "dist/index.d.ts" }, + "exports": { + ".": "./src/index.ts", + "./alpha": "./src/alpha.ts", + "./package.json": "./package.json" + }, + "typesVersions": { + "*": { + "alpha": [ + "src/alpha.ts" + ], + "package.json": [ + "package.json" + ] + } + }, "backstage": { "role": "common-library" }, diff --git a/plugins/scaffolder-common/src/alpha.ts b/plugins/scaffolder-common/src/alpha.ts new file mode 100644 index 0000000000..9a8c021d15 --- /dev/null +++ b/plugins/scaffolder-common/src/alpha.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2023 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. + */ +export * from './permissions'; diff --git a/plugins/scaffolder-common/src/index.ts b/plugins/scaffolder-common/src/index.ts index 1b154f9ba7..a0133632db 100644 --- a/plugins/scaffolder-common/src/index.ts +++ b/plugins/scaffolder-common/src/index.ts @@ -21,11 +21,11 @@ */ export * from './TaskSpec'; + export { templateEntityV1beta3Validator, isTemplateEntityV1beta3, } from './TemplateEntityV1beta3'; -export * from './permissions'; export type { TemplateEntityV1beta3, TemplateEntityStepV1beta3,