From 0c9cf2822d77e27e3e2967b3e5a71d93b5bee3dd Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Mon, 28 Feb 2022 18:31:30 +0000 Subject: [PATCH 1/2] catalog-backend: mark permission-related exports as alpha Marks all strictly permission-related exports in catalog-backend as alpha. There are permission-related properties on other exports, so this doesn't entirely protect us from future breaking changes, but it will certainly reduce the number. Signed-off-by: Mike Lewis --- .changeset/chilled-dolls-agree.md | 10 ++++++++++ plugins/catalog-backend/api-report.md | 8 ++++---- .../src/permissions/conditionExports.ts | 6 ++++-- plugins/catalog-backend/src/permissions/rules/index.ts | 3 ++- plugins/catalog-backend/src/permissions/rules/util.ts | 2 +- 5 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 .changeset/chilled-dolls-agree.md diff --git a/.changeset/chilled-dolls-agree.md b/.changeset/chilled-dolls-agree.md new file mode 100644 index 0000000000..0468bdfee0 --- /dev/null +++ b/.changeset/chilled-dolls-agree.md @@ -0,0 +1,10 @@ +--- +'@backstage/plugin-catalog-backend': minor +--- + +Mark permission-related exports as alpha. This means that the exports below should now be imported from `@backstage/plugin-catalog-backend/alpha` instead of `@backstage/plugin-catalog-backend`. + +- `catalogConditions` +- `createCatalogPolicyDecision` +- `permissionRules` +- `createCatalogPermissionRule` diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md index 9b4db418b3..5ae8a76d19 100644 --- a/plugins/catalog-backend/api-report.md +++ b/plugins/catalog-backend/api-report.md @@ -213,7 +213,7 @@ export class CatalogBuilder { setRefreshIntervalSeconds(seconds: number): CatalogBuilder; } -// @public +// @alpha export const catalogConditions: Conditions<{ hasAnnotation: PermissionRule< Entity, @@ -394,12 +394,12 @@ export class CodeOwnersProcessor implements CatalogProcessor { preProcessEntity(entity: Entity, location: LocationSpec): Promise; } -// @public +// @alpha export const createCatalogPermissionRule: ( rule: PermissionRule, ) => PermissionRule; -// @public +// @alpha export const createCatalogPolicyDecision: ( conditions: PermissionCriteria>, ) => ConditionalPolicyDecision; @@ -896,7 +896,7 @@ export function parseEntityYaml( location: LocationSpec, ): Iterable; -// @public +// @alpha export const permissionRules: { hasAnnotation: PermissionRule< Entity, diff --git a/plugins/catalog-backend/src/permissions/conditionExports.ts b/plugins/catalog-backend/src/permissions/conditionExports.ts index 28e74c53c2..2846c8c3ec 100644 --- a/plugins/catalog-backend/src/permissions/conditionExports.ts +++ b/plugins/catalog-backend/src/permissions/conditionExports.ts @@ -27,7 +27,8 @@ const conditionExports = createConditionExports({ /** * These conditions are used when creating conditional decisions that are returned * by authorization policies. - * @public + * + * @alpha */ export const catalogConditions = conditionExports.conditions; @@ -50,7 +51,8 @@ export const catalogConditions = conditionExports.conditions; * } * } * ``` - * @public + * + * @alpha */ export const createCatalogPolicyDecision = conditionExports.createPolicyDecision; diff --git a/plugins/catalog-backend/src/permissions/rules/index.ts b/plugins/catalog-backend/src/permissions/rules/index.ts index 4eec796c74..f9d192781e 100644 --- a/plugins/catalog-backend/src/permissions/rules/index.ts +++ b/plugins/catalog-backend/src/permissions/rules/index.ts @@ -24,7 +24,8 @@ import { hasSpec } from './hasSpec'; /** * These permission rules can be used to conditionally filter catalog entities * or describe a user's access to the entities. - * @public + * + * @alpha */ export const permissionRules = { hasAnnotation, diff --git a/plugins/catalog-backend/src/permissions/rules/util.ts b/plugins/catalog-backend/src/permissions/rules/util.ts index 7ef0ca3546..a1316c7fb2 100644 --- a/plugins/catalog-backend/src/permissions/rules/util.ts +++ b/plugins/catalog-backend/src/permissions/rules/util.ts @@ -23,7 +23,7 @@ import { EntitiesSearchFilter } from '../../catalog/types'; * {@link @backstage/plugin-permission-node#PermissionRule}s for the * catalog-backend. * - * @public + * @alpha */ export const createCatalogPermissionRule = makeCreatePermissionRule< Entity, From e02960f30f31f78af1661e82bf812ca07726bdb7 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Tue, 1 Mar 2022 12:56:42 +0000 Subject: [PATCH 2/2] catalog-backend: add alpha setup to package.json Signed-off-by: Mike Lewis --- plugins/catalog-backend/package.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 55c92c92be..be0772e199 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -9,7 +9,8 @@ "publishConfig": { "access": "public", "main": "dist/index.cjs.js", - "types": "dist/index.d.ts" + "types": "dist/index.d.ts", + "alphaTypes": "dist/index.alpha.d.ts" }, "backstage": { "role": "backend-plugin" @@ -25,7 +26,7 @@ ], "scripts": { "start": "backstage-cli package start", - "build": "backstage-cli package build", + "build": "backstage-cli package build --experimental-type-build", "lint": "backstage-cli package lint", "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", @@ -87,6 +88,7 @@ }, "files": [ "dist", + "alpha", "migrations/**/*.{js,d.ts}", "config.d.ts" ],