@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
@@ -223,9 +223,12 @@ Versioned messages use:
223
223
  | `/docs/events/{event-id}/{version}` | Event documentation page. |
224
224
  | `/docs/commands/{command-id}/{version}` | Command documentation page. |
225
225
  | `/docs/queries/{query-id}/{version}` | Query documentation page. |
226
- | `/visualiser/events/{event-id}/{version}` | Event resource diagram. |
227
- | `/visualiser/commands/{command-id}/{version}` | Command resource diagram. |
228
- | `/visualiser/queries/{query-id}/{version}` | Query resource diagram. |
226
+ | `/docs/events/{event-id}/{version}/resources` | Event [Resources page](/docs/development/guides/resources/messages/what-are-messages#resources-page). |
227
+ | `/docs/commands/{command-id}/{version}/resources` | Command [Resources page](/docs/development/guides/resources/messages/what-are-messages#resources-page). |
228
+ | `/docs/queries/{query-id}/{version}/resources` | Query [Resources page](/docs/development/guides/resources/messages/what-are-messages#resources-page). |
229
+ | `/visualiser/events/{event-id}/{version}` | Event diagram (**Diagram** in the sidebar). |
230
+ | `/visualiser/commands/{command-id}/{version}` | Command diagram (**Diagram** in the sidebar). |
231
+ | `/visualiser/queries/{query-id}/{version}` | Query diagram (**Diagram** in the sidebar). |
229
232
 
230
233
  ## Required fields
231
234
 
@@ -59,7 +59,7 @@ Each schema is split into tabs. EventCatalog only shows a tab when there is some
59
59
  | **Flows** | The [flows](/docs/development/guides/resources/flows/introduction) the message is part of. |
60
60
  | **Versions** | Every version of the schema, with a side-by-side comparison. |
61
61
  | **Details** | Schema metadata: format, version, file, source, and owners. |
62
- | **API** | API access to the schema (EventCatalog Scale). |
62
+ | **API** | API access to the schema. |
63
63
 
64
64
  ##### Link to a tab
65
65
 
@@ -114,4 +114,4 @@ The **Details** tab shows the schema name, format, message type, version, file,
114
114
 
115
115
  ##### API Access
116
116
 
117
- For EventCatalog Scale users, you can get API (GET) access to your schemas for mocking or testing. See [Schema API](/docs/development/guides/resources/schemas/schema-api).
117
+ You can get API (GET) access to your schemas for mocking or testing. See [Schema API](/docs/development/guides/resources/schemas/schema-api).
@@ -11,7 +11,6 @@ description: Browse, search, and trace schema fields across all messages in your
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
  :::info SSR required
17
16
  The Fields Explorer requires EventCatalog to run in SSR (server-side rendering) mode. It is not available in static builds.
@@ -19,10 +18,8 @@ The Fields Explorer requires EventCatalog to run in SSR (server-side rendering)
19
18
 
20
19
  <iframe width="100%" height="415" src="https://www.youtube.com/embed/PQIBATgtuKs?si=TagMKL49ZD_G_HYE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
21
20
 
22
-
23
21
  The Fields Explorer gives you a catalog-wide view of every schema field across all your events, commands, and queries (supporting AVRO, JSON, and Proto). Search and filter fields by name, format, or message type, then click any field to trace exactly which services produce and consume it.
24
22
 
25
-
26
23
  ![Field Explorer](../img/field-search.png)
27
24
 
28
25
  ## Get started
@@ -64,8 +61,6 @@ Each row in the table represents a single field in a specific message schema.
64
61
 
65
62
  ## Trace field lineage
66
63
 
67
- <PlanBanner plan="Scale" />
68
-
69
64
  Clicking any field row opens a full-screen **Field Traceability** panel. This panel shows a node graph with three layers:
70
65
 
71
66
  1. **Producer services** -- services that publish the message containing this field
@@ -76,12 +71,8 @@ The right-hand panel lists the same information in a collapsible format and lets
76
71
 
77
72
  ![Field Explorer](../img/field-search-graph.png)
78
73
 
79
- _[If you want to try this feature you can get a 30-day free trial of EventCatalog Scale](https://eventcatalog.cloud)_
80
-
81
74
  ## Detect type conflicts
82
75
 
83
- <PlanBanner plan="Scale" />
84
-
85
76
  When the same field path appears in multiple messages with different data types, the Fields Explorer surfaces a **type conflict**.
86
77
 
87
78
  ![Field Explorer](../img/type-conflicts-row.png)
@@ -8,9 +8,6 @@ description: Get API (GET) access to your schemas for mocking or testing
8
8
  ---
9
9
 
10
10
  import AddedIn from '@site/src/components/MDX/AddedIn';
11
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
12
-
13
- <PlanBanner plan="Scale" />
14
11
 
15
12
  EventCatalog provides an API to get access to your schemas and specifications.
16
13
 
@@ -8,9 +8,6 @@ description: Get access to your schemas for your MCP clients (e.g Cursor, Windsu
8
8
  ---
9
9
 
10
10
  import AddedIn from '@site/src/components/MDX/AddedIn';
11
- import PlanBanner from '@site/src/components/MDX/PlanBanner';
12
-
13
- <PlanBanner plan="Scale" />
14
11
 
15
12
  The [EventCatalog MCP server](/docs/development/ask-your-architecture/mcp-server/introduction) allows you to get access to your documentation and context in your MCP clients (e.g Cursor, Windsurf, Claude Desktop etc).
16
13
 
@@ -19,3 +16,14 @@ Your documented schemas for your Events, Queries, Commands and Services can be a
19
16
  This allows you to ask questions about your schemas, get schema information for your services and messages, directly in your code editor or LLM.
20
17
 
21
18
  To get started, you can follow the guide to [get started with the EventCatalog MCP server](/docs/development/ask-your-architecture/mcp-server/getting-started).
19
+
20
+ ### Show schemas to users
21
+
22
+ <AddedIn version="5.0.0" />
23
+
24
+ The MCP server has two tools for schemas:
25
+
26
+ - `showResource` with `view: "schema"` shows a schema to the user. In MCP clients that support MCP Apps (for example Claude, ChatGPT and VS Code), the schema opens in the same viewer as the [Schema Explorer](/docs/development/guides/resources/schemas/explore-schemas/schema-explorer), with a **Schema** tab and a **Properties** tab for JSON Schema, Avro and Protobuf. Other clients get the schema code.
27
+ - `getSchemaForResource` returns the schemas and specifications (OpenAPI, AsyncAPI, GraphQL) of a resource for the agent to read, for example to generate code.
28
+
29
+ Ask things like "show me the schema for OrderCreated" and the agent calls `showResource`. See [interactive diagrams and schemas](/docs/development/ask-your-architecture/mcp-server/getting-started#interactive-diagrams-and-schemas) for the parameters.
@@ -34,7 +34,7 @@ Your service markdown...
34
34
 
35
35
  <AddedIn version="3.25.1" />
36
36
 
37
- When a service has entities assigned, EventCatalog generates a dedicated **Entity Map** page in the visualizer at `/visualiser/services/{id}/{version}/entity-map`. A link to this view appears automatically in the service sidebar under the visualizer section.
37
+ When a service has entities assigned, EventCatalog generates a dedicated **Entity Diagram** page in the visualizer at `/visualiser/services/{id}/{version}/entity-map`. An **Entity Diagram** link to this view appears automatically in the **Architecture** section of the service sidebar.
38
38
 
39
39
  The entity map shows each entity as a node and draws edges between entities that reference one another using the `references` field in their properties. This gives you a quick overview of how the domain model is structured inside a service.
40
40
 
@@ -0,0 +1,50 @@
1
+ ---
2
+ sidebar_position: 5
3
+ keywords:
4
+ - EventCatalog services
5
+ - Service resources
6
+ - Resources page
7
+ sidebar_label: Service resources page
8
+ title: Service resources page
9
+ description: See every message, entity, data store, flow, and decision record connected to a service.
10
+ ---
11
+
12
+ import AddedIn from '@site/src/components/MDX/AddedIn';
13
+
14
+ <AddedIn version="5.0.0" />
15
+
16
+ Every service gets a **Resources** page that lists everything connected to it in one table. Open it from **Quick Reference** > **Resources** in the service's sidebar, or go to `/docs/services/{service-id}/{version}/resources`.
17
+
18
+ ![Order Service Resources page with Inbound and Outbound filters, type filters, a Relationship column and pagination](./img/service-resources-page.png)
19
+
20
+ ## What the page lists
21
+
22
+ The page lists the resources your service is connected to:
23
+
24
+ | Resource | Where it comes from | Relationship |
25
+ |----------|---------------------|--------------|
26
+ | Events, commands and queries | The service's `sends` and `receives` ([add messages to services](/docs/development/guides/resources/services/add-resources-to-services/add-messages-to-services)) | **Sends**, **Receives** or **Sends & receives** |
27
+ | Entities | The service's `entities` ([add entities to services](/docs/development/guides/resources/services/add-resources-to-services/add-entities-to-services)) | **Owns** |
28
+ | Data stores | The service's `writesTo` and `readsFrom` ([add data stores to services](/docs/development/guides/resources/services/add-resources-to-services/add-data-stores-to-services)) | **Writes to**, **Reads from** or **Reads & writes** |
29
+ | Flows | The service's `flows`, and any flow with a step that points at the service ([flows](/docs/development/guides/resources/flows/introduction)) | **Appears in** |
30
+ | Decision records | Any ADR whose `appliesTo` includes the service ([add ADRs to resources](/docs/development/guides/resources/adrs/linking-resources)) | **Governed by** |
31
+
32
+ The **Resources** link only shows in the sidebar when the service has at least one resource to list.
33
+
34
+ ## Find resources in the table
35
+
36
+ - **Relationship column**: shows how each resource connects to the service, for example **Sends**, **Receives** or **Reads from**.
37
+ - **Inbound** and **Outbound** filters: show only what comes into the service (messages it receives, data stores it reads from) or what goes out of it (messages it sends, data stores it writes to). These filters only show when the service has connections in both directions.
38
+ - **Type filters**: show only one or more kinds of resource, such as **Events**, **Commands** or **Data Stores**. A filter only shows for types the service has.
39
+ - **Filter...**: search by name, id or summary.
40
+ - **Sorting**: click the **Name**, **Type**, **Relationship** or **Version** column header to sort.
41
+ - **Pagination**: page through long lists and choose how many rows to show with **Per page**.
42
+
43
+ ## Row actions
44
+
45
+ Each row has a **...** menu with quick actions:
46
+
47
+ - **View documentation**: open the resource's docs page.
48
+ - **View in visualiser**: open the resource in the visualiser (when the visualiser is enabled and the resource has a diagram).
49
+ - **View schema**: open the message's schema page (when the message has a schema).
50
+ - **Add to favorites**: pin the resource to your favorites. Choose **Remove from favorites** to unpin it.
@@ -39,7 +39,8 @@ Versioned services use:
39
39
  | Route | Description |
40
40
  |-------|-------------|
41
41
  | `/docs/services/{service-id}/{version}` | Service documentation page. |
42
- | `/visualiser/services/{service-id}/{version}` | Service resource diagram. |
42
+ | `/docs/services/{service-id}/{version}/resources` | Service [Resources page](/docs/development/guides/resources/services/resources-page). |
43
+ | `/visualiser/services/{service-id}/{version}` | Service diagram (**Diagram** in the sidebar). |
43
44
 
44
45
  ## Required fields
45
46
 
@@ -10,7 +10,7 @@ description: What are systems? Why are they useful in EventCatalog?
10
10
  import AddedIn from '@site/src/components/MDX/AddedIn';
11
11
  import ProjectTree from '@site/src/components/MDX/ProjectTree';
12
12
 
13
- <AddedIn version="4.0" />
13
+ <AddedIn version="4.0.0" />
14
14
 
15
15
  A system is a collection of resources that work together to perform a function.
16
16
 
@@ -11,7 +11,7 @@ import AddedIn from '@site/src/components/MDX/AddedIn';
11
11
  import PromptBox from '@site/src/components/MDX/PromptBox';
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 is a collection of resources that work together to perform a function.
17
17
 
@@ -123,5 +123,5 @@ The Cart System owns the shopping cart. It accepts commands to add and remove it
123
123
  - [Add resources to the system](/docs/development/guides/systems/add-resources-to-systems)
124
124
  - [Model relationships and actors](/docs/development/guides/systems/model-relationships-and-actors)
125
125
  - [Add systems to domains](/docs/development/guides/domains/add-resources-to-domains/add-systems-to-domains)
126
- - [Visualize systems with context maps](/docs/development/guides/systems/system-context-maps)
126
+ - [Visualize systems with diagrams](/docs/development/guides/systems/system-context-maps)
127
127
  - [Review the systems reference](/docs/development/guides/systems/reference)
@@ -11,7 +11,7 @@ description: Add services, flows, entities, and data stores to systems.
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
  In EventCatalog, systems can directly reference:
17
17
 
@@ -134,24 +134,50 @@ You can also define resources inside the system folder to keep related architect
134
134
 
135
135
  This structure makes the system the entry point for the resources that make up that capability.
136
136
 
137
- ## Show the resource diagram
138
-
139
- Add `<NodeGraph />` to the system page to show the resources inside the system.
140
-
137
+ ## Show the system's resources on its page
141
138
 
139
+ Add `<NodeGraph />` to the system page to show the services and data stores inside the system, and the messages between them.
142
140
 
143
141
  ```md title="/domains/Shopping/systems/cart-system/index.mdx"
144
- ## Resource Diagram
142
+ ## Architecture
145
143
 
146
144
  <NodeGraph />
147
145
  ```
148
146
 
149
- ![Product Catalog System resource diagram](./img/product-catalog-system-resource-map.png)
147
+ ![Product Catalog System showing its services, messages, and data stores](./img/product-catalog-system-resource-map.png)
150
148
 
151
- You can also open the resource diagram directly:
149
+ Each system also has a **Diagram** page, linked from the **Architecture** section of the system sidebar. Level 2 (**L2**) of the Diagram shows the services and data stores inside the system, and level 3 (**L3**) adds the messages and channels:
152
150
 
153
151
  ```txt
154
- /visualiser/systems/{system-id}/{version}
152
+ /visualiser/systems/{system-id}/{version}?level=2
155
153
  ```
156
154
 
155
+ Learn more in [System diagrams](/docs/development/guides/systems/system-context-maps).
156
+
157
+ ## Resources page
158
+
159
+ Every system with resources gets a **Resources** page that lists them in one table. Open it from **Quick Reference** > **Resources** in the system's sidebar, or go to:
160
+
161
+ ```txt
162
+ /docs/systems/{system-id}/{version}/resources
163
+ ```
164
+
165
+ The page lists the resources attached directly to the system:
166
+
167
+ | Resource | Where it comes from | Relationship |
168
+ |----------|---------------------|--------------|
169
+ | Services | The system's [`services`](/docs/development/guides/systems/reference#services) | **Contains** |
170
+ | Flows | The system's [`flows`](/docs/development/guides/systems/reference#flows) | **Contains** |
171
+ | Entities | The system's [`entities`](/docs/development/guides/systems/reference#entities) | **Owns** |
172
+ | Data stores | The system's [`containers`](/docs/development/guides/systems/reference#containers) | **Contains** |
173
+ | Decision records | Any ADR whose `appliesTo` includes the system ([add ADRs to resources](/docs/development/guides/resources/adrs/linking-resources)) | **Governed by** |
174
+
175
+ Messages are not listed on a system's Resources page. To see them, open the Resources page of a service in the system.
176
+
177
+ 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).
178
+
179
+ :::info Changed in EventCatalog v5
180
+ The sidebar link was called **System Resources** and is now **Resources**. The page now lists decision records and has a **Relationship** column. The system architecture overview page (`/architecture/systems/{system-id}/{version}`) is removed. Old links redirect to the Resources page, or to the system's docs page when it has nothing to list.
181
+ :::
182
+
157
183
  For the complete list of supported fields, see the [systems reference](/docs/development/guides/systems/reference).
@@ -11,7 +11,7 @@ description: Model relationships between systems and the actors that interact wi
11
11
 
12
12
  import AddedIn from '@site/src/components/MDX/AddedIn';
13
13
 
14
- <AddedIn version="4.0" />
14
+ <AddedIn version="4.0.0" />
15
15
 
16
16
  Systems can describe how they relate to other systems and which people, roles, or external participants interact with them.
17
17
 
@@ -77,10 +77,12 @@ Add `<ContextDiagram />` to a system page to show the system in context with rel
77
77
  <ContextDiagram />
78
78
  ```
79
79
 
80
- You can also open the context diagram directly:
80
+ The context diagram is also level 1 (**L1**) of the system's **Diagram** page, linked from the **Architecture** section of the system sidebar:
81
81
 
82
82
  ```txt
83
- /visualiser/systems/{system-id}/{version}/context
83
+ /visualiser/systems/{system-id}/{version}?level=1
84
84
  ```
85
85
 
86
+ Learn more in [System diagrams](/docs/development/guides/systems/system-context-maps).
87
+
86
88
  For the complete relationship and actor fields, see the [systems reference](/docs/development/guides/systems/reference).
@@ -2,24 +2,25 @@
2
2
  sidebar_position: 5
3
3
  keywords:
4
4
  - EventCatalog systems
5
- - System context map
5
+ - System context diagram
6
+ - System diagram
6
7
  - Architecture visualizer
7
- sidebar_label: System context maps
8
- title: System context maps
9
- description: Visualize systems from high-level context maps down to detailed resource maps.
8
+ sidebar_label: System diagrams
9
+ title: System diagrams
10
+ description: Visualize systems from the System Context Diagram down to the services, messages, and data stores inside one system.
10
11
  ---
11
12
 
12
13
  import AddedIn from '@site/src/components/MDX/AddedIn';
13
14
 
14
- <AddedIn version="4.0" />
15
+ <AddedIn version="4.0.0" />
15
16
 
16
- System context maps help teams understand how systems fit together across an architecture.
17
+ System diagrams help teams understand how systems fit together across an architecture.
17
18
 
18
- They give users a high-level view of all systems, the actors that interact with them, and the relationships between systems. From there, users can drill into a specific system to see the resources that make it up, including APIs, services, messages, data stores, and flows.
19
+ They give users a high-level view of all systems, the actors that interact with them, and the relationships between systems. From there, users can drill into a specific system to see the resources that make it up, including services, messages, channels, and data stores.
19
20
 
20
- ## Start with the system context map
21
+ ## Start with the System Context Diagram
21
22
 
22
- The global system context map shows your systems and how they relate to each other.
23
+ The global System Context Diagram shows your systems and how they relate to each other.
23
24
 
24
25
  Use this view when you want to answer questions like:
25
26
 
@@ -28,9 +29,9 @@ Use this view when you want to answer questions like:
28
29
  - Which people or roles interact with these systems?
29
30
  - Where should I drill in for more detail?
30
31
 
31
- ![System context map showing systems, actors, and relationships](./img/system-context-map.png)
32
+ ![System Context Diagram showing systems, actors, and relationships](./img/system-context-map.png)
32
33
 
33
- You can open the global system context map at:
34
+ When your catalog has systems, a **System Context Diagram** link appears in the **Top level diagrams** section of the sidebar. You can also open it at:
34
35
 
35
36
  ```txt
36
37
  /visualiser/system-context-map
@@ -38,31 +39,47 @@ You can open the global system context map at:
38
39
 
39
40
  ## Drill into a system
40
41
 
41
- After users understand the high-level context, they can click into a system and view its resource diagram.
42
+ <AddedIn version="5.0.0" />
42
43
 
43
- The resource diagram shows the detailed architecture inside that system. For example, a payment processing system can show the APIs, workers, commands, events, and data stores that work together to process payments.
44
-
45
- ![System resource map showing APIs, messages, services, and data stores inside a system](./img/system-resource-map.png)
46
-
47
- You can open a system resource diagram at:
44
+ Every system has a **Diagram** page. Open it from **Diagram** in the **Architecture** section of the system sidebar, or at:
48
45
 
49
46
  ```txt
50
47
  /visualiser/systems/{system-id}/{version}
51
48
  ```
52
49
 
53
- For example:
50
+ The Diagram shows the system at three levels of detail. Switch levels with **L1**, **L2** and **L3** in the canvas toolbar at the bottom of the diagram.
51
+
52
+ | Level | What it shows |
53
+ |-------|---------------|
54
+ | **L1** | The system context: the system with the systems it has relationships with and its actors. The system you are viewing is marked **Viewing**. |
55
+ | **L2** | The context stays, and the system expands into its services and data stores and how they connect. Its relationships and actors connect to the expanded system. |
56
+ | **L3** | Adds the messages and channels. |
57
+
58
+ ![Payment Processing System diagram at level 1, showing the system and the external systems it has relationships with](./img/system-diagram-l1.png)
59
+
60
+ ![Payment Processing System diagram at level 2, with the system expanded into its services and data store](./img/system-diagram-l2.png)
61
+
62
+ The page opens at level 1. The level is kept in the URL, so a shared link opens at the same level. Use `?level=` to open a level directly:
54
63
 
55
64
  ```txt
56
- /visualiser/systems/search-system/1.0.0
65
+ /visualiser/systems/payment-processing-system/1.0.0?level=2
57
66
  ```
58
67
 
68
+ The canvas toolbar and menu also let you simulate messages, hide messages or channels, and hide resource types from the legend. See [NodeGraph interactive controls](/docs/development/components/components/nodegraph#interactive-controls).
69
+
70
+ :::info Changed in EventCatalog v5
71
+ The system's **Context Diagram** and **Resource Diagram** pages are replaced by the single **Diagram** page. The old Context Diagram route (`/visualiser/systems/{system-id}/{version}/context`) redirects to level 1.
72
+
73
+ Layouts saved in dev mode for a system's context diagram carry over to level 1. Layouts saved for a system's old Resource Diagram don't carry over to levels 2 and 3. Save the layout again if you need it.
74
+ :::
75
+
59
76
  ## High-level to detailed architecture
60
77
 
61
78
  The goal of systems is to let users move through your architecture at the right level of detail:
62
79
 
63
- - Start with a high-level context map to understand the systems and relationships.
64
- - Select a system to understand what it owns and depends on.
65
- - Drill into the resources inside that system to inspect APIs, messages, services, data stores, and flows.
80
+ - Start with the System Context Diagram to understand the systems and relationships.
81
+ - Select a system and open its Diagram at level 1 to see what it depends on.
82
+ - Switch to levels 2 and 3 to inspect the services, data stores, messages, and channels inside that system.
66
83
 
67
84
  This gives teams a path from architecture overview to implementation detail without forcing every user to start at the lowest level.
68
85
 
@@ -10,7 +10,7 @@ description: Frontmatter fields, paths, and routes for systems in EventCatalog.
10
10
 
11
11
  import AddedIn from '@site/src/components/MDX/AddedIn';
12
12
 
13
- <AddedIn version="4.0" />
13
+ <AddedIn version="4.0.0" />
14
14
 
15
15
  This page lists the fields, paths, and routes supported by systems.
16
16
 
@@ -40,9 +40,9 @@ Versioned systems use the same versioning pattern as other EventCatalog resource
40
40
  | Route | Description |
41
41
  |-------|-------------|
42
42
  | `/docs/systems/{system-id}/{version}` | System documentation page. |
43
- | `/visualiser/systems/{system-id}/{version}` | Resource diagram for one system. |
44
- | `/visualiser/systems/{system-id}/{version}/context` | Context diagram for one system. |
45
- | `/visualiser/system-context-map` | Global system context map. |
43
+ | `/docs/systems/{system-id}/{version}/resources` | [Resources page](/docs/development/guides/systems/add-resources-to-systems#resources-page) listing the resources attached to the system. |
44
+ | `/visualiser/systems/{system-id}/{version}` | [Diagram](/docs/development/guides/systems/system-context-maps) for one system, with levels L1 to L3. Add `?level=1`, `?level=2` or `?level=3` to open a level directly. |
45
+ | `/visualiser/system-context-map` | Global System Context Diagram. |
46
46
 
47
47
  ## Required fields
48
48
 
@@ -0,0 +1,151 @@
1
+ ---
2
+ sidebar_position: 1
3
+ keywords:
4
+ - license
5
+ - license.jwt
6
+ - EC_LICENSE
7
+ - trial
8
+ - offline license
9
+ sidebar_label: License file
10
+ title: License file
11
+ description: Where to put your license.jwt file, how EventCatalog verifies it, and how EventCatalog shows your license and trial status.
12
+ ---
13
+
14
+ import AddedIn from '@site/src/components/MDX/AddedIn';
15
+
16
+ <AddedIn version="5.0.0" />
17
+
18
+ From v5, EventCatalog is licensed under the Business Source License 1.1 and every feature is included (on a paid plan, federation is Enterprise only). Your license is a signed file called `license.jwt`. EventCatalog reads it to show who the catalog is licensed to and when the license expires.
19
+
20
+ This page covers how the file works. To find out whether you need a commercial license, read the [licensing FAQ](/license-faq). For prices, see [pricing](/pricing).
21
+
22
+ :::info Using v4 license keys?
23
+
24
+ License keys such as `EVENTCATALOG_SCALE_LICENSE_KEY` are covered in [License Keys (v4)](/docs/development/license-keys/overview).
25
+
26
+ :::
27
+
28
+ ## Get a license file
29
+
30
+ Get your `license.jwt` from [EventCatalog Cloud](https://eventcatalog.cloud). Free users confirm their eligibility there, and commercial customers get a file with their license. See [license keys in the FAQ](/license-faq#keys).
31
+
32
+ One file covers your whole organization. You don't need a file per catalog or per environment.
33
+
34
+ ## Add the file to your catalog
35
+
36
+ Put `license.jwt` in the root of your catalog, next to `eventcatalog.config.js`.
37
+
38
+ ```txt
39
+ my-catalog/
40
+ ├── domains/
41
+ ├── services/
42
+ ├── eventcatalog.config.js
43
+ └── license.jwt
44
+ ```
45
+
46
+ To keep the file somewhere else, set `EC_LICENSE` to the path of the file. `EC_LICENSE` is a file path, not the contents of the file.
47
+
48
+ ```bash title=".env"
49
+ EC_LICENSE=/etc/secrets/eventcatalog/license.jwt
50
+ ```
51
+
52
+ EventCatalog loads `.env` before it checks the license, so you can set `EC_LICENSE` there or in your shell.
53
+
54
+ ### Use the file in CI/CD
55
+
56
+ You can commit `license.jwt` with your catalog. If you prefer not to, store its contents as a CI secret, write it to a file during the job, and point `EC_LICENSE` at that file:
57
+
58
+ ```bash
59
+ # LICENSE_JWT is a CI secret that holds the contents of license.jwt
60
+ echo "$LICENSE_JWT" > "$RUNNER_TEMP/license.jwt"
61
+ export EC_LICENSE="$RUNNER_TEMP/license.jwt"
62
+
63
+ npx eventcatalog build
64
+ ```
65
+
66
+ ## How the file is verified
67
+
68
+ EventCatalog verifies the file offline, against a public key built into EventCatalog. It checks the signature, the issuer, the audience, and the dates the license is valid from and until.
69
+
70
+ There are no calls home: the license works air-gapped, and nothing about your catalog is sent to EventCatalog to verify it.
71
+
72
+ When you change the file, EventCatalog verifies it again.
73
+
74
+ ## License status in the terminal
75
+
76
+ `eventcatalog dev` and `eventcatalog build` print the catalog's license status when they start.
77
+
78
+ With a valid license, they show who it's licensed to and when it expires:
79
+
80
+ ```txt
81
+ ╭────── EventCatalog Commercial License ──────╮
82
+ │ │
83
+ │ Licensed to Acme Ltd │
84
+ │ Valid until Oct 1, 2027 (359 days left) │
85
+ │ │
86
+ ╰─────────────────────────────────────────────╯
87
+ ```
88
+
89
+ | Status | What the terminal shows |
90
+ | --- | --- |
91
+ | Valid license | A green **EventCatalog Commercial License** box with who it's licensed to and the expiry date. |
92
+ | Expires in fewer than 30 days | A yellow box with the days left and a link to [eventcatalog.cloud](https://eventcatalog.cloud) to renew it. |
93
+ | Expired license | A yellow **EventCatalog License Expired** box with the date it expired, a link to renew it, and the trial status. |
94
+ | Invalid license | A yellow **EventCatalog license** box with the reason, the trial status, and a link to the licensing FAQ. |
95
+ | No license | An **EventCatalog trial** box with the days left of the trial and when it ends. |
96
+
97
+ A license is invalid when it can't be verified, for example when:
98
+
99
+ - the file is empty
100
+ - it is not valid yet
101
+ - its signature is invalid
102
+ - it was not issued by EventCatalog
103
+ - it has no expiry date
104
+
105
+ ## License status in the catalog
106
+
107
+ ### Header badge
108
+
109
+ While you run `eventcatalog dev`, the header shows a badge for your license or trial. The badge never appears in built or served catalogs.
110
+
111
+ | Status | Badge | Links to |
112
+ | --- | --- | --- |
113
+ | No license | **Trial · N days left**, counting down the trial | [Licensing FAQ](/license-faq) |
114
+ | No license, trial over | **Trial ended** | [Licensing FAQ](/license-faq) |
115
+ | Valid license, 30 or more days left | No badge | |
116
+ | Valid license, fewer than 30 days left | **License · N days left** | Settings > License |
117
+ | Expired license | **License expired** | Settings > License |
118
+
119
+ ### Settings > License
120
+
121
+ **Settings > License** (`/settings/license`) shows the catalog's license. For a valid license it lists:
122
+
123
+ - **Licensed to**
124
+ - **License ID**
125
+ - **Issued**
126
+ - **Expires**
127
+ - **Time left**
128
+
129
+ When the license has fewer than 30 days left, or has expired, the page shows a callout with a **Renew license** button that opens [EventCatalog Cloud](https://eventcatalog.cloud). When the file can't be verified, the page shows the reason.
130
+
131
+ Without a valid license, the page also shows the trial: its length, when it started, when it ends and the time left.
132
+
133
+ In a static build, the page shows the license as it was when you built the catalog. The days left are counted in the browser, so they stay current.
134
+
135
+ ## The trial
136
+
137
+ Without a valid license, EventCatalog counts down a trial, starting from when you first ran your catalog.
138
+
139
+ The trial countdown in EventCatalog is a reminder. The terms of the evaluation, and what to do when it ends, are in the [licensing FAQ](/license-faq#production).
140
+
141
+ ## When a trial or license ends
142
+
143
+ Your catalog keeps building and running. EventCatalog never fails a build, or turns features off, because a trial ended or a license expired. It shows reminders in the terminal, in the dev header and on Settings > License.
144
+
145
+ To renew a license, get a new `license.jwt` from [EventCatalog Cloud](https://eventcatalog.cloud) and replace the file.
146
+
147
+ ## v4 license keys
148
+
149
+ EventCatalog checks for a `license.jwt` first. If there isn't a valid one, it still recognizes a Scale or Starter license key (`EVENTCATALOG_SCALE_LICENSE_KEY` or `EVENTCATALOG_STARTER_LICENSE_KEY`). With one of those keys, EventCatalog shows no trial, and Settings > License shows the plan as active.
150
+
151
+ These keys are verified online, as they were in v4. See [License Keys (v4)](/docs/development/license-keys/overview).
@@ -0,0 +1,12 @@
1
+ {
2
+ "label": "License",
3
+ "position": 10.5,
4
+ "collapsible": true,
5
+ "collapsed": true,
6
+ "link": {
7
+ "type": "generated-index",
8
+ "slug": "development/license",
9
+ "title": "License",
10
+ "description": "How EventCatalog v5 reads and verifies your license file, and how the trial works."
11
+ }
12
+ }
@@ -1,12 +1,12 @@
1
1
  {
2
- "label": "License Keys",
2
+ "label": "License Keys (v4)",
3
3
  "position": 11,
4
4
  "collapsible": true,
5
5
  "collapsed": true,
6
6
  "link": {
7
7
  "type": "generated-index",
8
8
  "slug": "development/license-keys",
9
- "title": "License Keys",
10
- "description": "How to get and use license keys for EventCatalog Scale, Enterprise, and integrations (OpenAPI, AsyncAPI, and more)."
9
+ "title": "License Keys (v4)",
10
+ "description": "How license keys worked in EventCatalog v4 and earlier. From v5, everything is included: see the licensing FAQ."
11
11
  }
12
12
  }