diff --git a/.changeset/metal-bottles-lay.md b/.changeset/metal-bottles-lay.md
new file mode 100644
index 0000000000..706ebd3528
--- /dev/null
+++ b/.changeset/metal-bottles-lay.md
@@ -0,0 +1,63 @@
+---
+'@backstage/create-app': patch
+---
+
+Replaced EntitySystemDiagramCard with EntityCatalogGraphCard
+
+To make this change to an existing app:
+
+Add `@backstage/catalog-graph-plugin` as a `dependency` in `packages/app/package.json`
+
+Apply the following changes to the `packages/app/src/components/catalog/EntityPage.tsx` file:
+
+```diff
++ import {
++ Direction,
++ EntityCatalogGraphCard,
++ } from '@backstage/plugin-catalog-graph';
++ import {
++ RELATION_API_CONSUMED_BY,
++ RELATION_API_PROVIDED_BY,
++ RELATION_CONSUMES_API,
++ RELATION_DEPENDENCY_OF,
++ RELATION_DEPENDS_ON,
++ RELATION_HAS_PART,
++ RELATION_PART_OF,
++ RELATION_PROVIDES_API,
++ } from '@backstage/catalog-model';
+```
+
+```diff
+
+-
++
+
+```
+
+```diff
+const cicdContent = (
+
+
+
++
++
++
+```
+
+Add the above component in `overviewContent`, `apiPage` , `systemPage` and domainPage` as well.
diff --git a/.changeset/smooth-ghosts-trade.md b/.changeset/smooth-ghosts-trade.md
new file mode 100644
index 0000000000..64be2bd8c9
--- /dev/null
+++ b/.changeset/smooth-ghosts-trade.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-catalog': patch
+---
+
+Deprecated `EntitySystemDiagramCard`
+`EntitySystemDiagramCard` is replaced by `EntityCatalogGraphCard` which is imported from `@backstage/plugin-catalog-graph`. This component will be removed in an upcoming release
diff --git a/packages/create-app/package.json b/packages/create-app/package.json
index 2a3e35988a..63fc3b1c2c 100644
--- a/packages/create-app/package.json
+++ b/packages/create-app/package.json
@@ -63,6 +63,7 @@
"@backstage/plugin-auth-backend": "",
"@backstage/plugin-catalog": "",
"@backstage/plugin-catalog-backend": "",
+ "@backstage/plugin-catalog-graph": "",
"@backstage/plugin-catalog-import": "",
"@backstage/plugin-explore": "",
"@backstage/plugin-github-actions": "",
diff --git a/packages/create-app/src/lib/versions.ts b/packages/create-app/src/lib/versions.ts
index f89ff7f391..34d016ebde 100644
--- a/packages/create-app/src/lib/versions.ts
+++ b/packages/create-app/src/lib/versions.ts
@@ -51,6 +51,7 @@ import { version as pluginAuthBackend } from '../../../../plugins/auth-backend/p
import { version as pluginCatalog } from '../../../../plugins/catalog/package.json';
import { version as pluginCatalogReact } from '../../../../plugins/catalog-react/package.json';
import { version as pluginCatalogBackend } from '../../../../plugins/catalog-backend/package.json';
+import { version as pluginCatalogGraph } from '../../../../plugins/catalog-graph/package.json';
import { version as pluginCatalogImport } from '../../../../plugins/catalog-import/package.json';
import { version as pluginCircleci } from '../../../../plugins/circleci/package.json';
import { version as pluginExplore } from '../../../../plugins/explore/package.json';
@@ -90,6 +91,7 @@ export const packageVersions = {
'@backstage/plugin-catalog': pluginCatalog,
'@backstage/plugin-catalog-react': pluginCatalogReact,
'@backstage/plugin-catalog-backend': pluginCatalogBackend,
+ '@backstage/plugin-catalog-graph': pluginCatalogGraph,
'@backstage/plugin-catalog-import': pluginCatalogImport,
'@backstage/plugin-circleci': pluginCircleci,
'@backstage/plugin-explore': pluginExplore,
diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs
index f968a076d7..23c45d3f9d 100644
--- a/packages/create-app/templates/default-app/packages/app/package.json.hbs
+++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs
@@ -13,6 +13,7 @@
"@backstage/integration-react": "^{{version '@backstage/integration-react'}}",
"@backstage/plugin-api-docs": "^{{version '@backstage/plugin-api-docs'}}",
"@backstage/plugin-catalog": "^{{version '@backstage/plugin-catalog'}}",
+ "@backstage/plugin-catalog-graph": "^{{version '@backstage/plugin-catalog-graph'}}",
"@backstage/plugin-catalog-import": "^{{version '@backstage/plugin-catalog-import'}}",
"@backstage/plugin-catalog-react": "^{{version '@backstage/plugin-catalog-react'}}",
"@backstage/plugin-github-actions": "^{{version '@backstage/plugin-github-actions'}}",
diff --git a/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx b/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx
index d3b4b786a0..84d094410b 100644
--- a/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx
@@ -27,7 +27,6 @@ import {
EntityAboutCard,
EntityDependsOnComponentsCard,
EntityDependsOnResourcesCard,
- EntitySystemDiagramCard,
EntityHasComponentsCard,
EntityHasResourcesCard,
EntityHasSubcomponentsCard,
@@ -54,6 +53,20 @@ import {
} from '@backstage/plugin-org';
import { EntityTechdocsContent } from '@backstage/plugin-techdocs';
import { EmptyState } from '@backstage/core-components';
+import {
+ Direction,
+ EntityCatalogGraphCard,
+} from '@backstage/plugin-catalog-graph';
+import {
+ RELATION_API_CONSUMED_BY,
+ RELATION_API_PROVIDED_BY,
+ RELATION_CONSUMES_API,
+ RELATION_DEPENDENCY_OF,
+ RELATION_DEPENDS_ON,
+ RELATION_HAS_PART,
+ RELATION_PART_OF,
+ RELATION_PROVIDES_API,
+} from '@backstage/catalog-model';
const cicdContent = (
// This is an example of how you can implement your company's logic in entity page.
@@ -108,6 +121,10 @@ const overviewContent = (
+
+
+
+
@@ -223,6 +240,9 @@ const apiPage = (
+
+
+
@@ -290,6 +310,9 @@ const systemPage = (
+
+
+
@@ -302,7 +325,23 @@ const systemPage = (
-
+
);
@@ -315,6 +354,9 @@ const domainPage = (
+
+
+
diff --git a/plugins/catalog/api-report.md b/plugins/catalog/api-report.md
index 23771d3ec9..ad391b594f 100644
--- a/plugins/catalog/api-report.md
+++ b/plugins/catalog/api-report.md
@@ -391,7 +391,7 @@ export const EntitySwitch: {
// Warning: (ae-forgotten-export) The symbol "SystemDiagramCard" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "EntitySystemDiagramCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
-// @public (undocumented)
+// @public @deprecated (undocumented)
export const EntitySystemDiagramCard: SystemDiagramCard;
// Warning: (ae-missing-release-tag) "FilterContainer" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
diff --git a/plugins/catalog/src/plugin.ts b/plugins/catalog/src/plugin.ts
index 03806a2aa2..5a94cd2a09 100644
--- a/plugins/catalog/src/plugin.ts
+++ b/plugins/catalog/src/plugin.ts
@@ -177,6 +177,10 @@ export const EntityDependsOnResourcesCard = catalogPlugin.provide(
}),
);
+/**
+ * @deprecated This component is replaced by EntityCatalogGraphCard which is imported from `@backstage/plugin-catalog-graph`. This component will be removed in an
+ * upcoming release
+ */
export const EntitySystemDiagramCard = catalogPlugin.provide(
createComponentExtension({
name: 'EntitySystemDiagramCard',