api reports + changeset

Signed-off-by: Mark Dunphy <markd@spotify.com>
This commit is contained in:
Mark Dunphy
2025-05-02 12:27:35 -04:00
parent f001924d84
commit 5fe55c90d3
3 changed files with 32 additions and 9 deletions
+1
View File
@@ -1,5 +1,6 @@
---
'@backstage/plugin-catalog-react': patch
'@backstage/plugin-catalog': patch
---
A new `filter` parameter has been added to `EntityContextMenuItemBlueprint` to make it easier to configure which entities a menu item should appear for. The `filter` parameter is a function which accepts an entity and returns a boolean.
+13 -3
View File
@@ -16,6 +16,12 @@ import { ResourcePermission } from '@backstage/plugin-permission-common';
import { RouteRef } from '@backstage/frontend-plugin-api';
import { TranslationRef } from '@backstage/core-plugin-api/alpha';
// @alpha
export function buildFilterFn(
filterFunction?: (entity: Entity) => boolean,
filterExpression?: string,
): (entity: Entity) => boolean;
// @alpha
export const CatalogFilterBlueprint: ExtensionBlueprint<{
kind: 'catalog-filter';
@@ -334,8 +340,12 @@ export const EntityContextMenuItemBlueprint: ExtensionBlueprint<{
params: EntityContextMenuItemParams;
output: ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
inputs: {};
config: {};
configInput: {};
config: {
filter: EntityPredicate | undefined;
};
configInput: {
filter?: EntityPredicate | undefined;
};
dataRefs: never;
}>;
@@ -343,7 +353,7 @@ export const EntityContextMenuItemBlueprint: ExtensionBlueprint<{
export type EntityContextMenuItemParams = {
useProps: UseProps;
icon: JSX_2.Element;
filter?: (entity: Entity) => boolean;
filter?: string | EntityPredicate | ((entity: Entity) => boolean);
};
// @alpha (undocumented)
+18 -6
View File
@@ -863,8 +863,12 @@ const _default: FrontendPlugin<
'entity-context-menu-item:catalog/copy-entity-url': ExtensionDefinition<{
kind: 'entity-context-menu-item';
name: 'copy-entity-url';
config: {};
configInput: {};
config: {
filter: EntityPredicate | undefined;
};
configInput: {
filter?: EntityPredicate | undefined;
};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
@@ -876,8 +880,12 @@ const _default: FrontendPlugin<
'entity-context-menu-item:catalog/inspect-entity': ExtensionDefinition<{
kind: 'entity-context-menu-item';
name: 'inspect-entity';
config: {};
configInput: {};
config: {
filter: EntityPredicate | undefined;
};
configInput: {
filter?: EntityPredicate | undefined;
};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
@@ -889,8 +897,12 @@ const _default: FrontendPlugin<
'entity-context-menu-item:catalog/unregister-entity': ExtensionDefinition<{
kind: 'entity-context-menu-item';
name: 'unregister-entity';
config: {};
configInput: {};
config: {
filter: EntityPredicate | undefined;
};
configInput: {
filter?: EntityPredicate | undefined;
};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',