@eventcatalog/core 4.10.12 → 4.10.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/dist/analytics/analytics.cjs +1 -1
  2. package/dist/analytics/analytics.js +2 -2
  3. package/dist/analytics/log-build.cjs +1 -1
  4. package/dist/analytics/log-build.js +3 -3
  5. package/dist/{chunk-7URQ754Q.js → chunk-HERAHLM2.js} +1 -1
  6. package/dist/{chunk-Y5XU3YLT.js → chunk-LITOQH56.js} +1 -1
  7. package/dist/{chunk-S4LLGOO4.js → chunk-LUW6RDA7.js} +1 -1
  8. package/dist/{chunk-VFSEVDCQ.js → chunk-ONDFEA5R.js} +1 -1
  9. package/dist/{chunk-A53VCEEA.js → chunk-V2SKOQYF.js} +1 -1
  10. package/dist/constants.cjs +1 -1
  11. package/dist/constants.js +1 -1
  12. package/dist/docs/api/02-config.md +55 -1
  13. package/dist/docs/development/authentication/providers/03-setting-up-github.md +29 -0
  14. package/dist/docs/development/bring-your-own-documentation/custom-pages/02-adding-custom-docs.md +2 -2
  15. package/dist/docs/development/bring-your-own-documentation/custom-pages/03-components.md +17 -0
  16. package/dist/docs/development/components/07-resource-references.md +7 -1
  17. package/dist/docs/development/components/components/05-architecture-graph.md +65 -0
  18. package/dist/docs/development/components/components/{05-attachments.md → 06-attachments.md} +1 -1
  19. package/dist/docs/development/components/components/{06-channel-information.md → 07-channel-information.md} +1 -1
  20. package/dist/docs/development/components/components/{07-custom-properties.md → 08-custom-properties.md} +1 -1
  21. package/dist/docs/development/components/components/{08-design.md → 09-design.md} +1 -1
  22. package/dist/docs/development/components/components/{09-entitymap.md → 10-entitymap.md} +1 -1
  23. package/dist/docs/development/components/components/{10-flow.md → 11-flow.md} +1 -1
  24. package/dist/docs/development/components/components/{11-link.md → 12-link.md} +1 -1
  25. package/dist/docs/development/components/components/{12-mermaid-file-loader.md → 13-mermaid-file-loader.md} +1 -1
  26. package/dist/docs/development/components/components/{13-message-table.md → 14-message-table.md} +1 -1
  27. package/dist/docs/development/components/components/{14-nodegraph.md → 15-nodegraph.md} +1 -1
  28. package/dist/docs/development/components/components/{15-openapi.md → 16-openapi.md} +1 -1
  29. package/dist/docs/development/components/components/{16-prompt.md → 17-prompt.md} +1 -1
  30. package/dist/docs/development/components/components/{17-remote-schema.md → 18-remote-schema.md} +1 -1
  31. package/dist/docs/development/components/components/{18-resource-group-table.md → 19-resource-group-table.md} +1 -1
  32. package/dist/docs/development/components/components/{19-resource-link.md → 20-resource-link.md} +1 -1
  33. package/dist/docs/development/components/components/{20-schema.md → 21-schema.md} +1 -1
  34. package/dist/docs/development/components/components/{21-schema-viewer.md → 22-schema-viewer.md} +1 -1
  35. package/dist/docs/development/components/components/{22-steps.md → 23-steps.md} +1 -1
  36. package/dist/docs/development/components/components/{23-tabs.md → 24-tabs.md} +1 -1
  37. package/dist/docs/development/components/components/{24-tiles.md → 25-tiles.md} +1 -1
  38. package/dist/docs/development/components/components/{25-visibility.md → 26-visibility.md} +1 -1
  39. package/dist/docs/development/customization/04-documentation-sidebar.md +3 -3
  40. package/dist/docs/development/customization/05-resource-sidebar.md +235 -0
  41. package/dist/docs/development/customization/09-embed-eventcatalog.md +179 -0
  42. package/dist/docs/development/customization/_category_.json +1 -1
  43. package/dist/docs/development/deployment/build-and-deploy.md +4 -0
  44. package/dist/docs/development/deployment/hosting-options.md +1 -1
  45. package/dist/docs/development/deployment/link-validation.md +105 -0
  46. package/dist/docs/development/developer-tools/eventcatalog-linter/00-overview.md +76 -0
  47. package/dist/docs/development/developer-tools/eventcatalog-linter/01-setup.md +144 -0
  48. package/dist/docs/development/developer-tools/eventcatalog-linter/_category_.json +10 -0
  49. package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/01-configure-rules.md +130 -0
  50. package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/02-run-in-ci.md +93 -0
  51. package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/03-use-custom-frontmatter.md +81 -0
  52. package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/04-reference-external-catalogs.md +51 -0
  53. package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/05-fix-common-problems.md +120 -0
  54. package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/_category_.json +12 -0
  55. package/dist/docs/development/developer-tools/eventcatalog-linter/reference/01-cli.md +109 -0
  56. package/dist/docs/development/developer-tools/eventcatalog-linter/reference/02-configuration.md +120 -0
  57. package/dist/docs/development/developer-tools/eventcatalog-linter/reference/03-rules.md +287 -0
  58. package/dist/docs/development/developer-tools/eventcatalog-linter/reference/04-versions.md +77 -0
  59. package/dist/docs/development/developer-tools/eventcatalog-linter/reference/05-supported-resources.md +75 -0
  60. package/dist/docs/development/developer-tools/eventcatalog-linter/reference/_category_.json +12 -0
  61. package/dist/docs/development/guides/97-architecture-graph.md +78 -0
  62. package/dist/docs/development/guides/domains/02-create-domain.md +1 -1
  63. package/dist/docs/development/guides/domains/03-ownership-and-language/02-adding-ubiquitous-language.md +29 -0
  64. package/dist/docs/development/guides/domains/09-reference.md +10 -0
  65. package/dist/docs/development/guides/resources/messages/04-message-channels/02-adding-channels.md +2 -2
  66. package/dist/docs/development/guides/resources/messages/04-message-channels/04-adding-messages-to-services.md +8 -0
  67. package/dist/docs/development/guides/resources/schemas/03-add-specifications-to-services/01-add-openapi-specifications.md +2 -2
  68. package/dist/docs/development/guides/resources/schemas/03-add-specifications-to-services/02-add-asyncapi-specifications.md +3 -3
  69. package/dist/docs/development/guides/systems/05-system-context-maps.md +2 -0
  70. package/dist/docs/development/license-keys/license-validation.md +7 -3
  71. package/dist/docs/development/license-keys/overview.md +7 -3
  72. package/dist/docs/development/upgrading/upgrading.md +3 -3
  73. package/dist/docs/development/upgrading/v2.md +3 -3
  74. package/dist/docs/federation/00-overview.md +158 -0
  75. package/dist/docs/federation/01-first-federation.md +199 -0
  76. package/dist/docs/federation/_category_.json +12 -0
  77. package/dist/docs/federation/explanation/_category_.json +12 -0
  78. package/dist/docs/federation/explanation/how-it-works.md +129 -0
  79. package/dist/docs/federation/explanation/lockfile-and-cache.md +134 -0
  80. package/dist/docs/federation/explanation/mvp-status-and-feedback.md +86 -0
  81. package/dist/docs/federation/explanation/ownership-and-references.md +134 -0
  82. package/dist/docs/federation/how-to/_category_.json +12 -0
  83. package/dist/docs/federation/how-to/configure-github-sources.md +156 -0
  84. package/dist/docs/federation/how-to/configure-validation-rules.md +127 -0
  85. package/dist/docs/federation/how-to/run-in-ci.md +138 -0
  86. package/dist/docs/federation/how-to/share-assets-and-components.md +125 -0
  87. package/dist/docs/federation/how-to/use-local-sources.md +138 -0
  88. package/dist/docs/{plugins/eventcatalog-federation → federation/legacy-federation}/00-introduction.md +11 -2
  89. package/dist/docs/{plugins/eventcatalog-federation → federation/legacy-federation}/01-installation.md +11 -3
  90. package/dist/docs/{plugins/eventcatalog-federation → federation/legacy-federation}/02-plugin-configuration.md +11 -2
  91. package/dist/docs/{plugins/eventcatalog-federation → federation/legacy-federation}/03-examples.md +11 -1
  92. package/dist/docs/{plugins/eventcatalog-federation → federation/legacy-federation}/04-configuration.md +11 -1
  93. package/dist/docs/{plugins/eventcatalog-federation → federation/legacy-federation}/05-setup-team-catalog.md +11 -2
  94. package/dist/docs/federation/legacy-federation/_category_.json +12 -0
  95. package/dist/docs/federation/reference/_category_.json +12 -0
  96. package/dist/docs/federation/reference/cli.md +122 -0
  97. package/dist/docs/federation/reference/configuration.md +192 -0
  98. package/dist/docs/federation/reference/diagnostic-rules.md +173 -0
  99. package/dist/docs/federation/reference/generated-output.md +118 -0
  100. package/dist/docs/federation/reference/supported-content.md +86 -0
  101. package/dist/docs/federation/reference/troubleshooting.md +208 -0
  102. package/dist/docs/plugins/01-intro.md +3 -3
  103. package/dist/docs/plugins/03-all-plugins.md +2 -2
  104. package/dist/docs/plugins/asyncapi/00-intro.md +4 -4
  105. package/dist/docs/plugins/asyncapi/02-plugin-configuration.md +4 -4
  106. package/dist/docs/plugins/backstage/00-overview.md +53 -0
  107. package/dist/docs/plugins/backstage/01-get-started.md +95 -0
  108. package/dist/docs/plugins/backstage/02-embed-entity-tabs.md +109 -0
  109. package/dist/docs/plugins/backstage/03-add-overview-cards.md +79 -0
  110. package/dist/docs/plugins/backstage/04-control-theme-and-size.md +54 -0
  111. package/dist/docs/plugins/backstage/05-migrate-to-annotations.md +49 -0
  112. package/dist/docs/plugins/backstage/06-configuration.md +85 -0
  113. package/dist/docs/plugins/backstage/07-components.md +129 -0
  114. package/dist/docs/plugins/backstage/08-how-embeds-work.md +52 -0
  115. package/dist/docs/plugins/backstage/_category_.json +4 -3
  116. package/dist/docs/plugins/eventbridge/00-intro.md +5 -5
  117. package/dist/docs/plugins/eventbridge/03-api.md +3 -3
  118. package/dist/docs/plugins/graphql/00-intro.md +2 -2
  119. package/dist/docs/plugins/graphql/02-plugin-configuration.md +2 -2
  120. package/dist/docs/plugins/hookdeck/01-intro.md +1 -1
  121. package/dist/docs/plugins/openapi/00-intro.md +1 -1
  122. package/dist/eventcatalog.cjs +1 -1
  123. package/dist/eventcatalog.js +5 -5
  124. package/dist/generate.cjs +1 -1
  125. package/dist/generate.js +3 -3
  126. package/dist/utils/cli-logger.cjs +1 -1
  127. package/dist/utils/cli-logger.js +2 -2
  128. package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +208 -119
  129. package/eventcatalog/src/components/ChatPanel/ChatPanelButton.tsx +28 -8
  130. package/eventcatalog/src/components/ChatPanel/OfflineReply.tsx +45 -0
  131. package/eventcatalog/src/components/Header.astro +11 -6
  132. package/eventcatalog/src/components/MDX/Design/Design.astro +2 -2
  133. package/eventcatalog/src/components/MDX/EntityMap/EntityMap.astro +2 -2
  134. package/eventcatalog/src/components/MDX/Flow/Flow.astro +2 -2
  135. package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.astro +2 -2
  136. package/eventcatalog/src/components/SchemaExplorer/AvroSchemaViewer.tsx +21 -19
  137. package/eventcatalog/src/components/SchemaExplorer/JSONSchemaViewer.tsx +79 -77
  138. package/eventcatalog/src/components/SchemaExplorer/ProtobufSchemaViewer.test.tsx +91 -0
  139. package/eventcatalog/src/components/SchemaExplorer/ProtobufSchemaViewer.tsx +115 -33
  140. package/eventcatalog/src/components/SchemaExplorer/SchemaViewerHover.test.tsx +33 -0
  141. package/eventcatalog/src/components/SchemaExplorer/protobuf-validation.test.ts +84 -0
  142. package/eventcatalog/src/components/SchemaExplorer/protobuf-validation.ts +149 -0
  143. package/eventcatalog/src/components/Search/Search.astro +11 -4
  144. package/eventcatalog/src/components/Settings/AssistantSettingsForm.tsx +29 -24
  145. package/eventcatalog/src/enterprise/custom-documentation/pages/docs/custom/index.astro +3 -3
  146. package/eventcatalog/src/pages/diagrams/[id]/[version]/index.astro +2 -2
  147. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/index.astro +5 -3
  148. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/index.astro +10 -4
  149. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/[filename].astro +2 -2
  150. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +3 -3
  151. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/[filename].astro +2 -2
  152. package/eventcatalog/src/pages/visualiser/designs/[id]/index.astro +2 -2
  153. package/eventcatalog/src/utils/feature.ts +1 -0
  154. package/eventcatalog/src/utils/protobuf-schema.ts +211 -16
  155. package/package.json +3 -3
  156. package/dist/docs/cli/channels.md +0 -180
  157. package/dist/docs/cli/commands.md +0 -183
  158. package/dist/docs/cli/custom-docs.md +0 -78
  159. package/dist/docs/cli/data-products.md +0 -177
  160. package/dist/docs/cli/data-stores.md +0 -166
  161. package/dist/docs/cli/diagrams.md +0 -147
  162. package/dist/docs/cli/domains.md +0 -280
  163. package/dist/docs/cli/entities.md +0 -138
  164. package/dist/docs/cli/events.md +0 -186
  165. package/dist/docs/cli/export.md +0 -27
  166. package/dist/docs/cli/governance.md +0 -24
  167. package/dist/docs/cli/messages.md +0 -69
  168. package/dist/docs/cli/queries.md +0 -183
  169. package/dist/docs/cli/services.md +0 -266
  170. package/dist/docs/cli/snapshots.md +0 -44
  171. package/dist/docs/cli/teams.md +0 -75
  172. package/dist/docs/cli/users.md +0 -75
  173. package/dist/docs/cli/utilities.md +0 -43
  174. package/dist/docs/development/developer-tools/eventcatalog-linter.md +0 -732
  175. package/dist/docs/plugins/backstage/00-intro.md +0 -67
  176. package/dist/docs/plugins/backstage/01-installation.md +0 -242
  177. package/dist/docs/plugins/backstage/02-api.md +0 -51
  178. package/dist/docs/plugins/backstage/03-examples.md +0 -12
  179. package/dist/docs/plugins/eventcatalog-federation/_category_.json +0 -11
@@ -0,0 +1,53 @@
1
+ ---
2
+ sidebar_position: 1
3
+ sidebar_label: Overview
4
+ title: EventCatalog for Backstage
5
+ description: Add EventCatalog documentation, diagrams, schemas, messages, and flows to Backstage entity pages.
6
+ keywords:
7
+ - backstage
8
+ - developer portal
9
+ - integration
10
+ ---
11
+
12
+ import PluginLicense from '@site/src/components/MDX/PluginLicense';
13
+
14
+ <PluginLicense url="#licensing" />
15
+
16
+ The EventCatalog Backstage plugin embeds EventCatalog views in Backstage entity pages. Developers can explore architecture documentation without leaving the software catalog they use for ownership, APIs, dependencies, and operations.
17
+
18
+ ![EventCatalog embedded in a Backstage entity page](/img/integrations/backstage/backstage-eventcatalog.png)
19
+
20
+ ## Choose where to start
21
+
22
+ - New to the plugin? Follow [Embed EventCatalog in your first Backstage entity](/docs/plugins/backstage/get-started).
23
+ - Adding a dedicated entity tab? Use [Embed EventCatalog as entity tabs](/docs/plugins/backstage/embed-entity-tabs).
24
+ - Adding content to an existing overview? Use [Add EventCatalog cards to an overview page](/docs/plugins/backstage/add-overview-cards).
25
+ - Need exact props or supported components? See the [component reference](/docs/plugins/backstage/components).
26
+ - Upgrading from the legacy resource mapping? Follow [Migrate to entity annotations](/docs/plugins/backstage/migrate-to-annotations).
27
+
28
+ ## Supported views
29
+
30
+ You can embed:
31
+
32
+ - resource documentation
33
+ - resource visualizers
34
+ - message discovery tables
35
+ - entity maps
36
+ - the schema explorer
37
+ - the Architecture Graph, focused on a resource at depth 1, 2, or 3
38
+ - the System Context Map overview or a specific system and version
39
+ - a flow visualizer for a specific flow and version
40
+
41
+ Every page and card accepts `theme="light"` or `theme="dark"`. If you omit `theme`, EventCatalog uses the visitor's saved EventCatalog theme.
42
+
43
+ ## How the integration fits together
44
+
45
+ The plugin reads the EventCatalog base URL from Backstage configuration and normally reads the EventCatalog resource identity from annotations on the current Backstage entity. It then renders the selected EventCatalog view in an iframe with embed mode enabled.
46
+
47
+ Read [How EventCatalog embeds work](/docs/plugins/backstage/how-embeds-work) for the mapping, rendering, and sizing model.
48
+
49
+ ## Licensing
50
+
51
+ The plugin requires an EventCatalog Scale license for commercial use. You can start a 30-day trial in [EventCatalog Cloud](https://eventcatalog.cloud) and follow [Getting a license key for integrations](/docs/development/license-keys/integrations).
52
+
53
+ For license terms, see the [plugin repository](https://github.com/event-catalog/backstage-plugin-eventcatalog).
@@ -0,0 +1,95 @@
1
+ ---
2
+ sidebar_position: 2
3
+ sidebar_label: Get started
4
+ title: Embed EventCatalog in your first Backstage entity
5
+ description: Install the EventCatalog Backstage plugin and add resource documentation to an entity page.
6
+ keywords:
7
+ - backstage
8
+ - tutorial
9
+ - installation
10
+ ---
11
+
12
+ In this tutorial, you will connect a Backstage app to an EventCatalog instance and add an EventCatalog documentation tab to a service entity.
13
+
14
+ You will need:
15
+
16
+ - a Backstage app with a software catalog entity page
17
+ - an EventCatalog instance that the user's browser can reach
18
+ - an EventCatalog Scale license for commercial use
19
+
20
+ ## 1. Enable the integration in EventCatalog
21
+
22
+ Add your Scale license key to the `.env` file in the EventCatalog project:
23
+
24
+ ```bash title=".env"
25
+ EVENTCATALOG_SCALE_LICENSE_KEY=your-scale-license-key
26
+ ```
27
+
28
+ Build and deploy EventCatalog with this environment variable. For license setup and legacy keys, see [Getting a license key for integrations](/docs/development/license-keys/integrations).
29
+
30
+ ## 2. Install the Backstage plugin
31
+
32
+ From the root of your Backstage app, install the frontend plugin:
33
+
34
+ ```bash
35
+ yarn add @eventcatalog/backstage-plugin-eventcatalog
36
+ ```
37
+
38
+ ## 3. Configure the EventCatalog URL
39
+
40
+ Add the public base URL of your EventCatalog instance to `app-config.yaml`:
41
+
42
+ ```yaml title="app-config.yaml"
43
+ eventcatalog:
44
+ URL: https://demo.eventcatalog.dev
45
+ ```
46
+
47
+ Do not add a trailing view path such as `/docs` or `/visualiser`. The plugin builds each embed URL from this base URL.
48
+
49
+ ## 4. Map a Backstage entity
50
+
51
+ Add EventCatalog annotations to a Backstage catalog entity. This example maps a Backstage component to version `1.0.0` of the `order-service` service in EventCatalog:
52
+
53
+ ```yaml title="catalog-info.yaml"
54
+ apiVersion: backstage.io/v1alpha1
55
+ kind: Component
56
+ metadata:
57
+ name: order-service
58
+ description: Handles customer orders
59
+ annotations:
60
+ eventcatalog.dev/id: order-service
61
+ eventcatalog.dev/version: 1.0.0
62
+ eventcatalog.dev/collection: services
63
+ spec:
64
+ type: service
65
+ lifecycle: production
66
+ owner: team-orders
67
+ ```
68
+
69
+ The annotation values must match the resource ID, version, and collection in EventCatalog.
70
+
71
+ ## 5. Add an EventCatalog tab
72
+
73
+ Open the file that defines your catalog entity page, commonly `packages/app/src/components/catalog/EntityPage.tsx`.
74
+
75
+ Import the page component:
76
+
77
+ ```tsx
78
+ import { EventCatalogDocumentationEntityPage } from '@eventcatalog/backstage-plugin-eventcatalog';
79
+ ```
80
+
81
+ Add a route inside the `EntityLayout` used for your service entities:
82
+
83
+ ```tsx
84
+ <EntityLayout.Route path="/eventcatalog-docs" title="EventCatalog: Docs">
85
+ <EventCatalogDocumentationEntityPage page="docs" />
86
+ </EntityLayout.Route>
87
+ ```
88
+
89
+ ## 6. Check the result
90
+
91
+ Start Backstage and open the mapped service. Select **EventCatalog: Docs**.
92
+
93
+ You should see the `order-service` documentation from EventCatalog fill the tab. If you see a mapping message instead, check that `eventcatalog.dev/id` is present and that the entity has been re-ingested by Backstage.
94
+
95
+ You now have a working EventCatalog embed. Next, [add more entity tabs](/docs/plugins/backstage/embed-entity-tabs) or [place visualizations on the overview page](/docs/plugins/backstage/add-overview-cards).
@@ -0,0 +1,109 @@
1
+ ---
2
+ sidebar_position: 3
3
+ sidebar_label: Embed entity tabs
4
+ title: Embed EventCatalog as entity tabs
5
+ description: Add documentation, message, schema, map, graph, and flow tabs to Backstage entity pages.
6
+ keywords:
7
+ - backstage
8
+ - entity tabs
9
+ - entity layout
10
+ ---
11
+
12
+ Use full-page components inside `EntityLayout.Route` when you want an EventCatalog view to have its own Backstage entity tab.
13
+
14
+ ## Import the components
15
+
16
+ Import the general-purpose page component and any dedicated visualization components you need:
17
+
18
+ ```tsx
19
+ import {
20
+ EventCatalogArchitectureGraphEntityPage,
21
+ EventCatalogDocumentationEntityPage,
22
+ EventCatalogFlowEntityPage,
23
+ EventCatalogSystemContextMapEntityPage,
24
+ } from '@eventcatalog/backstage-plugin-eventcatalog';
25
+ ```
26
+
27
+ ## Add resource views
28
+
29
+ The documentation, visualizer, discovery table, entity map, and schema explorer use `EventCatalogDocumentationEntityPage`:
30
+
31
+ ```tsx
32
+ <EntityLayout.Route path="/eventcatalog-docs" title="EventCatalog: Docs">
33
+ <EventCatalogDocumentationEntityPage page="docs" />
34
+ </EntityLayout.Route>
35
+
36
+ <EntityLayout.Route path="/eventcatalog-visualiser" title="EventCatalog: Visualiser">
37
+ <EventCatalogDocumentationEntityPage page="visualiser" />
38
+ </EntityLayout.Route>
39
+
40
+ <EntityLayout.Route path="/eventcatalog-messages" title="EventCatalog: Messages">
41
+ <EventCatalogDocumentationEntityPage page="discover" />
42
+ </EntityLayout.Route>
43
+
44
+ <EntityLayout.Route path="/eventcatalog-entity-map" title="EventCatalog: Entity Map">
45
+ <EventCatalogDocumentationEntityPage page="entity-map" />
46
+ </EntityLayout.Route>
47
+
48
+ <EntityLayout.Route path="/eventcatalog-schema-explorer" title="EventCatalog: Schema Explorer">
49
+ <EventCatalogDocumentationEntityPage page="schema-explorer" />
50
+ </EntityLayout.Route>
51
+ ```
52
+
53
+ These components use the annotations on the current entity. To show a different resource, pass `id`, `version`, and `collection` explicitly:
54
+
55
+ ```tsx
56
+ <EventCatalogDocumentationEntityPage
57
+ page="entity-map"
58
+ id="ordering"
59
+ version="1.0.0"
60
+ collection="domains"
61
+ />
62
+ ```
63
+
64
+ ## Add an Architecture Graph
65
+
66
+ Use `EventCatalogArchitectureGraphEntityPage` to focus the catalog-wide graph on a resource. `depth` accepts `1`, `2`, or `3` and defaults to `2`.
67
+
68
+ ```tsx
69
+ <EntityLayout.Route path="/eventcatalog-architecture" title="EventCatalog: Architecture">
70
+ <EventCatalogArchitectureGraphEntityPage type="service" depth={2} />
71
+ </EntityLayout.Route>
72
+ ```
73
+
74
+ The resource ID comes from the current entity unless you pass `id`. `type` is the singular alias for `collection`; for example, `type="service"` maps to `services`.
75
+
76
+ ## Add a System Context Map
77
+
78
+ Omit the props to show the catalog-wide overview:
79
+
80
+ ```tsx
81
+ <EntityLayout.Route path="/eventcatalog-system-context" title="EventCatalog: System Context">
82
+ <EventCatalogSystemContextMapEntityPage />
83
+ </EntityLayout.Route>
84
+ ```
85
+
86
+ To show one system, provide its ID and version:
87
+
88
+ ```tsx
89
+ <EventCatalogSystemContextMapEntityPage
90
+ system="order-management-system"
91
+ version="1.0.0"
92
+ />
93
+ ```
94
+
95
+ On a mapped Backstage `System` entity, the component can read the system ID and version from annotations instead.
96
+
97
+ ## Add a flow
98
+
99
+ A flow embed requires a flow ID and version:
100
+
101
+ ```tsx
102
+ <EntityLayout.Route path="/eventcatalog-flow" title="EventCatalog: Flow">
103
+ <EventCatalogFlowEntityPage flow="checkout-saga" version="1.0.0" />
104
+ </EntityLayout.Route>
105
+ ```
106
+
107
+ You can instead annotate a Backstage entity with the flow ID, version, and `flows` collection, then omit the `flow` and `version` props.
108
+
109
+ For every supported prop and page value, see the [component reference](/docs/plugins/backstage/components).
@@ -0,0 +1,79 @@
1
+ ---
2
+ sidebar_position: 4
3
+ sidebar_label: Add overview cards
4
+ title: Add EventCatalog cards to an overview page
5
+ description: Place EventCatalog diagrams, tables, schemas, and flows in a Backstage overview grid.
6
+ keywords:
7
+ - backstage
8
+ - cards
9
+ - overview
10
+ ---
11
+
12
+ Use the card components to place EventCatalog views alongside existing Backstage cards. The components fill their parent, so give each grid item an explicit height.
13
+
14
+ ## Import the cards
15
+
16
+ ```tsx
17
+ import {
18
+ EventCatalogEntityArchitectureGraphCard,
19
+ EventCatalogEntityEntityMapCard,
20
+ EventCatalogEntityFlowCard,
21
+ EventCatalogEntityMessageCard,
22
+ EventCatalogEntitySchemaExplorerCard,
23
+ EventCatalogEntitySystemContextMapCard,
24
+ EventCatalogEntityVisualiserCard,
25
+ } from '@eventcatalog/backstage-plugin-eventcatalog';
26
+ ```
27
+
28
+ ## Add cards to the overview grid
29
+
30
+ Add the cards to the `Grid` used by your entity overview. Choose heights that suit each visualization:
31
+
32
+ ```tsx
33
+ const overviewContent = (
34
+ <Grid container spacing={3} alignItems="stretch">
35
+ <Grid item xs={12} style={{ height: 700 }}>
36
+ <EventCatalogEntityFlowCard
37
+ flow="checkout-saga"
38
+ version="1.0.0"
39
+ />
40
+ </Grid>
41
+
42
+ <Grid item xs={12} style={{ height: 800 }}>
43
+ <EventCatalogEntityArchitectureGraphCard
44
+ type="service"
45
+ depth={2}
46
+ />
47
+ </Grid>
48
+
49
+ <Grid item xs={12} md={6} style={{ height: 600 }}>
50
+ <EventCatalogEntityVisualiserCard />
51
+ </Grid>
52
+
53
+ <Grid item xs={12} md={6} style={{ height: 600 }}>
54
+ <EventCatalogEntityMessageCard />
55
+ </Grid>
56
+ </Grid>
57
+ );
58
+ ```
59
+
60
+ The resource-oriented cards read the current entity's EventCatalog annotations. Components that select a global or specific view also accept explicit props:
61
+
62
+ ```tsx
63
+ <EventCatalogEntityEntityMapCard
64
+ id="ordering"
65
+ version="1.0.0"
66
+ collection="domains"
67
+ />
68
+
69
+ <EventCatalogEntitySystemContextMapCard
70
+ system="order-management-system"
71
+ version="1.0.0"
72
+ />
73
+
74
+ <EventCatalogEntitySchemaExplorerCard />
75
+ ```
76
+
77
+ To make a card span the whole overview width, use `xs={12}`. To arrange two cards side by side on medium screens, give each item `xs={12} md={6}`.
78
+
79
+ See [Control embed theme and size](/docs/plugins/backstage/control-theme-and-size) if an iframe does not fill its card.
@@ -0,0 +1,54 @@
1
+ ---
2
+ sidebar_position: 5
3
+ sidebar_label: Theme and sizing
4
+ title: Control an embed's theme and size
5
+ description: Select a light or dark EventCatalog theme and make embeds fill their Backstage containers.
6
+ keywords:
7
+ - backstage
8
+ - theme
9
+ - iframe height
10
+ ---
11
+
12
+ Every EventCatalog page and card component accepts a `theme` prop.
13
+
14
+ ## Select a theme
15
+
16
+ Set `theme` to `light` or `dark`:
17
+
18
+ ```tsx
19
+ <EventCatalogDocumentationEntityPage page="docs" theme="dark" />
20
+
21
+ <EventCatalogEntityArchitectureGraphCard
22
+ type="service"
23
+ depth={2}
24
+ theme="light"
25
+ />
26
+ ```
27
+
28
+ When `theme` is omitted, the embedded page uses the visitor's saved EventCatalog theme. The explicit prop affects that embed; it does not overwrite the visitor's saved preference.
29
+
30
+ To make every EventCatalog view in a Backstage app consistent, pass the same theme to each page and card component.
31
+
32
+ ## Give cards an explicit height
33
+
34
+ The plugin iframe uses `height: 100%`, which means its height is inherited from its parent. Set the height on the Backstage grid item or another wrapping element:
35
+
36
+ ```tsx
37
+ <Grid item xs={12} style={{ height: 800 }}>
38
+ <EventCatalogEntityArchitectureGraphCard
39
+ type="service"
40
+ depth={2}
41
+ theme="dark"
42
+ />
43
+ </Grid>
44
+ ```
45
+
46
+ Avoid percentage heights unless every ancestor has a defined height. A fixed height, viewport-relative height, or layout-controlled height gives the iframe a concrete area to fill:
47
+
48
+ ```tsx
49
+ <Grid item xs={12} style={{ height: 'calc(100vh - 240px)', minHeight: 600 }}>
50
+ <EventCatalogEntitySchemaExplorerCard theme="dark" />
51
+ </Grid>
52
+ ```
53
+
54
+ Full-page components automatically fill the height made available by the `EntityLayout.Route`. If a custom route wrapper collapses, give that wrapper an explicit height too.
@@ -0,0 +1,49 @@
1
+ ---
2
+ sidebar_position: 6
3
+ sidebar_label: Migrate legacy mappings
4
+ title: Migrate legacy resource mappings to entity annotations
5
+ description: Replace pre-1.0 Backstage app configuration mappings with EventCatalog entity annotations.
6
+ keywords:
7
+ - backstage
8
+ - migration
9
+ - annotations
10
+ ---
11
+
12
+ Plugin versions before 1.0 mapped Backstage names to EventCatalog IDs in `app-config.yaml`:
13
+
14
+ ```yaml title="app-config.yaml"
15
+ eventcatalog:
16
+ URL: https://demo.eventcatalog.dev
17
+ services:
18
+ - backstage-name: order-service
19
+ eventcatalog-id: order-service
20
+ eventcatalog-version: 1.0.0
21
+ ```
22
+
23
+ Move each resource mapping to the matching Backstage entity:
24
+
25
+ ```yaml title="catalog-info.yaml"
26
+ apiVersion: backstage.io/v1alpha1
27
+ kind: Component
28
+ metadata:
29
+ name: order-service
30
+ annotations:
31
+ eventcatalog.dev/id: order-service
32
+ eventcatalog.dev/version: 1.0.0
33
+ eventcatalog.dev/collection: services
34
+ spec:
35
+ type: service
36
+ lifecycle: production
37
+ owner: team-orders
38
+ ```
39
+
40
+ Keep only the EventCatalog base URL in `app-config.yaml`:
41
+
42
+ ```yaml title="app-config.yaml"
43
+ eventcatalog:
44
+ URL: https://demo.eventcatalog.dev
45
+ ```
46
+
47
+ Re-ingest the entity in Backstage, then open an EventCatalog tab or card and verify that it resolves the expected resource. Repeat for every legacy `services` and `apis` mapping.
48
+
49
+ See the [configuration reference](/docs/plugins/backstage/configuration) for annotation defaults and supported collections.
@@ -0,0 +1,85 @@
1
+ ---
2
+ sidebar_position: 7
3
+ sidebar_label: Configuration reference
4
+ title: Backstage plugin configuration reference
5
+ description: Reference for the EventCatalog base URL and Backstage entity annotations.
6
+ keywords:
7
+ - backstage
8
+ - app-config
9
+ - annotations
10
+ ---
11
+
12
+ ## Backstage app configuration
13
+
14
+ Configure one EventCatalog base URL in Backstage:
15
+
16
+ ```yaml title="app-config.yaml"
17
+ eventcatalog:
18
+ URL: https://demo.eventcatalog.dev
19
+ ```
20
+
21
+ | Field | Type | Required | Description |
22
+ | --- | --- | --- | --- |
23
+ | `eventcatalog.URL` | string | Yes | Base URL of the EventCatalog instance. The browser displaying Backstage must be able to reach it. |
24
+
25
+ Configure the EventCatalog origin, without an EventCatalog page path such as `/docs`, `/discover`, or `/visualiser`.
26
+
27
+ ## Entity annotations
28
+
29
+ Add these annotations to a Backstage catalog entity:
30
+
31
+ ```yaml
32
+ metadata:
33
+ annotations:
34
+ eventcatalog.dev/id: order-service
35
+ eventcatalog.dev/version: 1.0.0
36
+ eventcatalog.dev/collection: services
37
+ ```
38
+
39
+ | Annotation | Required | Default | Description |
40
+ | --- | --- | --- | --- |
41
+ | `eventcatalog.dev/id` | Yes for resource views | None | EventCatalog resource ID. |
42
+ | `eventcatalog.dev/version` | No | Latest resource page where supported | EventCatalog resource version. Entity maps, specific system context maps, and flows should provide a version. |
43
+ | `eventcatalog.dev/collection` | No | Inferred for Backstage services, APIs, and domains | EventCatalog collection containing the resource. |
44
+
45
+ Supported collections include:
46
+
47
+ - `agents`
48
+ - `commands`
49
+ - `containers`
50
+ - `data-products`
51
+ - `domains`
52
+ - `entities`
53
+ - `events`
54
+ - `flows`
55
+ - `queries`
56
+ - `services`
57
+ - `systems`
58
+ - `teams`
59
+
60
+ For a Backstage `Component` with `spec.type: service`, and for a Backstage `API`, the inferred collection is `services`. For a Backstage `Domain`, it is `domains`. Other entity kinds should set `eventcatalog.dev/collection` explicitly.
61
+
62
+ ## Prop overrides
63
+
64
+ Component props override annotations. For example, this always displays the `ordering` domain even when the current Backstage entity maps to another resource:
65
+
66
+ ```tsx
67
+ <EventCatalogDocumentationEntityPage
68
+ page="entity-map"
69
+ id="ordering"
70
+ version="1.0.0"
71
+ collection="domains"
72
+ />
73
+ ```
74
+
75
+ `type` is an alias for `collection` and accepts singular or plural values. Known singular resource types are converted to their plural collection, so `type="service"` resolves to `services`.
76
+
77
+ ## EventCatalog license configuration
78
+
79
+ For commercial use, set the Scale license key in the EventCatalog deployment rather than the Backstage app:
80
+
81
+ ```bash title=".env"
82
+ EVENTCATALOG_SCALE_LICENSE_KEY=your-scale-license-key
83
+ ```
84
+
85
+ Existing Backstage-specific keys can continue to use `EVENTCATALOG_LICENSE_KEY_BACKSTAGE`, but new deployments should use `EVENTCATALOG_SCALE_LICENSE_KEY`. See [Getting a license key for integrations](/docs/development/license-keys/integrations).
@@ -0,0 +1,129 @@
1
+ ---
2
+ sidebar_position: 8
3
+ sidebar_label: Component reference
4
+ title: Backstage plugin component reference
5
+ description: Reference for all EventCatalog Backstage page and card components and their props.
6
+ keywords:
7
+ - backstage
8
+ - react components
9
+ - props
10
+ ---
11
+
12
+ Import components from `@eventcatalog/backstage-plugin-eventcatalog`.
13
+
14
+ ## Full-page components
15
+
16
+ Use these components as children of `EntityLayout.Route`.
17
+
18
+ ### `EventCatalogDocumentationEntityPage`
19
+
20
+ The general-purpose page component.
21
+
22
+ ```tsx
23
+ <EventCatalogDocumentationEntityPage page="docs" />
24
+ ```
25
+
26
+ Supported `page` values:
27
+
28
+ | Value | Embedded view | Resource selection |
29
+ | --- | --- | --- |
30
+ | `docs` | Resource documentation | Current mapping or `id`, `version`, and `collection` props |
31
+ | `visualiser` | Resource visualizer | Current mapping or override props |
32
+ | `discover` | Discovery table for the mapped collection | Current mapping or override props |
33
+ | `entity-map` | Resource entity map | Current mapping or override props; provide a version |
34
+ | `schema-explorer` | Catalog schema explorer | Global catalog view, rendered from a mapped entity page |
35
+ | `architecture-graph` | Catalog Architecture Graph | Prefer `EventCatalogArchitectureGraphEntityPage` |
36
+ | `system-context-map` | System Context Map | Prefer `EventCatalogSystemContextMapEntityPage` |
37
+ | `flow` | Flow visualizer | Prefer `EventCatalogFlowEntityPage` |
38
+
39
+ ### `EventCatalogArchitectureGraphEntityPage`
40
+
41
+ Displays `/visualiser/graph` and focuses the graph on the selected resource.
42
+
43
+ ```tsx
44
+ <EventCatalogArchitectureGraphEntityPage
45
+ type="service"
46
+ depth={2}
47
+ />
48
+ ```
49
+
50
+ The graph accepts `depth={1 | 2 | 3}` and defaults to `2`. The Architecture Graph currently uses the latest version of each resource, so `version` does not change its graph data.
51
+
52
+ ### `EventCatalogSystemContextMapEntityPage`
53
+
54
+ Displays the catalog-wide System Context Map when no system is selected:
55
+
56
+ ```tsx
57
+ <EventCatalogSystemContextMapEntityPage />
58
+ ```
59
+
60
+ Pass `system` and `version` to display one system's context:
61
+
62
+ ```tsx
63
+ <EventCatalogSystemContextMapEntityPage
64
+ system="order-management-system"
65
+ version="1.0.0"
66
+ />
67
+ ```
68
+
69
+ `id` is accepted as an alias for `system`. A mapped Backstage `System` entity can supply both values through annotations.
70
+
71
+ ### `EventCatalogFlowEntityPage`
72
+
73
+ Displays a flow visualizer. A flow ID and version are required.
74
+
75
+ ```tsx
76
+ <EventCatalogFlowEntityPage
77
+ flow="checkout-saga"
78
+ version="1.0.0"
79
+ />
80
+ ```
81
+
82
+ `id` is accepted as an alias for `flow`.
83
+
84
+ ## Card components
85
+
86
+ Card components render the same embeds and fill the dimensions of their parent container.
87
+
88
+ | Component | View | Selection props |
89
+ | --- | --- | --- |
90
+ | `EventCatalogEntityVisualiserCard` | Resource visualizer | Current entity mapping |
91
+ | `EventCatalogEntityMessageCard` | Discovery table | Current entity mapping |
92
+ | `EventCatalogEntityEntityMapCard` | Entity map | Current mapping or `id`, `version`, and `collection` |
93
+ | `EventCatalogEntitySchemaExplorerCard` | Schema explorer | Global view |
94
+ | `EventCatalogEntityArchitectureGraphCard` | Architecture Graph | Current mapping or `id`, `type`/`collection`, and `depth` |
95
+ | `EventCatalogEntitySystemContextMapCard` | System Context Map | Overview, or `system`/`id` and `version` |
96
+ | `EventCatalogEntityFlowCard` | Flow visualizer | `flow`/`id` and `version`, or current entity mapping |
97
+
98
+ Set a concrete height on the parent grid item. See [Control embed theme and size](/docs/plugins/backstage/control-theme-and-size).
99
+
100
+ ## Shared props
101
+
102
+ | Prop | Type | Default | Description |
103
+ | --- | --- | --- | --- |
104
+ | `id` | `string` | Entity annotation | Override the EventCatalog resource ID. Also aliases `system` and `flow` on their dedicated components. |
105
+ | `version` | `string` | Entity annotation | Override the EventCatalog version. |
106
+ | `collection` | `string` | Entity annotation or inferred value | Override the EventCatalog collection. |
107
+ | `type` | `string` | None | Alias for `collection`; singular known types are converted to plural collections. |
108
+ | `theme` | `'light' \| 'dark'` | Saved EventCatalog theme | Force the color theme for this embed. |
109
+
110
+ ## Specialized props
111
+
112
+ | Prop | Component | Type | Default | Description |
113
+ | --- | --- | --- | --- | --- |
114
+ | `page` | `EventCatalogDocumentationEntityPage` | `EventCatalogPage` | `docs` | Select the embedded EventCatalog view. |
115
+ | `depth` | Architecture Graph components | `1 \| 2 \| 3` | `2` | Number of relationship hops around the focused resource. |
116
+ | `system` | System Context Map components | `string` | None | EventCatalog system ID. Omit for the overview. |
117
+ | `flow` | Flow components | `string` | Entity annotation | EventCatalog flow ID. |
118
+
119
+ ## Exported types
120
+
121
+ The package exports these public types:
122
+
123
+ - `EventCatalogArchitectureGraphDepth`
124
+ - `EventCatalogArchitectureGraphEntityPageProps`
125
+ - `EventCatalogDocumentationEntityPageProps`
126
+ - `EventCatalogEmbedTheme`
127
+ - `EventCatalogEmbedThemeProps`
128
+ - `EventCatalogFlowEntityPageProps`
129
+ - `EventCatalogSystemContextMapEntityPageProps`