diff --git a/.changeset/fresh-bears-thank.md b/.changeset/fresh-bears-thank.md new file mode 100644 index 0000000000..baeb14f036 --- /dev/null +++ b/.changeset/fresh-bears-thank.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-node': minor +--- + +Added new `catalogEntityPermissionResourceRef` export via the `/alpha` sub-path. diff --git a/plugins/catalog-node/report-alpha.api.md b/plugins/catalog-node/report-alpha.api.md index 92dfaefb7a..59f32cf76c 100644 --- a/plugins/catalog-node/report-alpha.api.md +++ b/plugins/catalog-node/report-alpha.api.md @@ -12,6 +12,7 @@ import { EntityProvider } from '@backstage/plugin-catalog-node'; import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { LocationAnalyzer } from '@backstage/plugin-catalog-node'; import { Permission } from '@backstage/plugin-permission-common'; +import { PermissionResourceRef } from '@backstage/plugin-permission-node'; import { PermissionRule } from '@backstage/plugin-permission-node'; import { PermissionRuleParams } from '@backstage/plugin-permission-common'; import { PlaceholderResolver } from '@backstage/plugin-catalog-node'; @@ -34,6 +35,14 @@ export interface CatalogAnalysisExtensionPoint { // @alpha (undocumented) export const catalogAnalysisExtensionPoint: ExtensionPoint; +// @alpha (undocumented) +export const catalogEntityPermissionResourceRef: PermissionResourceRef< + Entity, + EntitiesSearchFilter, + 'catalog-entity', + 'catalog' +>; + // @alpha (undocumented) export interface CatalogLocationsExtensionPoint { setAllowedLocationTypes(locationTypes: Array): void; diff --git a/plugins/catalog-node/src/alpha.ts b/plugins/catalog-node/src/alpha.ts index 63b817fbb3..ec9d4bf435 100644 --- a/plugins/catalog-node/src/alpha.ts +++ b/plugins/catalog-node/src/alpha.ts @@ -21,6 +21,19 @@ import { } from '@backstage/backend-plugin-api'; import { catalogServiceRef as _catalogServiceRef } from './catalogService'; import { CatalogApi, CatalogClient } from '@backstage/catalog-client'; +import { RESOURCE_TYPE_CATALOG_ENTITY } from '@backstage/plugin-catalog-common/alpha'; +import { createPermissionResourceRef } from '@backstage/plugin-permission-node'; +import { Entity } from '@backstage/catalog-model'; +import { EntitiesSearchFilter } from '@backstage/plugin-catalog-node'; + +/** @alpha */ +export const catalogEntityPermissionResourceRef = createPermissionResourceRef< + Entity, + EntitiesSearchFilter +>().with({ + pluginId: 'catalog', + resourceType: RESOURCE_TYPE_CATALOG_ENTITY, +}); /** * @alpha