From 25beb82b903cfe35de05978543f85449d5b0e75a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jano=20Gonz=C3=A1lez?= Date: Fri, 29 Nov 2024 17:03:21 +0100 Subject: [PATCH 1/4] chore: add changeset MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jano González --- .changeset/dull-ties-film.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/dull-ties-film.md diff --git a/.changeset/dull-ties-film.md b/.changeset/dull-ties-film.md new file mode 100644 index 0000000000..4463d59d91 --- /dev/null +++ b/.changeset/dull-ties-film.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog': minor +--- + +Adds an optional columns attribute to HasSubdomainsCardProps and changes its default columns From f03e98603f1be824597f5f110b388c81a15b0b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jano=20Gonz=C3=A1lez?= Date: Fri, 29 Nov 2024 17:03:43 +0100 Subject: [PATCH 2/4] chore: update api report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jano González --- plugins/catalog/report-alpha.api.md | 42 ++++++++++++++--------------- plugins/catalog/report.api.md | 3 +++ 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/plugins/catalog/report-alpha.api.md b/plugins/catalog/report-alpha.api.md index 3a9f0c6c33..434de398b8 100644 --- a/plugins/catalog/report-alpha.api.md +++ b/plugins/catalog/report-alpha.api.md @@ -146,27 +146,6 @@ const _default: FrontendPlugin< unregisterRedirect: ExternalRouteRef; }, { - 'nav-item:catalog': ExtensionDefinition<{ - kind: 'nav-item'; - name: undefined; - config: {}; - configInput: {}; - output: ConfigurableExtensionDataRef< - { - title: string; - icon: IconComponent; - routeRef: RouteRef; - }, - 'core.nav-item.target', - {} - >; - inputs: {}; - params: { - title: string; - icon: IconComponent; - routeRef: RouteRef; - }; - }>; 'api:catalog': ExtensionDefinition<{ kind: 'api'; name: undefined; @@ -846,6 +825,27 @@ const _default: FrontendPlugin< routeRef?: RouteRef | undefined; }; }>; + 'nav-item:catalog': ExtensionDefinition<{ + kind: 'nav-item'; + name: undefined; + config: {}; + configInput: {}; + output: ConfigurableExtensionDataRef< + { + title: string; + icon: IconComponent; + routeRef: RouteRef; + }, + 'core.nav-item.target', + {} + >; + inputs: {}; + params: { + title: string; + icon: IconComponent; + routeRef: RouteRef; + }; + }>; 'search-result-list-item:catalog': ExtensionDefinition<{ kind: 'search-result-list-item'; name: undefined; diff --git a/plugins/catalog/report.api.md b/plugins/catalog/report.api.md index 6b8f246514..bcb469c071 100644 --- a/plugins/catalog/report.api.md +++ b/plugins/catalog/report.api.md @@ -10,6 +10,7 @@ import { BackstagePlugin } from '@backstage/core-plugin-api'; import { CatalogApi } from '@backstage/plugin-catalog-react'; import { ComponentEntity } from '@backstage/catalog-model'; import { CompoundEntityRef } from '@backstage/catalog-model'; +import { DomainEntity } from '@backstage/catalog-model'; import { Entity } from '@backstage/catalog-model'; import { EntityListContextProps } from '@backstage/plugin-catalog-react'; import { EntityListPagination } from '@backstage/plugin-catalog-react'; @@ -584,6 +585,8 @@ export interface HasSubcomponentsCardProps { // @public (undocumented) export interface HasSubdomainsCardProps { + // (undocumented) + columns?: TableColumn[]; // (undocumented) tableOptions?: TableOptions; // (undocumented) From 706058e7cf6edf4893c138a3742b1eebdeb107a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jano=20Gonz=C3=A1lez?= Date: Fri, 29 Nov 2024 17:04:22 +0100 Subject: [PATCH 3/4] feat: make columns configurable in has subdomains card MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jano González --- .../HasSubdomainsCard/HasSubdomainsCard.tsx | 23 ++++++++++++------- .../RelatedEntitiesCard.tsx | 6 +++++ .../components/RelatedEntitiesCard/presets.ts | 11 +++++++++ 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/plugins/catalog/src/components/HasSubdomainsCard/HasSubdomainsCard.tsx b/plugins/catalog/src/components/HasSubdomainsCard/HasSubdomainsCard.tsx index 71705ea90f..b52f5eacf7 100644 --- a/plugins/catalog/src/components/HasSubdomainsCard/HasSubdomainsCard.tsx +++ b/plugins/catalog/src/components/HasSubdomainsCard/HasSubdomainsCard.tsx @@ -14,12 +14,17 @@ * limitations under the License. */ -import { RELATION_HAS_PART } from '@backstage/catalog-model'; -import { InfoCardVariants, TableOptions } from '@backstage/core-components'; +import { DomainEntity, RELATION_HAS_PART } from '@backstage/catalog-model'; +import { + InfoCardVariants, + TableColumn, + TableOptions, +} from '@backstage/core-components'; import React from 'react'; import { - asComponentEntities, - componentEntityColumns, + asDomainEntities, + domainEntityColumns, + domainEntityHelpLink, RelatedEntitiesCard, } from '../RelatedEntitiesCard'; import { catalogTranslationRef } from '../../alpha/translation'; @@ -29,6 +34,7 @@ import { useTranslationRef } from '@backstage/core-plugin-api/alpha'; export interface HasSubdomainsCardProps { variant?: InfoCardVariants; tableOptions?: TableOptions; + columns?: TableColumn[]; title?: string; } @@ -36,8 +42,9 @@ export function HasSubdomainsCard(props: HasSubdomainsCardProps) { const { t } = useTranslationRef(catalogTranslationRef); const { variant = 'gridItem', - tableOptions = {}, title = t('hasSubdomainsCard.title'), + columns = domainEntityColumns, + tableOptions = {}, } = props; return ( ); diff --git a/plugins/catalog/src/components/RelatedEntitiesCard/RelatedEntitiesCard.tsx b/plugins/catalog/src/components/RelatedEntitiesCard/RelatedEntitiesCard.tsx index 5b57cbd80e..40481614e2 100644 --- a/plugins/catalog/src/components/RelatedEntitiesCard/RelatedEntitiesCard.tsx +++ b/plugins/catalog/src/components/RelatedEntitiesCard/RelatedEntitiesCard.tsx @@ -33,10 +33,13 @@ import { } from '@backstage/core-components'; import { asComponentEntities, + asDomainEntities, asResourceEntities, asSystemEntities, componentEntityColumns, componentEntityHelpLink, + domainEntityColumns, + domainEntityHelpLink, resourceEntityColumns, resourceEntityHelpLink, systemEntityColumns, @@ -137,3 +140,6 @@ RelatedEntitiesCard.asResourceEntities = asResourceEntities; RelatedEntitiesCard.systemEntityColumns = systemEntityColumns; RelatedEntitiesCard.systemEntityHelpLink = systemEntityHelpLink; RelatedEntitiesCard.asSystemEntities = asSystemEntities; +RelatedEntitiesCard.domainEntityColums = domainEntityColumns; +RelatedEntitiesCard.domainEntityHelpLink = domainEntityHelpLink; +RelatedEntitiesCard.asDomainEntities = asDomainEntities; diff --git a/plugins/catalog/src/components/RelatedEntitiesCard/presets.ts b/plugins/catalog/src/components/RelatedEntitiesCard/presets.ts index 8e3040ccf9..68930c578b 100644 --- a/plugins/catalog/src/components/RelatedEntitiesCard/presets.ts +++ b/plugins/catalog/src/components/RelatedEntitiesCard/presets.ts @@ -15,6 +15,7 @@ */ import { ComponentEntity, + DomainEntity, Entity, ResourceEntity, SystemEntity, @@ -55,3 +56,13 @@ export const systemEntityHelpLink: string = 'https://backstage.io/docs/features/software-catalog/descriptor-format#kind-system'; export const asSystemEntities = (entities: Entity[]): SystemEntity[] => entities as SystemEntity[]; + +export const domainEntityColumns: TableColumn[] = [ + EntityTable.columns.createEntityRefColumn({ defaultKind: 'domain' }), + EntityTable.columns.createOwnerColumn(), + EntityTable.columns.createMetadataDescriptionColumn(), +]; +export const domainEntityHelpLink: string = + 'https://backstage.io/docs/features/software-catalog/descriptor-format#kind-domain'; +export const asDomainEntities = (entities: Entity[]): DomainEntity[] => + entities as DomainEntity[]; From ee12652ea23f2e1c1c27220ba85cdfaff6f7e2ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jano=20Gonz=C3=A1lez?= Date: Fri, 29 Nov 2024 17:26:19 +0100 Subject: [PATCH 4/4] chore: update api report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jano González --- plugins/catalog/report-alpha.api.md | 42 ++++++++++++++--------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/plugins/catalog/report-alpha.api.md b/plugins/catalog/report-alpha.api.md index 434de398b8..3a9f0c6c33 100644 --- a/plugins/catalog/report-alpha.api.md +++ b/plugins/catalog/report-alpha.api.md @@ -146,6 +146,27 @@ const _default: FrontendPlugin< unregisterRedirect: ExternalRouteRef; }, { + 'nav-item:catalog': ExtensionDefinition<{ + kind: 'nav-item'; + name: undefined; + config: {}; + configInput: {}; + output: ConfigurableExtensionDataRef< + { + title: string; + icon: IconComponent; + routeRef: RouteRef; + }, + 'core.nav-item.target', + {} + >; + inputs: {}; + params: { + title: string; + icon: IconComponent; + routeRef: RouteRef; + }; + }>; 'api:catalog': ExtensionDefinition<{ kind: 'api'; name: undefined; @@ -825,27 +846,6 @@ const _default: FrontendPlugin< routeRef?: RouteRef | undefined; }; }>; - 'nav-item:catalog': ExtensionDefinition<{ - kind: 'nav-item'; - name: undefined; - config: {}; - configInput: {}; - output: ConfigurableExtensionDataRef< - { - title: string; - icon: IconComponent; - routeRef: RouteRef; - }, - 'core.nav-item.target', - {} - >; - inputs: {}; - params: { - title: string; - icon: IconComponent; - routeRef: RouteRef; - }; - }>; 'search-result-list-item:catalog': ExtensionDefinition<{ kind: 'search-result-list-item'; name: undefined;