@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
@@ -8,10 +8,6 @@ title: Components
8
8
  description: Component list for custom pages
9
9
  ---
10
10
 
11
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
12
-
13
- <PlanBanner plan="Scale" />
14
-
15
11
  You can add custom EventCatalog components to your custom pages.
16
12
 
17
13
  [See the list of components and how to use them](/docs/development/components/using-components).
@@ -10,10 +10,8 @@ description: Adding owners to custom pages with EventCatalog.
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
14
  <AddedIn version="2.33.0" />
16
- <PlanBanner plan="Scale" />
17
15
 
18
16
  Owners in EventCatalog are either **users** or **teams** and are **optional**.
19
17
 
@@ -11,10 +11,8 @@ keywords:
11
11
  ---
12
12
 
13
13
  import AddedIn from '@site/src/components/MDX/AddedIn';
14
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
15
14
 
16
- <AddedIn version="3.15.0" />
17
- <PlanBanner plan="Scale" />
15
+ <AddedIn version="3.15.1" />
18
16
 
19
17
  Resource-level documentation lets you attach documentation pages directly to any resource in your catalog. Instead of keeping ADRs, runbooks, contracts, and guides in a separate tool, you can place them alongside the resource they describe.
20
18
 
@@ -11,11 +11,9 @@ keywords:
11
11
  ---
12
12
 
13
13
  import AddedIn from '@site/src/components/MDX/AddedIn';
14
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
15
14
  import ProjectTree from '@site/src/components/MDX/ProjectTree';
16
15
 
17
- <AddedIn version="3.15.0" />
18
- <PlanBanner plan="Scale" />
16
+ <AddedIn version="3.15.1" />
19
17
 
20
18
  ## Adding resource-level documentation
21
19
 
@@ -63,7 +61,6 @@ Each doc file supports the following frontmatter.
63
61
  | `order` | No | Explicit sort position within the group. |
64
62
  | `badges` | No | Badges shown on the doc page. |
65
63
 
66
-
67
64
  #### Example of resource-level documentation
68
65
 
69
66
  ```mdx title="services/OrdersService/docs/01-deployment.mdx"
@@ -10,11 +10,9 @@ keywords:
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
  import ProjectTree from '@site/src/components/MDX/ProjectTree';
15
14
 
16
15
  <AddedIn version="2.x.0" />
17
- <PlanBanner plan="Scale" />
18
16
 
19
17
  When you group resource docs into subdirectories, each subdirectory becomes a section in the resource sidebar. By default, the section label is the folder name and sections are sorted alphabetically.
20
18
 
@@ -9,11 +9,9 @@ keywords:
9
9
  ---
10
10
 
11
11
  import AddedIn from '@site/src/components/MDX/AddedIn';
12
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
13
12
  import ProjectTree from '@site/src/components/MDX/ProjectTree';
14
13
 
15
- <AddedIn version="3.15.0" />
16
- <PlanBanner plan="Scale" />
14
+ <AddedIn version="3.15.1" />
17
15
 
18
16
  ## How versioning works
19
17
 
@@ -32,6 +32,21 @@ Embed flows into your pages.
32
32
  | `search` (optional) | `boolean` | `false` | Show or hide the search bar in the flow. Accepts `true`/`false` or `"true"`/`"false"`. |
33
33
  | `walkthrough` (optional) | `boolean` | `false` | Show or hide the step walkthrough controls. Accepts `true`/`false` or `"true"`/`"false"`. |
34
34
  | `mode` (optional) | `string` ("simple" or "full") | `"simple"` | `simple` renders the flow in a simplified view without descriptions. `full` renders descriptions and other information.|
35
+ | `lanes` (optional) | `string` (`"domain"`, `"system"`, `"team"` or `"domain-system"`) | (empty) | Start the flow with its steps grouped by domain, system, team, or domains with their systems nested inside. Groups are drawn as boxes. Added in 5.0.0. |
36
+
37
+ ### Start a flow grouped
38
+
39
+ <AddedIn version="5.0.0" />
40
+
41
+ Use `lanes` to embed a flow with its steps already grouped. Groups come from your catalog: each step's domain, system and owning team.
42
+
43
+ ```jsx /domains/Orders/index.mdx
44
+ <Flow id="place-an-order" lanes="team" />
45
+ ```
46
+
47
+ The groups are drawn as boxes around their steps. Readers can switch to lanes, or group the flow another way, from the **Group by** menu. If the flow has no groups of that kind (for example no step belongs to a team), or the value isn't one of the four above, the flow renders ungrouped. A `group` parameter in the page URL takes priority over `lanes`.
48
+
49
+ Read more about [grouping flows](/docs/development/guides/resources/flows/explore-flows#group-steps-by-domain-system-or-team).
35
50
 
36
51
  :::tip Multiple embeds per page
37
52
  You can embed multiple `<Flow />` components on the same page and each one renders independently.
@@ -46,6 +61,8 @@ Flow visualizations include the same interactive controls as NodeGraph component
46
61
 
47
62
  Switch between React Flow and Mermaid view modes, export as Mermaid diagram code, or share URLs with your team.
48
63
 
64
+ Flows also have a **Group by** menu in the top right (or press <kbd>G</kbd>) to group the steps by domain, system, team, or domain then system, drawn as boxes or lanes. The Mermaid view and export leave the groups out. See [Explore flows](/docs/development/guides/resources/flows/explore-flows).
65
+
49
66
  [Read more about interactive controls](/docs/development/components/components/nodegraph#interactive-controls)
50
67
 
51
68
  Flow visualizations also support [layout persistence](/docs/development/components/components/nodegraph#layout-persistence) in dev mode, allowing you to save custom node positions.
@@ -11,7 +11,9 @@ import AddedIn from '@site/src/components/MDX/AddedIn';
11
11
 
12
12
  A component to visually render your information.
13
13
 
14
- The `<NodeGraph/>` component is supported in domains, services, and all messages, changelogs, and custom documentation pages.
14
+ The `<NodeGraph/>` component is supported in domains, systems, services, and all messages, changelogs, and custom documentation pages.
15
+
16
+ On a domain page, `<NodeGraph/>` renders the domain's [Diagram](/docs/development/guides/domains/visualize-domains/domain-diagram), opening at level 1 (the domain, its systems, and the domains it talks to).
15
17
 
16
18
  ### Single NodeGraph
17
19
 
@@ -44,17 +46,44 @@ All NodeGraph visualizations include interactive controls for better viewing, ex
44
46
 
45
47
  ![NodeGraph interactive controls](./img/interactive-controls.png)
46
48
 
47
- ### View modes
49
+ ### Canvas toolbar
50
+
51
+ <AddedIn version="5.0.0" />
52
+
53
+ A floating toolbar sits at the bottom of the canvas. It has:
54
+
55
+ - **L1**, **L2** and **L3**: the levels of detail. They are the same on every diagram:
56
+ - **L1**: domains, systems and their relationships.
57
+ - **L2**: services and data stores.
58
+ - **L3**: adds messages and channels.
59
+ - Tools for the resource shown. For example, a domain's Diagram page has **Highlight cross-domain communication**, which picks out the edges to and from other domains.
60
+ - **Simulate messages**: animates messages moving along the edges.
61
+ - **Show minimap** / **Hide minimap**.
62
+ - **Fit to view**: zooms to fit the whole diagram.
63
+
64
+ Levels a diagram doesn't have are greyed out. For example, L1 is greyed out on a service's diagram, which has no domains or systems to show. Hover a greyed out level to see why.
65
+
66
+ The level is kept in the URL (`?level=1`, `?level=2` or `?level=3`), so a shared link opens at the same level. The level you pick is remembered for each kind of diagram. Flows and entity diagrams don't show levels.
48
67
 
49
- Switch between two visualization modes using the view switcher dropdown.
68
+ ### Legend
50
69
 
51
- **React Flow** - Interactive node-based visualization with drag and pan controls.
70
+ Click an entry in the legend to hide those nodes from the diagram, and click it again to show them. The diagram lays itself out again without them, and the entry fades while hidden. When you hide messages or channels, the nodes on either side stay connected.
52
71
 
53
- **Mermaid** - Standard Mermaid diagram view with automatic layout and pan/zoom controls.
72
+ Hidden entries stay hidden when you switch levels.
54
73
 
55
- ### Export as Mermaid
74
+ ### Canvas menu
56
75
 
57
- Copy the NodeGraph as Mermaid diagram code to your clipboard. The diagram preserves all nodes, edges, and styling information.
76
+ Open the menu (three dots next to the diagram title) and select **Canvas** for these options:
77
+
78
+ - **Render as mermaid**: switch between the interactive diagram and a Mermaid diagram with automatic layout and pan/zoom controls.
79
+ - **Simulate Messages**: animate messages moving along the edges.
80
+ - **Hide channels**: hide channel nodes.
81
+ - **Hide messages**: hide messages and channels. This is the same view as level 2.
82
+ - **Show minimap**, **Fit to view** and **Find on canvas**.
83
+
84
+ ### Copy as Mermaid {#export-as-mermaid}
85
+
86
+ Select **Copy as mermaid** in the menu to copy the NodeGraph as Mermaid diagram code to your clipboard. The diagram preserves all nodes, edges, and styling information.
58
87
 
59
88
  Useful for sharing architectures with LLMs, documentation tools, or pasting into Mermaid-compatible renderers like [mermaid.live](https://mermaid.live).
60
89
 
@@ -62,9 +91,9 @@ Useful for sharing architectures with LLMs, documentation tools, or pasting into
62
91
  If you export large NodeGraphs and they fail to render as Mermaid diagrams, increase the `maxTextSize` configuration. [Learn more about maxTextSize](/docs/api/config#mermaid).
63
92
  :::
64
93
 
65
- ### Share URL
94
+ ### Share Link
66
95
 
67
- Copy the current page URL to share the visualization with your team.
96
+ Select **Share Link** in the menu to copy a link to the visualization and share it with your team.
68
97
 
69
98
  ## Layout persistence
70
99
 
@@ -103,7 +132,11 @@ This deletes the saved layout file and reloads the page with auto-calculated pos
103
132
 
104
133
  Layout files are keyed by resource (collection/id/version), so the same layout is used whether viewing in the visualizer or embedded in documentation.
105
134
 
106
- Works across all visualizers including services, events, flows, domains, entity maps, and designs.
135
+ Works across all visualizers including services, events, flows, domains, systems, entity diagrams, and designs.
136
+
137
+ :::note Layouts from before v5
138
+ Domain and system diagrams are laid out differently in EventCatalog v5. Layouts saved for the old domain and system Resource Diagram pages don't carry over to the new Diagram pages. Layouts saved for a system's context diagram carry over to level 1 of its Diagram.
139
+ :::
107
140
 
108
141
  **Example layout file structure:**
109
142
 
@@ -10,7 +10,6 @@ title: RemoteSchema
10
10
  description: Component for fetching and rendering remote schemas in EventCatalog
11
11
  ---
12
12
 
13
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
14
13
  import AddedIn from '@site/src/components/MDX/AddedIn';
15
14
 
16
15
  <AddedIn version="2.52.0" />
@@ -49,8 +48,6 @@ The `<RemoteSchema/>` component only works in Server-Side Rendering (SSR) mode.
49
48
 
50
49
  ### Fetching from Private APIs
51
50
 
52
- <PlanBanner plan="Scale" />
53
-
54
51
  For private APIs requiring authentication, you can provide headers:
55
52
 
56
53
  ```jsx /events/MyEvent/index.mdx
@@ -105,7 +102,7 @@ The component automatically detects JSON Schema format and renders an interactiv
105
102
  | `url` (required) | `string` | (empty) | The URL to fetch the schema from. Supports environment variable templating with `${VAR_NAME}` syntax. |
106
103
  | `title` (optional) | `string` | "Remote Schema" | Title to display above the schema |
107
104
  | `maxHeight` (optional) | `string` | "400" | Maximum height of the schema viewer in pixels |
108
- | `headers` (optional) | `object` | `{}` | HTTP headers for authentication (requires EventCatalog Scale plan) |
105
+ | `headers` (optional) | `object` | `{}` | HTTP headers for authentication |
109
106
  | `jsonPath` (optional) | `string` | (empty) | [JSONPath expression](https://github.com/dchester/jsonpath) to extract specific parts of the response |
110
107
  | `renderAs` (optional) | `string` | "auto" | Rendering mode: "auto", "schema", or "raw" |
111
108
 
@@ -31,6 +31,20 @@ import ServiceCard from '@catalog/components/service-card.astro';
31
31
  | `.astro` | Reusable UI, props, data fetching, browser scripts, and styling |
32
32
  | `.mdx` | Reusable Markdown content |
33
33
 
34
+ ### React components
35
+
36
+ React components in your catalog's `components` directory run on React 19 from EventCatalog v5.
37
+
38
+ If a component uses an API that React 19 removed, update it before you upgrade:
39
+
40
+ - `defaultProps` on function components: use default values in the props instead.
41
+ - `propTypes`: remove them, or use TypeScript for prop types.
42
+ - String refs: use `useRef` or callback refs.
43
+ - `ReactDOM.render`: use `createRoot` from `react-dom/client`.
44
+ - `findDOMNode`: use a ref to the DOM element.
45
+
46
+ Read the [React 19 upgrade guide](https://react.dev/blog/2024/04/25/react-19-upgrade-guide) for the full list of changes.
47
+
34
48
  ## Astro component structure
35
49
 
36
50
  Astro components have a component script and a component template.
@@ -11,8 +11,6 @@ title: Themes
11
11
  description: Customize the look and feel of your catalog with built-in themes, dark/light mode, and custom themes
12
12
  ---
13
13
 
14
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
15
-
16
14
  EventCatalog comes with a selection of built-in themes and supports both light and dark modes out of the box.
17
15
 
18
16
  ## Choosing a theme
@@ -38,7 +36,6 @@ EventCatalog includes the following built-in themes:
38
36
  | `sunset` | Orange accent - warm and energetic |
39
37
  | `forest` | Dark green accent - natural and grounded |
40
38
 
41
-
42
39
  ## Light and dark mode
43
40
 
44
41
  EventCatalog supports both light and dark modes. Users can toggle between modes using the theme switcher in the header.
@@ -61,8 +58,6 @@ If no preference is stored, EventCatalog automatically follows the user's system
61
58
 
62
59
  ## Creating custom themes
63
60
 
64
- <PlanBanner plan="Scale" />
65
-
66
61
  Custom themes allow you to fully brand EventCatalog with your organization's colors. You define your theme in `eventcatalog.styles.css` using CSS variables.
67
62
 
68
63
  ### Step 1: Create your theme CSS
@@ -13,7 +13,7 @@ description: Configure resource metadata search or opt-in to full-content indexe
13
13
 
14
14
  import AddedIn from '@site/src/components/MDX/AddedIn';
15
15
 
16
- <AddedIn version="3.36.0" />
16
+ <AddedIn version="3.36.1" />
17
17
 
18
18
  EventCatalog ships with two search modes. The default is a fast metadata search that works with no extra configuration. An opt-in indexed mode adds full-content search powered by [Pagefind](https://pagefind.app/).
19
19
 
@@ -11,10 +11,8 @@ description: Understand custom pages and API routes in EventCatalog.
11
11
  ---
12
12
 
13
13
  import AddedIn from '@site/src/components/MDX/AddedIn';
14
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
15
14
 
16
15
  <AddedIn version="4.1.1" />
17
- <PlanBanner plan="Scale" />
18
16
 
19
17
  EventCatalog gives you a structured catalog out of the box, but every organization eventually needs pages that are specific to how they work.
20
18
 
@@ -91,7 +91,13 @@ export default {
91
91
  };
92
92
  ```
93
93
 
94
- If EventCatalog finds API routes in `pages/api` during a static build, the build fails and asks you to enable server mode or remove the `pages/api` directory.
94
+ If EventCatalog finds API routes in `pages/api` during a static build, the build fails and asks you to enable server mode or remove the `pages/api` directory. `eventcatalog dev` still serves the routes, and logs the same message as a warning.
95
+
96
+ :::info Upgrading from v4
97
+
98
+ In v4, catalogs without a Scale license skipped custom pages, so a static build with a `pages/api` directory still passed. From v5, custom pages are served for every catalog, and a static build with `pages/api` fails until you set `output: 'server'` or remove the directory.
99
+
100
+ :::
95
101
 
96
102
  ## Import aliases
97
103
 
@@ -124,7 +124,7 @@ Because a `$token` inside `pages` splices in that section's items, extending a g
124
124
  "title": "Quick Reference",
125
125
  "icon": "BookOpen",
126
126
  "pages": [
127
- // Splices in the generated Quick Reference items (Overview, Changelog, ...)
127
+ // Splices in the generated Quick Reference items (Overview, Resources, Changelog, ...)
128
128
  "$quick-reference",
129
129
  // ...followed by your own pages
130
130
  "[[doc|guides/onboarding]]",
@@ -8,26 +8,19 @@ keywords:
8
8
  - iframe
9
9
  - developer portal
10
10
  - internal application
11
- - Scale
12
11
  ---
13
12
 
14
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
15
-
16
- <PlanBanner plan="Scale" />
17
-
18
13
  You can embed EventCatalog pages in developer portals, internal tools, intranets, and other web applications. Your teams can explore architecture information in the application where they already work while EventCatalog remains the source of the documentation.
19
14
 
20
- Embedding EventCatalog requires an EventCatalog Scale license. See [Getting a license key for EventCatalog Scale](/docs/development/license-keys/plans).
21
-
22
15
  ## What you can embed
23
16
 
24
17
  | Feature | What users can do in the embedded view |
25
18
  | --- | --- |
26
19
  | Resource documentation | Read the documentation for a domain, system, service, message, flow, team, or another catalog resource. |
27
- | Resource visualizer | Explore the selected resource and its relationships. |
20
+ | Resource visualizer | Explore the selected resource and its relationships, at the levels its diagram supports. |
28
21
  | Architecture Graph | Explore the catalog-wide graph or focus it on a resource with a relationship depth of 1, 2, or 3. |
29
- | System Context Maps | View the catalog-wide system overview or the context surrounding one system. |
30
- | Entity maps | Explore the entities and relationships associated with a resource. |
22
+ | System Context Diagram | View the catalog-wide system overview or the context surrounding one system. |
23
+ | Entity Diagram | Explore the entities and relationships associated with a resource. |
31
24
  | Flows | Follow the steps, services, and messages in a business or technical flow. |
32
25
  | Discovery tables | Browse and filter catalog resources such as services, events, commands, and queries. |
33
26
  | Schema explorer | Search schemas, inspect their contents, and see the resources that use them. |
@@ -52,7 +45,6 @@ The requested theme only affects that embedded page. It does not replace the vis
52
45
 
53
46
  ## Before you embed
54
47
 
55
- - Build and deploy EventCatalog with a valid Scale license.
56
48
  - Use an EventCatalog URL that users of the host application can reach from their browsers.
57
49
  - If EventCatalog is authenticated, verify that users can authenticate from the embedded context.
58
50
  - Give the iframe's parent a defined height. EventCatalog fills the space the host application provides.
@@ -119,17 +111,30 @@ Replace `https://catalog.example.com` with the URL of your deployed catalog.
119
111
  | Resource documentation | `/docs/{collection}/{id}/{version}?embed=true` |
120
112
  | Resource visualizer | `/visualiser/{collection}/{id}/{version}?embed=true` |
121
113
  | Discovery table | `/discover/{collection}?embed=true` |
122
- | Entity map | `/visualiser/{collection}/{id}/{version}/entity-map?embed=true` |
123
- | Data dependency view | `/visualiser/{collection}/{id}/{version}/data?embed=true` |
114
+ | Entity Diagram | `/visualiser/{collection}/{id}/{version}/entity-map?embed=true` |
124
115
  | Schema explorer | `/schemas/explorer?embed=true` |
125
116
  | Schema details | `/schemas/{type}/{id}/{version}?embed=true` |
126
117
  | Architecture Graph | `/visualiser/graph?embed=true` |
127
- | System Context Map overview | `/visualiser/system-context-map?embed=true` |
128
- | System-specific context map | `/visualiser/systems/{id}/{version}/context?embed=true` |
118
+ | System Context Diagram overview | `/visualiser/system-context-map?embed=true` |
119
+ | System diagram | `/visualiser/systems/{id}/{version}?embed=true` |
129
120
  | Flow visualizer | `/visualiser/flows/{id}/{version}?embed=true` |
130
121
 
131
122
  Collections use their plural route names, such as `domains`, `systems`, `services`, `events`, `commands`, `queries`, `flows`, and `entities`. Schema detail pages support message types such as `events`, `commands`, and `queries`, as well as data product contracts.
132
123
 
124
+ ### Open a diagram at a level
125
+
126
+ Visualizer diagrams have three levels: `1` for domains, systems and their relationships, `2` for services and data stores, and `3` adding messages and channels. Add `level` to open the embedded diagram at a level:
127
+
128
+ ```text
129
+ https://catalog.example.com/visualiser/domains/Payments/1.0.0?embed=true&level=2
130
+ ```
131
+
132
+ :::info Upgrading from v4
133
+
134
+ The service data dependency view (`/data`), the system context view (`/context`) and the domain systems view (`/systems-context`) now redirect to a level of the resource's diagram. The redirect drops the query string, including `embed=true`, so update embedded URLs to the diagram URL with a `level` instead.
135
+
136
+ :::
137
+
133
138
  ### Focus the Architecture Graph
134
139
 
135
140
  Use `focus={collection}/{id}` to select the initial resource and `depth` to choose how many relationship hops are visible. `depth` accepts `1`, `2`, or `3`.
@@ -152,16 +157,6 @@ module.exports = {
152
157
 
153
158
  ## Troubleshooting
154
159
 
155
- ### EventCatalog shows a license overlay
156
-
157
- Confirm that the deployed catalog was built or started with a valid Scale license. Add the key to the EventCatalog project's environment:
158
-
159
- ```bash title=".env"
160
- EVENTCATALOG_SCALE_LICENSE_KEY=your-scale-license-key
161
- ```
162
-
163
- Then rebuild and redeploy the catalog. See [Getting a license key for EventCatalog Scale](/docs/development/license-keys/plans).
164
-
165
160
  ### Navigation is still visible
166
161
 
167
162
  Confirm that the URL contains `embed=true`, including the exact lowercase value `true`.
@@ -86,10 +86,15 @@ ENV HOST=0.0.0.0
86
86
  ENV PORT=3000
87
87
  EXPOSE 3000
88
88
 
89
- # Start the server
90
- CMD npm run start
89
+ # Start the server. The exec form (a JSON array) passes `docker stop` (SIGTERM) on to the server,
90
+ # so it stops straight away rather than being killed after Docker's timeout.
91
+ CMD ["npm", "run", "start"]
91
92
  ```
92
93
 
94
+ :::tip
95
+ Use the exec form of `CMD` (`CMD ["npm", "run", "start"]`) rather than the shell form (`CMD npm run start`). With the shell form, a shell runs as the container's first process and doesn't pass signals on, so `docker stop` and Kubernetes pod shutdowns wait for their timeout and then kill the server.
96
+ :::
97
+
93
98
  Then you can build the docker image with:
94
99
 
95
100
  ```bash
@@ -68,6 +68,22 @@ The path in `schemaPath`, `schemas[]`, `specifications` or a data product contra
68
68
 
69
69
  For `styles.icon`, paths starting with `/` are checked against the catalog's `public/` folder. If your static assets live elsewhere, set `['error', { publicDir: 'static' }]` or disable icon checks with `{ icons: false }`.
70
70
 
71
+ ## "… leads to step …, but the flow has no step with that id"
72
+
73
+ ```
74
+ 13:16 ✖ error Step "start" leads to step "paymnet", but the flow has no step with that id. [steps[0].next_step] (refs/flow-step-exists)
75
+ ```
76
+
77
+ A flow step's `next_step` or `next_steps` points at a step that isn't in the flow, usually a typo. Correct the id so it matches another step's `id` in the same flow.
78
+
79
+ ## "Step … points at … A step can only be one thing"
80
+
81
+ ```
82
+ 9:5 ✖ error steps.0.service: Step "checkout" points at message and service. A step can only be one thing, so split it into two steps. [steps.0.service] (schema/required-fields)
83
+ ```
84
+
85
+ A flow step uses more than one node type. EventCatalog fails the build on this. Split it into one step per node type and connect them with `next_step`. The same applies to a step that has both `next_step` and `next_steps`: keep one.
86
+
71
87
  ## "version: Expected string, but received undefined"
72
88
 
73
89
  ```
@@ -23,6 +23,7 @@ Rules are grouped into five categories. Each rule can be set to `'error'`, `'war
23
23
  | [`refs/valid-version-range`](#refsvalid-version-range) | error | |
24
24
  | [`refs/channel-exists`](#refschannel-exists) | error | |
25
25
  | [`refs/container-exists`](#refscontainer-exists) | error | |
26
+ | [`refs/flow-step-exists`](#refsflow-step-exists) | error | |
26
27
  | [`refs/file-exists`](#refsfile-exists) | error | `icons`, `publicDir` |
27
28
  | [`refs/orphan-messages`](#refsorphan-messages) | warn | |
28
29
  | [`best-practices/summary-required`](#best-practicessummary-required) | error | |
@@ -49,6 +50,15 @@ A required field is missing from the frontmatter. Which fields are required depe
49
50
 
50
51
  **Fix:** add the field.
51
52
 
53
+ This rule also reports flow steps that use more than one node type (for example `message` and `service`), or both `next_step` and `next_steps`. EventCatalog 5 fails the build on both.
54
+
55
+ ```
56
+ 9:5 ✖ error steps.0.service: Step "checkout" points at message and service. A step can only be one thing, so split it into two steps. [steps.0.service] (schema/required-fields)
57
+ 19:5 ✖ error steps.1.next_steps: Step "pay" has both next_step and next_steps. Use next_step for one next step, or next_steps for several. [steps.1.next_steps] (schema/required-fields)
58
+ ```
59
+
60
+ **Fix:** split the step into one step per node type, and use `next_step` for one next step or `next_steps` for several. See [Model flow steps](/docs/development/guides/resources/flows/model-flow-steps#mistakes-in-flow-steps).
61
+
52
62
  ### `schema/valid-type`
53
63
 
54
64
  A field has the wrong type — a string where a list is expected, a missing required field reported as `undefined`, and so on.
@@ -119,6 +129,14 @@ The same check for keys inside nested objects and arrays (`sends[0].too`, `detai
119
129
 
120
130
  Arbitrary keys are permitted where the schema allows them — flow step `custom.properties`, channel `parameters`, and any `producers`/`consumers` object.
121
131
 
132
+ :::warning Unknown flow step properties fail the build
133
+ From EventCatalog 5.0.0, unknown properties on a flow step (such as `steps[1].servce`) fail the build unless they start with `x-`. The linter still reports them under this rule, as a warning by default. To catch them as errors, promote the rule for your flows with an [override](../how-to/configure-rules#apply-different-rules-to-different-folders), for example `overrides: [{ files: ['**/flows/**'], rules: { 'schema/unknown-nested-field': 'error' } }]`.
134
+
135
+ ```
136
+ 15:5 ⚠ warning Unknown property "steps[1].servce". Did you mean "service"? [steps[1].servce] (schema/unknown-nested-field)
137
+ ```
138
+ :::
139
+
122
140
  ## Reference validation
123
141
 
124
142
  These rules check that everything your frontmatter points at actually exists. References can be plain ids (`- order-service`) or objects (`- id: order-service`, optionally with `version`). Version matching follows the [versions reference](./versions).
@@ -159,7 +177,7 @@ The referenced resource exists, but no version of it satisfies the reference. Th
159
177
 
160
178
  ### `refs/channel-exists`
161
179
 
162
- A channel referenced from `sends[].to`, `receives[].from`, a message's `channels`, or a channel's `routes`/`channels` doesn't exist (or doesn't exist at that version).
180
+ A channel referenced from `sends[].to`, `receives[].from`, a message's `channels`, a channel's `routes`/`channels`, or a flow step's `channel` doesn't exist (or doesn't exist at that version).
163
181
 
164
182
  ```
165
183
  11:9 ✖ error Referenced channel "orders-topic" does not exist. Did you mean "orders"? [sends[0].to[0]] (refs/channel-exists)
@@ -173,6 +191,18 @@ A container referenced from `writesTo`, `readsFrom`, a system's `containers`, or
173
191
  13:5 ✖ error Referenced container "orders-db" does not have a version matching "9.0.0". Available versions: 1.0.0 [writesTo[0]] (refs/container-exists)
174
192
  ```
175
193
 
194
+ ### `refs/flow-step-exists`
195
+
196
+ <AddedIn version="1.2.0" pkg="@eventcatalog/linter" url="https://github.com/event-catalog/eventcatalog" />
197
+
198
+ A flow step's `next_step` or `next_steps` points at a step id that isn't in the flow. EventCatalog leaves the arrow out of the diagram and logs a warning, so a typo here quietly breaks the flow.
199
+
200
+ ```
201
+ 13:16 ✖ error Step "start" leads to step "paymnet", but the flow has no step with that id. [steps[0].next_step] (refs/flow-step-exists)
202
+ ```
203
+
204
+ **Fix:** correct the id so it matches the `id` of another step in the same flow, or add the missing step.
205
+
176
206
  ### `refs/file-exists`
177
207
 
178
208
  <AddedIn version="1.1.17" pkg="@eventcatalog/linter" url="https://github.com/event-catalog/eventcatalog" />
@@ -65,7 +65,7 @@ All resources are checked for frontmatter schema conformance, unknown keys, owne
65
65
  | Service, Agent | `sends`, `receives` (incl. channels), `writesTo`, `readsFrom`, `flows`, `entities` (services only) |
66
66
  | Event, Command, Query | `producers`, `consumers`, `channels`, `messageChannels`; orphan detection; `schemaPath` / `schemas[]` files |
67
67
  | Channel | `channels`, `routes`, `messages` |
68
- | Flow | each step's `message`, `service`, `agent`, `flow`, `container`, `dataProduct` |
68
+ | Flow | each step's `message`, `service`, `agent`, `system`/`systems`, `channel`, `flow`, `container`, `dataProduct`; each step's `next_step`/`next_steps` points at a step in the flow |
69
69
  | Entity | `properties[].references`, `services`, `domains` |
70
70
  | Container | `services`, `servicesThatWriteToContainer`, `servicesThatReadFromContainer`, `dataProductsThatWriteToContainer`, `dataProductsThatReadFromContainer` |
71
71
  | Data product | `inputs`, `outputs` (any linkable type), `outputs[].contract.path` file |
@@ -5,20 +5,12 @@ title: Architecture Change Detection
5
5
  description: Know when your event-driven architecture changes. Get notified when services start or stop producing and consuming messages.
6
6
  ---
7
7
 
8
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
9
-
10
- <PlanBanner plan="Scale" />
11
-
12
8
  Services get added. Consumers change. Producers disappear. In event-driven systems, these relationship changes often go unnoticed until something breaks downstream.
13
9
 
14
10
  **Architecture Change Detection** compares your catalog across branches and tells you exactly what changed: which services started consuming a message, which stopped producing one, and who is affected.
15
11
 
16
12
  You can configure webhooks to send notifications to tools like Slack or PagerDuty when changes are detected, including relationship changes, deprecations, and schema updates. Rules can also be configured to block CI/CD pipelines entirely using the `fail` action.
17
13
 
18
- :::info Scale plan required
19
- Architecture Change Detection requires an [EventCatalog Scale plan](https://eventcatalog.dev/pricing).
20
- :::
21
-
22
14
  ## How it works
23
15
 
24
16
  1. Define rules in `governance.yaml` at the root of your catalog
@@ -58,5 +50,3 @@ This rule detects whenever any service starts or stops consuming any message, an
58
50
 
59
51
  Using the [`status` field](/docs/development/governance/architecture-change-detection/ci-cd#include-a-status-label) you can choose to detect changes that are proposed vs approved. This can be useful when you want to detect changes that are proposed vs approved in your architecture.
60
52
 
61
-
62
-
@@ -7,10 +7,6 @@ description: Block merges automatically when governance rules trigger
7
7
 
8
8
  Use the `fail` action to exit the CLI with code `1`, turning governance checks into hard gates that prevent merges when architectural rules are violated. Without `fail`, triggered rules only notify -- the CLI always exits `0`.
9
9
 
10
- :::info Scale plan required
11
- Architecture Change Detection requires an [EventCatalog Scale plan](https://eventcatalog.dev/pricing).
12
- :::
13
-
14
10
  ## Add the fail action
15
11
 
16
12
  Add `type: fail` to any rule that should block the pipeline. The `message` field is optional but recommended -- it explains to the developer exactly what needs to happen before the PR can merge.
@@ -13,7 +13,7 @@ import AddedIn from '@site/src/components/MDX/AddedIn';
13
13
 
14
14
  <AddedIn version="4.5.0" />
15
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.
16
+ The architecture graph is a force-directed view of every resource in your catalog and the relationships between them. Unlike the [System Context Diagram](/docs/development/guides/systems/system-context-maps), which needs systems to exist, the architecture graph works for any catalog.
17
17
 
18
18
  Use this view when you want to answer questions like:
19
19
 
@@ -5,11 +5,8 @@ title: Adding Analytics
5
5
  description: Track page views and user behavior across your catalog
6
6
  ---
7
7
 
8
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
9
8
  import AddedIn from '@site/src/components/MDX/AddedIn';
10
9
 
11
- <PlanBanner plan="Scale" />
12
-
13
10
  EventCatalog supports analytics integrations that let you track how your team navigates and uses your catalog. Connect your existing analytics tools to understand which services, events, and flows your team visits most.
14
11
 
15
12
  Three providers are supported: **Google Analytics 4**, **Google Tag Manager**, and **PostHog**. Multiple providers can be enabled at the same time.
@@ -131,7 +128,3 @@ Custom events are forwarded to all configured providers simultaneously.
131
128
  ## Missing an integration?
132
129
 
133
130
  If you need support for an analytics provider not listed here, [open a GitHub issue](https://github.com/boyney123/eventcatalog/issues) or [join the Discord community](https://discord.gg/3rjaZMmrAm) and let us know. We are always looking to expand our integrations based on what teams are using.
134
-
135
- :::info Scale plan required
136
- Analytics integrations require an [EventCatalog Scale plan](https://eventcatalog.dev/pricing). If you configure integrations without a valid license, a warning is shown during build.
137
- :::
@@ -24,8 +24,8 @@ _See [subdomain example](https://demo.eventcatalog.dev/docs/domains/E-Commerce/1
24
24
 
25
25
  #### Domains Visualizer (with subdomains)
26
26
 
27
- When you reference a subdomain from a domain, it will appear in the domains visualizer.
28
- You can use the legend to highlight resources that are part of a subdomain.
27
+ When you reference a subdomain from a domain, it will appear in the domain's [Diagram](/docs/development/guides/domains/visualize-domains/domain-diagram).
28
+ Subdomains are shown as domains inside the parent domain, with their own systems and services. At level 1, a subdomain without systems is shown as a single card.
29
29
 
30
30
  ![Domains Visualizer (with subdomains)](../img/domains/subdomain-visualizer.png)
31
31