@eventcatalog/core 4.10.13 → 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 (160) 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-SSSN5FXC.js → chunk-HERAHLM2.js} +1 -1
  6. package/dist/{chunk-IIECZFXN.js → chunk-LITOQH56.js} +1 -1
  7. package/dist/{chunk-34RMFKFB.js → chunk-LUW6RDA7.js} +1 -1
  8. package/dist/{chunk-JHUICVBT.js → chunk-ONDFEA5R.js} +1 -1
  9. package/dist/{chunk-PADMH2RJ.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/SchemaExplorer/AvroSchemaViewer.tsx +21 -19
  129. package/eventcatalog/src/components/SchemaExplorer/JSONSchemaViewer.tsx +79 -77
  130. package/eventcatalog/src/components/SchemaExplorer/ProtobufSchemaViewer.test.tsx +91 -0
  131. package/eventcatalog/src/components/SchemaExplorer/ProtobufSchemaViewer.tsx +115 -33
  132. package/eventcatalog/src/components/SchemaExplorer/SchemaViewerHover.test.tsx +33 -0
  133. package/eventcatalog/src/components/SchemaExplorer/protobuf-validation.test.ts +84 -0
  134. package/eventcatalog/src/components/SchemaExplorer/protobuf-validation.ts +149 -0
  135. package/eventcatalog/src/utils/protobuf-schema.ts +211 -16
  136. package/package.json +3 -3
  137. package/dist/docs/cli/channels.md +0 -180
  138. package/dist/docs/cli/commands.md +0 -183
  139. package/dist/docs/cli/custom-docs.md +0 -78
  140. package/dist/docs/cli/data-products.md +0 -177
  141. package/dist/docs/cli/data-stores.md +0 -166
  142. package/dist/docs/cli/diagrams.md +0 -147
  143. package/dist/docs/cli/domains.md +0 -280
  144. package/dist/docs/cli/entities.md +0 -138
  145. package/dist/docs/cli/events.md +0 -186
  146. package/dist/docs/cli/export.md +0 -27
  147. package/dist/docs/cli/governance.md +0 -24
  148. package/dist/docs/cli/messages.md +0 -69
  149. package/dist/docs/cli/queries.md +0 -183
  150. package/dist/docs/cli/services.md +0 -266
  151. package/dist/docs/cli/snapshots.md +0 -44
  152. package/dist/docs/cli/teams.md +0 -75
  153. package/dist/docs/cli/users.md +0 -75
  154. package/dist/docs/cli/utilities.md +0 -43
  155. package/dist/docs/development/developer-tools/eventcatalog-linter.md +0 -732
  156. package/dist/docs/plugins/backstage/00-intro.md +0 -67
  157. package/dist/docs/plugins/backstage/01-installation.md +0 -242
  158. package/dist/docs/plugins/backstage/02-api.md +0 -51
  159. package/dist/docs/plugins/backstage/03-examples.md +0 -12
  160. package/dist/docs/plugins/eventcatalog-federation/_category_.json +0 -11
@@ -0,0 +1,12 @@
1
+ {
2
+ "label": "Reference",
3
+ "position": 4,
4
+ "collapsible": true,
5
+ "collapsed": true,
6
+ "link": {
7
+ "type": "generated-index",
8
+ "slug": "development/developer-tools/eventcatalog-linter/reference",
9
+ "title": "Linter reference",
10
+ "description": "Lookup information for the CLI, the configuration file, every rule, version formats, and the files the linter scans."
11
+ }
12
+ }
@@ -0,0 +1,78 @@
1
+ ---
2
+ sidebar_position: 97
3
+ keywords:
4
+ - EventCatalog architecture graph
5
+ - Force-directed graph
6
+ - Architecture visualizer
7
+ sidebar_label: Architecture Graph
8
+ title: Architecture graph
9
+ description: Explore your whole catalog as one force-directed graph.
10
+ ---
11
+
12
+ import AddedIn from '@site/src/components/MDX/AddedIn';
13
+
14
+ <AddedIn version="4.5.0" />
15
+
16
+ The architecture graph is a force-directed view of every resource in your catalog and the relationships between them. Unlike the [system context map](/docs/development/guides/systems/system-context-maps), which needs systems to exist, the architecture graph works for any catalog.
17
+
18
+ Use this view when you want to answer questions like:
19
+
20
+ - How does everything in the catalog connect, at a glance?
21
+ - What does a domain, system, or team's footprint look like across the architecture?
22
+ - How do messages flow between services and agents?
23
+
24
+ ![Architecture graph with the Domains lens, showing every domain in the catalog and the resources grouped inside it](./img/architecture-graph-domain-view.png)
25
+
26
+ ## Turn on the graph
27
+
28
+ The architecture graph is opt-in. Enable it with `visualiser.architectureGraph.enabled` in your `eventcatalog.config.js` file.
29
+
30
+ ```js title="eventcatalog.config.js"
31
+ module.exports = {
32
+ visualiser: {
33
+ architectureGraph: {
34
+ enabled: true,
35
+ },
36
+ },
37
+ };
38
+ ```
39
+
40
+ Once enabled, an **Architecture Graph** link appears in the **Top level diagrams** navigation group, and the graph is available at:
41
+
42
+ ```txt
43
+ /visualiser/graph
44
+ ```
45
+
46
+ :::info Opt-in while in beta
47
+ Building a graph of the whole catalog is unproven on very large catalogs, so it stays off until you turn it on.
48
+ :::
49
+
50
+ ## Change how you look at it
51
+
52
+ The **Lens** picker switches the graph between focused views: domains, systems, services, teams, and message flow, alongside the default view of every resource and relationship.
53
+
54
+ Each lens promotes a different resource to the centre of the picture. The domain lens above clusters everything by domain, while the service lens puts each service at the middle of the messages it sends and receives.
55
+
56
+ ![Architecture graph with the Services lens, showing each service surrounded by the messages it publishes and subscribes to](./img/architecture-graph-service-view.png)
57
+
58
+ The **Detail** slider next to the lens controls how far out from those hubs the graph reaches. Keep it low for a readable overview, or raise it to `All` to pull in everything the lens can show.
59
+
60
+ ## Focus on one part of the architecture
61
+
62
+ Search for a resource to focus its neighbourhood, or click any node to do the same. Double-click a node to open its documentation.
63
+
64
+ ![Architecture graph focused on the Review API service, showing its commands, events, queries, and data stores](./img/architecture-graph-focus.png)
65
+
66
+ Focusing hides the rest of the catalog so you can read one resource's immediate connections. The **Depth** slider on the focus chip widens the neighbourhood a step at a time, and the **You are here** breadcrumb shows where the focused resource sits in the hierarchy. Clear the focus with the `×` on the chip.
67
+
68
+ ## Share a view
69
+
70
+ Your lens, focus, and filters are written to the URL as you interact with the graph, so you can copy the link and send teammates directly to the same view.
71
+
72
+ ## Embed the graph in your documentation
73
+
74
+ Use the [`<ArchitectureGraph/>` component](/docs/development/components/components/architecture-graph) to embed the graph into any resource or custom documentation page, focused on that page's resource:
75
+
76
+ ```jsx /domains/Orders/index.mdx
77
+ <ArchitectureGraph />
78
+ ```
@@ -40,7 +40,7 @@ To add a new domain create a new folder within the `/domains` folder with an `in
40
40
  - `/domains/{Domain Name}/index.mdx`
41
41
  - (example `/domains/Orders/index.mdx`)
42
42
 
43
- The `index.mdx` contents are split into two sections, [**frontmatter**](/docs/development/guides/domains/reference) and the [**markdown content**](#adding-content).
43
+ The `index.mdx` contents are split into two sections, [**frontmatter**](/docs/development/guides/domains/reference) and the [**markdown content**](#adding-content-to-your-domain).
44
44
 
45
45
  _Here is an example of what a domain markdown file may look like._
46
46
 
@@ -23,6 +23,8 @@ The contents of the file should be a list of terms used in your domain.
23
23
 
24
24
  Each term should have a name, summary, description and icon. The icon is optional and can be used to visually represent the term. You can find a list of icons [here](https://lucide.dev/). Use the PascalCase React component name for Lucide icons, for example `file-text` should be configured as `FileText`.
25
25
 
26
+ You can optionally set [`editUrl`](#editUrl) on the dictionary file or on an individual term.
27
+
26
28
  ```md title="/domains/Orders/ubiquitous-language.md"
27
29
  ---
28
30
  dictionary:
@@ -58,6 +60,33 @@ dictionary:
58
60
 
59
61
  ```
60
62
 
63
+ ### `editUrl` {#editUrl}
64
+
65
+ <AddedIn version="4.8.2" />
66
+
67
+ Override the default edit URL for a ubiquitous language term page. This is used to navigate the user to the edit page, for example GitHub or GitLab.
68
+
69
+ Set `editUrl` on the dictionary file, on an individual term, or both. This is useful when dictionary content is generated from an external source (for example a custom generator plugin) so **Edit this page** on `/docs/domains/{id}/language/{termId}` points at the real source file, not the generated MDX.
70
+
71
+ ```md title="/domains/Orders/ubiquitous-language.md"
72
+ ---
73
+ editUrl: https://github.com/your-org/glossary/edit/main/domains/Orders/ubiquitous-language.md
74
+ dictionary:
75
+ - id: Purchase Order
76
+ name: Purchase Order
77
+ summary: "A mystical document issued by a buyer to a seller."
78
+ editUrl: https://github.com/your-org/glossary/edit/main/terms/purchase-order.md
79
+ ---
80
+ ```
81
+
82
+ EventCatalog resolves the link in this order:
83
+
84
+ 1. Per-term `editUrl` on a dictionary item
85
+ 2. File-level `editUrl` on `ubiquitous-language.mdx`
86
+ 3. Fallback to the site-wide [`editUrl`](/docs/api/config#editUrl) in `eventcatalog.config.js` plus the dictionary file path
87
+
88
+ Per-term `editUrl` takes precedence over the file-level value.
89
+
61
90
  ### Viewing the ubiquitous language in EventCatalog
62
91
 
63
92
  When you add a ubiquitous language dictionary to your domain, it will automatically appear in the sidebar of the domain.
@@ -26,11 +26,19 @@ Subdomains can be created inside a domain:
26
26
  /domains/{Domain Name}/subdomains/{Subdomain Name}/index.mdx
27
27
  ```
28
28
 
29
+ Ubiquitous language for a domain is documented in a sidecar file:
30
+
31
+ ```txt
32
+ /domains/{Domain Name}/ubiquitous-language.mdx
33
+ ```
34
+
29
35
  ## Routes
30
36
 
31
37
  | Route | Description |
32
38
  |-------|-------------|
33
39
  | `/docs/domains/{domain-id}/{version}` | Domain documentation page. |
40
+ | `/docs/domains/{domain-id}/language` | Ubiquitous language dictionary. |
41
+ | `/docs/domains/{domain-id}/language/{term-id}` | Ubiquitous language term page. |
34
42
  | `/visualiser/domains/{domain-id}/{version}` | Domain resource diagram. |
35
43
  | `/visualiser/domains/{domain-id}/{version}/systems-context` | System context map for systems inside a domain. |
36
44
  | `/visualiser/domains/{domain-id}/{version}/entity-map` | Entity map for entities inside a domain. |
@@ -488,6 +496,8 @@ editUrl: https://github.com/event-catalog/eventcatalog/edit/main/domains/Orders/
488
496
  ---
489
497
  ```
490
498
 
499
+ Ubiquitous language dictionaries also support `editUrl` on the file and on each term. See [ubiquitous language `editUrl`](/docs/development/guides/domains/ownership-and-language/adding-ubiquitous-language#editUrl).
500
+
491
501
  ### `attachments` {#attachments}
492
502
 
493
503
  <AddedIn version="2.57.2" />
@@ -184,7 +184,7 @@ id: inventory.{env}.events
184
184
  # rest of channel markdown...
185
185
 
186
186
  # You can define one or many protocols
187
- # list of protocols: https://eventcatalog.dev/docs/development/guides/resources/messages/message-channels/introduction#protocols
187
+ # list of protocols: https://eventcatalog.dev/docs/development/guides/resources/messages/message-channels/introduction#supported-channel-protocols
188
188
  protocols:
189
189
  - http
190
190
  - kafka
@@ -194,7 +194,7 @@ protocols:
194
194
 
195
195
  These protocols will be displayed on your channel page and the visualizer.
196
196
 
197
- You can get [the list of protocols here](/docs/development/guides/resources/messages/message-channels/introduction#protocols).
197
+ You can get [the list of protocols here](/docs/development/guides/resources/messages/message-channels/introduction#supported-channel-protocols).
198
198
 
199
199
  ### Setting a delivery guarantee
200
200
 
@@ -184,6 +184,14 @@ routes:
184
184
  ---
185
185
  ```
186
186
 
187
+ Finally, we create the `payment.queue`.
188
+
189
+ ```md title="/channels/payment.queue/index.mdx (example)"
190
+ ---
191
+ id: payment.queue
192
+ ---
193
+ ```
194
+
187
195
  EventCatalog will understand the channel routes and relationships and create a visual representation of the channels and their relationships.
188
196
 
189
197
  ![Example](../../../img/channels/channel-chains.png)
@@ -17,8 +17,8 @@ Services in EventCatalog allow you to attach one or more OpenAPI specifications
17
17
 
18
18
  You have two options for adding OpenAPI specifications to your service:
19
19
 
20
- - [Adding OpenAPI files to EventCatalog](#adding-openapi-specifications-to-eventcatalog)
21
- - [Reference the OpenAPI file from a remote URL](#reference-the-openapi-file-from-a-remote-url)
20
+ - [Adding OpenAPI files to EventCatalog](#adding-openapi-files-to-eventcatalog)
21
+ - [Reference the OpenAPI file from a remote URL](#remote-openapi-files)
22
22
 
23
23
  :::tip Why not automate your EventCatalog from your OpenAPI files?
24
24
  Did you know you can automate your documentation, visualizations and owners using your OpenAPI Files?
@@ -17,8 +17,8 @@ Services in EventCatalog allow you to attach one or more AsyncAPI specifications
17
17
 
18
18
  You have two options for adding AsyncAPI specifications to your service:
19
19
 
20
- - [Adding AsyncAPI files to EventCatalog](#adding-asyncapi-specifications-to-eventcatalog)
21
- - [Reference the AsyncAPI file from a remote URL](#reference-the-asyncapi-file-from-a-remote-url)
20
+ - [Adding AsyncAPI files to EventCatalog](#adding-asyncapi-files-to-eventcatalog)
21
+ - [Reference the AsyncAPI file from a remote URL](#remote-asyncapi-files)
22
22
 
23
23
  :::tip Why not automate your EventCatalog from your AsyncAPI files?
24
24
  Did you know you can automate your documentation, visualizations and owners using your AsyncAPI Files?
@@ -66,7 +66,7 @@ Then you need to reference the file in the service frontmatter.
66
66
  ---
67
67
  ```
68
68
 
69
- ### Remove AsyncAPI file
69
+ ### Remote AsyncAPI files
70
70
 
71
71
  This can be useful if you want to keep your AsyncAPI files in a remote repository and render them in EventCatalog.
72
72
 
@@ -65,3 +65,5 @@ The goal of systems is to let users move through your architecture at the right
65
65
  - Drill into the resources inside that system to inspect APIs, messages, services, data stores, and flows.
66
66
 
67
67
  This gives teams a path from architecture overview to implementation detail without forcing every user to start at the lowest level.
68
+
69
+ Want every resource in one graph instead, including catalogs without systems? See the [architecture graph](/docs/development/guides/architecture-graph).
@@ -9,7 +9,7 @@ title: How license validation works
9
9
  description: How EventCatalog validates your license keys online and offline.
10
10
  ---
11
11
 
12
- Once you have a license key from [EventCatalog Cloud](https://eventcatalog.cloud) (see [Overview](/docs/development/license-keys/overview) if you don't yet), EventCatalog validates it every time you build or serve your catalog. There are two modes: online and offline.
12
+ EventCatalog validates commercial features using online license keys or offline license files. Scale and integration keys use online validation by default. Enterprise features, including Federation, require an offline license file.
13
13
 
14
14
  ## Online validation (default)
15
15
 
@@ -21,13 +21,17 @@ This is the recommended mode — it requires no extra setup and your keys stay i
21
21
 
22
22
  If you're behind a firewall or otherwise can't reach the EventCatalog API at build time, you can validate your keys offline.
23
23
 
24
+ EventCatalog Federation always uses this offline validation flow and requires an Enterprise license.
25
+
24
26
  To set up offline validation:
25
27
 
26
- 1. Email us at `hello@eventcatalog.dev` to request an offline license file (`license.jwt`).
28
+ 1. Email [hello@eventcatalog.dev](mailto:hello@eventcatalog.dev?subject=EventCatalog%20Federation%20Trial) to request an offline license file (`license.jwt`). Tell us if you want to try Federation and we will send you an Enterprise trial key.
27
29
  2. Place the `license.jwt` file in the root of your catalog directory.
28
30
  3. EventCatalog will validate against the local file instead of calling our API.
29
31
 
30
- Offline license files expire one year from purchase. You'll need to request a new file each year.
32
+ You can commit `license.jwt` with your catalog so it is available locally and in CI/CD. If your organization prefers not to commit it, write the file during the CI/CD job instead. Set `EC_LICENSE` to the file path only when it is stored outside the catalog root.
33
+
34
+ Offline license files include an expiry date. Email `hello@eventcatalog.dev` when you need a trial, renewal, or replacement file.
31
35
 
32
36
  ## Managing your keys
33
37
 
@@ -15,14 +15,18 @@ If you are using the community edition, you don't need a license key and can ski
15
15
 
16
16
  ## Where license keys come from
17
17
 
18
- All license keys are managed in [EventCatalog Cloud](https://eventcatalog.cloud). You sign up for an account, activate the plan or integration you want to use, and your license keys appear on your dashboard.
18
+ Scale and integration license keys are managed in [EventCatalog Cloud](https://eventcatalog.cloud). You sign up for an account, activate the plan or integration you want to use, and your license keys appear on your dashboard.
19
19
 
20
20
  You can then add those keys to your `.env` file (or set them as environment variables) and EventCatalog will unlock the corresponding features.
21
21
 
22
+ Enterprise features, including [EventCatalog Federation](/federation), use an offline license file. Email [hello@eventcatalog.dev](mailto:hello@eventcatalog.dev?subject=EventCatalog%20Enterprise%20Trial) to request an offline Enterprise trial key.
23
+
22
24
  ## Free trials
23
25
 
24
- :::tip 30-day free trials
25
- Every plan and every integration comes with a **30-day free trial**. No payment is required to start one — just sign in to [EventCatalog Cloud](https://eventcatalog.cloud) and activate what you want to try.
26
+ :::tip Free trials
27
+ Scale and every integration come with a **30-day free trial**. No payment is required to start one. Sign in to [EventCatalog Cloud](https://eventcatalog.cloud) and activate what you want to try.
28
+
29
+ Want to try Enterprise or Federation? Email us at `hello@eventcatalog.dev` and we will send you an offline trial key.
26
30
 
27
31
  Need longer to evaluate? Email us at `hello@eventcatalog.dev` and we'll happily extend your trial.
28
32
  :::
@@ -82,8 +82,8 @@ EventCatalog v2 has been rewritten from the ground up. The easiest way to migrat
82
82
  1. [Create a new Catalog](/docs/development/getting-started/installation)
83
83
  1. Delete the `domains`, `services`, `commands` and `events` folder.
84
84
  1. Copy your `eventcatalog.config.js` and `domains`, `services`, `events` folders into the new catalog.
85
- 1. Add `ids` to all your resources ([read more](/docs/starting-a-new-project/getting-started#resources-now-require-ids))
86
- 1. If your resource are in a nested structure [you need to flatten these out](/docs/starting-a-new-project/getting-started#resources-require-a-flat-structure).
85
+ 1. Add `ids` to all your resources ([read more](/docs/development/upgrading/v2#resources-now-require-ids))
86
+ 1. If your resource are in a nested structure [you need to flatten these out](/docs/development/upgrading/v2#resources-require-a-flat-structure).
87
87
 
88
88
  :::tip Having problems?
89
89
  If you are still having issues upgrading your catalog, [then please raise an issue on our GitHub repo.](https://github.com/event-catalog/eventcatalog/issues).
@@ -136,7 +136,7 @@ Components from v1 has not yet been implemented.
136
136
 
137
137
  ## Any other issues?
138
138
 
139
- If you have any issues or questions please [feel free to reach us on Discord](https://discord.com/invite/3rjaZMmrAm).
139
+ If you have any issues or questions please [feel free to reach us on Discord](https://eventcatalog.dev/discord).
140
140
 
141
141
  </details>
142
142
 
@@ -28,8 +28,8 @@ EventCatalog v2 has been rewritten from the ground up. The easiest way to migrat
28
28
  1. [Create a new Catalog](/docs/development/getting-started/installation)
29
29
  1. Delete the `domains`, `services`, `commands` and `events` folder.
30
30
  1. Copy your `eventcatalog.config.js` and `domains`, `services`, `events` folders into the new catalog.
31
- 1. Add `ids` to all your resources ([read more](/docs/starting-a-new-project/getting-started#resources-now-require-ids))
32
- 1. If your resource are in a nested structure [you need to flatten these out](/docs/starting-a-new-project/getting-started#resources-require-a-flat-structure).
31
+ 1. Add `ids` to all your resources ([read more](/docs/development/upgrading/v2#resources-now-require-ids))
32
+ 1. If your resource are in a nested structure [you need to flatten these out](/docs/development/upgrading/v2#resources-require-a-flat-structure).
33
33
 
34
34
  :::tip Having problems?
35
35
  If you are still having issues upgrading your catalog, [then please raise an issue on our GitHub repo.](https://github.com/event-catalog/eventcatalog/issues).
@@ -65,4 +65,4 @@ The build output has changed from v1 from being `out` directory to `dist` direct
65
65
 
66
66
  ## Any other issues?
67
67
 
68
- If you have any issues or questions please [feel free to reach us on Discord](https://discord.com/invite/3rjaZMmrAm).
68
+ If you have any issues or questions please [feel free to reach us on Discord](https://eventcatalog.dev/discord).
@@ -0,0 +1,158 @@
1
+ ---
2
+ sidebar_position: 1
3
+ sidebar_label: Overview
4
+ title: EventCatalog Federation
5
+ description: Combine independently owned EventCatalogs into one validated organization-wide catalog.
6
+ ---
7
+
8
+ import EventCatalogEnterprise from '@site/src/components/MDX/EventCatalogEnterprise';
9
+
10
+ <EventCatalogEnterprise />
11
+
12
+ EventCatalog Federation is a solution for distributed documentation across your organization. Teams document and own their services, domains, messages, ADRs, specifications, schemas, diagrams, and everything else EventCatalog supports in their own catalogs, while Federation combines them into one organization-wide view.
13
+
14
+ Each team keeps its documentation, ownership, and review workflow in its own EventCatalog project. A central catalog selects those catalogs, validates them together, and materializes their resources as one connected catalog.
15
+
16
+ <div className="federation-mermaid">
17
+
18
+ ```mermaid
19
+ flowchart LR
20
+ subgraph TEAMS["Team-owned catalogs"]
21
+ direction TB
22
+ PAY["`**Payments team**
23
+ Services · APIs · events
24
+ ADRs · docs`"]
25
+ ORD["`**Orders team**
26
+ Services · commands · flows
27
+ ADRs · docs`"]
28
+ FUL["`**Fulfillment team**
29
+ Services · events · diagrams
30
+ ADRs · docs`"]
31
+ end
32
+
33
+ PAY --> FED["`**eventcatalog federate**
34
+ Merge · resolve · validate`"]
35
+ ORD --> FED
36
+ FUL --> FED
37
+ FED --> ORG["`**Organization catalog**
38
+ One connected view`"]
39
+
40
+ classDef team fill:#eef2ff,stroke:#6366f1,color:#1e1b4b
41
+ classDef federation fill:#f5f3ff,stroke:#8b5cf6,color:#2e1065
42
+ classDef central fill:#ecfdf5,stroke:#10b981,color:#064e3b
43
+ class PAY,ORD,FUL team
44
+ class FED federation
45
+ class ORG central
46
+ style TEAMS fill:#f8fafc,stroke:#cbd5e1,stroke-dasharray:5 5,color:#475569
47
+ ```
48
+
49
+ </div>
50
+
51
+ Federation is useful when one catalog repository or one documentation team would become a bottleneck. Each team can document its part of the architecture close to the people and code that own it, while the organization still gets one place to discover resources and follow relationships.
52
+
53
+ ## What Federation gives you
54
+
55
+ Use Federation to:
56
+
57
+ - Combine resources from multiple EventCatalog projects
58
+ - Resolve relationships between catalogs
59
+ - Validate organization-wide ownership and resource types
60
+ - Include schemas, specifications, sidecar documentation, public assets, and custom components
61
+ - Test federation against local catalogs before using remote sources
62
+ - Fetch public or private catalogs from GitHub
63
+ - Treat selected diagnostics as warnings, errors, or disabled rules
64
+ - Keep the previous generated output when an update fails
65
+
66
+ ## The central catalog is still an EventCatalog
67
+
68
+ The central catalog can own organization-wide documentation of its own, such as cross-domain flows, shared architecture decisions, or enterprise domains. Its local resources participate in the same ownership validation as federated resources.
69
+
70
+ <div className="federation-mermaid">
71
+
72
+ ```mermaid
73
+ flowchart LR
74
+ subgraph TEAMS["Team-owned catalogs"]
75
+ direction TB
76
+ ORD["`**Orders team**
77
+ Services · commands · docs`"]
78
+ PAY["`**Payments team**
79
+ Services · APIs · events`"]
80
+ FUL["`**Fulfillment team**
81
+ Services · events · diagrams`"]
82
+ end
83
+
84
+ FED["`**eventcatalog federate**
85
+ Hydrate · resolve · validate`"]
86
+
87
+ subgraph CENTRAL["Central catalog"]
88
+ direction TB
89
+ LOCAL["`**Central-owned documentation**
90
+ Organization flows · ADRs · domains`"]
91
+ REMOTE["`**Federated resources**
92
+ Generated into federated/`"]
93
+ VIEW["`**Organization catalog**
94
+ One connected view`"]
95
+
96
+ LOCAL --> VIEW
97
+ REMOTE --> VIEW
98
+ end
99
+
100
+ ORD --> FED
101
+ PAY --> FED
102
+ FUL --> FED
103
+ FED --> REMOTE
104
+
105
+ classDef team fill:#eef2ff,stroke:#6366f1,color:#1e1b4b
106
+ classDef federation fill:#f5f3ff,stroke:#8b5cf6,color:#2e1065
107
+ classDef central fill:#ecfdf5,stroke:#10b981,color:#064e3b
108
+ class ORD,PAY,FUL team
109
+ class FED federation
110
+ class LOCAL,REMOTE central
111
+ class VIEW central
112
+ style TEAMS fill:#f8fafc,stroke:#cbd5e1,stroke-dasharray:5 5,color:#475569
113
+ style CENTRAL fill:#f8fafc,stroke:#cbd5e1,stroke-dasharray:5 5,color:#475569
114
+ ```
115
+
116
+ </div>
117
+
118
+ The generated content is written to `federated/`. The normal EventCatalog development server or build then reads the local and federated resources together.
119
+
120
+ ## Federation is explicit
121
+
122
+ The current workflow has two separate commands:
123
+
124
+ ```bash
125
+ npx eventcatalog federate
126
+ npm run build
127
+ ```
128
+
129
+ `eventcatalog federate` fetches, validates, and materializes the configured sources. `npm run build` renders the resulting catalog. Federation does not run automatically before `dev`, `build`, or `generate`.
130
+
131
+ :::info Enterprise feature
132
+
133
+ EventCatalog Federation requires an EventCatalog Enterprise offline license. To try it, email [hello@eventcatalog.dev](mailto:hello@eventcatalog.dev?subject=EventCatalog%20Federation%20Trial) and we will send you an offline trial key. Save the `license.jwt` file in the root of your central catalog before running Federation.
134
+
135
+ Learn more about [offline license validation](/docs/development/license-keys/license-validation#offline-validation).
136
+
137
+ :::
138
+
139
+ ## Built-in Federation and the Federation generator
140
+
141
+ These docs describe the built-in `eventcatalog federate` workflow. It uses catalog indexes, graph validation, content hashes, and generated federation output.
142
+
143
+ It is different from the older `@eventcatalog/generator-federation` integration, which clones repositories and copies configured directories through the generator pipeline.
144
+
145
+ ## Current release status
146
+
147
+ Federation is being released as an initial working version for feedback. The core composition and validation workflow is ready to use, while operational features such as automatic build integration, source management commands, frozen lockfile installs, and local file watching may evolve from user feedback.
148
+
149
+ Read [MVP status and feedback](/docs/federation/explanation/mvp-status-and-feedback) for the current boundaries.
150
+
151
+ ## Next steps
152
+
153
+ - Follow the [first federation tutorial](/docs/federation/first-federation).
154
+ - Learn [how Federation works](/docs/federation/explanation/how-it-works).
155
+ - [Configure GitHub sources](/docs/federation/how-to/configure-github-sources).
156
+ - [Use local catalogs during development](/docs/federation/how-to/use-local-sources).
157
+ - Look up the complete [configuration reference](/docs/federation/reference/configuration).
158
+ - Review the [diagnostic rule reference](/docs/federation/reference/diagnostic-rules).