From 0eda4bc6299a2110d2b32016a1d5326a4f2d5c7f Mon Sep 17 00:00:00 2001 From: Aramis Date: Mon, 12 Feb 2024 08:50:00 -0500 Subject: [PATCH] remove support for adding entity policies entirely Signed-off-by: Aramis --- .changeset/thirty-bags-try.md | 29 ++++++++++++++++++- .../src/service/CatalogPlugin.ts | 10 ------- plugins/catalog-node/src/extensions.ts | 10 +------ 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/.changeset/thirty-bags-try.md b/.changeset/thirty-bags-try.md index 7a8156e44c..f04d0160bf 100644 --- a/.changeset/thirty-bags-try.md +++ b/.changeset/thirty-bags-try.md @@ -2,4 +2,31 @@ '@backstage/plugin-catalog-backend': minor --- -Add support for defining entity policies in the new backend. +Adds support for supplying field validators to the new backend's catalog plugin. If you're using entity policies, you should use the new `transformLegacyPolicyToProcessor` function to install them as processors instead. + +```ts +import { + catalogProcessingExtensionPoint, + catalogModelExtensionPoint, +} from '@backstage/plugin-catalog-node/alpha'; +import {myPolicy} from './my-policy'; + +export const catalogModulePolicyProvider = createBackendModule({ + pluginId: 'catalog', + moduleId: 'internal-policy-provider', + register(reg) { + reg.registerInit({ + deps: { + modelExtensions: catalogModelExtensionPoint, + processingExtensions: catalogProcessingExtensionPoint, + }, + async init({ modelExtensions, processingExtensions }) { + modelExtensions.setFieldValidators({ + ... + }); + processingExtensions.addProcessors(transformLegacyPolicyToProcessor(myPolicy)) + }, + }); + }, +}); +``` diff --git a/plugins/catalog-backend/src/service/CatalogPlugin.ts b/plugins/catalog-backend/src/service/CatalogPlugin.ts index 1fca11e482..114dbe6f61 100644 --- a/plugins/catalog-backend/src/service/CatalogPlugin.ts +++ b/plugins/catalog-backend/src/service/CatalogPlugin.ts @@ -128,21 +128,12 @@ class CatalogPermissionExtensionPointImpl } class CatalogModelExtensionPointImpl implements CatalogModelExtensionPoint { - #entityPolicies = new Array(); #fieldValidators: Partial = {}; - addEntityPolicies(...policies: Array>) { - this.#entityPolicies.push(...policies.flat()); - } - setFieldValidators(validators: Partial): void { merge(this.#fieldValidators, validators); } - get entityPolicies() { - return this.#entityPolicies; - } - get fieldValidators() { return this.#fieldValidators; } @@ -219,7 +210,6 @@ export const catalogPlugin = createBackendPlugin({ ); builder.addLocationAnalyzers(...analysisExtensions.locationAnalyzers); builder.addPermissionRules(...permissionExtensions.permissionRules); - builder.addEntityPolicy(...modelExtensions.entityPolicies); builder.setFieldFormatValidators(modelExtensions.fieldValidators); const { processingEngine, router } = await builder.build(); diff --git a/plugins/catalog-node/src/extensions.ts b/plugins/catalog-node/src/extensions.ts index df1b8b0d57..763e934176 100644 --- a/plugins/catalog-node/src/extensions.ts +++ b/plugins/catalog-node/src/extensions.ts @@ -15,7 +15,7 @@ */ import { createExtensionPoint } from '@backstage/backend-plugin-api'; -import { Entity, EntityPolicy, Validators } from '@backstage/catalog-model'; +import { Entity, Validators } from '@backstage/catalog-model'; import { CatalogProcessor, EntitiesSearchFilter, @@ -47,14 +47,6 @@ export interface CatalogProcessingExtensionPoint { /** @alpha */ export interface CatalogModelExtensionPoint { - /** - * @deprecated Use `transformLegacyPolicyToProcessor` from `@backstage/plugin-catalog-backend` - * and `CatalogProcessingExtensionPoint.addProcessor` instead. - */ - addEntityPolicies( - ...policies: Array> - ): void; - /** * Sets the validator function to use for one or more special fields of an * entity. This is useful if the default rules for formatting of fields are