diff --git a/.changeset/selfish-turkeys-exist.md b/.changeset/selfish-turkeys-exist.md new file mode 100644 index 0000000000..3530b3a864 --- /dev/null +++ b/.changeset/selfish-turkeys-exist.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-scaffolder': minor +--- + +EntityPickers now support flags to control when to include default namespace +in result diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md index 539dd4f82c..e88d2861a7 100644 --- a/plugins/scaffolder/api-report.md +++ b/plugins/scaffolder/api-report.md @@ -72,6 +72,8 @@ export interface EntityPickerUiOptions { allowedKinds?: string[]; // (undocumented) defaultKind?: string; + // (undocumented) + defaultNamespace?: string | false; } // @public @@ -183,6 +185,8 @@ export interface OwnedEntityPickerUiOptions { allowedKinds?: string[]; // (undocumented) defaultKind?: string; + // (undocumented) + defaultNamespace?: string | false; } // @public @@ -197,6 +201,8 @@ export interface OwnerPickerUiOptions { allowArbitraryValues?: boolean; // (undocumented) allowedKinds?: string[]; + // (undocumented) + defaultNamespace?: string | false; } // @public diff --git a/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx b/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx index 2aa72550c3..e7883a4721 100644 --- a/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx +++ b/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx @@ -35,6 +35,7 @@ export interface EntityPickerUiOptions { allowedKinds?: string[]; defaultKind?: string; allowArbitraryValues?: boolean; + defaultNamespace?: string | false; } /** @@ -57,6 +58,7 @@ export const EntityPicker = ( } = props; const allowedKinds = uiSchema['ui:options']?.allowedKinds; const defaultKind = uiSchema['ui:options']?.defaultKind; + const defaultNamespace = uiSchema['ui:options']?.defaultNamespace; const catalogApi = useApi(catalogApiRef); @@ -67,7 +69,7 @@ export const EntityPicker = ( ); const entityRefs = entities?.items.map(e => - humanizeEntityRef(e, { defaultKind }), + humanizeEntityRef(e, { defaultKind, defaultNamespace }), ); const onSelect = useCallback( diff --git a/plugins/scaffolder/src/components/fields/OwnedEntityPicker/OwnedEntityPicker.tsx b/plugins/scaffolder/src/components/fields/OwnedEntityPicker/OwnedEntityPicker.tsx index a280ebad6a..2446883a86 100644 --- a/plugins/scaffolder/src/components/fields/OwnedEntityPicker/OwnedEntityPicker.tsx +++ b/plugins/scaffolder/src/components/fields/OwnedEntityPicker/OwnedEntityPicker.tsx @@ -38,6 +38,7 @@ export interface OwnedEntityPickerUiOptions { allowedKinds?: string[]; defaultKind?: string; allowArbitraryValues?: boolean; + defaultNamespace?: string | false; } /** @@ -61,12 +62,13 @@ export const OwnedEntityPicker = ( const allowedKinds = uiSchema['ui:options']?.allowedKinds; const defaultKind = uiSchema['ui:options']?.defaultKind; + const defaultNamespace = uiSchema['ui:options']?.defaultNamespace; const allowArbitraryValues = uiSchema['ui:options']?.allowArbitraryValues ?? true; const { ownedEntities, loading } = useOwnedEntities(allowedKinds); const entityRefs = ownedEntities?.items - .map(e => humanizeEntityRef(e, { defaultKind })) + .map(e => humanizeEntityRef(e, { defaultKind, defaultNamespace })) .filter(n => n); const onSelect = (_: any, value: string | null) => { diff --git a/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.tsx b/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.tsx index 10425c17ff..3de2b12bd0 100644 --- a/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.tsx +++ b/plugins/scaffolder/src/components/fields/OwnerPicker/OwnerPicker.tsx @@ -26,6 +26,7 @@ import { FieldExtensionComponentProps } from '../../../extensions'; export interface OwnerPickerUiOptions { allowedKinds?: string[]; allowArbitraryValues?: boolean; + defaultNamespace?: string | false; } /** @@ -43,6 +44,8 @@ export const OwnerPicker = ( ...restProps } = props; + const defaultNamespace = uiSchema['ui:options']?.defaultNamespace; + const ownerUiSchema = { ...uiSchema, 'ui:options': { @@ -53,6 +56,7 @@ export const OwnerPicker = ( defaultKind: 'Group', allowArbitraryValues: uiSchema['ui:options']?.allowArbitraryValues ?? true, + ...(defaultNamespace !== undefined ? { defaultNamespace } : {}), }, };