@eventcatalog/core 5.0.0-beta.9 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (458) hide show
  1. package/LICENSE +13 -12
  2. package/README.md +5 -5
  3. package/dist/analytics/analytics.cjs +1 -1
  4. package/dist/analytics/analytics.js +2 -2
  5. package/dist/analytics/log-build.cjs +91 -44
  6. package/dist/analytics/log-build.d.cts +2 -2
  7. package/dist/analytics/log-build.d.ts +2 -2
  8. package/dist/analytics/log-build.js +6 -5
  9. package/dist/analytics/studio-usage.cjs +90 -0
  10. package/dist/analytics/studio-usage.d.cts +5 -0
  11. package/dist/analytics/studio-usage.d.ts +5 -0
  12. package/dist/analytics/studio-usage.js +10 -0
  13. package/dist/catalog-runtime.cjs +1 -1
  14. package/dist/{chunk-ZEY2XUJN.js → chunk-46TBJZC3.js} +1 -1
  15. package/dist/{chunk-RFIXKATC.js → chunk-4G7FSRPN.js} +35 -42
  16. package/dist/{chunk-AWOO63ME.js → chunk-AD7CL772.js} +11 -4
  17. package/dist/chunk-CA6WCQ2T.js +54 -0
  18. package/dist/{chunk-GAHKCOQM.js → chunk-DVHJTQWQ.js} +1 -1
  19. package/dist/{chunk-TZVDMWQX.js → chunk-HFR5OPHV.js} +4 -2
  20. package/dist/{chunk-4CFZUHGG.js → chunk-KTXSCPEK.js} +1 -1
  21. package/dist/{chunk-ENAG6UH7.js → chunk-NKNOXQ62.js} +1 -6
  22. package/dist/{chunk-36RYTYT5.js → chunk-PD7KTSYN.js} +1 -1
  23. package/dist/chunk-S5GWAUG5.js +29 -0
  24. package/dist/{chunk-EUNQJO3J.js → chunk-UWAXRTAJ.js} +1 -1
  25. package/dist/{chunk-JQMYHZWI.js → chunk-YPWK5ITM.js} +15 -7
  26. package/dist/constants.cjs +1 -1
  27. package/dist/constants.js +1 -1
  28. package/dist/docs/api/02-config.md +57 -7
  29. package/dist/docs/development/00-why-eventcatalog.md +11 -11
  30. package/dist/docs/development/01-fundamentals.md +20 -13
  31. package/dist/docs/development/01-getting-started/configuration-overview.md +2 -2
  32. package/dist/docs/development/01-getting-started/installation.md +9 -1
  33. package/dist/docs/development/_getting-started.mdx +1 -1
  34. package/dist/docs/development/ask-your-architecture/01-intro.md +5 -5
  35. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/01-what-is-eventcatalog-assistant.md +0 -4
  36. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/02-configuration.md +15 -3
  37. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/03-bring-your-own-tools.md +0 -3
  38. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/_category_.json +1 -1
  39. package/dist/docs/development/ask-your-architecture/02-llms.txt.md +1 -1
  40. package/dist/docs/development/ask-your-architecture/{05-skills/01-introduction.md → 03-install-skills.md} +57 -7
  41. package/dist/docs/development/ask-your-architecture/03-mcp-server/_category_.json +1 -1
  42. package/dist/docs/development/ask-your-architecture/03-mcp-server/getting-started.md +86 -33
  43. package/dist/docs/development/ask-your-architecture/03-mcp-server/introduction.md +14 -4
  44. package/dist/docs/development/ask-your-architecture/03-schemas.txt.md +1 -1
  45. package/dist/docs/development/ask-your-architecture/04-agents/_category_.json +1 -1
  46. package/dist/docs/development/authentication/01-introduction.md +2 -23
  47. package/dist/docs/development/authentication/02-enabling-authentication.md +0 -20
  48. package/dist/docs/development/authentication/07-rbac-middleware.md +0 -2
  49. package/dist/docs/development/authentication/providers/03-setting-up-github.md +0 -2
  50. package/dist/docs/development/authentication/providers/03a-setting-up-google.md +0 -2
  51. package/dist/docs/development/authentication/providers/04-setting-up-azure-ad.md +0 -2
  52. package/dist/docs/development/authentication/providers/05-setting-up-okta.md +0 -3
  53. package/dist/docs/development/authentication/providers/06-setting-up-auth0.md +0 -2
  54. package/dist/docs/development/bring-your-own-documentation/01-introduction.md +0 -4
  55. package/dist/docs/development/bring-your-own-documentation/custom-pages/01-introduction.md +0 -3
  56. package/dist/docs/development/bring-your-own-documentation/custom-pages/02-adding-custom-docs.md +0 -17
  57. package/dist/docs/development/bring-your-own-documentation/custom-pages/03-components.md +0 -4
  58. package/dist/docs/development/bring-your-own-documentation/custom-pages/04-owners.md +0 -2
  59. package/dist/docs/development/bring-your-own-documentation/resource-docs/01-introduction.md +1 -3
  60. package/dist/docs/development/bring-your-own-documentation/resource-docs/02-adding-resource-docs.md +1 -4
  61. package/dist/docs/development/bring-your-own-documentation/resource-docs/03-categories.md +0 -2
  62. package/dist/docs/development/bring-your-own-documentation/resource-docs/04-versioning.md +1 -3
  63. package/dist/docs/development/components/components/11-flow.md +17 -0
  64. package/dist/docs/development/components/components/15-nodegraph.md +43 -10
  65. package/dist/docs/development/components/components/18-remote-schema.md +1 -4
  66. package/dist/docs/development/components/custom-components/07-reference.md +14 -0
  67. package/dist/docs/development/customization/02-themes.md +0 -5
  68. package/dist/docs/development/customization/03-search.md +1 -1
  69. package/dist/docs/development/customization/05-custom-pages-and-api-routes/01-introduction.md +0 -2
  70. package/dist/docs/development/customization/05-custom-pages-and-api-routes/04-reference.md +7 -1
  71. package/dist/docs/development/customization/05-resource-sidebar.md +1 -1
  72. package/dist/docs/development/customization/09-embed-eventcatalog.md +20 -25
  73. package/dist/docs/development/deployment/hosting-options.md +7 -2
  74. package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/05-fix-common-problems.md +16 -0
  75. package/dist/docs/development/developer-tools/eventcatalog-linter/reference/03-rules.md +31 -1
  76. package/dist/docs/development/developer-tools/eventcatalog-linter/reference/05-supported-resources.md +1 -1
  77. package/dist/docs/development/governance/architecture-change-detection/01-introduction.md +0 -10
  78. package/dist/docs/development/governance/architecture-change-detection/06-pipeline-gates.md +0 -4
  79. package/dist/docs/development/guides/97-architecture-graph.md +1 -1
  80. package/dist/docs/development/guides/99-adding-analytics.md +0 -7
  81. package/dist/docs/development/guides/domains/03-model-subdomains.md +2 -2
  82. package/dist/docs/development/guides/domains/04-add-resources-to-domains/01-add-systems-to-domains.md +3 -1
  83. package/dist/docs/development/guides/domains/04-add-resources-to-domains/02-add-services-to-domains.md +5 -1
  84. package/dist/docs/development/guides/domains/04-add-resources-to-domains/03-add-messages-to-domains.md +2 -2
  85. package/dist/docs/development/guides/domains/04-add-resources-to-domains/05-add-entities-to-domains.md +1 -1
  86. package/dist/docs/development/guides/domains/04-add-resources-to-domains/06-domain-resources-page.md +40 -0
  87. package/dist/docs/development/guides/domains/06-visualize-domains/01-domain-diagram.md +89 -0
  88. package/dist/docs/development/guides/domains/06-visualize-domains/_category_.json +1 -2
  89. package/dist/docs/development/guides/domains/09-reference.md +4 -4
  90. package/dist/docs/development/guides/owners/automated-teams-and-users/create-your-own-connector.md +0 -2
  91. package/dist/docs/development/guides/owners/automated-teams-and-users/sync-from-github.md +0 -3
  92. package/dist/docs/development/guides/owners/automated-teams-and-users/sync-from-microsoft-entra.md +0 -2
  93. package/dist/docs/development/guides/resources/adrs/03-linking-resources.md +8 -0
  94. package/dist/docs/development/guides/resources/adrs/06-reference.md +4 -4
  95. package/dist/docs/development/guides/resources/agents/11-reference.md +1 -1
  96. package/dist/docs/development/guides/resources/data/04-reference.md +1 -1
  97. package/dist/docs/development/guides/resources/data-products/07-reference.md +1 -1
  98. package/dist/docs/development/guides/resources/entities/05-entity-maps.md +1 -1
  99. package/dist/docs/development/guides/resources/entities/06-reference.md +2 -2
  100. package/dist/docs/development/guides/resources/flows/01-introduction.md +11 -1
  101. package/dist/docs/development/guides/resources/flows/03-model-flow-steps.md +65 -6
  102. package/dist/docs/development/guides/resources/flows/05-explore-flows.md +112 -0
  103. package/dist/docs/development/guides/resources/flows/06-reference.md +25 -4
  104. package/dist/docs/development/guides/resources/messages/01-what-are-messages.md +19 -0
  105. package/dist/docs/development/guides/resources/messages/04-message-channels/01-introduction.md +16 -0
  106. package/dist/docs/development/guides/resources/messages/04-message-channels/05-reference.md +2 -1
  107. package/dist/docs/development/guides/resources/messages/10-reference.md +6 -3
  108. package/dist/docs/development/guides/resources/schemas/04-explore-schemas/01-schema-explorer.md +2 -2
  109. package/dist/docs/development/guides/resources/schemas/04-explore-schemas/02-fields-explorer.md +0 -9
  110. package/dist/docs/development/guides/resources/schemas/05-schema-api.md +0 -3
  111. package/dist/docs/development/guides/resources/schemas/06-schema-mcp.md +11 -3
  112. package/dist/docs/development/guides/resources/services/04-add-resources-to-services/03-add-entities-to-services.md +1 -1
  113. package/dist/docs/development/guides/resources/services/05-resources-page.md +50 -0
  114. package/dist/docs/development/guides/resources/services/08-reference.md +2 -1
  115. package/dist/docs/development/guides/systems/01-introduction.md +1 -1
  116. package/dist/docs/development/guides/systems/02-create-system.md +2 -2
  117. package/dist/docs/development/guides/systems/03-add-resources-to-systems.md +35 -9
  118. package/dist/docs/development/guides/systems/04-model-relationships-and-actors.md +5 -3
  119. package/dist/docs/development/guides/systems/05-system-context-maps.md +39 -22
  120. package/dist/docs/development/guides/systems/06-reference.md +4 -4
  121. package/dist/docs/development/license/01-license-file.md +151 -0
  122. package/dist/docs/development/license/_category_.json +12 -0
  123. package/dist/docs/development/license-keys/_category_.json +3 -3
  124. package/dist/docs/development/license-keys/integrations.md +7 -37
  125. package/dist/docs/development/license-keys/license-validation.md +4 -0
  126. package/dist/docs/development/license-keys/overview.md +5 -1
  127. package/dist/docs/development/license-keys/plans.md +4 -2
  128. package/dist/docs/development/studio/01-introduction.md +60 -0
  129. package/dist/docs/development/studio/02-create-a-canvas.md +103 -0
  130. package/dist/docs/development/studio/03-set-up-persistent-storage.md +59 -0
  131. package/dist/docs/development/studio/04-collaborate-on-a-canvas.md +78 -0
  132. package/dist/docs/development/studio/05-connect-your-agent.md +102 -0
  133. package/dist/docs/development/studio/06-run-studio-in-production.md +54 -0
  134. package/dist/docs/development/studio/07-reference.md +294 -0
  135. package/dist/docs/development/studio/_category_.json +12 -0
  136. package/dist/docs/development/upgrading/v5.md +345 -0
  137. package/dist/docs/federation/00-overview.md +2 -8
  138. package/dist/docs/federation/01-first-federation.md +6 -18
  139. package/dist/docs/federation/explanation/how-it-works.md +0 -4
  140. package/dist/docs/federation/explanation/lockfile-and-cache.md +0 -4
  141. package/dist/docs/federation/explanation/mvp-status-and-feedback.md +0 -4
  142. package/dist/docs/federation/explanation/ownership-and-references.md +0 -4
  143. package/dist/docs/federation/how-to/configure-github-sources.md +6 -5
  144. package/dist/docs/federation/how-to/configure-validation-rules.md +0 -4
  145. package/dist/docs/federation/how-to/run-in-ci.md +2 -9
  146. package/dist/docs/federation/how-to/share-assets-and-components.md +0 -4
  147. package/dist/docs/federation/how-to/use-local-sources.md +0 -4
  148. package/dist/docs/federation/legacy-federation/00-introduction.md +4 -22
  149. package/dist/docs/federation/legacy-federation/01-installation.md +7 -58
  150. package/dist/docs/federation/legacy-federation/02-plugin-configuration.md +3 -21
  151. package/dist/docs/federation/legacy-federation/03-examples.md +3 -5
  152. package/dist/docs/federation/legacy-federation/04-configuration.md +3 -8
  153. package/dist/docs/federation/legacy-federation/05-setup-team-catalog.md +3 -6
  154. package/dist/docs/federation/reference/cli.md +2 -8
  155. package/dist/docs/federation/reference/configuration.md +0 -4
  156. package/dist/docs/federation/reference/diagnostic-rules.md +0 -5
  157. package/dist/docs/federation/reference/generated-output.md +0 -4
  158. package/dist/docs/federation/reference/supported-content.md +0 -4
  159. package/dist/docs/federation/reference/troubleshooting.md +0 -14
  160. package/dist/docs/plugins/02-generators.md +1 -1
  161. package/dist/docs/plugins/amazon-apigateway/00-intro.md +3 -28
  162. package/dist/docs/plugins/amazon-apigateway/01-installation.md +4 -56
  163. package/dist/docs/plugins/amazon-apigateway/02-plugin-configuration.md +1 -6
  164. package/dist/docs/plugins/apicurio/00-intro.md +2 -31
  165. package/dist/docs/plugins/apicurio/01-installation.md +2 -26
  166. package/dist/docs/plugins/apicurio/02-plugin-configuration.md +5 -13
  167. package/dist/docs/plugins/apicurio/03-features.md +1 -3
  168. package/dist/docs/plugins/asyncapi/00-intro.md +2 -28
  169. package/dist/docs/plugins/asyncapi/01-installation.md +3 -54
  170. package/dist/docs/plugins/asyncapi/02-plugin-configuration.md +2 -1
  171. package/dist/docs/plugins/aws-glue-registry/00-intro.md +4 -32
  172. package/dist/docs/plugins/aws-glue-registry/00a-installation.md +3 -53
  173. package/dist/docs/plugins/azure-schema-registry/00-intro.md +4 -32
  174. package/dist/docs/plugins/azure-schema-registry/01-installation.md +6 -33
  175. package/dist/docs/plugins/azure-schema-registry/02-plugin-configuration.md +1 -14
  176. package/dist/docs/plugins/azure-schema-registry/04-examples.md +0 -2
  177. package/dist/docs/plugins/backstage/00-overview.md +1 -7
  178. package/dist/docs/plugins/backstage/01-get-started.md +6 -15
  179. package/dist/docs/plugins/backstage/06-configuration.md +2 -8
  180. package/dist/docs/plugins/confluent-schema-registry/00-intro.md +2 -29
  181. package/dist/docs/plugins/confluent-schema-registry/01-installation.md +2 -26
  182. package/dist/docs/plugins/eventbridge/00-intro.md +0 -4
  183. package/dist/docs/plugins/eventbridge/00a-installation.md +1 -87
  184. package/dist/docs/plugins/eventbridge/03-api.md +2 -20
  185. package/dist/docs/plugins/github/00-intro.md +0 -31
  186. package/dist/docs/plugins/github/01-installation.md +2 -34
  187. package/dist/docs/plugins/graphql/00-intro.md +0 -30
  188. package/dist/docs/plugins/graphql/01-installation.md +1 -53
  189. package/dist/docs/plugins/graphql/02-plugin-configuration.md +0 -1
  190. package/dist/docs/plugins/hookdeck/01-intro.md +1 -1
  191. package/dist/docs/plugins/openapi/00-intro.md +0 -30
  192. package/dist/docs/plugins/openapi/01-installation.md +1 -57
  193. package/dist/docs/plugins/openapi/02-plugin-configuration.md +0 -5
  194. package/dist/docs/plugins/openapi/03-features.md +0 -4
  195. package/dist/eventcatalog-config-file-utils.cjs +34 -41
  196. package/dist/eventcatalog-config-file-utils.d.cts +56 -58
  197. package/dist/eventcatalog-config-file-utils.d.ts +56 -58
  198. package/dist/eventcatalog-config-file-utils.js +1 -1
  199. package/dist/eventcatalog.cjs +340 -249
  200. package/dist/eventcatalog.config.d.cts +18 -15
  201. package/dist/eventcatalog.config.d.ts +18 -15
  202. package/dist/eventcatalog.js +46 -28
  203. package/dist/features.cjs +36 -49
  204. package/dist/features.d.cts +1 -3
  205. package/dist/features.d.ts +1 -3
  206. package/dist/features.js +4 -6
  207. package/dist/federation/federate.cjs +37 -44
  208. package/dist/federation/federate.js +2 -2
  209. package/dist/generate.cjs +37 -42
  210. package/dist/generate.js +4 -4
  211. package/dist/resolve-catalog-dependencies.cjs +34 -41
  212. package/dist/resolve-catalog-dependencies.js +2 -2
  213. package/dist/runtime-dependencies/@eventcatalog__visualiser__studio-fonts.css.mjs +3 -0
  214. package/dist/runtime-dependencies/@eventcatalog__visualiser__studio.css.mjs +3 -0
  215. package/dist/runtime-dependencies/@eventcatalog__visualiser__studio.mjs +3 -0
  216. package/dist/runtime-dependencies/htmlparser2.mjs +3 -0
  217. package/dist/runtime-dependencies/manifest.json +5 -1
  218. package/dist/runtime-dependencies/react-syntax-highlighter__dist__cjs__create-element.js.mjs +3 -0
  219. package/dist/utils/child-process-signals.cjs +53 -0
  220. package/dist/utils/child-process-signals.d.cts +19 -0
  221. package/dist/utils/child-process-signals.d.ts +19 -0
  222. package/dist/utils/child-process-signals.js +6 -0
  223. package/dist/utils/cli-logger.cjs +1 -1
  224. package/dist/utils/cli-logger.js +2 -2
  225. package/dist/utils/license-status.cjs +11 -4
  226. package/dist/utils/license-status.d.cts +3 -2
  227. package/dist/utils/license-status.d.ts +3 -2
  228. package/dist/utils/license-status.js +1 -1
  229. package/eventcatalog/astro.config.mjs +21 -1
  230. package/eventcatalog/integrations/config-loader.mjs +56 -58
  231. package/eventcatalog/integrations/skip-startup-reload.mjs +31 -0
  232. package/eventcatalog/integrations/stable-dependency-order.mjs +29 -0
  233. package/eventcatalog/integrations/storage.mjs +20 -0
  234. package/eventcatalog/integrations/studio-server.mjs +4 -1
  235. package/eventcatalog/src/components/CatalogGraph/CatalogForceGraph.tsx +39 -0
  236. package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +2 -0
  237. package/eventcatalog/src/components/Homepage/CatalogDashboard.astro +342 -0
  238. package/eventcatalog/src/components/MDX/NodeGraph/AstroNodeGraph.tsx +60 -4
  239. package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.astro +5 -1
  240. package/eventcatalog/src/components/NavigationProgress.astro +7 -0
  241. package/eventcatalog/src/components/SchemaExplorer/ApiContentViewer.tsx +2 -0
  242. package/eventcatalog/src/components/SchemaExplorer/ExamplesViewer.tsx +2 -0
  243. package/eventcatalog/src/components/SchemaExplorer/SchemaCodeModal.tsx +2 -0
  244. package/eventcatalog/src/components/SchemaExplorer/SchemaContentViewer.tsx +2 -0
  245. package/eventcatalog/src/components/Search/SearchDataLoader.astro +16 -28
  246. package/eventcatalog/src/components/Search/SearchModal.tsx +2 -10
  247. package/eventcatalog/src/components/Search/search-utils.ts +26 -0
  248. package/eventcatalog/src/components/Seo.astro +5 -1
  249. package/eventcatalog/src/components/Settings/AssistantSettingsForm.tsx +53 -48
  250. package/eventcatalog/src/components/Settings/GeneralSettingsForm.tsx +183 -178
  251. package/eventcatalog/src/components/Settings/LicenseSettings.tsx +140 -31
  252. package/eventcatalog/src/components/Settings/LlmAccessSettingsForm.tsx +40 -35
  253. package/eventcatalog/src/components/Settings/LogoUpload.tsx +1 -1
  254. package/eventcatalog/src/components/Settings/McpSettingsForm.tsx +9 -8
  255. package/eventcatalog/src/components/Settings/Row.tsx +7 -4
  256. package/eventcatalog/src/components/Settings/SettingsShared.tsx +3 -3
  257. package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +37 -76
  258. package/eventcatalog/src/components/SideNav/NestedSideBar/storage.ts +2 -0
  259. package/eventcatalog/src/components/SideNav/NestedSideBar/utils.ts +122 -1
  260. package/eventcatalog/src/components/SideNav/SideNav.astro +9 -1
  261. package/eventcatalog/src/components/TrialBadge.astro +20 -9
  262. package/eventcatalog/src/content.config.ts +19 -2
  263. package/eventcatalog/src/features/auth/error.astro +4 -2
  264. package/eventcatalog/src/features/auth/login.astro +2 -1
  265. package/eventcatalog/src/features/auth/middleware/middleware-auth.ts +21 -1
  266. package/eventcatalog/src/features/auth/unauthorized.astro +1 -1
  267. package/eventcatalog/src/features/fields/pages/fields.astro +1 -1
  268. package/eventcatalog/src/features/integrations/eventcatalog-features.ts +13 -7
  269. package/eventcatalog/src/features/mcp/apps/architecture-diagram/node-chat.tsx +6 -45
  270. package/eventcatalog/src/features/mcp/apps/canvas/shared.ts +3 -3
  271. package/eventcatalog/src/features/mcp/apps/canvas/styles.css +3 -1
  272. package/eventcatalog/src/features/mcp/apps/canvas/view.tsx +7 -5
  273. package/eventcatalog/src/features/mcp/apps/generated/canvas.html +123 -98
  274. package/eventcatalog/src/features/mcp/apps/generated/viewer.html +118 -101
  275. package/eventcatalog/src/features/mcp/mcp-server.ts +20 -4
  276. package/eventcatalog/src/features/server/start.ts +25 -0
  277. package/eventcatalog/src/features/storage/database.ts +88 -0
  278. package/eventcatalog/src/features/storage/migrations.ts +85 -0
  279. package/eventcatalog/src/features/storage/sql/database.sql +5 -0
  280. package/eventcatalog/src/features/storage/sql/migrations/0001-studio-canvases.sql +12 -0
  281. package/eventcatalog/src/features/storage/sql/migrations.sql +15 -0
  282. package/eventcatalog/src/features/storage/sql.ts +28 -0
  283. package/eventcatalog/src/features/studio/agent-choreography.ts +13 -10
  284. package/eventcatalog/src/features/studio/agents.ts +28 -0
  285. package/eventcatalog/src/features/studio/api/canvases-api.ts +219 -0
  286. package/eventcatalog/src/features/studio/api/canvases.ts +25 -0
  287. package/eventcatalog/src/features/studio/api/client.ts +40 -0
  288. package/eventcatalog/src/features/studio/canvas-actions.ts +160 -34
  289. package/eventcatalog/src/features/studio/canvas-preview.ts +1 -2
  290. package/eventcatalog/src/features/studio/catalog.ts +16 -14
  291. package/eventcatalog/src/features/studio/components/CanvasHeader.tsx +274 -105
  292. package/eventcatalog/src/features/studio/components/CanvasStatusMenu.tsx +15 -14
  293. package/eventcatalog/src/features/studio/components/ConnectAgentDialog.tsx +272 -119
  294. package/eventcatalog/src/features/studio/components/ConnectionsChooser.tsx +1 -2
  295. package/eventcatalog/src/features/studio/components/DeleteCanvasDialog.tsx +65 -0
  296. package/eventcatalog/src/features/studio/components/Dialog.tsx +60 -0
  297. package/eventcatalog/src/features/studio/components/JoinForm.tsx +101 -26
  298. package/eventcatalog/src/features/studio/components/LeftPanel.tsx +122 -230
  299. package/eventcatalog/src/features/studio/components/NodeDetails.tsx +183 -0
  300. package/eventcatalog/src/features/studio/components/OpenInStudioDialog.tsx +79 -0
  301. package/eventcatalog/src/features/studio/components/Presence.tsx +52 -45
  302. package/eventcatalog/src/features/studio/components/ShareDialog.tsx +277 -141
  303. package/eventcatalog/src/features/studio/components/ShortcutsDialog.tsx +41 -0
  304. package/eventcatalog/src/features/studio/components/StudioDesigner.tsx +1314 -385
  305. package/eventcatalog/src/features/studio/components/StudioNotice.astro +24 -0
  306. package/eventcatalog/src/features/studio/document-name.ts +7 -0
  307. package/eventcatalog/src/features/studio/from-visualiser.ts +138 -0
  308. package/eventcatalog/src/features/studio/hooks/presence-sender.ts +19 -2
  309. package/eventcatalog/src/features/studio/hooks/use-canvas-webmcp.ts +9 -3
  310. package/eventcatalog/src/features/studio/hooks/use-comments.ts +2 -2
  311. package/eventcatalog/src/features/studio/hooks/use-follow-camera.ts +8 -3
  312. package/eventcatalog/src/features/studio/hooks/use-studio-flow.ts +244 -32
  313. package/eventcatalog/src/features/studio/identity.ts +25 -1
  314. package/eventcatalog/src/features/studio/limits.ts +2 -0
  315. package/eventcatalog/src/features/studio/pages/[id].astro +42 -16
  316. package/eventcatalog/src/features/studio/pages/index.astro +596 -373
  317. package/eventcatalog/src/features/studio/pages/webmcp-relay.ts +12 -15
  318. package/eventcatalog/src/features/studio/server/canvas-mcp.ts +8 -23
  319. package/eventcatalog/src/features/studio/server/runtime.ts +150 -46
  320. package/eventcatalog/src/features/studio/server/sql/storage.sql +18 -0
  321. package/eventcatalog/src/features/studio/server/storage.ts +53 -73
  322. package/eventcatalog/src/features/studio/webmcp-relay/LICENSE +21 -0
  323. package/eventcatalog/src/features/studio/webmcp-relay/README.md +5 -0
  324. package/eventcatalog/src/features/studio/webmcp-relay/embed.js +2 -0
  325. package/eventcatalog/src/features/studio/webmcp-relay/widget.html +10 -0
  326. package/eventcatalog/src/features/studio/webmcp-relay/widget.js +1 -0
  327. package/eventcatalog/src/features/tools/catalog-tools.ts +3 -1
  328. package/eventcatalog/src/layouts/BaseLayout.astro +4 -4
  329. package/eventcatalog/src/layouts/SettingsLayout.astro +2 -2
  330. package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +3 -2
  331. package/eventcatalog/src/pages/_index.astro +5 -342
  332. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.spec.ts +2 -3
  333. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.ts +0 -7
  334. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +3 -1
  335. package/eventcatalog/src/pages/diagrams/[id]/[version]/_index.data.ts +0 -7
  336. package/eventcatalog/src/pages/diagrams/[id]/[version]/embed.astro +1 -0
  337. package/eventcatalog/src/pages/diagrams/[id]/[version]/index.astro +1 -0
  338. package/eventcatalog/src/pages/directory/[type]/_index.data.ts +5 -7
  339. package/eventcatalog/src/pages/directory/[type]/index.astro +3 -1
  340. package/eventcatalog/src/pages/discover/[type]/_index.data.ts +5 -7
  341. package/eventcatalog/src/pages/discover/[type]/index.astro +3 -1
  342. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/_index.data.ts +0 -7
  343. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/index.astro +1 -0
  344. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/_index.data.ts +0 -7
  345. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/index.astro +1 -0
  346. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/_index.data.ts +0 -7
  347. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/[filename].astro +3 -1
  348. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/_[filename].data.ts +0 -7
  349. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/_index.data.ts +0 -7
  350. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/index.astro +1 -0
  351. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/examples/[...filename].astro +1 -0
  352. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/examples/_[...filename].data.ts +0 -4
  353. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/field-lineage/_index.data.ts +0 -7
  354. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/field-lineage/index.astro +1 -0
  355. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/[filename].astro +3 -1
  356. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/_[filename].data.ts +0 -7
  357. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +1 -0
  358. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.spec.ts +2 -3
  359. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.ts +0 -7
  360. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/index.astro +1 -0
  361. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/[filename].astro +1 -0
  362. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/_[filename].data.ts +0 -7
  363. package/eventcatalog/src/pages/docs/[type]/[id]/_index.data.ts +0 -7
  364. package/eventcatalog/src/pages/docs/[type]/[id]/index.astro +2 -1
  365. package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/_index.data.ts +0 -7
  366. package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/index.astro +1 -0
  367. package/eventcatalog/src/pages/docs/[type]/[id]/language/_index.data.ts +0 -7
  368. package/eventcatalog/src/pages/docs/[type]/[id]/language/index.astro +1 -0
  369. package/eventcatalog/src/pages/docs/custom/[...path]/_index.data.ts +0 -7
  370. package/eventcatalog/src/pages/docs/custom/[...path]/index.astro +1 -0
  371. package/eventcatalog/src/pages/docs/services/[id]/[docType]/[docId]/index.astro +1 -1
  372. package/eventcatalog/src/pages/docs/services/[id]/[version]/resources/index.astro +1 -0
  373. package/eventcatalog/src/pages/docs/services/[id]/asyncapi/[filename].astro +1 -1
  374. package/eventcatalog/src/pages/docs/services/[id]/changelog/index.astro +1 -1
  375. package/eventcatalog/src/pages/docs/services/[id]/graphql/[filename].astro +1 -1
  376. package/eventcatalog/src/pages/docs/services/[id]/spec/[filename].astro +1 -1
  377. package/eventcatalog/src/pages/docs/teams/[id]/_index.data.ts +0 -7
  378. package/eventcatalog/src/pages/docs/teams/[id]/index.astro +1 -0
  379. package/eventcatalog/src/pages/docs/users/[id]/_index.data.ts +0 -7
  380. package/eventcatalog/src/pages/docs/users/[id]/index.astro +1 -0
  381. package/eventcatalog/src/pages/index.astro +4 -2
  382. package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/_index.data.ts +0 -7
  383. package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/index.astro +9 -1
  384. package/eventcatalog/src/pages/schemas/explorer/_index.data.ts +0 -7
  385. package/eventcatalog/src/pages/schemas/explorer/index.astro +4 -2
  386. package/eventcatalog/src/pages/settings/license.astro +9 -1
  387. package/eventcatalog/src/pages/triggers/[type]/[id]/[version]/_index.data.ts +0 -7
  388. package/eventcatalog/src/pages/triggers/[type]/[id]/[version]/index.astro +1 -0
  389. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/_index.data.ts +0 -7
  390. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/data/_index.data.ts +0 -7
  391. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/data/index.astro +1 -0
  392. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/_index.data.ts +0 -7
  393. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/index.astro +1 -0
  394. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/index.astro +1 -0
  395. package/eventcatalog/src/pages/visualiser/[type]/[id]/_index.data.ts +38 -0
  396. package/eventcatalog/src/pages/visualiser/[type]/[id]/index.astro +18 -41
  397. package/eventcatalog/src/pages/visualiser/designs/[id]/_index.data.ts +0 -7
  398. package/eventcatalog/src/pages/visualiser/designs/[id]/index.astro +2 -1
  399. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/_index.data.ts +0 -7
  400. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/index.astro +1 -0
  401. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/index.astro +1 -0
  402. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/_index.data.ts +0 -7
  403. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/index.astro +1 -0
  404. package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/_index.data.ts +0 -7
  405. package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/index.astro +1 -0
  406. package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/index.astro +1 -0
  407. package/eventcatalog/src/types/react-syntax-highlighter.d.ts +10 -0
  408. package/eventcatalog/src/utils/collections/flows.ts +20 -7
  409. package/eventcatalog/src/utils/collections/resource-owners.ts +8 -2
  410. package/eventcatalog/src/utils/collections/resources.ts +2 -0
  411. package/eventcatalog/src/utils/collections/util.ts +8 -4
  412. package/eventcatalog/src/utils/git.ts +11 -0
  413. package/eventcatalog/src/utils/homepage-dashboard.ts +143 -0
  414. package/eventcatalog/src/utils/license.ts +1 -1
  415. package/eventcatalog/src/utils/link-validation.ts +25 -19
  416. package/eventcatalog/src/utils/node-graphs/domain-entity-map.ts +3 -1
  417. package/eventcatalog/src/utils/node-graphs/domain-levels-node-graph.ts +3 -3
  418. package/eventcatalog/src/utils/node-graphs/field-node-graph.ts +4 -2
  419. package/eventcatalog/src/utils/node-graphs/layout-node-graph.ts +20 -1
  420. package/eventcatalog/src/utils/node-graphs/node-resource.ts +67 -0
  421. package/eventcatalog/src/utils/node-graphs/systems-node-graph.ts +1 -1
  422. package/eventcatalog/src/utils/page-loaders/hybrid-page.ts +4 -15
  423. package/eventcatalog/src/utils/page-title.ts +15 -0
  424. package/eventcatalog/src/utils/syntax-highlighter-renderer.ts +64 -0
  425. package/eventcatalog/src/utils/trial.ts +13 -0
  426. package/package.json +12 -12
  427. package/dist/docs/development/ask-your-architecture/05-skills/02-installation.md +0 -60
  428. package/dist/docs/development/ask-your-architecture/05-skills/_category_.json +0 -11
  429. package/dist/docs/development/ask-your-architecture/06-slack-integration/01-introduction.md +0 -63
  430. package/dist/docs/development/ask-your-architecture/06-slack-integration/02-slack-app-setup.md +0 -154
  431. package/dist/docs/development/ask-your-architecture/06-slack-integration/03-installation.md +0 -169
  432. package/dist/docs/development/ask-your-architecture/06-slack-integration/04-deployment.md +0 -236
  433. package/dist/docs/development/ask-your-architecture/06-slack-integration/05-usage.md +0 -140
  434. package/dist/docs/development/ask-your-architecture/06-slack-integration/06-troubleshooting.md +0 -268
  435. package/dist/docs/development/ask-your-architecture/06-slack-integration/_category_.json +0 -13
  436. package/dist/docs/development/guides/domains/06-visualize-domains/01-domain-integration-map.md +0 -40
  437. package/dist/runtime-dependencies/@mcp-b__webmcp-local-relay.mjs +0 -3
  438. package/eventcatalog/src/features/studio/canvas-doc.ts +0 -409
  439. package/eventcatalog/src/features/studio/clipboard.ts +0 -97
  440. package/eventcatalog/src/features/studio/components/CanvasControls.tsx +0 -154
  441. package/eventcatalog/src/features/studio/components/Comments.tsx +0 -770
  442. package/eventcatalog/src/features/studio/components/ContainerChooser.tsx +0 -145
  443. package/eventcatalog/src/features/studio/components/DragGhost.tsx +0 -115
  444. package/eventcatalog/src/features/studio/components/Picture.tsx +0 -21
  445. package/eventcatalog/src/features/studio/components/PropertiesPanel.tsx +0 -212
  446. package/eventcatalog/src/features/studio/components/canvas-nodes.tsx +0 -255
  447. package/eventcatalog/src/features/studio/components/icons.ts +0 -53
  448. package/eventcatalog/src/features/studio/components/status.ts +0 -51
  449. package/eventcatalog/src/features/studio/edges.ts +0 -56
  450. package/eventcatalog/src/features/studio/flow-state.ts +0 -92
  451. package/eventcatalog/src/features/studio/grouping.ts +0 -226
  452. package/eventcatalog/src/features/studio/layout.ts +0 -42
  453. package/eventcatalog/src/features/studio/levels.ts +0 -282
  454. package/eventcatalog/src/features/studio/node-types.ts +0 -205
  455. package/eventcatalog/src/features/studio/pages/new.astro +0 -24
  456. package/eventcatalog/src/features/studio/pages/wake.ts +0 -15
  457. package/eventcatalog/src/features/studio/placement.ts +0 -197
  458. package/eventcatalog/src/features/studio/studio.css +0 -273
@@ -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
  }
@@ -7,46 +7,16 @@ keywords:
7
7
  - openapi
8
8
  - asyncapi
9
9
  sidebar_label: Integrations
10
- title: Getting a license key for integrations
11
- description: How to use EventCatalog Scale with integrations such as OpenAPI, AsyncAPI, Backstage, and more.
10
+ title: License keys for integrations
11
+ description: From EventCatalog v5, the generators, integrations and plugins EventCatalog publishes are open source under the MIT License and don't need a license key.
12
12
  ---
13
13
 
14
- EventCatalog integrations (sometimes called plugins) let you generate your catalog from sources you already have — OpenAPI specs, AsyncAPI documents, Backstage, federated catalogs, and more. You can see the full list on the [integrations page](/integrations).
14
+ From EventCatalog v5, the generators, integrations and plugins EventCatalog publishes are open source under the MIT License and don't need a license key. You can see the full list on the [integrations page](/integrations).
15
15
 
16
- Official integrations are included with EventCatalog Scale. Start Scale from your [EventCatalog Cloud dashboard](https://eventcatalog.cloud/dashboard) and use your Scale license key to unlock supported integrations in your catalog.
16
+ If your config still sets the `licenseKey` option or an `EVENTCATALOG_LICENSE_KEY_*` environment variable, you can remove it. It's ignored.
17
17
 
18
- ![Pick your integrations in EventCatalog Cloud](./images/pick-your-integraions.png)
18
+ EventCatalog core is licensed separately. To check whether your organization needs a commercial license, see the [licensing FAQ](/license-faq) and [pricing](/pricing).
19
19
 
20
- Once Scale is active, your license key appears on your [API keys page](https://eventcatalog.cloud/dashboard/api-keys):
21
-
22
- ![Your license keys in the EventCatalog Cloud API keys dashboard](./images/api-keys-dashboard.png)
23
-
24
- ## Adding your Scale key to your catalog
25
-
26
- Copy your Scale license key from your dashboard into your `.env` file:
27
-
28
- ```bash title=".env"
29
- EVENTCATALOG_SCALE_LICENSE_KEY=your-scale-license-key-here
30
- ```
31
-
32
- Then configure the integration in your `eventcatalog.config.js` as described in the [integration's documentation](/integrations).
33
-
34
- :::info Using plugin API keys?
35
- If you already have older plugin-specific API keys, you can still use them with the environment variables shown in each integration's documentation.
36
-
37
- For example, the OpenAPI plugin supports:
38
-
39
- ```bash title=".env"
40
- EVENTCATALOG_LICENSE_KEY_OPENAPI=your-license-key-here
41
- ```
42
-
43
- For new projects, use `EVENTCATALOG_SCALE_LICENSE_KEY`.
20
+ :::info EventCatalog v4 and earlier
21
+ In v4 and earlier, integrations were unlocked with an EventCatalog Scale license key. See the [License Keys overview](/docs/development/license-keys/overview) and [Scale plan](/docs/development/license-keys/plans) pages for how v4 license keys worked.
44
22
  :::
45
-
46
- ## Trying multiple integrations
47
-
48
- Scale includes all official integrations, so you can configure multiple integrations in the same catalog with the same Scale license key.
49
-
50
- ## Need more time?
51
-
52
- If 30 days isn't enough to evaluate Scale and integrations in your environment, email us at `hello@eventcatalog.dev` and we'll extend your trial.
@@ -9,6 +9,10 @@ title: How license validation works
9
9
  description: How EventCatalog validates your license keys online and offline.
10
10
  ---
11
11
 
12
+ :::info EventCatalog v4 and earlier
13
+ This page covers license keys for **EventCatalog v4 and earlier**. From v5, every feature and integration is included in one product. See the [licensing FAQ](/license-faq) and [pricing](/pricing).
14
+ :::
15
+
12
16
  EventCatalog validates commercial features using online license keys or offline license files. Scale and integration keys use online validation by default. Enterprise features, including Federation, require an offline license file.
13
17
 
14
18
  ## Online validation (default)
@@ -9,7 +9,11 @@ title: License Keys Overview
9
9
  description: Learn how license keys work in EventCatalog, how to get a free trial, and where to find your keys.
10
10
  ---
11
11
 
12
- EventCatalog is open source with a [community edition and commercial plans](/pricing). EventCatalog Scale, Enterprise, and commercial integrations are unlocked using **license keys**.
12
+ :::info EventCatalog v4 and earlier
13
+ This page covers license keys for **EventCatalog v4 and earlier**. From v5, every feature and integration is included in one product. See the [licensing FAQ](/license-faq) and [pricing](/pricing).
14
+ :::
15
+
16
+ EventCatalog v4 has a community edition and commercial plans. EventCatalog Scale, Enterprise, and commercial integrations are unlocked using **license keys**.
13
17
 
14
18
  If you are using the community edition, you don't need a license key and can skip this section.
15
19
 
@@ -9,9 +9,11 @@ title: Getting a license key for EventCatalog Scale
9
9
  description: How to start an EventCatalog Scale plan in EventCatalog Cloud and get your license key.
10
10
  ---
11
11
 
12
- EventCatalog Scale is the self-serve commercial plan for teams that need automation, integrations, governance, and a living architecture catalog that stays in sync with code, specs, teams, and tools.
12
+ :::info EventCatalog v4 and earlier
13
+ This page covers license keys for **EventCatalog v4 and earlier**. From v5, every feature and integration is included in one product. See the [licensing FAQ](/license-faq) and [pricing](/pricing).
14
+ :::
13
15
 
14
- See the [pricing page](/pricing) for a full breakdown of what Scale includes.
16
+ EventCatalog Scale is the self-serve commercial plan for teams that need automation, integrations, governance, and a living architecture catalog that stays in sync with code, specs, teams, and tools.
15
17
 
16
18
  ## Starting a plan
17
19
 
@@ -0,0 +1,60 @@
1
+ ---
2
+ sidebar_position: 1
3
+ keywords:
4
+ - EventCatalog Studio
5
+ - architecture design
6
+ - collaborative canvas
7
+ sidebar_label: What is Studio?
8
+ title: What is EventCatalog Studio?
9
+ description: Design changes to your architecture on live canvases, with your team and AI agents.
10
+ ---
11
+
12
+ import AddedIn from '@site/src/components/MDX/AddedIn';
13
+
14
+ <AddedIn version="5.0.0" />
15
+
16
+ EventCatalog Studio lets your teams design changes to their architecture on live canvases, inside your catalog.
17
+
18
+ Your catalog documents how your architecture works today. Studio is where you plan what comes next: a new service, a new event, a different way to split a domain. You start from the resources you already document, add the parts that don't exist yet, and work on it together with your team and your AI agents.
19
+
20
+ Studio is experimental while we shape it with your feedback. Tell us what you think in [Discord](https://eventcatalog.dev/discord) or on [GitHub](https://github.com/event-catalog/eventcatalog/issues).
21
+
22
+ ![A Studio canvas with two people and Claude working on it together](./img/studio-collaboration.png)
23
+
24
+ ## Why use Studio?
25
+
26
+ Planning conversations often happen outside the catalog, on whiteboards, slides or diagram tools that know nothing about your architecture. Someone redraws the services by hand, and the diagram is out of date before the meeting ends.
27
+
28
+ With Studio:
29
+
30
+ - **You start from real resources.** Drag your domains, systems, services, messages, channels and data stores onto a canvas, with their real names, versions and summaries.
31
+ - **You sketch what's new next to what exists.** Add proposed services, messages and data stores, and connect them to the resources they change.
32
+ - **Team collaboration.** Everyone on a canvas sees each other's pointers and edits, and can comment and flag risks.
33
+ - **You record the decision.** Mark a canvas as proposed, accepted or rejected, with a note, so you can see later what was decided and why.
34
+ - **AI agents work with you.** Agents connect through the [MCP server](/docs/development/ask-your-architecture/mcp-server/introduction) and edit the same canvas, using the resources in your catalog.
35
+
36
+ :::info Studio doesn't change your catalog
37
+ A canvas is a design, kept separately from your catalog files. Adding, editing or deleting anything on a canvas never changes your documentation.
38
+
39
+ When a design is built, your teams document the changes in the catalog as usual.
40
+ :::
41
+
42
+ ## How it works
43
+
44
+ - Open **Studio** from the sidebar of your catalog. It lists every canvas, with its status and open comments.
45
+ - Each canvas has the same three levels as the diagrams in your catalog: **L1** for domains and systems, **L2** for services and data stores, **L3** for everything, including messages and channels.
46
+ - Canvases are saved by your EventCatalog, in [storage you configure](/docs/development/studio/set-up-persistent-storage). Nothing is sent to a third party.
47
+
48
+ ![The Studio page listing canvases with their status, contents and comments](./img/studio-list.png)
49
+
50
+ Studio is on when you run `eventcatalog dev`. To use it in a deployed catalog, see [Run Studio in production](/docs/development/studio/run-studio-in-production).
51
+
52
+ :::tip No catalog yet?
53
+ Try [EventCatalog Studio on the web](https://www.eventcatalog.studio/). It runs in your browser with no sign-up, keeps your design in your browser, and lets you export it to EventCatalog when you're ready.
54
+ :::
55
+
56
+ ## Next steps
57
+
58
+ - [Create a canvas](/docs/development/studio/create-a-canvas)
59
+ - [Collaborate on a canvas](/docs/development/studio/collaborate-on-a-canvas)
60
+ - [Connect your agent to a canvas](/docs/development/studio/connect-your-agent)
@@ -0,0 +1,103 @@
1
+ ---
2
+ sidebar_position: 2
3
+ keywords:
4
+ - EventCatalog Studio
5
+ - canvas
6
+ sidebar_label: Create a canvas
7
+ title: Create a canvas
8
+ description: Start a canvas, add resources from your catalog, sketch new components and connect them.
9
+ ---
10
+
11
+ A canvas is where you design a change. Give each canvas one topic, such as "Email customers when their review is published" or "Split the Order Service".
12
+
13
+ This page uses the example catalog from `create-eventcatalog`. Follow along with your own resources, or create the example catalog:
14
+
15
+ ```bash
16
+ npx @eventcatalog/create-eventcatalog@latest my-catalog
17
+ cd my-catalog
18
+ npm run dev
19
+ ```
20
+
21
+ ## Start a canvas
22
+
23
+ 1. Open **Studio** from the sidebar, or go to `/studio` in your catalog.
24
+ 2. The first time, Studio asks what to call you. Your name is shown next to your pointer and your comments.
25
+ 3. Choose **New canvas**, name it for what you're designing, and choose **Create canvas**.
26
+
27
+ ### Start from a diagram
28
+
29
+ You can also start from any diagram in your catalog. Open the diagram's menu, choose **Open in Studio** and name the canvas.
30
+
31
+ ![The Open in Studio dialog on the Payments domain diagram](./img/open-in-studio.png)
32
+
33
+ The canvas starts with the diagram's resources, their positions, their domains and systems, and their connections. Change it as you like. Your catalog doesn't change.
34
+
35
+ ## Add resources from your catalog
36
+
37
+ 1. In the palette, choose **Catalog Resources**.
38
+ 2. Search for a resource, for example `moderation`.
39
+ 3. Click it to add it, or drag it onto the canvas.
40
+
41
+ When you add a service or a message, choose what comes with it:
42
+
43
+ - **Just the service**: the resource on its own, connected to what is already on the canvas.
44
+ - **With its connections**: the resource and what it sends, receives and stores. Tick the groups you want.
45
+
46
+ For example, adding the **Review Moderation Worker** with only **Messages it sends** ticked adds the service and the two events it publishes, already connected:
47
+
48
+ ![The Review Moderation Worker and the two events it publishes](./img/add-service-with-connections.png)
49
+
50
+ Catalog resources keep the name, version and summary from your catalog. To change them, change them in your catalog.
51
+
52
+ ## Add something new
53
+
54
+ Use the **Components** tab for things that don't exist yet, such as a proposed service, event or database.
55
+
56
+ 1. In the palette, choose **Components**.
57
+ 2. Click a component to add it, or drag it onto the canvas. New components start at version `0.0.1`.
58
+ 3. Double-click it to set its name, version and summary. Changes save as you type.
59
+
60
+ ![The Components tab next to a canvas](./img/components.png)
61
+
62
+ See the [reference](/docs/development/studio/reference#components) for every component.
63
+
64
+ ## Connect nodes
65
+
66
+ Drag from the dot on the edge of one node to the dot on another. Studio labels the connection with EventCatalog's wording.
67
+
68
+ For example, connecting the **Review Published** event to a new **Review Emails** service is labelled **subscribed by**:
69
+
70
+ ![A new Review Emails service subscribed to the Review Published event](./img/new-service-connected.png)
71
+
72
+ To put a node inside a domain or system, drag it onto the box and drop it when it highlights.
73
+
74
+ To tidy the whole canvas, choose **Reorder diagram** in the toolbar at the bottom.
75
+
76
+ ## Edit a node
77
+
78
+ Double-click a node, or right-click it and choose **Edit details**. The panel shows its name, version and summary, and what it connects to.
79
+
80
+ ![The details panel for a service](./img/node-details.png)
81
+
82
+ Right-click a node to comment on it, flag a hotspot, add a note, copy, duplicate or delete it.
83
+
84
+ ## Change the level
85
+
86
+ Choose **L1**, **L2** or **L3** in the toolbar, or press <kbd>1</kbd>, <kbd>2</kbd> or <kbd>3</kbd>.
87
+
88
+ | Level | Shows |
89
+ |---|---|
90
+ | **L1** | Domains, systems and their relationships |
91
+ | **L2** | Services and data stores |
92
+ | **L3** | Everything, including messages and channels |
93
+
94
+ You draw at L3. L1 and L2 summarise it: at L2, messages fold into the connections between services, and at L1, services fold into their systems. Use L1 or L2 when you want to talk about the big picture, without every message.
95
+
96
+ ![The same design at L2, with the event folded into the connection](./img/canvas-level-2.png)
97
+
98
+ L1 is greyed out until the canvas has a domain or system.
99
+
100
+ ## Next steps
101
+
102
+ - [Collaborate on a canvas](/docs/development/studio/collaborate-on-a-canvas) with your team.
103
+ - [Connect your agent to a canvas](/docs/development/studio/connect-your-agent).
@@ -0,0 +1,59 @@
1
+ ---
2
+ sidebar_position: 3
3
+ keywords:
4
+ - EventCatalog Studio
5
+ - storage
6
+ - sqlite
7
+ sidebar_label: Set up persistent storage
8
+ title: Set up persistent storage
9
+ description: Save canvases to a SQLite database so they survive restarts and redeploys.
10
+ ---
11
+
12
+ By default, canvases are kept in memory and are lost when the server restarts. To keep them, save them to a SQLite database file.
13
+
14
+ You need **Node.js 22.13 or later**.
15
+
16
+ ## Save canvases to SQLite
17
+
18
+ 1. In `eventcatalog.config.js`, set `storage`:
19
+
20
+ ```js title="eventcatalog.config.js"
21
+ export default {
22
+ storage: {
23
+ type: 'sqlite',
24
+ path: '.eventcatalog/eventcatalog.db',
25
+ },
26
+ };
27
+ ```
28
+
29
+ The path is relative to your catalog. If you leave it out, it defaults to `.eventcatalog/eventcatalog.db`.
30
+
31
+ 2. Restart `eventcatalog dev` or `eventcatalog start`. EventCatalog creates the database, and keeps it up to date each time it starts.
32
+
33
+ 3. Open **Studio**. The bottom of the list shows where canvases are saved, for example **Saved in .eventcatalog/eventcatalog.db**.
34
+
35
+ ## In a container
36
+
37
+ Put the database on a volume, so it survives redeploys:
38
+
39
+ ```js title="eventcatalog.config.js"
40
+ export default {
41
+ storage: {
42
+ type: 'sqlite',
43
+ path: '/data/eventcatalog.db',
44
+ },
45
+ };
46
+ ```
47
+
48
+ Mount a volume at `/data` when you run the container.
49
+
50
+ ## How canvases are saved
51
+
52
+ Canvases save automatically as people work. The server keeps a working copy of each canvas in memory, and writes it to the database a moment after each change and when the server stops, so storage never slows the canvas down.
53
+
54
+ Canvases stay in your infrastructure. Nothing is sent to a third party.
55
+
56
+ | Option | Type | Default | Description |
57
+ |---|---|---|---|
58
+ | `storage.type` | `'memory'` \| `'sqlite'` | `'memory'` | `'memory'` keeps canvases while the server runs. `'sqlite'` keeps them in a database file. |
59
+ | `storage.path` | `string` | `'.eventcatalog/eventcatalog.db'` | The database file, relative to your catalog. |
@@ -0,0 +1,78 @@
1
+ ---
2
+ sidebar_position: 4
3
+ keywords:
4
+ - EventCatalog Studio
5
+ - collaboration
6
+ - comments
7
+ - hotspots
8
+ sidebar_label: Collaborate on a canvas
9
+ title: Collaborate on a canvas
10
+ description: Share a canvas, work on it live, discuss it, and record the decision.
11
+ ---
12
+
13
+ ## Share a canvas
14
+
15
+ 1. On the canvas, choose **Share**.
16
+ 2. Choose **Copy link**, or **Invite people** to email an invite or copy an invite message.
17
+
18
+ ![The Share dialog](./img/share.png)
19
+
20
+ Anyone with the link opens the canvas in your catalog and edits it with you.
21
+
22
+ When [authentication](/docs/development/authentication/introduction) is on, only signed-in people can open canvases, and they appear with the name and picture they signed in with. Without authentication, Studio asks each person for a name, and keeps it in their browser.
23
+
24
+ ## Work on it live
25
+
26
+ Everyone on a canvas sees each other's pointers, names and changes as they happen. Changes save automatically.
27
+
28
+ - The avatars at the top right show who is on the canvas. Click one to jump to what that person is looking at.
29
+ - Click your own avatar to change your name and colour.
30
+
31
+ ## Comment
32
+
33
+ 1. Choose **Comment** in the toolbar, or press <kbd>C</kbd>.
34
+ 2. Click a node, or a spot on the canvas.
35
+ 3. Type your comment and press <kbd>Enter</kbd>.
36
+
37
+ Click a comment pin to reply. Choose **Resolve** when the thread is settled. **Comments** at the bottom of the canvas lists every thread.
38
+
39
+ ![A comment thread on the Pay Later Provider](./img/comments.png)
40
+
41
+ ## Flag a risk with a hotspot
42
+
43
+ A hotspot flags a risk on a node or a spot, such as a single point of failure or data that needs a review.
44
+
45
+ 1. Choose **Hotspot** in the toolbar, or press <kbd>A</kbd>.
46
+ 2. Click the node at risk.
47
+ 3. Pick **Critical**, **Warning** or **Info**, and add a short title and, if you want, why it matters.
48
+
49
+ **Hotspots** at the bottom of the canvas lists every hotspot. At L1 and L2, hotspots inside a domain or system are shown on that domain or system, so zooming out never hides a risk.
50
+
51
+ ![A warning hotspot on the Instalment Plans database](./img/hotspots.png)
52
+
53
+ ## Add notes and text
54
+
55
+ - **Sticky note** (<kbd>N</kbd>): click where it goes and type. Use notes for assumptions, scope and open questions.
56
+ - **Text** (<kbd>T</kbd>): click anywhere and type. Use text for headings and labels.
57
+
58
+ Double-click a note or text to edit it.
59
+
60
+ ## Record the decision
61
+
62
+ Every canvas has a status: **Draft**, **Proposed**, **Accepted** or **Rejected**.
63
+
64
+ 1. Choose the status next to the canvas title.
65
+ 2. Add a note if you want, for example `Agreed in the architecture review`.
66
+ 3. Pick the new status.
67
+
68
+ The menu shows the history of status changes, with who made each change, when, and the note.
69
+
70
+ ![The status menu with a note](./img/status.png)
71
+
72
+ Changing the nodes or connections on an accepted or rejected canvas makes it a draft again, so a decision always matches the design it was made on.
73
+
74
+ To find designs waiting for review, open **Studio** and filter by **Proposed**.
75
+
76
+ ## Lock the canvas
77
+
78
+ Choose the lock in the toolbar. Everyone can still look at the canvas, but no one can change it until it is unlocked.