@eventcatalog/core 5.0.0-beta.8 → 5.0.0

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 (467) hide show
  1. package/LICENSE +234 -134
  2. package/README.md +5 -5
  3. package/dist/analytics/analytics.cjs +18 -3
  4. package/dist/analytics/analytics.d.cts +1 -1
  5. package/dist/analytics/analytics.d.ts +1 -1
  6. package/dist/analytics/analytics.js +3 -2
  7. package/dist/analytics/log-build.cjs +157 -76
  8. package/dist/analytics/log-build.d.cts +2 -2
  9. package/dist/analytics/log-build.d.ts +2 -2
  10. package/dist/analytics/log-build.js +7 -5
  11. package/dist/analytics/studio-usage.cjs +90 -0
  12. package/dist/analytics/studio-usage.d.cts +5 -0
  13. package/dist/analytics/studio-usage.d.ts +5 -0
  14. package/dist/analytics/studio-usage.js +10 -0
  15. package/dist/analytics/telemetry.cjs +42 -0
  16. package/dist/analytics/telemetry.d.cts +20 -0
  17. package/dist/analytics/telemetry.d.ts +20 -0
  18. package/dist/analytics/telemetry.js +8 -0
  19. package/dist/catalog-runtime.cjs +1 -1
  20. package/dist/{chunk-RFIXKATC.js → chunk-4G7FSRPN.js} +35 -42
  21. package/dist/{chunk-AWOO63ME.js → chunk-AD7CL772.js} +11 -4
  22. package/dist/chunk-CA6WCQ2T.js +54 -0
  23. package/dist/chunk-CPW6G62V.js +17 -0
  24. package/dist/{chunk-PU25TOOJ.js → chunk-JZN4RSMF.js} +1 -1
  25. package/dist/{chunk-4W55ZOOS.js → chunk-NEAVAFSJ.js} +66 -35
  26. package/dist/{chunk-C6T2AAFR.js → chunk-NIVST4WY.js} +9 -3
  27. package/dist/{chunk-ENAG6UH7.js → chunk-NKNOXQ62.js} +1 -6
  28. package/dist/{chunk-AYNZXUB5.js → chunk-OX6TSVHY.js} +5 -5
  29. package/dist/{chunk-36RYTYT5.js → chunk-PD7KTSYN.js} +1 -1
  30. package/dist/{chunk-RDIZJ7UT.js → chunk-RE7UTPWH.js} +1 -1
  31. package/dist/chunk-S5GWAUG5.js +29 -0
  32. package/dist/{chunk-T4G3VVZ4.js → chunk-YQGRMDRB.js} +4 -2
  33. package/dist/constants.cjs +1 -1
  34. package/dist/constants.js +1 -1
  35. package/dist/docs/api/02-config.md +57 -7
  36. package/dist/docs/development/00-why-eventcatalog.md +11 -11
  37. package/dist/docs/development/01-fundamentals.md +20 -13
  38. package/dist/docs/development/01-getting-started/configuration-overview.md +2 -2
  39. package/dist/docs/development/01-getting-started/installation.md +9 -1
  40. package/dist/docs/development/_getting-started.mdx +1 -1
  41. package/dist/docs/development/ask-your-architecture/01-intro.md +5 -5
  42. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/01-what-is-eventcatalog-assistant.md +0 -4
  43. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/02-configuration.md +15 -3
  44. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/03-bring-your-own-tools.md +0 -3
  45. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/_category_.json +1 -1
  46. package/dist/docs/development/ask-your-architecture/02-llms.txt.md +1 -1
  47. package/dist/docs/development/ask-your-architecture/{05-skills/01-introduction.md → 03-install-skills.md} +57 -7
  48. package/dist/docs/development/ask-your-architecture/03-mcp-server/_category_.json +1 -1
  49. package/dist/docs/development/ask-your-architecture/03-mcp-server/getting-started.md +86 -33
  50. package/dist/docs/development/ask-your-architecture/03-mcp-server/introduction.md +14 -4
  51. package/dist/docs/development/ask-your-architecture/03-schemas.txt.md +1 -1
  52. package/dist/docs/development/ask-your-architecture/04-agents/_category_.json +1 -1
  53. package/dist/docs/development/authentication/01-introduction.md +2 -23
  54. package/dist/docs/development/authentication/02-enabling-authentication.md +0 -20
  55. package/dist/docs/development/authentication/07-rbac-middleware.md +0 -2
  56. package/dist/docs/development/authentication/providers/03-setting-up-github.md +0 -2
  57. package/dist/docs/development/authentication/providers/03a-setting-up-google.md +0 -2
  58. package/dist/docs/development/authentication/providers/04-setting-up-azure-ad.md +0 -2
  59. package/dist/docs/development/authentication/providers/05-setting-up-okta.md +0 -3
  60. package/dist/docs/development/authentication/providers/06-setting-up-auth0.md +0 -2
  61. package/dist/docs/development/bring-your-own-documentation/01-introduction.md +0 -4
  62. package/dist/docs/development/bring-your-own-documentation/custom-pages/01-introduction.md +0 -3
  63. package/dist/docs/development/bring-your-own-documentation/custom-pages/02-adding-custom-docs.md +0 -17
  64. package/dist/docs/development/bring-your-own-documentation/custom-pages/03-components.md +0 -4
  65. package/dist/docs/development/bring-your-own-documentation/custom-pages/04-owners.md +0 -2
  66. package/dist/docs/development/bring-your-own-documentation/resource-docs/01-introduction.md +1 -3
  67. package/dist/docs/development/bring-your-own-documentation/resource-docs/02-adding-resource-docs.md +1 -4
  68. package/dist/docs/development/bring-your-own-documentation/resource-docs/03-categories.md +0 -2
  69. package/dist/docs/development/bring-your-own-documentation/resource-docs/04-versioning.md +1 -3
  70. package/dist/docs/development/components/components/11-flow.md +17 -0
  71. package/dist/docs/development/components/components/15-nodegraph.md +43 -10
  72. package/dist/docs/development/components/components/18-remote-schema.md +1 -4
  73. package/dist/docs/development/components/custom-components/07-reference.md +14 -0
  74. package/dist/docs/development/customization/02-themes.md +0 -5
  75. package/dist/docs/development/customization/03-search.md +1 -1
  76. package/dist/docs/development/customization/05-custom-pages-and-api-routes/01-introduction.md +0 -2
  77. package/dist/docs/development/customization/05-custom-pages-and-api-routes/04-reference.md +7 -1
  78. package/dist/docs/development/customization/05-resource-sidebar.md +1 -1
  79. package/dist/docs/development/customization/09-embed-eventcatalog.md +20 -25
  80. package/dist/docs/development/deployment/hosting-options.md +7 -2
  81. package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/05-fix-common-problems.md +16 -0
  82. package/dist/docs/development/developer-tools/eventcatalog-linter/reference/03-rules.md +31 -1
  83. package/dist/docs/development/developer-tools/eventcatalog-linter/reference/05-supported-resources.md +1 -1
  84. package/dist/docs/development/governance/architecture-change-detection/01-introduction.md +0 -10
  85. package/dist/docs/development/governance/architecture-change-detection/06-pipeline-gates.md +0 -4
  86. package/dist/docs/development/guides/97-architecture-graph.md +1 -1
  87. package/dist/docs/development/guides/99-adding-analytics.md +0 -7
  88. package/dist/docs/development/guides/domains/03-model-subdomains.md +2 -2
  89. package/dist/docs/development/guides/domains/04-add-resources-to-domains/01-add-systems-to-domains.md +3 -1
  90. package/dist/docs/development/guides/domains/04-add-resources-to-domains/02-add-services-to-domains.md +5 -1
  91. package/dist/docs/development/guides/domains/04-add-resources-to-domains/03-add-messages-to-domains.md +2 -2
  92. package/dist/docs/development/guides/domains/04-add-resources-to-domains/05-add-entities-to-domains.md +1 -1
  93. package/dist/docs/development/guides/domains/04-add-resources-to-domains/06-domain-resources-page.md +40 -0
  94. package/dist/docs/development/guides/domains/06-visualize-domains/01-domain-diagram.md +89 -0
  95. package/dist/docs/development/guides/domains/06-visualize-domains/_category_.json +1 -2
  96. package/dist/docs/development/guides/domains/09-reference.md +4 -4
  97. package/dist/docs/development/guides/owners/automated-teams-and-users/create-your-own-connector.md +0 -2
  98. package/dist/docs/development/guides/owners/automated-teams-and-users/sync-from-github.md +0 -3
  99. package/dist/docs/development/guides/owners/automated-teams-and-users/sync-from-microsoft-entra.md +0 -2
  100. package/dist/docs/development/guides/resources/adrs/03-linking-resources.md +8 -0
  101. package/dist/docs/development/guides/resources/adrs/06-reference.md +4 -4
  102. package/dist/docs/development/guides/resources/agents/11-reference.md +1 -1
  103. package/dist/docs/development/guides/resources/data/04-reference.md +1 -1
  104. package/dist/docs/development/guides/resources/data-products/07-reference.md +1 -1
  105. package/dist/docs/development/guides/resources/entities/05-entity-maps.md +1 -1
  106. package/dist/docs/development/guides/resources/entities/06-reference.md +2 -2
  107. package/dist/docs/development/guides/resources/flows/01-introduction.md +11 -1
  108. package/dist/docs/development/guides/resources/flows/03-model-flow-steps.md +65 -6
  109. package/dist/docs/development/guides/resources/flows/05-explore-flows.md +112 -0
  110. package/dist/docs/development/guides/resources/flows/06-reference.md +25 -4
  111. package/dist/docs/development/guides/resources/messages/01-what-are-messages.md +19 -0
  112. package/dist/docs/development/guides/resources/messages/04-message-channels/01-introduction.md +16 -0
  113. package/dist/docs/development/guides/resources/messages/04-message-channels/05-reference.md +2 -1
  114. package/dist/docs/development/guides/resources/messages/10-reference.md +6 -3
  115. package/dist/docs/development/guides/resources/schemas/04-explore-schemas/01-schema-explorer.md +2 -2
  116. package/dist/docs/development/guides/resources/schemas/04-explore-schemas/02-fields-explorer.md +0 -9
  117. package/dist/docs/development/guides/resources/schemas/05-schema-api.md +0 -3
  118. package/dist/docs/development/guides/resources/schemas/06-schema-mcp.md +11 -3
  119. package/dist/docs/development/guides/resources/services/04-add-resources-to-services/03-add-entities-to-services.md +1 -1
  120. package/dist/docs/development/guides/resources/services/05-resources-page.md +50 -0
  121. package/dist/docs/development/guides/resources/services/08-reference.md +2 -1
  122. package/dist/docs/development/guides/systems/01-introduction.md +1 -1
  123. package/dist/docs/development/guides/systems/02-create-system.md +2 -2
  124. package/dist/docs/development/guides/systems/03-add-resources-to-systems.md +35 -9
  125. package/dist/docs/development/guides/systems/04-model-relationships-and-actors.md +5 -3
  126. package/dist/docs/development/guides/systems/05-system-context-maps.md +39 -22
  127. package/dist/docs/development/guides/systems/06-reference.md +4 -4
  128. package/dist/docs/development/license/01-license-file.md +151 -0
  129. package/dist/docs/development/license/_category_.json +12 -0
  130. package/dist/docs/development/license-keys/_category_.json +3 -3
  131. package/dist/docs/development/license-keys/integrations.md +7 -37
  132. package/dist/docs/development/license-keys/license-validation.md +4 -0
  133. package/dist/docs/development/license-keys/overview.md +5 -1
  134. package/dist/docs/development/license-keys/plans.md +4 -2
  135. package/dist/docs/development/studio/01-introduction.md +60 -0
  136. package/dist/docs/development/studio/02-create-a-canvas.md +103 -0
  137. package/dist/docs/development/studio/03-set-up-persistent-storage.md +59 -0
  138. package/dist/docs/development/studio/04-collaborate-on-a-canvas.md +78 -0
  139. package/dist/docs/development/studio/05-connect-your-agent.md +102 -0
  140. package/dist/docs/development/studio/06-run-studio-in-production.md +54 -0
  141. package/dist/docs/development/studio/07-reference.md +294 -0
  142. package/dist/docs/development/studio/_category_.json +12 -0
  143. package/dist/docs/development/upgrading/v5.md +345 -0
  144. package/dist/docs/federation/00-overview.md +2 -8
  145. package/dist/docs/federation/01-first-federation.md +6 -18
  146. package/dist/docs/federation/explanation/how-it-works.md +0 -4
  147. package/dist/docs/federation/explanation/lockfile-and-cache.md +0 -4
  148. package/dist/docs/federation/explanation/mvp-status-and-feedback.md +0 -4
  149. package/dist/docs/federation/explanation/ownership-and-references.md +0 -4
  150. package/dist/docs/federation/how-to/configure-github-sources.md +6 -5
  151. package/dist/docs/federation/how-to/configure-validation-rules.md +0 -4
  152. package/dist/docs/federation/how-to/run-in-ci.md +2 -9
  153. package/dist/docs/federation/how-to/share-assets-and-components.md +0 -4
  154. package/dist/docs/federation/how-to/use-local-sources.md +0 -4
  155. package/dist/docs/federation/legacy-federation/00-introduction.md +4 -22
  156. package/dist/docs/federation/legacy-federation/01-installation.md +7 -58
  157. package/dist/docs/federation/legacy-federation/02-plugin-configuration.md +3 -21
  158. package/dist/docs/federation/legacy-federation/03-examples.md +3 -5
  159. package/dist/docs/federation/legacy-federation/04-configuration.md +3 -8
  160. package/dist/docs/federation/legacy-federation/05-setup-team-catalog.md +3 -6
  161. package/dist/docs/federation/reference/cli.md +2 -8
  162. package/dist/docs/federation/reference/configuration.md +0 -4
  163. package/dist/docs/federation/reference/diagnostic-rules.md +0 -5
  164. package/dist/docs/federation/reference/generated-output.md +0 -4
  165. package/dist/docs/federation/reference/supported-content.md +0 -4
  166. package/dist/docs/federation/reference/troubleshooting.md +0 -14
  167. package/dist/docs/plugins/02-generators.md +1 -1
  168. package/dist/docs/plugins/amazon-apigateway/00-intro.md +3 -28
  169. package/dist/docs/plugins/amazon-apigateway/01-installation.md +4 -56
  170. package/dist/docs/plugins/amazon-apigateway/02-plugin-configuration.md +1 -6
  171. package/dist/docs/plugins/apicurio/00-intro.md +2 -31
  172. package/dist/docs/plugins/apicurio/01-installation.md +2 -26
  173. package/dist/docs/plugins/apicurio/02-plugin-configuration.md +5 -13
  174. package/dist/docs/plugins/apicurio/03-features.md +1 -3
  175. package/dist/docs/plugins/asyncapi/00-intro.md +2 -28
  176. package/dist/docs/plugins/asyncapi/01-installation.md +3 -54
  177. package/dist/docs/plugins/asyncapi/02-plugin-configuration.md +2 -1
  178. package/dist/docs/plugins/aws-glue-registry/00-intro.md +4 -32
  179. package/dist/docs/plugins/aws-glue-registry/00a-installation.md +3 -53
  180. package/dist/docs/plugins/azure-schema-registry/00-intro.md +4 -32
  181. package/dist/docs/plugins/azure-schema-registry/01-installation.md +6 -33
  182. package/dist/docs/plugins/azure-schema-registry/02-plugin-configuration.md +1 -14
  183. package/dist/docs/plugins/azure-schema-registry/04-examples.md +0 -2
  184. package/dist/docs/plugins/backstage/00-overview.md +1 -7
  185. package/dist/docs/plugins/backstage/01-get-started.md +6 -15
  186. package/dist/docs/plugins/backstage/06-configuration.md +2 -8
  187. package/dist/docs/plugins/confluent-schema-registry/00-intro.md +2 -29
  188. package/dist/docs/plugins/confluent-schema-registry/01-installation.md +2 -26
  189. package/dist/docs/plugins/eventbridge/00-intro.md +0 -4
  190. package/dist/docs/plugins/eventbridge/00a-installation.md +1 -87
  191. package/dist/docs/plugins/eventbridge/03-api.md +2 -20
  192. package/dist/docs/plugins/github/00-intro.md +0 -31
  193. package/dist/docs/plugins/github/01-installation.md +2 -34
  194. package/dist/docs/plugins/graphql/00-intro.md +0 -30
  195. package/dist/docs/plugins/graphql/01-installation.md +1 -53
  196. package/dist/docs/plugins/graphql/02-plugin-configuration.md +0 -1
  197. package/dist/docs/plugins/hookdeck/01-intro.md +1 -1
  198. package/dist/docs/plugins/openapi/00-intro.md +0 -30
  199. package/dist/docs/plugins/openapi/01-installation.md +1 -57
  200. package/dist/docs/plugins/openapi/02-plugin-configuration.md +0 -5
  201. package/dist/docs/plugins/openapi/03-features.md +0 -4
  202. package/dist/eventcatalog-config-file-utils.cjs +34 -41
  203. package/dist/eventcatalog-config-file-utils.d.cts +56 -58
  204. package/dist/eventcatalog-config-file-utils.d.ts +56 -58
  205. package/dist/eventcatalog-config-file-utils.js +1 -1
  206. package/dist/eventcatalog.cjs +408 -281
  207. package/dist/eventcatalog.config.d.cts +26 -15
  208. package/dist/eventcatalog.config.d.ts +26 -15
  209. package/dist/eventcatalog.js +46 -27
  210. package/dist/features.cjs +36 -49
  211. package/dist/features.d.cts +1 -3
  212. package/dist/features.d.ts +1 -3
  213. package/dist/features.js +4 -6
  214. package/dist/federation/federate.cjs +37 -44
  215. package/dist/federation/federate.js +5 -5
  216. package/dist/federation/source-provider.js +2 -2
  217. package/dist/generate.cjs +37 -42
  218. package/dist/generate.js +4 -4
  219. package/dist/resolve-catalog-dependencies.cjs +34 -41
  220. package/dist/resolve-catalog-dependencies.js +2 -2
  221. package/dist/runtime-dependencies/@eventcatalog__visualiser__studio-fonts.css.mjs +3 -0
  222. package/dist/runtime-dependencies/@eventcatalog__visualiser__studio.css.mjs +3 -0
  223. package/dist/runtime-dependencies/@eventcatalog__visualiser__studio.mjs +3 -0
  224. package/dist/runtime-dependencies/htmlparser2.mjs +3 -0
  225. package/dist/runtime-dependencies/manifest.json +5 -1
  226. package/dist/runtime-dependencies/react-syntax-highlighter__dist__cjs__create-element.js.mjs +3 -0
  227. package/dist/utils/child-process-signals.cjs +53 -0
  228. package/dist/utils/child-process-signals.d.cts +19 -0
  229. package/dist/utils/child-process-signals.d.ts +19 -0
  230. package/dist/utils/child-process-signals.js +6 -0
  231. package/dist/utils/cli-logger.cjs +1 -1
  232. package/dist/utils/cli-logger.js +2 -2
  233. package/dist/utils/license-status.cjs +11 -4
  234. package/dist/utils/license-status.d.cts +3 -2
  235. package/dist/utils/license-status.d.ts +3 -2
  236. package/dist/utils/license-status.js +1 -1
  237. package/eventcatalog/astro.config.mjs +21 -1
  238. package/eventcatalog/integrations/config-loader.mjs +56 -58
  239. package/eventcatalog/integrations/skip-startup-reload.mjs +31 -0
  240. package/eventcatalog/integrations/stable-dependency-order.mjs +29 -0
  241. package/eventcatalog/integrations/storage.mjs +20 -0
  242. package/eventcatalog/integrations/studio-server.mjs +4 -1
  243. package/eventcatalog/src/components/CatalogGraph/CatalogForceGraph.tsx +39 -0
  244. package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +2 -0
  245. package/eventcatalog/src/components/Homepage/CatalogDashboard.astro +342 -0
  246. package/eventcatalog/src/components/MDX/NodeGraph/AstroNodeGraph.tsx +60 -4
  247. package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.astro +5 -1
  248. package/eventcatalog/src/components/NavigationProgress.astro +7 -0
  249. package/eventcatalog/src/components/SchemaExplorer/ApiContentViewer.tsx +2 -0
  250. package/eventcatalog/src/components/SchemaExplorer/ExamplesViewer.tsx +2 -0
  251. package/eventcatalog/src/components/SchemaExplorer/SchemaCodeModal.tsx +2 -0
  252. package/eventcatalog/src/components/SchemaExplorer/SchemaContentViewer.tsx +2 -0
  253. package/eventcatalog/src/components/Search/SearchDataLoader.astro +16 -28
  254. package/eventcatalog/src/components/Search/SearchModal.tsx +2 -10
  255. package/eventcatalog/src/components/Search/search-utils.ts +26 -0
  256. package/eventcatalog/src/components/Seo.astro +5 -1
  257. package/eventcatalog/src/components/Settings/AssistantSettingsForm.tsx +53 -48
  258. package/eventcatalog/src/components/Settings/GeneralSettingsForm.tsx +183 -178
  259. package/eventcatalog/src/components/Settings/LicenseSettings.tsx +140 -31
  260. package/eventcatalog/src/components/Settings/LlmAccessSettingsForm.tsx +40 -35
  261. package/eventcatalog/src/components/Settings/LogoUpload.tsx +1 -1
  262. package/eventcatalog/src/components/Settings/McpSettingsForm.tsx +9 -8
  263. package/eventcatalog/src/components/Settings/Row.tsx +7 -4
  264. package/eventcatalog/src/components/Settings/SettingsShared.tsx +3 -3
  265. package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +37 -76
  266. package/eventcatalog/src/components/SideNav/NestedSideBar/storage.ts +2 -0
  267. package/eventcatalog/src/components/SideNav/NestedSideBar/utils.ts +122 -1
  268. package/eventcatalog/src/components/SideNav/SideNav.astro +9 -1
  269. package/eventcatalog/src/components/TrialBadge.astro +20 -9
  270. package/eventcatalog/src/content.config.ts +19 -2
  271. package/eventcatalog/src/features/auth/error.astro +4 -2
  272. package/eventcatalog/src/features/auth/login.astro +2 -1
  273. package/eventcatalog/src/features/auth/middleware/middleware-auth.ts +21 -1
  274. package/eventcatalog/src/features/auth/unauthorized.astro +1 -1
  275. package/eventcatalog/src/features/fields/pages/fields.astro +1 -1
  276. package/eventcatalog/src/features/integrations/eventcatalog-features.ts +13 -7
  277. package/eventcatalog/src/features/mcp/apps/architecture-diagram/node-chat.tsx +6 -45
  278. package/eventcatalog/src/features/mcp/apps/canvas/shared.ts +3 -3
  279. package/eventcatalog/src/features/mcp/apps/canvas/styles.css +3 -1
  280. package/eventcatalog/src/features/mcp/apps/canvas/view.tsx +7 -5
  281. package/eventcatalog/src/features/mcp/apps/generated/canvas.html +123 -98
  282. package/eventcatalog/src/features/mcp/apps/generated/viewer.html +118 -101
  283. package/eventcatalog/src/features/mcp/mcp-server.ts +20 -4
  284. package/eventcatalog/src/features/server/start.ts +25 -0
  285. package/eventcatalog/src/features/storage/database.ts +88 -0
  286. package/eventcatalog/src/features/storage/migrations.ts +85 -0
  287. package/eventcatalog/src/features/storage/sql/database.sql +5 -0
  288. package/eventcatalog/src/features/storage/sql/migrations/0001-studio-canvases.sql +12 -0
  289. package/eventcatalog/src/features/storage/sql/migrations.sql +15 -0
  290. package/eventcatalog/src/features/storage/sql.ts +28 -0
  291. package/eventcatalog/src/features/studio/agent-choreography.ts +13 -10
  292. package/eventcatalog/src/features/studio/agents.ts +28 -0
  293. package/eventcatalog/src/features/studio/api/canvases-api.ts +219 -0
  294. package/eventcatalog/src/features/studio/api/canvases.ts +25 -0
  295. package/eventcatalog/src/features/studio/api/client.ts +40 -0
  296. package/eventcatalog/src/features/studio/canvas-actions.ts +160 -34
  297. package/eventcatalog/src/features/studio/canvas-preview.ts +1 -2
  298. package/eventcatalog/src/features/studio/catalog.ts +16 -14
  299. package/eventcatalog/src/features/studio/components/CanvasHeader.tsx +274 -105
  300. package/eventcatalog/src/features/studio/components/CanvasStatusMenu.tsx +15 -14
  301. package/eventcatalog/src/features/studio/components/ConnectAgentDialog.tsx +272 -119
  302. package/eventcatalog/src/features/studio/components/ConnectionsChooser.tsx +1 -2
  303. package/eventcatalog/src/features/studio/components/DeleteCanvasDialog.tsx +65 -0
  304. package/eventcatalog/src/features/studio/components/Dialog.tsx +60 -0
  305. package/eventcatalog/src/features/studio/components/JoinForm.tsx +101 -26
  306. package/eventcatalog/src/features/studio/components/LeftPanel.tsx +122 -230
  307. package/eventcatalog/src/features/studio/components/NodeDetails.tsx +183 -0
  308. package/eventcatalog/src/features/studio/components/OpenInStudioDialog.tsx +79 -0
  309. package/eventcatalog/src/features/studio/components/Presence.tsx +52 -45
  310. package/eventcatalog/src/features/studio/components/ShareDialog.tsx +277 -141
  311. package/eventcatalog/src/features/studio/components/ShortcutsDialog.tsx +41 -0
  312. package/eventcatalog/src/features/studio/components/StudioDesigner.tsx +1314 -385
  313. package/eventcatalog/src/features/studio/components/StudioNotice.astro +24 -0
  314. package/eventcatalog/src/features/studio/document-name.ts +7 -0
  315. package/eventcatalog/src/features/studio/from-visualiser.ts +138 -0
  316. package/eventcatalog/src/features/studio/hooks/presence-sender.ts +19 -2
  317. package/eventcatalog/src/features/studio/hooks/use-canvas-webmcp.ts +9 -3
  318. package/eventcatalog/src/features/studio/hooks/use-comments.ts +2 -2
  319. package/eventcatalog/src/features/studio/hooks/use-follow-camera.ts +8 -3
  320. package/eventcatalog/src/features/studio/hooks/use-studio-flow.ts +244 -32
  321. package/eventcatalog/src/features/studio/identity.ts +25 -1
  322. package/eventcatalog/src/features/studio/limits.ts +2 -0
  323. package/eventcatalog/src/features/studio/pages/[id].astro +42 -16
  324. package/eventcatalog/src/features/studio/pages/index.astro +596 -373
  325. package/eventcatalog/src/features/studio/pages/webmcp-relay.ts +12 -15
  326. package/eventcatalog/src/features/studio/server/canvas-mcp.ts +8 -23
  327. package/eventcatalog/src/features/studio/server/runtime.ts +150 -46
  328. package/eventcatalog/src/features/studio/server/sql/storage.sql +18 -0
  329. package/eventcatalog/src/features/studio/server/storage.ts +53 -73
  330. package/eventcatalog/src/features/studio/webmcp-relay/LICENSE +21 -0
  331. package/eventcatalog/src/features/studio/webmcp-relay/README.md +5 -0
  332. package/eventcatalog/src/features/studio/webmcp-relay/embed.js +2 -0
  333. package/eventcatalog/src/features/studio/webmcp-relay/widget.html +10 -0
  334. package/eventcatalog/src/features/studio/webmcp-relay/widget.js +1 -0
  335. package/eventcatalog/src/features/tools/catalog-tools.ts +3 -1
  336. package/eventcatalog/src/layouts/BaseLayout.astro +4 -4
  337. package/eventcatalog/src/layouts/SettingsLayout.astro +2 -2
  338. package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +3 -2
  339. package/eventcatalog/src/pages/_index.astro +5 -342
  340. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.spec.ts +2 -3
  341. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.ts +0 -7
  342. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +3 -1
  343. package/eventcatalog/src/pages/diagrams/[id]/[version]/_index.data.ts +0 -7
  344. package/eventcatalog/src/pages/diagrams/[id]/[version]/embed.astro +1 -0
  345. package/eventcatalog/src/pages/diagrams/[id]/[version]/index.astro +1 -0
  346. package/eventcatalog/src/pages/directory/[type]/_index.data.ts +5 -7
  347. package/eventcatalog/src/pages/directory/[type]/index.astro +3 -1
  348. package/eventcatalog/src/pages/discover/[type]/_index.data.ts +5 -7
  349. package/eventcatalog/src/pages/discover/[type]/index.astro +3 -1
  350. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/_index.data.ts +0 -7
  351. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/index.astro +1 -0
  352. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/_index.data.ts +0 -7
  353. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/index.astro +1 -0
  354. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/_index.data.ts +0 -7
  355. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/[filename].astro +3 -1
  356. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/_[filename].data.ts +0 -7
  357. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/_index.data.ts +0 -7
  358. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/index.astro +1 -0
  359. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/examples/[...filename].astro +1 -0
  360. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/examples/_[...filename].data.ts +0 -4
  361. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/field-lineage/_index.data.ts +0 -7
  362. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/field-lineage/index.astro +1 -0
  363. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/[filename].astro +3 -1
  364. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/_[filename].data.ts +0 -7
  365. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +1 -0
  366. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.spec.ts +2 -3
  367. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.ts +0 -7
  368. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/index.astro +1 -0
  369. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/[filename].astro +1 -0
  370. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/_[filename].data.ts +0 -7
  371. package/eventcatalog/src/pages/docs/[type]/[id]/_index.data.ts +0 -7
  372. package/eventcatalog/src/pages/docs/[type]/[id]/index.astro +2 -1
  373. package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/_index.data.ts +0 -7
  374. package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/index.astro +1 -0
  375. package/eventcatalog/src/pages/docs/[type]/[id]/language/_index.data.ts +0 -7
  376. package/eventcatalog/src/pages/docs/[type]/[id]/language/index.astro +1 -0
  377. package/eventcatalog/src/pages/docs/custom/[...path]/_index.data.ts +0 -7
  378. package/eventcatalog/src/pages/docs/custom/[...path]/index.astro +1 -0
  379. package/eventcatalog/src/pages/docs/services/[id]/[docType]/[docId]/index.astro +1 -1
  380. package/eventcatalog/src/pages/docs/services/[id]/[version]/resources/index.astro +1 -0
  381. package/eventcatalog/src/pages/docs/services/[id]/asyncapi/[filename].astro +1 -1
  382. package/eventcatalog/src/pages/docs/services/[id]/changelog/index.astro +1 -1
  383. package/eventcatalog/src/pages/docs/services/[id]/graphql/[filename].astro +1 -1
  384. package/eventcatalog/src/pages/docs/services/[id]/spec/[filename].astro +1 -1
  385. package/eventcatalog/src/pages/docs/teams/[id]/_index.data.ts +0 -7
  386. package/eventcatalog/src/pages/docs/teams/[id]/index.astro +1 -0
  387. package/eventcatalog/src/pages/docs/users/[id]/_index.data.ts +0 -7
  388. package/eventcatalog/src/pages/docs/users/[id]/index.astro +1 -0
  389. package/eventcatalog/src/pages/index.astro +4 -2
  390. package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/_index.data.ts +0 -7
  391. package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/index.astro +9 -1
  392. package/eventcatalog/src/pages/schemas/explorer/_index.data.ts +0 -7
  393. package/eventcatalog/src/pages/schemas/explorer/index.astro +4 -2
  394. package/eventcatalog/src/pages/settings/license.astro +9 -1
  395. package/eventcatalog/src/pages/triggers/[type]/[id]/[version]/_index.data.ts +0 -7
  396. package/eventcatalog/src/pages/triggers/[type]/[id]/[version]/index.astro +1 -0
  397. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/_index.data.ts +0 -7
  398. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/data/_index.data.ts +0 -7
  399. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/data/index.astro +1 -0
  400. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/_index.data.ts +0 -7
  401. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/index.astro +1 -0
  402. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/index.astro +1 -0
  403. package/eventcatalog/src/pages/visualiser/[type]/[id]/_index.data.ts +38 -0
  404. package/eventcatalog/src/pages/visualiser/[type]/[id]/index.astro +18 -41
  405. package/eventcatalog/src/pages/visualiser/designs/[id]/_index.data.ts +0 -7
  406. package/eventcatalog/src/pages/visualiser/designs/[id]/index.astro +2 -1
  407. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/_index.data.ts +0 -7
  408. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/index.astro +1 -0
  409. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/index.astro +1 -0
  410. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/_index.data.ts +0 -7
  411. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/index.astro +1 -0
  412. package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/_index.data.ts +0 -7
  413. package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/index.astro +1 -0
  414. package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/index.astro +1 -0
  415. package/eventcatalog/src/types/react-syntax-highlighter.d.ts +10 -0
  416. package/eventcatalog/src/utils/collections/flows.ts +20 -7
  417. package/eventcatalog/src/utils/collections/resource-owners.ts +8 -2
  418. package/eventcatalog/src/utils/collections/resources.ts +2 -0
  419. package/eventcatalog/src/utils/collections/util.ts +8 -4
  420. package/eventcatalog/src/utils/git.ts +11 -0
  421. package/eventcatalog/src/utils/homepage-dashboard.ts +143 -0
  422. package/eventcatalog/src/utils/license.ts +1 -1
  423. package/eventcatalog/src/utils/link-validation.ts +25 -19
  424. package/eventcatalog/src/utils/node-graphs/domain-entity-map.ts +3 -1
  425. package/eventcatalog/src/utils/node-graphs/domain-levels-node-graph.ts +3 -3
  426. package/eventcatalog/src/utils/node-graphs/field-node-graph.ts +4 -2
  427. package/eventcatalog/src/utils/node-graphs/layout-node-graph.ts +20 -1
  428. package/eventcatalog/src/utils/node-graphs/node-resource.ts +67 -0
  429. package/eventcatalog/src/utils/node-graphs/systems-node-graph.ts +1 -1
  430. package/eventcatalog/src/utils/page-loaders/hybrid-page.ts +4 -15
  431. package/eventcatalog/src/utils/page-title.ts +15 -0
  432. package/eventcatalog/src/utils/syntax-highlighter-renderer.ts +64 -0
  433. package/eventcatalog/src/utils/trial.ts +13 -0
  434. package/package.json +11 -11
  435. package/dist/docs/development/ask-your-architecture/05-skills/02-installation.md +0 -60
  436. package/dist/docs/development/ask-your-architecture/05-skills/_category_.json +0 -11
  437. package/dist/docs/development/ask-your-architecture/06-slack-integration/01-introduction.md +0 -63
  438. package/dist/docs/development/ask-your-architecture/06-slack-integration/02-slack-app-setup.md +0 -154
  439. package/dist/docs/development/ask-your-architecture/06-slack-integration/03-installation.md +0 -169
  440. package/dist/docs/development/ask-your-architecture/06-slack-integration/04-deployment.md +0 -236
  441. package/dist/docs/development/ask-your-architecture/06-slack-integration/05-usage.md +0 -140
  442. package/dist/docs/development/ask-your-architecture/06-slack-integration/06-troubleshooting.md +0 -268
  443. package/dist/docs/development/ask-your-architecture/06-slack-integration/_category_.json +0 -13
  444. package/dist/docs/development/guides/domains/06-visualize-domains/01-domain-integration-map.md +0 -40
  445. package/dist/runtime-dependencies/@mcp-b__webmcp-local-relay.mjs +0 -3
  446. package/eventcatalog/src/features/studio/canvas-doc.ts +0 -409
  447. package/eventcatalog/src/features/studio/clipboard.ts +0 -97
  448. package/eventcatalog/src/features/studio/components/CanvasControls.tsx +0 -154
  449. package/eventcatalog/src/features/studio/components/Comments.tsx +0 -770
  450. package/eventcatalog/src/features/studio/components/ContainerChooser.tsx +0 -145
  451. package/eventcatalog/src/features/studio/components/DragGhost.tsx +0 -115
  452. package/eventcatalog/src/features/studio/components/Picture.tsx +0 -21
  453. package/eventcatalog/src/features/studio/components/PropertiesPanel.tsx +0 -212
  454. package/eventcatalog/src/features/studio/components/canvas-nodes.tsx +0 -255
  455. package/eventcatalog/src/features/studio/components/icons.ts +0 -53
  456. package/eventcatalog/src/features/studio/components/status.ts +0 -51
  457. package/eventcatalog/src/features/studio/edges.ts +0 -56
  458. package/eventcatalog/src/features/studio/flow-state.ts +0 -92
  459. package/eventcatalog/src/features/studio/grouping.ts +0 -226
  460. package/eventcatalog/src/features/studio/layout.ts +0 -42
  461. package/eventcatalog/src/features/studio/levels.ts +0 -282
  462. package/eventcatalog/src/features/studio/node-types.ts +0 -205
  463. package/eventcatalog/src/features/studio/pages/new.astro +0 -24
  464. package/eventcatalog/src/features/studio/pages/wake.ts +0 -15
  465. package/eventcatalog/src/features/studio/placement.ts +0 -197
  466. package/eventcatalog/src/features/studio/studio.css +0 -273
  467. package/dist/{chunk-A2RZR3U4.js → chunk-6K7XZAYI.js} +3 -3
@@ -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
 
@@ -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
+ :::