@eventcatalog/core 5.0.0-beta.9 → 5.0.1

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 (458) hide show
  1. package/LICENSE +13 -12
  2. package/README.md +5 -5
  3. package/dist/analytics/analytics.cjs +1 -1
  4. package/dist/analytics/analytics.js +2 -2
  5. package/dist/analytics/log-build.cjs +91 -44
  6. package/dist/analytics/log-build.d.cts +2 -2
  7. package/dist/analytics/log-build.d.ts +2 -2
  8. package/dist/analytics/log-build.js +6 -5
  9. package/dist/analytics/studio-usage.cjs +90 -0
  10. package/dist/analytics/studio-usage.d.cts +5 -0
  11. package/dist/analytics/studio-usage.d.ts +5 -0
  12. package/dist/analytics/studio-usage.js +10 -0
  13. package/dist/catalog-runtime.cjs +1 -1
  14. package/dist/{chunk-ZEY2XUJN.js → chunk-46TBJZC3.js} +1 -1
  15. package/dist/{chunk-RFIXKATC.js → chunk-4G7FSRPN.js} +35 -42
  16. package/dist/{chunk-AWOO63ME.js → chunk-AD7CL772.js} +11 -4
  17. package/dist/chunk-CA6WCQ2T.js +54 -0
  18. package/dist/{chunk-GAHKCOQM.js → chunk-DVHJTQWQ.js} +1 -1
  19. package/dist/{chunk-TZVDMWQX.js → chunk-HFR5OPHV.js} +4 -2
  20. package/dist/{chunk-4CFZUHGG.js → chunk-KTXSCPEK.js} +1 -1
  21. package/dist/{chunk-ENAG6UH7.js → chunk-NKNOXQ62.js} +1 -6
  22. package/dist/{chunk-36RYTYT5.js → chunk-PD7KTSYN.js} +1 -1
  23. package/dist/chunk-S5GWAUG5.js +29 -0
  24. package/dist/{chunk-EUNQJO3J.js → chunk-UWAXRTAJ.js} +1 -1
  25. package/dist/{chunk-JQMYHZWI.js → chunk-YPWK5ITM.js} +15 -7
  26. package/dist/constants.cjs +1 -1
  27. package/dist/constants.js +1 -1
  28. package/dist/docs/api/02-config.md +57 -7
  29. package/dist/docs/development/00-why-eventcatalog.md +11 -11
  30. package/dist/docs/development/01-fundamentals.md +20 -13
  31. package/dist/docs/development/01-getting-started/configuration-overview.md +2 -2
  32. package/dist/docs/development/01-getting-started/installation.md +9 -1
  33. package/dist/docs/development/_getting-started.mdx +1 -1
  34. package/dist/docs/development/ask-your-architecture/01-intro.md +5 -5
  35. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/01-what-is-eventcatalog-assistant.md +0 -4
  36. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/02-configuration.md +15 -3
  37. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/03-bring-your-own-tools.md +0 -3
  38. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/_category_.json +1 -1
  39. package/dist/docs/development/ask-your-architecture/02-llms.txt.md +1 -1
  40. package/dist/docs/development/ask-your-architecture/{05-skills/01-introduction.md → 03-install-skills.md} +57 -7
  41. package/dist/docs/development/ask-your-architecture/03-mcp-server/_category_.json +1 -1
  42. package/dist/docs/development/ask-your-architecture/03-mcp-server/getting-started.md +86 -33
  43. package/dist/docs/development/ask-your-architecture/03-mcp-server/introduction.md +14 -4
  44. package/dist/docs/development/ask-your-architecture/03-schemas.txt.md +1 -1
  45. package/dist/docs/development/ask-your-architecture/04-agents/_category_.json +1 -1
  46. package/dist/docs/development/authentication/01-introduction.md +2 -23
  47. package/dist/docs/development/authentication/02-enabling-authentication.md +0 -20
  48. package/dist/docs/development/authentication/07-rbac-middleware.md +0 -2
  49. package/dist/docs/development/authentication/providers/03-setting-up-github.md +0 -2
  50. package/dist/docs/development/authentication/providers/03a-setting-up-google.md +0 -2
  51. package/dist/docs/development/authentication/providers/04-setting-up-azure-ad.md +0 -2
  52. package/dist/docs/development/authentication/providers/05-setting-up-okta.md +0 -3
  53. package/dist/docs/development/authentication/providers/06-setting-up-auth0.md +0 -2
  54. package/dist/docs/development/bring-your-own-documentation/01-introduction.md +0 -4
  55. package/dist/docs/development/bring-your-own-documentation/custom-pages/01-introduction.md +0 -3
  56. package/dist/docs/development/bring-your-own-documentation/custom-pages/02-adding-custom-docs.md +0 -17
  57. package/dist/docs/development/bring-your-own-documentation/custom-pages/03-components.md +0 -4
  58. package/dist/docs/development/bring-your-own-documentation/custom-pages/04-owners.md +0 -2
  59. package/dist/docs/development/bring-your-own-documentation/resource-docs/01-introduction.md +1 -3
  60. package/dist/docs/development/bring-your-own-documentation/resource-docs/02-adding-resource-docs.md +1 -4
  61. package/dist/docs/development/bring-your-own-documentation/resource-docs/03-categories.md +0 -2
  62. package/dist/docs/development/bring-your-own-documentation/resource-docs/04-versioning.md +1 -3
  63. package/dist/docs/development/components/components/11-flow.md +17 -0
  64. package/dist/docs/development/components/components/15-nodegraph.md +43 -10
  65. package/dist/docs/development/components/components/18-remote-schema.md +1 -4
  66. package/dist/docs/development/components/custom-components/07-reference.md +14 -0
  67. package/dist/docs/development/customization/02-themes.md +0 -5
  68. package/dist/docs/development/customization/03-search.md +1 -1
  69. package/dist/docs/development/customization/05-custom-pages-and-api-routes/01-introduction.md +0 -2
  70. package/dist/docs/development/customization/05-custom-pages-and-api-routes/04-reference.md +7 -1
  71. package/dist/docs/development/customization/05-resource-sidebar.md +1 -1
  72. package/dist/docs/development/customization/09-embed-eventcatalog.md +20 -25
  73. package/dist/docs/development/deployment/hosting-options.md +7 -2
  74. package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/05-fix-common-problems.md +16 -0
  75. package/dist/docs/development/developer-tools/eventcatalog-linter/reference/03-rules.md +31 -1
  76. package/dist/docs/development/developer-tools/eventcatalog-linter/reference/05-supported-resources.md +1 -1
  77. package/dist/docs/development/governance/architecture-change-detection/01-introduction.md +0 -10
  78. package/dist/docs/development/governance/architecture-change-detection/06-pipeline-gates.md +0 -4
  79. package/dist/docs/development/guides/97-architecture-graph.md +1 -1
  80. package/dist/docs/development/guides/99-adding-analytics.md +0 -7
  81. package/dist/docs/development/guides/domains/03-model-subdomains.md +2 -2
  82. package/dist/docs/development/guides/domains/04-add-resources-to-domains/01-add-systems-to-domains.md +3 -1
  83. package/dist/docs/development/guides/domains/04-add-resources-to-domains/02-add-services-to-domains.md +5 -1
  84. package/dist/docs/development/guides/domains/04-add-resources-to-domains/03-add-messages-to-domains.md +2 -2
  85. package/dist/docs/development/guides/domains/04-add-resources-to-domains/05-add-entities-to-domains.md +1 -1
  86. package/dist/docs/development/guides/domains/04-add-resources-to-domains/06-domain-resources-page.md +40 -0
  87. package/dist/docs/development/guides/domains/06-visualize-domains/01-domain-diagram.md +89 -0
  88. package/dist/docs/development/guides/domains/06-visualize-domains/_category_.json +1 -2
  89. package/dist/docs/development/guides/domains/09-reference.md +4 -4
  90. package/dist/docs/development/guides/owners/automated-teams-and-users/create-your-own-connector.md +0 -2
  91. package/dist/docs/development/guides/owners/automated-teams-and-users/sync-from-github.md +0 -3
  92. package/dist/docs/development/guides/owners/automated-teams-and-users/sync-from-microsoft-entra.md +0 -2
  93. package/dist/docs/development/guides/resources/adrs/03-linking-resources.md +8 -0
  94. package/dist/docs/development/guides/resources/adrs/06-reference.md +4 -4
  95. package/dist/docs/development/guides/resources/agents/11-reference.md +1 -1
  96. package/dist/docs/development/guides/resources/data/04-reference.md +1 -1
  97. package/dist/docs/development/guides/resources/data-products/07-reference.md +1 -1
  98. package/dist/docs/development/guides/resources/entities/05-entity-maps.md +1 -1
  99. package/dist/docs/development/guides/resources/entities/06-reference.md +2 -2
  100. package/dist/docs/development/guides/resources/flows/01-introduction.md +11 -1
  101. package/dist/docs/development/guides/resources/flows/03-model-flow-steps.md +65 -6
  102. package/dist/docs/development/guides/resources/flows/05-explore-flows.md +112 -0
  103. package/dist/docs/development/guides/resources/flows/06-reference.md +25 -4
  104. package/dist/docs/development/guides/resources/messages/01-what-are-messages.md +19 -0
  105. package/dist/docs/development/guides/resources/messages/04-message-channels/01-introduction.md +16 -0
  106. package/dist/docs/development/guides/resources/messages/04-message-channels/05-reference.md +2 -1
  107. package/dist/docs/development/guides/resources/messages/10-reference.md +6 -3
  108. package/dist/docs/development/guides/resources/schemas/04-explore-schemas/01-schema-explorer.md +2 -2
  109. package/dist/docs/development/guides/resources/schemas/04-explore-schemas/02-fields-explorer.md +0 -9
  110. package/dist/docs/development/guides/resources/schemas/05-schema-api.md +0 -3
  111. package/dist/docs/development/guides/resources/schemas/06-schema-mcp.md +11 -3
  112. package/dist/docs/development/guides/resources/services/04-add-resources-to-services/03-add-entities-to-services.md +1 -1
  113. package/dist/docs/development/guides/resources/services/05-resources-page.md +50 -0
  114. package/dist/docs/development/guides/resources/services/08-reference.md +2 -1
  115. package/dist/docs/development/guides/systems/01-introduction.md +1 -1
  116. package/dist/docs/development/guides/systems/02-create-system.md +2 -2
  117. package/dist/docs/development/guides/systems/03-add-resources-to-systems.md +35 -9
  118. package/dist/docs/development/guides/systems/04-model-relationships-and-actors.md +5 -3
  119. package/dist/docs/development/guides/systems/05-system-context-maps.md +39 -22
  120. package/dist/docs/development/guides/systems/06-reference.md +4 -4
  121. package/dist/docs/development/license/01-license-file.md +151 -0
  122. package/dist/docs/development/license/_category_.json +12 -0
  123. package/dist/docs/development/license-keys/_category_.json +3 -3
  124. package/dist/docs/development/license-keys/integrations.md +7 -37
  125. package/dist/docs/development/license-keys/license-validation.md +4 -0
  126. package/dist/docs/development/license-keys/overview.md +5 -1
  127. package/dist/docs/development/license-keys/plans.md +4 -2
  128. package/dist/docs/development/studio/01-introduction.md +60 -0
  129. package/dist/docs/development/studio/02-create-a-canvas.md +103 -0
  130. package/dist/docs/development/studio/03-set-up-persistent-storage.md +59 -0
  131. package/dist/docs/development/studio/04-collaborate-on-a-canvas.md +78 -0
  132. package/dist/docs/development/studio/05-connect-your-agent.md +102 -0
  133. package/dist/docs/development/studio/06-run-studio-in-production.md +54 -0
  134. package/dist/docs/development/studio/07-reference.md +294 -0
  135. package/dist/docs/development/studio/_category_.json +12 -0
  136. package/dist/docs/development/upgrading/v5.md +345 -0
  137. package/dist/docs/federation/00-overview.md +2 -8
  138. package/dist/docs/federation/01-first-federation.md +6 -18
  139. package/dist/docs/federation/explanation/how-it-works.md +0 -4
  140. package/dist/docs/federation/explanation/lockfile-and-cache.md +0 -4
  141. package/dist/docs/federation/explanation/mvp-status-and-feedback.md +0 -4
  142. package/dist/docs/federation/explanation/ownership-and-references.md +0 -4
  143. package/dist/docs/federation/how-to/configure-github-sources.md +6 -5
  144. package/dist/docs/federation/how-to/configure-validation-rules.md +0 -4
  145. package/dist/docs/federation/how-to/run-in-ci.md +2 -9
  146. package/dist/docs/federation/how-to/share-assets-and-components.md +0 -4
  147. package/dist/docs/federation/how-to/use-local-sources.md +0 -4
  148. package/dist/docs/federation/legacy-federation/00-introduction.md +4 -22
  149. package/dist/docs/federation/legacy-federation/01-installation.md +7 -58
  150. package/dist/docs/federation/legacy-federation/02-plugin-configuration.md +3 -21
  151. package/dist/docs/federation/legacy-federation/03-examples.md +3 -5
  152. package/dist/docs/federation/legacy-federation/04-configuration.md +3 -8
  153. package/dist/docs/federation/legacy-federation/05-setup-team-catalog.md +3 -6
  154. package/dist/docs/federation/reference/cli.md +2 -8
  155. package/dist/docs/federation/reference/configuration.md +0 -4
  156. package/dist/docs/federation/reference/diagnostic-rules.md +0 -5
  157. package/dist/docs/federation/reference/generated-output.md +0 -4
  158. package/dist/docs/federation/reference/supported-content.md +0 -4
  159. package/dist/docs/federation/reference/troubleshooting.md +0 -14
  160. package/dist/docs/plugins/02-generators.md +1 -1
  161. package/dist/docs/plugins/amazon-apigateway/00-intro.md +3 -28
  162. package/dist/docs/plugins/amazon-apigateway/01-installation.md +4 -56
  163. package/dist/docs/plugins/amazon-apigateway/02-plugin-configuration.md +1 -6
  164. package/dist/docs/plugins/apicurio/00-intro.md +2 -31
  165. package/dist/docs/plugins/apicurio/01-installation.md +2 -26
  166. package/dist/docs/plugins/apicurio/02-plugin-configuration.md +5 -13
  167. package/dist/docs/plugins/apicurio/03-features.md +1 -3
  168. package/dist/docs/plugins/asyncapi/00-intro.md +2 -28
  169. package/dist/docs/plugins/asyncapi/01-installation.md +3 -54
  170. package/dist/docs/plugins/asyncapi/02-plugin-configuration.md +2 -1
  171. package/dist/docs/plugins/aws-glue-registry/00-intro.md +4 -32
  172. package/dist/docs/plugins/aws-glue-registry/00a-installation.md +3 -53
  173. package/dist/docs/plugins/azure-schema-registry/00-intro.md +4 -32
  174. package/dist/docs/plugins/azure-schema-registry/01-installation.md +6 -33
  175. package/dist/docs/plugins/azure-schema-registry/02-plugin-configuration.md +1 -14
  176. package/dist/docs/plugins/azure-schema-registry/04-examples.md +0 -2
  177. package/dist/docs/plugins/backstage/00-overview.md +1 -7
  178. package/dist/docs/plugins/backstage/01-get-started.md +6 -15
  179. package/dist/docs/plugins/backstage/06-configuration.md +2 -8
  180. package/dist/docs/plugins/confluent-schema-registry/00-intro.md +2 -29
  181. package/dist/docs/plugins/confluent-schema-registry/01-installation.md +2 -26
  182. package/dist/docs/plugins/eventbridge/00-intro.md +0 -4
  183. package/dist/docs/plugins/eventbridge/00a-installation.md +1 -87
  184. package/dist/docs/plugins/eventbridge/03-api.md +2 -20
  185. package/dist/docs/plugins/github/00-intro.md +0 -31
  186. package/dist/docs/plugins/github/01-installation.md +2 -34
  187. package/dist/docs/plugins/graphql/00-intro.md +0 -30
  188. package/dist/docs/plugins/graphql/01-installation.md +1 -53
  189. package/dist/docs/plugins/graphql/02-plugin-configuration.md +0 -1
  190. package/dist/docs/plugins/hookdeck/01-intro.md +1 -1
  191. package/dist/docs/plugins/openapi/00-intro.md +0 -30
  192. package/dist/docs/plugins/openapi/01-installation.md +1 -57
  193. package/dist/docs/plugins/openapi/02-plugin-configuration.md +0 -5
  194. package/dist/docs/plugins/openapi/03-features.md +0 -4
  195. package/dist/eventcatalog-config-file-utils.cjs +34 -41
  196. package/dist/eventcatalog-config-file-utils.d.cts +56 -58
  197. package/dist/eventcatalog-config-file-utils.d.ts +56 -58
  198. package/dist/eventcatalog-config-file-utils.js +1 -1
  199. package/dist/eventcatalog.cjs +340 -249
  200. package/dist/eventcatalog.config.d.cts +18 -15
  201. package/dist/eventcatalog.config.d.ts +18 -15
  202. package/dist/eventcatalog.js +46 -28
  203. package/dist/features.cjs +36 -49
  204. package/dist/features.d.cts +1 -3
  205. package/dist/features.d.ts +1 -3
  206. package/dist/features.js +4 -6
  207. package/dist/federation/federate.cjs +37 -44
  208. package/dist/federation/federate.js +2 -2
  209. package/dist/generate.cjs +37 -42
  210. package/dist/generate.js +4 -4
  211. package/dist/resolve-catalog-dependencies.cjs +34 -41
  212. package/dist/resolve-catalog-dependencies.js +2 -2
  213. package/dist/runtime-dependencies/@eventcatalog__visualiser__studio-fonts.css.mjs +3 -0
  214. package/dist/runtime-dependencies/@eventcatalog__visualiser__studio.css.mjs +3 -0
  215. package/dist/runtime-dependencies/@eventcatalog__visualiser__studio.mjs +3 -0
  216. package/dist/runtime-dependencies/htmlparser2.mjs +3 -0
  217. package/dist/runtime-dependencies/manifest.json +5 -1
  218. package/dist/runtime-dependencies/react-syntax-highlighter__dist__cjs__create-element.js.mjs +3 -0
  219. package/dist/utils/child-process-signals.cjs +53 -0
  220. package/dist/utils/child-process-signals.d.cts +19 -0
  221. package/dist/utils/child-process-signals.d.ts +19 -0
  222. package/dist/utils/child-process-signals.js +6 -0
  223. package/dist/utils/cli-logger.cjs +1 -1
  224. package/dist/utils/cli-logger.js +2 -2
  225. package/dist/utils/license-status.cjs +11 -4
  226. package/dist/utils/license-status.d.cts +3 -2
  227. package/dist/utils/license-status.d.ts +3 -2
  228. package/dist/utils/license-status.js +1 -1
  229. package/eventcatalog/astro.config.mjs +21 -1
  230. package/eventcatalog/integrations/config-loader.mjs +56 -58
  231. package/eventcatalog/integrations/skip-startup-reload.mjs +31 -0
  232. package/eventcatalog/integrations/stable-dependency-order.mjs +29 -0
  233. package/eventcatalog/integrations/storage.mjs +20 -0
  234. package/eventcatalog/integrations/studio-server.mjs +4 -1
  235. package/eventcatalog/src/components/CatalogGraph/CatalogForceGraph.tsx +39 -0
  236. package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +2 -0
  237. package/eventcatalog/src/components/Homepage/CatalogDashboard.astro +342 -0
  238. package/eventcatalog/src/components/MDX/NodeGraph/AstroNodeGraph.tsx +60 -4
  239. package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.astro +5 -1
  240. package/eventcatalog/src/components/NavigationProgress.astro +7 -0
  241. package/eventcatalog/src/components/SchemaExplorer/ApiContentViewer.tsx +2 -0
  242. package/eventcatalog/src/components/SchemaExplorer/ExamplesViewer.tsx +2 -0
  243. package/eventcatalog/src/components/SchemaExplorer/SchemaCodeModal.tsx +2 -0
  244. package/eventcatalog/src/components/SchemaExplorer/SchemaContentViewer.tsx +2 -0
  245. package/eventcatalog/src/components/Search/SearchDataLoader.astro +16 -28
  246. package/eventcatalog/src/components/Search/SearchModal.tsx +2 -10
  247. package/eventcatalog/src/components/Search/search-utils.ts +26 -0
  248. package/eventcatalog/src/components/Seo.astro +5 -1
  249. package/eventcatalog/src/components/Settings/AssistantSettingsForm.tsx +53 -48
  250. package/eventcatalog/src/components/Settings/GeneralSettingsForm.tsx +183 -178
  251. package/eventcatalog/src/components/Settings/LicenseSettings.tsx +140 -31
  252. package/eventcatalog/src/components/Settings/LlmAccessSettingsForm.tsx +40 -35
  253. package/eventcatalog/src/components/Settings/LogoUpload.tsx +1 -1
  254. package/eventcatalog/src/components/Settings/McpSettingsForm.tsx +9 -8
  255. package/eventcatalog/src/components/Settings/Row.tsx +7 -4
  256. package/eventcatalog/src/components/Settings/SettingsShared.tsx +3 -3
  257. package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +37 -76
  258. package/eventcatalog/src/components/SideNav/NestedSideBar/storage.ts +2 -0
  259. package/eventcatalog/src/components/SideNav/NestedSideBar/utils.ts +122 -1
  260. package/eventcatalog/src/components/SideNav/SideNav.astro +9 -1
  261. package/eventcatalog/src/components/TrialBadge.astro +20 -9
  262. package/eventcatalog/src/content.config.ts +19 -2
  263. package/eventcatalog/src/features/auth/error.astro +4 -2
  264. package/eventcatalog/src/features/auth/login.astro +2 -1
  265. package/eventcatalog/src/features/auth/middleware/middleware-auth.ts +21 -1
  266. package/eventcatalog/src/features/auth/unauthorized.astro +1 -1
  267. package/eventcatalog/src/features/fields/pages/fields.astro +1 -1
  268. package/eventcatalog/src/features/integrations/eventcatalog-features.ts +13 -7
  269. package/eventcatalog/src/features/mcp/apps/architecture-diagram/node-chat.tsx +6 -45
  270. package/eventcatalog/src/features/mcp/apps/canvas/shared.ts +3 -3
  271. package/eventcatalog/src/features/mcp/apps/canvas/styles.css +3 -1
  272. package/eventcatalog/src/features/mcp/apps/canvas/view.tsx +7 -5
  273. package/eventcatalog/src/features/mcp/apps/generated/canvas.html +123 -98
  274. package/eventcatalog/src/features/mcp/apps/generated/viewer.html +118 -101
  275. package/eventcatalog/src/features/mcp/mcp-server.ts +20 -4
  276. package/eventcatalog/src/features/server/start.ts +25 -0
  277. package/eventcatalog/src/features/storage/database.ts +88 -0
  278. package/eventcatalog/src/features/storage/migrations.ts +85 -0
  279. package/eventcatalog/src/features/storage/sql/database.sql +5 -0
  280. package/eventcatalog/src/features/storage/sql/migrations/0001-studio-canvases.sql +12 -0
  281. package/eventcatalog/src/features/storage/sql/migrations.sql +15 -0
  282. package/eventcatalog/src/features/storage/sql.ts +28 -0
  283. package/eventcatalog/src/features/studio/agent-choreography.ts +13 -10
  284. package/eventcatalog/src/features/studio/agents.ts +28 -0
  285. package/eventcatalog/src/features/studio/api/canvases-api.ts +219 -0
  286. package/eventcatalog/src/features/studio/api/canvases.ts +25 -0
  287. package/eventcatalog/src/features/studio/api/client.ts +40 -0
  288. package/eventcatalog/src/features/studio/canvas-actions.ts +160 -34
  289. package/eventcatalog/src/features/studio/canvas-preview.ts +1 -2
  290. package/eventcatalog/src/features/studio/catalog.ts +16 -14
  291. package/eventcatalog/src/features/studio/components/CanvasHeader.tsx +274 -105
  292. package/eventcatalog/src/features/studio/components/CanvasStatusMenu.tsx +15 -14
  293. package/eventcatalog/src/features/studio/components/ConnectAgentDialog.tsx +272 -119
  294. package/eventcatalog/src/features/studio/components/ConnectionsChooser.tsx +1 -2
  295. package/eventcatalog/src/features/studio/components/DeleteCanvasDialog.tsx +65 -0
  296. package/eventcatalog/src/features/studio/components/Dialog.tsx +60 -0
  297. package/eventcatalog/src/features/studio/components/JoinForm.tsx +101 -26
  298. package/eventcatalog/src/features/studio/components/LeftPanel.tsx +122 -230
  299. package/eventcatalog/src/features/studio/components/NodeDetails.tsx +183 -0
  300. package/eventcatalog/src/features/studio/components/OpenInStudioDialog.tsx +79 -0
  301. package/eventcatalog/src/features/studio/components/Presence.tsx +52 -45
  302. package/eventcatalog/src/features/studio/components/ShareDialog.tsx +277 -141
  303. package/eventcatalog/src/features/studio/components/ShortcutsDialog.tsx +41 -0
  304. package/eventcatalog/src/features/studio/components/StudioDesigner.tsx +1314 -385
  305. package/eventcatalog/src/features/studio/components/StudioNotice.astro +24 -0
  306. package/eventcatalog/src/features/studio/document-name.ts +7 -0
  307. package/eventcatalog/src/features/studio/from-visualiser.ts +138 -0
  308. package/eventcatalog/src/features/studio/hooks/presence-sender.ts +19 -2
  309. package/eventcatalog/src/features/studio/hooks/use-canvas-webmcp.ts +9 -3
  310. package/eventcatalog/src/features/studio/hooks/use-comments.ts +2 -2
  311. package/eventcatalog/src/features/studio/hooks/use-follow-camera.ts +8 -3
  312. package/eventcatalog/src/features/studio/hooks/use-studio-flow.ts +244 -32
  313. package/eventcatalog/src/features/studio/identity.ts +25 -1
  314. package/eventcatalog/src/features/studio/limits.ts +2 -0
  315. package/eventcatalog/src/features/studio/pages/[id].astro +42 -16
  316. package/eventcatalog/src/features/studio/pages/index.astro +596 -373
  317. package/eventcatalog/src/features/studio/pages/webmcp-relay.ts +12 -15
  318. package/eventcatalog/src/features/studio/server/canvas-mcp.ts +8 -23
  319. package/eventcatalog/src/features/studio/server/runtime.ts +150 -46
  320. package/eventcatalog/src/features/studio/server/sql/storage.sql +18 -0
  321. package/eventcatalog/src/features/studio/server/storage.ts +53 -73
  322. package/eventcatalog/src/features/studio/webmcp-relay/LICENSE +21 -0
  323. package/eventcatalog/src/features/studio/webmcp-relay/README.md +5 -0
  324. package/eventcatalog/src/features/studio/webmcp-relay/embed.js +2 -0
  325. package/eventcatalog/src/features/studio/webmcp-relay/widget.html +10 -0
  326. package/eventcatalog/src/features/studio/webmcp-relay/widget.js +1 -0
  327. package/eventcatalog/src/features/tools/catalog-tools.ts +3 -1
  328. package/eventcatalog/src/layouts/BaseLayout.astro +4 -4
  329. package/eventcatalog/src/layouts/SettingsLayout.astro +2 -2
  330. package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +3 -2
  331. package/eventcatalog/src/pages/_index.astro +5 -342
  332. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.spec.ts +2 -3
  333. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.ts +0 -7
  334. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +3 -1
  335. package/eventcatalog/src/pages/diagrams/[id]/[version]/_index.data.ts +0 -7
  336. package/eventcatalog/src/pages/diagrams/[id]/[version]/embed.astro +1 -0
  337. package/eventcatalog/src/pages/diagrams/[id]/[version]/index.astro +1 -0
  338. package/eventcatalog/src/pages/directory/[type]/_index.data.ts +5 -7
  339. package/eventcatalog/src/pages/directory/[type]/index.astro +3 -1
  340. package/eventcatalog/src/pages/discover/[type]/_index.data.ts +5 -7
  341. package/eventcatalog/src/pages/discover/[type]/index.astro +3 -1
  342. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/_index.data.ts +0 -7
  343. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/index.astro +1 -0
  344. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/_index.data.ts +0 -7
  345. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/index.astro +1 -0
  346. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/_index.data.ts +0 -7
  347. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/[filename].astro +3 -1
  348. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/_[filename].data.ts +0 -7
  349. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/_index.data.ts +0 -7
  350. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/index.astro +1 -0
  351. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/examples/[...filename].astro +1 -0
  352. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/examples/_[...filename].data.ts +0 -4
  353. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/field-lineage/_index.data.ts +0 -7
  354. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/field-lineage/index.astro +1 -0
  355. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/[filename].astro +3 -1
  356. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/_[filename].data.ts +0 -7
  357. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +1 -0
  358. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.spec.ts +2 -3
  359. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.ts +0 -7
  360. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/index.astro +1 -0
  361. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/[filename].astro +1 -0
  362. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/_[filename].data.ts +0 -7
  363. package/eventcatalog/src/pages/docs/[type]/[id]/_index.data.ts +0 -7
  364. package/eventcatalog/src/pages/docs/[type]/[id]/index.astro +2 -1
  365. package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/_index.data.ts +0 -7
  366. package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/index.astro +1 -0
  367. package/eventcatalog/src/pages/docs/[type]/[id]/language/_index.data.ts +0 -7
  368. package/eventcatalog/src/pages/docs/[type]/[id]/language/index.astro +1 -0
  369. package/eventcatalog/src/pages/docs/custom/[...path]/_index.data.ts +0 -7
  370. package/eventcatalog/src/pages/docs/custom/[...path]/index.astro +1 -0
  371. package/eventcatalog/src/pages/docs/services/[id]/[docType]/[docId]/index.astro +1 -1
  372. package/eventcatalog/src/pages/docs/services/[id]/[version]/resources/index.astro +1 -0
  373. package/eventcatalog/src/pages/docs/services/[id]/asyncapi/[filename].astro +1 -1
  374. package/eventcatalog/src/pages/docs/services/[id]/changelog/index.astro +1 -1
  375. package/eventcatalog/src/pages/docs/services/[id]/graphql/[filename].astro +1 -1
  376. package/eventcatalog/src/pages/docs/services/[id]/spec/[filename].astro +1 -1
  377. package/eventcatalog/src/pages/docs/teams/[id]/_index.data.ts +0 -7
  378. package/eventcatalog/src/pages/docs/teams/[id]/index.astro +1 -0
  379. package/eventcatalog/src/pages/docs/users/[id]/_index.data.ts +0 -7
  380. package/eventcatalog/src/pages/docs/users/[id]/index.astro +1 -0
  381. package/eventcatalog/src/pages/index.astro +4 -2
  382. package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/_index.data.ts +0 -7
  383. package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/index.astro +9 -1
  384. package/eventcatalog/src/pages/schemas/explorer/_index.data.ts +0 -7
  385. package/eventcatalog/src/pages/schemas/explorer/index.astro +4 -2
  386. package/eventcatalog/src/pages/settings/license.astro +9 -1
  387. package/eventcatalog/src/pages/triggers/[type]/[id]/[version]/_index.data.ts +0 -7
  388. package/eventcatalog/src/pages/triggers/[type]/[id]/[version]/index.astro +1 -0
  389. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/_index.data.ts +0 -7
  390. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/data/_index.data.ts +0 -7
  391. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/data/index.astro +1 -0
  392. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/_index.data.ts +0 -7
  393. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/index.astro +1 -0
  394. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/index.astro +1 -0
  395. package/eventcatalog/src/pages/visualiser/[type]/[id]/_index.data.ts +38 -0
  396. package/eventcatalog/src/pages/visualiser/[type]/[id]/index.astro +18 -41
  397. package/eventcatalog/src/pages/visualiser/designs/[id]/_index.data.ts +0 -7
  398. package/eventcatalog/src/pages/visualiser/designs/[id]/index.astro +2 -1
  399. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/_index.data.ts +0 -7
  400. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/index.astro +1 -0
  401. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/index.astro +1 -0
  402. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/_index.data.ts +0 -7
  403. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/index.astro +1 -0
  404. package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/_index.data.ts +0 -7
  405. package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/index.astro +1 -0
  406. package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/index.astro +1 -0
  407. package/eventcatalog/src/types/react-syntax-highlighter.d.ts +10 -0
  408. package/eventcatalog/src/utils/collections/flows.ts +20 -7
  409. package/eventcatalog/src/utils/collections/resource-owners.ts +8 -2
  410. package/eventcatalog/src/utils/collections/resources.ts +2 -0
  411. package/eventcatalog/src/utils/collections/util.ts +8 -4
  412. package/eventcatalog/src/utils/git.ts +11 -0
  413. package/eventcatalog/src/utils/homepage-dashboard.ts +143 -0
  414. package/eventcatalog/src/utils/license.ts +1 -1
  415. package/eventcatalog/src/utils/link-validation.ts +25 -19
  416. package/eventcatalog/src/utils/node-graphs/domain-entity-map.ts +3 -1
  417. package/eventcatalog/src/utils/node-graphs/domain-levels-node-graph.ts +3 -3
  418. package/eventcatalog/src/utils/node-graphs/field-node-graph.ts +4 -2
  419. package/eventcatalog/src/utils/node-graphs/layout-node-graph.ts +20 -1
  420. package/eventcatalog/src/utils/node-graphs/node-resource.ts +67 -0
  421. package/eventcatalog/src/utils/node-graphs/systems-node-graph.ts +1 -1
  422. package/eventcatalog/src/utils/page-loaders/hybrid-page.ts +4 -15
  423. package/eventcatalog/src/utils/page-title.ts +15 -0
  424. package/eventcatalog/src/utils/syntax-highlighter-renderer.ts +64 -0
  425. package/eventcatalog/src/utils/trial.ts +13 -0
  426. package/package.json +12 -12
  427. package/dist/docs/development/ask-your-architecture/05-skills/02-installation.md +0 -60
  428. package/dist/docs/development/ask-your-architecture/05-skills/_category_.json +0 -11
  429. package/dist/docs/development/ask-your-architecture/06-slack-integration/01-introduction.md +0 -63
  430. package/dist/docs/development/ask-your-architecture/06-slack-integration/02-slack-app-setup.md +0 -154
  431. package/dist/docs/development/ask-your-architecture/06-slack-integration/03-installation.md +0 -169
  432. package/dist/docs/development/ask-your-architecture/06-slack-integration/04-deployment.md +0 -236
  433. package/dist/docs/development/ask-your-architecture/06-slack-integration/05-usage.md +0 -140
  434. package/dist/docs/development/ask-your-architecture/06-slack-integration/06-troubleshooting.md +0 -268
  435. package/dist/docs/development/ask-your-architecture/06-slack-integration/_category_.json +0 -13
  436. package/dist/docs/development/guides/domains/06-visualize-domains/01-domain-integration-map.md +0 -40
  437. package/dist/runtime-dependencies/@mcp-b__webmcp-local-relay.mjs +0 -3
  438. package/eventcatalog/src/features/studio/canvas-doc.ts +0 -409
  439. package/eventcatalog/src/features/studio/clipboard.ts +0 -97
  440. package/eventcatalog/src/features/studio/components/CanvasControls.tsx +0 -154
  441. package/eventcatalog/src/features/studio/components/Comments.tsx +0 -770
  442. package/eventcatalog/src/features/studio/components/ContainerChooser.tsx +0 -145
  443. package/eventcatalog/src/features/studio/components/DragGhost.tsx +0 -115
  444. package/eventcatalog/src/features/studio/components/Picture.tsx +0 -21
  445. package/eventcatalog/src/features/studio/components/PropertiesPanel.tsx +0 -212
  446. package/eventcatalog/src/features/studio/components/canvas-nodes.tsx +0 -255
  447. package/eventcatalog/src/features/studio/components/icons.ts +0 -53
  448. package/eventcatalog/src/features/studio/components/status.ts +0 -51
  449. package/eventcatalog/src/features/studio/edges.ts +0 -56
  450. package/eventcatalog/src/features/studio/flow-state.ts +0 -92
  451. package/eventcatalog/src/features/studio/grouping.ts +0 -226
  452. package/eventcatalog/src/features/studio/layout.ts +0 -42
  453. package/eventcatalog/src/features/studio/levels.ts +0 -282
  454. package/eventcatalog/src/features/studio/node-types.ts +0 -205
  455. package/eventcatalog/src/features/studio/pages/new.astro +0 -24
  456. package/eventcatalog/src/features/studio/pages/wake.ts +0 -15
  457. package/eventcatalog/src/features/studio/placement.ts +0 -197
  458. package/eventcatalog/src/features/studio/studio.css +0 -273
@@ -11,7 +11,7 @@ description: Add systems to domains so users can move from a business boundary t
11
11
  import AddedIn from '@site/src/components/MDX/AddedIn';
12
12
  import ProjectTree from '@site/src/components/MDX/ProjectTree';
13
13
 
14
- <AddedIn version="4.0" />
14
+ <AddedIn version="4.0.0" />
15
15
 
16
16
  A [system](/docs/development/guides/systems/introduction) is a collection of resources that work together to perform a function.
17
17
 
@@ -129,6 +129,8 @@ systems:
129
129
 
130
130
  Use this view when you want readers to understand the systems inside a domain before they drill into lower-level resources.
131
131
 
132
+ To see the systems in the visualizer, open **Diagram** in the domain sidebar. Level 1 shows the domain's systems and the other domains they talk to, and level 2 expands each system into its services and data stores. Learn more in [Domain diagram](/docs/development/guides/domains/visualize-domains/domain-diagram).
133
+
132
134
  ## Linking to systems from domain docs
133
135
 
134
136
  You can link to systems from domain Markdown using resource references.
@@ -82,5 +82,9 @@ Although it's recommended to link to a version of a service it is now optional.
82
82
 
83
83
  When you view your domain in EventCatalog, the services will be visualized for you.
84
84
 
85
- ![Example](../../img/domains/visualiser.png)
85
+ Open **Diagram** in the domain sidebar and switch to level 2 (**L2**) to see the domain's services and data stores, grouped by system. Level 3 (**L3**) adds the messages and channels between them.
86
+
87
+ ![Payments domain diagram at level 2, showing services inside their systems](../06-visualize-domains/img/domain-diagram-l2.png)
88
+
89
+ Learn more in [Domain diagram](/docs/development/guides/domains/visualize-domains/domain-diagram).
86
90
 
@@ -96,9 +96,9 @@ Although it's recommended to link to a version of a message it is now optional.
96
96
 
97
97
  ## Visualizing messages within a domain
98
98
 
99
- Messages are shown in the sidebar of your domain under "Publishes Messages" and "Consumes Messages" sections. There is currently no visualizer support for messages at the domain level.
99
+ Messages are shown in the sidebar of your domain under "Publishes Messages" and "Consumes Messages" sections.
100
100
 
101
- _Coming soon: Visualizer support for messages at the domain level._
101
+ To see messages in the visualizer, open **Diagram** in the domain sidebar and switch to level 3 (**L3**). Level 3 adds the messages and channels that the domain's services send and receive. Learn more in [Domain diagram](/docs/development/guides/domains/visualize-domains/domain-diagram).
102
102
 
103
103
  ## Making changes and versioning
104
104
 
@@ -61,7 +61,7 @@ For services, the route is:
61
61
  /visualiser/services/{id}/{version}/entity-map
62
62
  ```
63
63
 
64
- When a domain or service has entities assigned, an **Entity Map** link appears automatically in the resource sidebar under the visualizer section.
64
+ When a domain or service has entities assigned, an **Entity Diagram** link appears automatically in the **Architecture** section of the resource sidebar.
65
65
 
66
66
  ## Embed the entity map on a page
67
67
 
@@ -0,0 +1,40 @@
1
+ ---
2
+ sidebar_position: 6
3
+ keywords:
4
+ - EventCatalog domains
5
+ - Domain resources
6
+ - Resources page
7
+ sidebar_label: Domain resources page
8
+ title: Domain resources page
9
+ description: See every subdomain, system, service, message, and decision record attached to a domain in one table.
10
+ ---
11
+
12
+ Every domain with resources gets a **Resources** page that lists them in one table. Open it from **Quick Reference** > **Resources** in the domain's sidebar, or go to:
13
+
14
+ ```txt
15
+ /docs/domains/{domain-id}/{version}/resources
16
+ ```
17
+
18
+ ## What the page lists
19
+
20
+ The page lists the resources attached directly to the domain. Resources inside a child system or subdomain are listed on that system's or subdomain's own Resources page.
21
+
22
+ | Resource | Where it comes from | Relationship |
23
+ |----------|---------------------|--------------|
24
+ | Subdomains | The domain's [`domains`](/docs/development/guides/domains/reference#domains) | **Contains** |
25
+ | Systems | The domain's [`systems`](/docs/development/guides/domains/reference#systems) | **Contains** |
26
+ | Agents | The domain's [`agents`](/docs/development/guides/domains/reference#agents) | **Contains** |
27
+ | Data products | The domain's [`data-products`](/docs/development/guides/domains/reference#data-products) | **Contains** |
28
+ | Services | The domain's [`services`](/docs/development/guides/domains/reference#services) | **Contains** |
29
+ | Flows | The domain's [`flows`](/docs/development/guides/domains/reference#flows) | **Contains** |
30
+ | Entities | The domain's [`entities`](/docs/development/guides/domains/reference#entities) | **Owns** |
31
+ | Events, commands and queries | The domain's [`sends`](/docs/development/guides/domains/reference#sends) and [`receives`](/docs/development/guides/domains/reference#receives) | **Sends**, **Receives** or **Sends & receives** |
32
+ | Decision records | Any ADR whose `appliesTo` includes the domain ([add ADRs to resources](/docs/development/guides/resources/adrs/linking-resources)) | **Governed by** |
33
+
34
+ The **Resources** link only shows in the sidebar when the domain has at least one resource to list.
35
+
36
+ The table has the same filters, sorting and row actions as the service Resources page. See [Service resources page](/docs/development/guides/resources/services/resources-page).
37
+
38
+ :::info Changed in EventCatalog v5
39
+ The sidebar link was called **Domain Resources** and is now **Resources**. The page now lists decision records and has a **Relationship** column. The domain architecture overview page (`/architecture/domains/{domain-id}/{version}`) is removed. Old links redirect to the Resources page, or to the domain's docs page when it has nothing to list.
40
+ :::
@@ -0,0 +1,89 @@
1
+ ---
2
+ sidebar_position: 1
3
+ keywords:
4
+ - domain diagram
5
+ - domains
6
+ - EventCatalog visualizer
7
+ - cross-domain communication
8
+ sidebar_label: Domain diagram
9
+ title: Domain diagram
10
+ description: Visualize a domain, its systems, and the domains it talks to, from a high-level overview down to messages and channels.
11
+ ---
12
+
13
+ import AddedIn from '@site/src/components/MDX/AddedIn';
14
+
15
+ <AddedIn version="5.0.0" />
16
+
17
+ Every domain has a **Diagram** page. It shows the domain at three levels of detail, from the other domains it talks to down to the messages and channels its services send and receive.
18
+
19
+ Open it from **Diagram** in the **Architecture** section of the domain sidebar, or at:
20
+
21
+ ```txt
22
+ /visualiser/domains/{domain-id}/{version}
23
+ ```
24
+
25
+ ![Payments domain diagram at level 1, showing its systems and the domains they talk to](./img/domain-diagram-l1.png)
26
+
27
+ ## Levels
28
+
29
+ Switch levels with **L1**, **L2** and **L3** in the canvas toolbar at the bottom of the diagram.
30
+
31
+ | Level | What it shows |
32
+ |-------|---------------|
33
+ | **L1** | The domain with its systems and subdomains, and the other domains they send messages to or receive messages from. |
34
+ | **L2** | Expands the systems into their services and data stores, and how they connect. |
35
+ | **L3** | Adds the messages and channels. |
36
+
37
+ ![Payments domain diagram at level 2, with its systems expanded into services and data stores](./img/domain-diagram-l2.png)
38
+
39
+ The page opens at level 1. The level is kept in the URL, so a shared link opens at the same level. Use `?level=` to open a level directly:
40
+
41
+ ```txt
42
+ /visualiser/domains/Payments/1.0.0?level=2
43
+ ```
44
+
45
+ ### How resources are placed
46
+
47
+ - Subdomains are shown as domains inside the domain, with their own systems and services. At L1, a subdomain without systems is a single card.
48
+ - Other domains' subdomains are shown inside a box for their parent domain.
49
+ - Services that are not in a system are shown with the resources they connect to.
50
+ - Messages and channels that only other domains send through are placed outside the domain.
51
+ - A domain without systems or subdomains opens at L2, and L1 is greyed out.
52
+
53
+ ## Highlight cross-domain communication
54
+
55
+ When the diagram includes other domains, the canvas toolbar has a **Highlight cross-domain communication** button. It picks out the edges to and from other domains on the level you are viewing. It doesn't change the level.
56
+
57
+ Use it to find where a domain depends on other domains, and which messages cross the domain boundary.
58
+
59
+ The canvas toolbar and menu also let you simulate messages, hide messages or channels, and hide resource types from the legend. See [NodeGraph interactive controls](/docs/development/components/components/nodegraph#interactive-controls).
60
+
61
+ ## Show the diagram on the domain page
62
+
63
+ Add `<NodeGraph />` to a domain page to embed its diagram. It opens at level 1.
64
+
65
+ ```md title="/domains/Payments/index.mdx"
66
+ ---
67
+ id: Payments
68
+ name: Payments
69
+ version: 1.0.0
70
+ ---
71
+
72
+ ## Architecture
73
+
74
+ <NodeGraph />
75
+ ```
76
+
77
+ Learn more in the [NodeGraph component](/docs/development/components/components/nodegraph) docs.
78
+
79
+ ## Turn off the diagram
80
+
81
+ Domains with [`visualiser: false`](/docs/development/guides/domains/reference#visualiser) in their frontmatter don't get a Diagram page.
82
+
83
+ :::info Changed in EventCatalog v5
84
+ The domain's **System Diagram** and **Resource Diagram** pages are replaced by the single **Diagram** page. The old System Diagram route (`/visualiser/domains/{domain-id}/{version}/systems-context`) redirects to level 1.
85
+
86
+ The Domain Integration Map (`/visualiser/domain-integrations`) is removed. Level 1 of each domain's diagram shows how it integrates with other domains.
87
+
88
+ Layouts saved in dev mode for a domain's old Resource Diagram don't carry over to the new page. Save the layout again if you need it.
89
+ :::
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "label": "Visualize domains",
3
3
  "position": 6,
4
- "className": "hidden",
5
4
  "collapsible": true,
6
5
  "collapsed": true,
7
6
  "link": {
8
7
  "type": "generated-index",
9
8
  "slug": "/domains/visualize-domains",
10
- "description": "Visualize domain relationships, integrations, and entities."
9
+ "description": "Visualize a domain, its systems, and how it integrates with other domains."
11
10
  }
12
11
  }
@@ -37,11 +37,11 @@ Ubiquitous language for a domain is documented in a sidecar file:
37
37
  | Route | Description |
38
38
  |-------|-------------|
39
39
  | `/docs/domains/{domain-id}/{version}` | Domain documentation page. |
40
+ | `/docs/domains/{domain-id}/{version}/resources` | [Resources page](/docs/development/guides/domains/add-resources-to-domains/domain-resources-page) listing the resources attached to the domain. |
40
41
  | `/docs/domains/{domain-id}/language` | Ubiquitous language dictionary. |
41
42
  | `/docs/domains/{domain-id}/language/{term-id}` | Ubiquitous language term page. |
42
- | `/visualiser/domains/{domain-id}/{version}` | Domain resource diagram. |
43
- | `/visualiser/domains/{domain-id}/{version}/systems-context` | System context map for systems inside a domain. |
44
- | `/visualiser/domains/{domain-id}/{version}/entity-map` | Entity map for entities inside a domain. |
43
+ | `/visualiser/domains/{domain-id}/{version}` | [Domain diagram](/docs/development/guides/domains/visualize-domains/domain-diagram), with levels L1 to L3. Add `?level=1`, `?level=2` or `?level=3` to open a level directly. |
44
+ | `/visualiser/domains/{domain-id}/{version}/entity-map` | Entity Diagram for entities inside a domain. |
45
45
 
46
46
  ## Frontmatter example
47
47
 
@@ -199,7 +199,7 @@ domains:
199
199
 
200
200
  ### `systems` {#systems}
201
201
 
202
- <AddedIn version="4.0" />
202
+ <AddedIn version="4.0.0" />
203
203
 
204
204
  An array of [system](/docs/development/guides/systems/introduction) ids that belong to this domain.
205
205
 
@@ -10,9 +10,7 @@ description: Build a custom directory connector to sync users and teams from any
10
10
  ---
11
11
 
12
12
  import AddedIn from '@site/src/components/MDX/AddedIn';
13
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
14
13
 
15
- <PlanBanner plan="Scale" />
16
14
  <AddedIn version="3.44.0" pkg="@eventcatalog/connectors" />
17
15
 
18
16
  Connectors are how EventCatalog imports and syncs users and teams from an external source so you can assign them as owners on resources in your catalog. EventCatalog ships with built-in connectors (such as [Sync from GitHub](/docs/development/guides/owners/sync-from-github) and [Sync from Microsoft Entra ID](/docs/development/guides/owners/sync-from-microsoft-entra)), but if your team uses a different system &mdash; an internal HR tool, an LDAP directory, a SaaS like Okta, or anything else &mdash; you can write your own connector with a small amount of custom code.
@@ -11,9 +11,6 @@ description: Sync GitHub organization teams and members into EventCatalog as use
11
11
  ---
12
12
 
13
13
  import AddedIn from '@site/src/components/MDX/AddedIn';
14
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
15
-
16
- <PlanBanner plan="Scale" />
17
14
 
18
15
  In EventCatalog, you can import and sync your users and teams directly from GitHub. Instead of adding people and teams by hand, you point EventCatalog at your GitHub organization and the catalog stays in sync with it automatically. Once synced, your GitHub teams and users can be assigned as owners on any resource in the catalog (services, events, domains, and more).
19
16
 
@@ -12,9 +12,7 @@ description: Sync Microsoft Entra ID groups and direct members into EventCatalog
12
12
  ---
13
13
 
14
14
  import AddedIn from '@site/src/components/MDX/AddedIn';
15
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
16
15
 
17
- <PlanBanner plan="Scale" />
18
16
  <AddedIn version="3.45.0" pkg="@eventcatalog/connectors" />
19
17
 
20
18
  In EventCatalog, you can import and sync your users and teams directly from Microsoft Entra ID. Instead of adding people and teams by hand, you point EventCatalog at selected Entra groups and the catalog keeps those teams and their direct members in sync.
@@ -50,3 +50,11 @@ appliesTo:
50
50
  When a resource has one or more ADRs linked via `appliesTo`, a **Decision Records** group appears in that resource's sidebar. Each linked ADR shows its name and links directly to the decision page.
51
51
 
52
52
  This means engineers reading a service or event page can immediately see which architectural choices affect it, without leaving the page.
53
+
54
+ ### On the Resources page
55
+
56
+ <AddedIn version="5.0.0" />
57
+
58
+ Linked ADRs are also listed on the resource's **Resources** page (**Quick Reference** > **Resources** in the sidebar), with the relationship **Governed by**. When the page lists other kinds of resource too, use the **Decision Records** filter to show only the ADRs. This works for domains, systems, services, flows, channels, events, commands and queries.
59
+
60
+ See the [service Resources page](/docs/development/guides/resources/services/resources-page) for how the page works.
@@ -70,13 +70,11 @@ version: 1.0.0
70
70
  ---
71
71
  ```
72
72
 
73
- ## Optional fields
74
-
75
73
  ### `status` {#status}
76
74
 
77
75
  - Type: `proposed`, `accepted`, `rejected`, `deprecated`, or `superseded`
78
76
 
79
- Lifecycle status for the decision.
77
+ Lifecycle status for the decision. EventCatalog groups ADRs by status in the sidebar and shows it on the ADR's page.
80
78
 
81
79
  ```md title="Example"
82
80
  ---
@@ -88,7 +86,7 @@ status: accepted
88
86
 
89
87
  - Type: `date`
90
88
 
91
- Date the decision was created or recorded.
89
+ Date the decision was created or recorded. EventCatalog shows it on the ADR's page and sorts ADRs by it.
92
90
 
93
91
  ```md title="Example"
94
92
  ---
@@ -96,6 +94,8 @@ date: 2026-06-01
96
94
  ---
97
95
  ```
98
96
 
97
+ ## Optional fields
98
+
99
99
  ### `summary` {#summary}
100
100
 
101
101
  - Type: `string`
@@ -30,7 +30,7 @@ Versioned agents use:
30
30
  | Route | Description |
31
31
  |-------|-------------|
32
32
  | `/docs/agents/{agent-id}/{version}` | Agent documentation page. |
33
- | `/visualiser/agents/{agent-id}/{version}` | Agent resource diagram. |
33
+ | `/visualiser/agents/{agent-id}/{version}` | Agent diagram (**Diagram** in the sidebar). |
34
34
 
35
35
  ## Required fields
36
36
 
@@ -30,7 +30,7 @@ Versioned data stores use:
30
30
  | Route | Description |
31
31
  |-------|-------------|
32
32
  | `/docs/containers/{container-id}/{version}` | Data store documentation page. |
33
- | `/visualiser/containers/{container-id}/{version}` | Data store resource diagram. |
33
+ | `/visualiser/containers/{container-id}/{version}` | Data store diagram (**Diagram** in the sidebar). |
34
34
 
35
35
  ## Required fields
36
36
 
@@ -29,7 +29,7 @@ Versioned data products use:
29
29
  | Route | Description |
30
30
  |-------|-------------|
31
31
  | `/docs/data-products/{data-product-id}/{version}` | Data product documentation page. |
32
- | `/visualiser/data-products/{data-product-id}/{version}` | Data product resource diagram. |
32
+ | `/visualiser/data-products/{data-product-id}/{version}` | Data product diagram (**Diagram** in the sidebar). |
33
33
 
34
34
  ## Required fields
35
35
 
@@ -30,7 +30,7 @@ Domains and services have dedicated entity map routes:
30
30
  /visualiser/services/{id}/{version}/entity-map
31
31
  ```
32
32
 
33
- When a domain or service has entities assigned, an **Entity Map** link appears automatically in the resource sidebar under the visualizer section.
33
+ When a domain or service has entities assigned, an **Entity Diagram** link appears automatically in the **Architecture** section of the resource sidebar.
34
34
 
35
35
  ## Embed an entity map
36
36
 
@@ -41,8 +41,8 @@ Nested entities use the same `versioned/{version}/index.mdx` pattern inside thei
41
41
  |-------|-------------|
42
42
  | `/docs/entities/{entity-id}/{version}` | Entity documentation page. |
43
43
  | `/visualiser/entities/{entity-id}/{version}` | Entity resource diagram. |
44
- | `/visualiser/domains/{domain-id}/{version}/entity-map` | Entity map for entities assigned to a domain. |
45
- | `/visualiser/services/{service-id}/{version}/entity-map` | Entity map for entities assigned to a service. |
44
+ | `/visualiser/domains/{domain-id}/{version}/entity-map` | Entity Diagram for entities assigned to a domain. |
45
+ | `/visualiser/services/{service-id}/{version}/entity-map` | Entity Diagram for entities assigned to a service. |
46
46
 
47
47
  ## Frontmatter example
48
48
 
@@ -14,10 +14,20 @@ Flows are a way to document business workflows in your organization. Flows help
14
14
 
15
15
  An example of a flow could be user purchasing a product in an e-commerce store. They start by logging into a service, getting onboarded and purchasing something from a business. Across this journey may applications, databases, interactions are happening. Flows let you capture these.
16
16
 
17
- You can reuse your documented resources (e.g services, messages, data stores, data products) in your flows.
17
+ You can reuse your documented resources (e.g services, messages, channels, data stores, data products) in your flows.
18
18
 
19
19
  ![Example](../../img/flows/flow-example.png)
20
20
 
21
+ ## Explore a flow
22
+
23
+ Each flow gets a diagram you can explore:
24
+
25
+ - **Group by** domain, system or team to see which parts of your architecture each step belongs to.
26
+ - **Walk through** the flow one step at a time, choosing the way on at each branch.
27
+ - Open the flow's **Resources** page from **Quick Reference** in the sidebar to see the services, messages, agents, data stores, data products and sub-flows its steps use.
28
+
29
+ See [Explore flows](/docs/development/guides/resources/flows/explore-flows) for details.
30
+
21
31
  <!-- [You can see a payment flow example here](https://demo.eventcatalog.dev/visualiser/flows/PaymentFlow/1.0.0). -->
22
32
 
23
33
 
@@ -13,7 +13,7 @@ import AddedIn from '@site/src/components/MDX/AddedIn';
13
13
 
14
14
  Nodes are the building blocks of flows. They are used to represent the different steps in a flow.
15
15
 
16
- With flow nodes you can reference your services, events, commands and queries, external services, users (actors), data stores, data products, or create your own custom nodes.
16
+ With flow nodes you can reference your services, events, commands and queries, channels, external services, users (actors), data stores, data products, or create your own custom nodes.
17
17
 
18
18
  ## Common step properties
19
19
 
@@ -22,16 +22,47 @@ Every flow step (regardless of node type) supports these properties:
22
22
  | Property | Type | Required | Description |
23
23
  |----------|------|----------|-------------|
24
24
  | `id` | `string \| number` | **Yes** | Unique identifier for the step |
25
- | `title` | `string` | **Yes** | The label displayed on the node in the flow diagram |
25
+ | `title` | `string` | No | The label displayed on the node in the flow diagram. Defaults to the name of the resource the step references, the actor's, external system's or custom node's name, or the step's `id` (optional since 5.0.0) |
26
26
  | `summary` | `string` | No | A short description shown in the node sidebar |
27
- | `type` | `"node" \| "message" \| "user" \| "actor"` | No | Hint for how the node should be rendered |
27
+ | `type` | `string` | No | Accepted but ignored. The node type comes from the node type property the step uses (see [Flow node types](#flow-node-types)) |
28
28
  | `next_step` | [Step reference](#connecting-steps) | No | The next step in the flow (cannot be used with `next_steps`) |
29
29
  | `next_steps` | [Step reference](#connecting-steps)[] | No | Multiple next steps for branching (cannot be used with `next_step`) |
30
+ | `x-*` | any | No | Your own metadata. Custom step properties must start with `x-` |
30
31
 
31
32
  :::tip Type exclusivity rule
32
- Each step can only use **one** node type property. You cannot combine `message`, `service`, `flow`, `container`, `dataProduct`, `actor`, `custom`, or `externalSystem` on the same step.
33
+ Each step can only use **one** node type property. You cannot combine `message`, `service`, `agent`, `channel`, `flow`, `container`, `dataProduct`, `actor`, `custom`, or `externalSystem` on the same step. From 5.0.0, a step that uses two node types fails the build (see [Mistakes in flow steps](#mistakes-in-flow-steps)).
33
34
  :::
34
35
 
36
+ ## Mistakes in flow steps {#mistakes-in-flow-steps}
37
+
38
+ <AddedIn version="5.0.0" />
39
+
40
+ EventCatalog checks your flow steps when it builds, so mistakes don't fail silently.
41
+
42
+ These fail the build, with a message naming the step and what to change:
43
+
44
+ - **Unknown step properties**, such as a typo like `servce:`. Custom properties must start with `x-` (for example `x-runbook`).
45
+ - **A step that uses two node types**, for example `message` and `service` on the same step. Split it into two steps.
46
+ - **A step that uses both `next_step` and `next_steps`**. Use `next_step` for one next step, or `next_steps` for several.
47
+
48
+ ```txt
49
+ Step "checkout" points at message and service. A step can only be one thing, so split it into two steps.
50
+ Step "checkout" has both next_step and next_steps. Use next_step for one next step, or next_steps for several.
51
+ Unknown property "servce". Custom properties must start with "x-".
52
+ ```
53
+
54
+ These log a warning naming the flow and step, and the build carries on:
55
+
56
+ - **A `next_step` or `next_steps` entry that points at a step id that isn't in the flow.** The arrow is left out.
57
+ - **A reference to a resource that isn't in the catalog** (for example a renamed service). The step is shown as a plain step.
58
+
59
+ ```txt
60
+ [flows] Flow "Checkout" (1.0.0): step "start" leads to step "paymnet", but the flow has no step with that id.
61
+ [flows] Flow "Checkout" (1.0.0): step "start" points at service "OrderServce" (latest), which is not in the catalog, so it is shown as a plain step.
62
+ ```
63
+
64
+ To catch these before you build, run the [EventCatalog Linter](/docs/development/developer-tools/eventcatalog-linter/reference/rules). It reports the same mistakes, including next steps that aren't in the flow (`refs/flow-step-exists`).
65
+
35
66
  ## Connecting steps {#connecting-steps}
36
67
 
37
68
  Use `next_step` or `next_steps` (not both) to connect steps together.
@@ -63,6 +94,7 @@ next_steps:
63
94
  - [actor](#actor) — Represents a person in your flow diagram
64
95
  - [externalSystem](#externalsystem) — Represents an external system in your flow diagram
65
96
  - [message](#message) — Represents an event, command or query resource in EventCatalog
97
+ - [channel](#channel) — Represents a channel resource in EventCatalog (added in EventCatalog 5.0.0)
66
98
  - [service](#service) — Represents a service resource in EventCatalog
67
99
  - [agent](#agent) — Represents an agent resource in EventCatalog (added in EventCatalog 3.41.0)
68
100
  - [flow](#flow) — Represents a flow in EventCatalog (added in EventCatalog 2.34.2)
@@ -73,7 +105,7 @@ next_steps:
73
105
 
74
106
  ### default node type {#default}
75
107
 
76
- A blank node type with just a title in your flow. No additional properties are needed beyond the [common step properties](#common-step-properties).
108
+ A blank node type with just a title in your flow. No additional properties are needed beyond the [common step properties](#common-step-properties). If you leave out `title`, the node shows the step's `id`.
77
109
 
78
110
  ```yml
79
111
  steps:
@@ -151,6 +183,33 @@ steps:
151
183
 
152
184
  ---
153
185
 
186
+ ### channel {#channel}
187
+
188
+ <AddedIn version="5.0.0" />
189
+
190
+ Represents and refers to a [channel](/docs/development/guides/resources/messages/message-channels/introduction) resource in EventCatalog. The step renders as a channel node that links to the channel's docs.
191
+
192
+ #### Channel properties
193
+
194
+ | Property | Type | Required | Description |
195
+ |----------|------|----------|-------------|
196
+ | `id` | `string` | **Yes** | The id of the channel in your catalog |
197
+ | `version` | `string` | No | The version to reference (defaults to `latest`) |
198
+
199
+ ```yml
200
+ steps:
201
+ - id: "orders_topic"
202
+ title: "Orders topic"
203
+ channel:
204
+ id: "orders"
205
+ version: "1.0.0"
206
+ next_step:
207
+ id: "inventory_service"
208
+ label: "Deliver to subscribers"
209
+ ```
210
+
211
+ ---
212
+
154
213
  ### service
155
214
 
156
215
  Represents and refers to a service resource in EventCatalog.
@@ -308,7 +367,7 @@ You can view a UI example of a custom nodes [here](https://demo.eventcatalog.dev
308
367
 
309
368
  | Property | Type | Required | Description |
310
369
  |----------|------|----------|-------------|
311
- | `title` | `string` | **Yes** | The title shown on the node |
370
+ | `title` | `string` | No | The title shown on the node. Defaults to the step's `title` (required before 5.0.0) |
312
371
  | `icon` | `string` | No | Icon shown on the node (see [Heroicons](https://heroicons.com/) for the list of icons) |
313
372
  | `type` | `string` | No | A type label shown on the sidebar of the node (e.g. "Scheduler", "Database") |
314
373
  | `summary` | `string` | No | A short description of the node |
@@ -0,0 +1,112 @@
1
+ ---
2
+ sidebar_position: 5
3
+ keywords:
4
+ - EventCatalog flows
5
+ - Flow diagram
6
+ - Group by
7
+ - Swimlanes
8
+ sidebar_label: Explore flows
9
+ title: Explore flows
10
+ description: Group a flow's steps by domain, system or team, walk through a flow step by step, and see the resources a flow uses.
11
+ ---
12
+
13
+ import AddedIn from '@site/src/components/MDX/AddedIn';
14
+
15
+ Every flow has a diagram. Open it from **Architecture** > **Flow Diagram** in the flow's sidebar, or go to `/visualiser/flows/{flow-id}/{version}`. The same diagram renders on the flow's docs page.
16
+
17
+ From the diagram you can group the steps by who owns them, walk through the flow one step at a time, and open the resources the flow uses.
18
+
19
+ ![Place an Order flow grouped by system, with the Group by menu open and the walkthrough card in the bottom left](./img/flow-group-by.png)
20
+
21
+ :::info Flows don't use levels
22
+ Other diagrams have L1, L2 and L3 levels in the canvas toolbar. Flow diagrams don't have levels. Use **Group by** to see where the steps sit in your architecture.
23
+ :::
24
+
25
+ ## Group steps by domain, system or team
26
+
27
+ <AddedIn version="5.0.0" />
28
+
29
+ Use **Group by** in the top right of the diagram, or press <kbd>G</kbd>, to group the flow's steps:
30
+
31
+ | Option | What it does |
32
+ |--------|--------------|
33
+ | **Nothing** | No groups (the default). |
34
+ | **Domain** | One group per domain. |
35
+ | **System** | One group per system. |
36
+ | **Team** | One group per owning team. |
37
+ | **Domain, then system** | Systems nested inside their domain. |
38
+
39
+ Each option shows how many groups it makes (for example "3 systems"). The menu only lists options the flow has groups for.
40
+
41
+ Under **Show groups as**, choose how the groups are drawn:
42
+
43
+ - **Boxes**: a box around each group's steps. This is the default.
44
+ - **Lanes**: full-width lanes stacked top to bottom, with the group's name down the left-hand side.
45
+
46
+ Lanes don't nest, so **Domain, then system** always uses boxes. If you pick **Lanes** with it, the flow is grouped by domain only.
47
+
48
+ To stop grouping, click the **×** next to **Group by**, or choose **Nothing**.
49
+
50
+ ### Where the groups come from
51
+
52
+ You don't need to change your flows to group them. EventCatalog works out each step's group from your catalog:
53
+
54
+ | Step | Group |
55
+ |------|-------|
56
+ | Services, agents, data stores and data products | The domain and system they belong to, and their owning team. A resource listed by a domain directly belongs to that domain, otherwise it belongs to the domain of its system. |
57
+ | Systems | That system, and the domain that lists it. |
58
+ | Messages, channels, custom steps and sub-flows | The group of the step before them. A step at the start of the flow takes the group of the step it leads to. |
59
+ | Actors and external systems | A group of their own, named **External**. |
60
+
61
+ The team group comes from the resource's `owners`. When a resource has several owners, a team wins over a user. Hidden teams and users are left out.
62
+
63
+ Steps that don't belong to any group sit outside the boxes. With lanes, they go in a lane named after what's missing, for example **No system**.
64
+
65
+ ### Share a grouped flow
66
+
67
+ The grouping is kept in the URL, so a link opens the flow grouped the same way:
68
+
69
+ ```txt
70
+ /visualiser/flows/place-an-order/1.0.0?group=system&groupStyle=boxes
71
+ ```
72
+
73
+ | Parameter | Values |
74
+ |-----------|--------|
75
+ | `group` | `domain`, `system`, `team`, `domain-system` |
76
+ | `groupStyle` | `boxes`, `lanes` |
77
+
78
+ To embed a flow that starts grouped, use the [`lanes` prop on the `<Flow />` component](/docs/development/components/components/flow), for example `<Flow id="place-an-order" lanes="team" />`.
79
+
80
+ ### What changes while a flow is grouped
81
+
82
+ - **Save Layout** is hidden in dev mode, because grouped steps are placed inside their groups. Stop grouping to save a layout.
83
+ - **Copy as mermaid** and **Render as mermaid** leave the groups out.
84
+ - Sub-flows can't be expanded inline.
85
+
86
+ ## Walk through a flow
87
+
88
+ The walkthrough card in the bottom left of the diagram steps through the flow one hop at a time. It names the step the flow starts at and how many steps the flow has.
89
+
90
+ 1. Click **Start** on the **Walk through this flow** card. The walkthrough starts at the first step.
91
+ 2. Click **Next**, or press <kbd>→</kbd>, to move to the next step. Click **Back**, or press <kbd>←</kbd>, to go back.
92
+ 3. At a branch, pick the way on from the dropdown (or press its number, <kbd>1</kbd> to <kbd>9</kbd>), then click **Next**.
93
+ 4. At the end of the flow, click **Restart** to walk through again, or **Finish** to see the whole flow. Press <kbd>Esc</kbd> at any time to stop.
94
+
95
+ While you walk through:
96
+
97
+ - The steps you've walked are numbered, and the current step is ringed.
98
+ - The card shows the current step's type, title and summary. Click **More** to read a long summary in full.
99
+ - Click the link icon on the card to open the current step's docs.
100
+ - If you change the grouping, the walkthrough carries on from the same step.
101
+
102
+ The walkthrough shows on the flow's diagram page and docs page. On a [`<Flow />` embed](/docs/development/components/components/flow), turn it on with `walkthrough={true}`.
103
+
104
+ ## See the resources a flow uses
105
+
106
+ <AddedIn version="5.0.0" />
107
+
108
+ Every flow that references catalog resources gets a **Resources** page. Open it from **Quick Reference** > **Resources** in the flow's sidebar, or go to `/docs/flows/{flow-id}/{version}/resources`.
109
+
110
+ The page lists the services, messages (events, commands and queries), agents, data stores, data products and sub-flows the flow's steps use, and the decision records (ADRs) that apply to the flow. Use the filters to narrow the list by type, or search by name.
111
+
112
+ The **Resources** link only shows in the sidebar when the flow has at least one resource to list.