diff --git a/.changeset/few-geckos-shout.md b/.changeset/few-geckos-shout.md
new file mode 100644
index 0000000000..169d22cad1
--- /dev/null
+++ b/.changeset/few-geckos-shout.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog': patch
+---
+
+Show the parent component in the about card (via partOf relationship)
diff --git a/packages/catalog-model/examples/all-components.yaml b/packages/catalog-model/examples/all-components.yaml
index 5db5825b20..9471b810a1 100644
--- a/packages/catalog-model/examples/all-components.yaml
+++ b/packages/catalog-model/examples/all-components.yaml
@@ -15,4 +15,6 @@ spec:
- ./components/www-artist-component.yaml
- ./components/shuffle-api-component.yaml
- ./components/wayback-archive-component.yaml
+ - ./components/wayback-archive-ingestion-component.yaml
+ - ./components/wayback-archive-storage-component.yaml
- ./components/wayback-search-component.yaml
diff --git a/packages/catalog-model/examples/components/wayback-archive-ingestion-component.yaml b/packages/catalog-model/examples/components/wayback-archive-ingestion-component.yaml
new file mode 100644
index 0000000000..4f870ac831
--- /dev/null
+++ b/packages/catalog-model/examples/components/wayback-archive-ingestion-component.yaml
@@ -0,0 +1,10 @@
+apiVersion: backstage.io/v1alpha1
+kind: Component
+metadata:
+ name: wayback-archive-ingestion
+ description: Ingestion subsystem of the Wayback Archive
+spec:
+ type: service
+ lifecycle: production
+ owner: team-d
+ subcomponentOf: wayback-archive
diff --git a/packages/catalog-model/examples/components/wayback-archive-storage-component.yaml b/packages/catalog-model/examples/components/wayback-archive-storage-component.yaml
new file mode 100644
index 0000000000..78d67258d7
--- /dev/null
+++ b/packages/catalog-model/examples/components/wayback-archive-storage-component.yaml
@@ -0,0 +1,10 @@
+apiVersion: backstage.io/v1alpha1
+kind: Component
+metadata:
+ name: wayback-archive-storage
+ description: Storage subsystem of the Wayback Archive
+spec:
+ type: service
+ lifecycle: production
+ owner: team-a
+ subcomponentOf: wayback-archive
diff --git a/plugins/catalog/src/components/AboutCard/AboutContent.tsx b/plugins/catalog/src/components/AboutCard/AboutContent.tsx
index e9688028b4..b2d029c927 100644
--- a/plugins/catalog/src/components/AboutCard/AboutContent.tsx
+++ b/plugins/catalog/src/components/AboutCard/AboutContent.tsx
@@ -40,9 +40,17 @@ export const AboutContent = ({ entity }: Props) => {
const isSystem = entity.kind.toLowerCase() === 'system';
const isDomain = entity.kind.toLowerCase() === 'domain';
const isResource = entity.kind.toLowerCase() === 'resource';
+ const isComponent = entity.kind.toLowerCase() === 'component';
const [partOfSystemRelation] = getEntityRelations(entity, RELATION_PART_OF, {
kind: 'system',
});
+ const [partOfComponentRelation] = getEntityRelations(
+ entity,
+ RELATION_PART_OF,
+ {
+ kind: 'component',
+ },
+ );
const [partOfDomainRelation] = getEntityRelations(entity, RELATION_PART_OF, {
kind: 'domain',
});
@@ -91,6 +99,18 @@ export const AboutContent = ({ entity }: Props) => {
)}
)}
+ {isComponent && partOfComponentRelation && (
+
+
+
+ )}
{!isSystem && !isDomain && (