@eventcatalog/core 3.35.0 → 3.35.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 (421) hide show
  1. package/dist/analytics/analytics.cjs +1 -1
  2. package/dist/analytics/analytics.js +2 -2
  3. package/dist/analytics/log-build.cjs +1 -1
  4. package/dist/analytics/log-build.js +3 -3
  5. package/dist/{chunk-LUWCWNOR.js → chunk-4SNN54V4.js} +1 -1
  6. package/dist/{chunk-NEWQKEP7.js → chunk-B7C4DHFE.js} +1 -1
  7. package/dist/{chunk-DFLUDECO.js → chunk-JEQZWJWP.js} +1 -1
  8. package/dist/{chunk-Y5O6SCX3.js → chunk-R4DR3YAH.js} +1 -1
  9. package/dist/{chunk-B2LDVIVY.js → chunk-VJ357XOI.js} +1 -1
  10. package/dist/constants.cjs +1 -1
  11. package/dist/constants.js +1 -1
  12. package/dist/docs/api/01-overview.md +74 -0
  13. package/dist/docs/api/02-config.md +937 -0
  14. package/dist/docs/api/03-domain-api.md +394 -0
  15. package/dist/docs/api/04-service-api.md +368 -0
  16. package/dist/docs/api/05-command-api.md +319 -0
  17. package/dist/docs/api/06-event-api.md +318 -0
  18. package/dist/docs/api/06-query-api.md +316 -0
  19. package/dist/docs/api/08-channel-api.md +317 -0
  20. package/dist/docs/api/08-code-blocks.md +53 -0
  21. package/dist/docs/api/09-flow-api.md +362 -0
  22. package/dist/docs/api/10-entity-api.md +285 -0
  23. package/dist/docs/api/11-data-api.md +268 -0
  24. package/dist/docs/api/12-data-product-api.md +416 -0
  25. package/dist/docs/api/_category_.json +12 -0
  26. package/dist/docs/cli/channels.md +180 -0
  27. package/dist/docs/cli/commands.md +183 -0
  28. package/dist/docs/cli/custom-docs.md +78 -0
  29. package/dist/docs/cli/data-products.md +177 -0
  30. package/dist/docs/cli/data-stores.md +166 -0
  31. package/dist/docs/cli/diagrams.md +147 -0
  32. package/dist/docs/cli/domains.md +280 -0
  33. package/dist/docs/cli/entities.md +138 -0
  34. package/dist/docs/cli/events.md +186 -0
  35. package/dist/docs/cli/export.md +27 -0
  36. package/dist/docs/cli/governance.md +24 -0
  37. package/dist/docs/cli/import.md +26 -0
  38. package/dist/docs/cli/index.md +121 -0
  39. package/dist/docs/cli/messages.md +69 -0
  40. package/dist/docs/cli/queries.md +183 -0
  41. package/dist/docs/cli/services.md +266 -0
  42. package/dist/docs/cli/snapshots.md +44 -0
  43. package/dist/docs/cli/teams.md +75 -0
  44. package/dist/docs/cli/users.md +75 -0
  45. package/dist/docs/cli/utilities.md +43 -0
  46. package/dist/docs/contributing/01-overview.md +186 -0
  47. package/dist/docs/contributing/_category_.json +12 -0
  48. package/dist/docs/development/00-why-eventcatalog.md +87 -0
  49. package/dist/docs/development/01-fundamentals.md +34 -0
  50. package/dist/docs/development/01-getting-started/_category_.json +12 -0
  51. package/dist/docs/development/01-getting-started/configuration-overview.md +124 -0
  52. package/dist/docs/development/01-getting-started/develop-and-build.md +71 -0
  53. package/dist/docs/development/01-getting-started/installation.md +103 -0
  54. package/dist/docs/development/01-getting-started/project-structure.md +269 -0
  55. package/dist/docs/development/_category_.json +12 -0
  56. package/dist/docs/development/_getting-started.mdx +15 -0
  57. package/dist/docs/development/agent-resources/_category_.json +6 -0
  58. package/dist/docs/development/agent-resources/eventcatalog-skills.md +17 -0
  59. package/dist/docs/development/agent-resources/llms-full.md +17 -0
  60. package/dist/docs/development/agent-resources/llms.md +17 -0
  61. package/dist/docs/development/ask-your-architecture/01-intro.md +89 -0
  62. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/01-what-is-eventcatalog-assistant.md +23 -0
  63. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/02-configuration.md +72 -0
  64. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/03-bring-your-own-tools.md +385 -0
  65. package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/_category_.json +11 -0
  66. package/dist/docs/development/ask-your-architecture/03-mcp-server/_category_.json +12 -0
  67. package/dist/docs/development/ask-your-architecture/03-mcp-server/getting-started.md +216 -0
  68. package/dist/docs/development/ask-your-architecture/03-mcp-server/introduction.md +47 -0
  69. package/dist/docs/development/ask-your-architecture/04-skills/01-introduction.md +40 -0
  70. package/dist/docs/development/ask-your-architecture/04-skills/02-installation.md +60 -0
  71. package/dist/docs/development/ask-your-architecture/04-skills/_category_.json +11 -0
  72. package/dist/docs/development/ask-your-architecture/05-slack-integration/01-introduction.md +63 -0
  73. package/dist/docs/development/ask-your-architecture/05-slack-integration/02-slack-app-setup.md +154 -0
  74. package/dist/docs/development/ask-your-architecture/05-slack-integration/03-installation.md +169 -0
  75. package/dist/docs/development/ask-your-architecture/05-slack-integration/04-deployment.md +236 -0
  76. package/dist/docs/development/ask-your-architecture/05-slack-integration/05-usage.md +140 -0
  77. package/dist/docs/development/ask-your-architecture/05-slack-integration/06-troubleshooting.md +268 -0
  78. package/dist/docs/development/ask-your-architecture/05-slack-integration/_category_.json +12 -0
  79. package/dist/docs/development/ask-your-architecture/_category_.json +12 -0
  80. package/dist/docs/development/authentication/01-introduction.md +78 -0
  81. package/dist/docs/development/authentication/02-enabling-authentication.md +152 -0
  82. package/dist/docs/development/authentication/07-rbac-middleware.md +269 -0
  83. package/dist/docs/development/authentication/_category_.json +11 -0
  84. package/dist/docs/development/authentication/providers/03-setting-up-github.md +83 -0
  85. package/dist/docs/development/authentication/providers/03a-setting-up-google.md +92 -0
  86. package/dist/docs/development/authentication/providers/04-setting-up-azure-ad.md +100 -0
  87. package/dist/docs/development/authentication/providers/05-setting-up-okta.md +105 -0
  88. package/dist/docs/development/authentication/providers/06-setting-up-auth0.md +106 -0
  89. package/dist/docs/development/authentication/providers/_category_.json +11 -0
  90. package/dist/docs/development/bring-your-own-documentation/01-introduction.md +48 -0
  91. package/dist/docs/development/bring-your-own-documentation/_category_.json +12 -0
  92. package/dist/docs/development/bring-your-own-documentation/custom-pages/01-introduction.md +60 -0
  93. package/dist/docs/development/bring-your-own-documentation/custom-pages/02-adding-custom-docs.md +207 -0
  94. package/dist/docs/development/bring-your-own-documentation/custom-pages/03-components.md +46 -0
  95. package/dist/docs/development/bring-your-own-documentation/custom-pages/04-owners.md +45 -0
  96. package/dist/docs/development/bring-your-own-documentation/custom-pages/_category_.json +11 -0
  97. package/dist/docs/development/bring-your-own-documentation/resource-docs/01-introduction.md +34 -0
  98. package/dist/docs/development/bring-your-own-documentation/resource-docs/02-adding-resource-docs.md +143 -0
  99. package/dist/docs/development/bring-your-own-documentation/resource-docs/03-categories.md +68 -0
  100. package/dist/docs/development/bring-your-own-documentation/resource-docs/04-versioning.md +45 -0
  101. package/dist/docs/development/bring-your-own-documentation/resource-docs/_category_.json +11 -0
  102. package/dist/docs/development/components/04-snippets.md +134 -0
  103. package/dist/docs/development/components/05-using-components.md +67 -0
  104. package/dist/docs/development/components/07-resource-references.md +136 -0
  105. package/dist/docs/development/components/_category_.json +12 -0
  106. package/dist/docs/development/components/components/01-accordian.md +41 -0
  107. package/dist/docs/development/components/components/02-accordian-group.md +57 -0
  108. package/dist/docs/development/components/components/03-admonitions.md +43 -0
  109. package/dist/docs/development/components/components/04-attachments.md +56 -0
  110. package/dist/docs/development/components/components/05-channel-information.md +29 -0
  111. package/dist/docs/development/components/components/06-design.md +66 -0
  112. package/dist/docs/development/components/components/07-entitymap.md +71 -0
  113. package/dist/docs/development/components/components/08-flow.md +46 -0
  114. package/dist/docs/development/components/components/09-link.md +32 -0
  115. package/dist/docs/development/components/components/10-mermaid-file-loader.md +63 -0
  116. package/dist/docs/development/components/components/11-message-table.md +43 -0
  117. package/dist/docs/development/components/components/12-nodegraph.md +167 -0
  118. package/dist/docs/development/components/components/13-openapi.md +55 -0
  119. package/dist/docs/development/components/components/14-prompt.md +69 -0
  120. package/dist/docs/development/components/components/15-remote-schema.md +174 -0
  121. package/dist/docs/development/components/components/16-resource-group-table.md +86 -0
  122. package/dist/docs/development/components/components/17-resource-link.md +57 -0
  123. package/dist/docs/development/components/components/18-schema.md +44 -0
  124. package/dist/docs/development/components/components/19-schema-viewer.md +69 -0
  125. package/dist/docs/development/components/components/20-steps.md +83 -0
  126. package/dist/docs/development/components/components/21-tabs.md +55 -0
  127. package/dist/docs/development/components/components/22-tiles.md +53 -0
  128. package/dist/docs/development/components/components/23-visibility.md +61 -0
  129. package/dist/docs/development/components/components/_category_.json +12 -0
  130. package/dist/docs/development/components/diagram-syntax/01-mermaid.md +218 -0
  131. package/dist/docs/development/components/diagram-syntax/02-plantuml.md +140 -0
  132. package/dist/docs/development/components/diagram-syntax/03-structurizr.md +24 -0
  133. package/dist/docs/development/components/diagram-syntax/04-icepanel.md +75 -0
  134. package/dist/docs/development/components/diagram-syntax/_category_.json +12 -0
  135. package/dist/docs/development/components/external-diagram-embeds/01-miro.md +64 -0
  136. package/dist/docs/development/components/external-diagram-embeds/02-lucid.md +47 -0
  137. package/dist/docs/development/components/external-diagram-embeds/03-drawio.md +46 -0
  138. package/dist/docs/development/components/external-diagram-embeds/04-figjam.md +44 -0
  139. package/dist/docs/development/components/external-diagram-embeds/05-icepanel.md +68 -0
  140. package/dist/docs/development/components/external-diagram-embeds/_category_.json +12 -0
  141. package/dist/docs/development/customization/01-customize-landing-page.md +155 -0
  142. package/dist/docs/development/customization/02-themes.md +429 -0
  143. package/dist/docs/development/customization/06-customize-tables.md +194 -0
  144. package/dist/docs/development/customization/_category_.json +12 -0
  145. package/dist/docs/development/customization/custom-components/00-what-is-mdx.md +73 -0
  146. package/dist/docs/development/customization/custom-components/01-introduction.md +28 -0
  147. package/dist/docs/development/customization/custom-components/02-adding-components.md +145 -0
  148. package/dist/docs/development/customization/custom-components/03-component-styling.md +27 -0
  149. package/dist/docs/development/customization/custom-components/04-javascript-components.md +32 -0
  150. package/dist/docs/development/customization/custom-components/_category_.json +11 -0
  151. package/dist/docs/development/customization/customize-sidebars/00-application-sidebar.md +45 -0
  152. package/dist/docs/development/customization/customize-sidebars/01-documentation-sidebar.md +187 -0
  153. package/dist/docs/development/customization/customize-sidebars/_category_.json +11 -0
  154. package/dist/docs/development/customization/customize-visualizer/00-visualizer-nodes.md +50 -0
  155. package/dist/docs/development/customization/customize-visualizer/_category_.json +11 -0
  156. package/dist/docs/development/deployment/_category_.json +12 -0
  157. package/dist/docs/development/deployment/build-and-deploy.md +71 -0
  158. package/dist/docs/development/deployment/build-ssr-mode.md +50 -0
  159. package/dist/docs/development/deployment/deployment-workflows.md +43 -0
  160. package/dist/docs/development/deployment/hosting-options.md +112 -0
  161. package/dist/docs/development/deployment/licenses.md +50 -0
  162. package/dist/docs/development/design/_category_.json +12 -0
  163. package/dist/docs/development/design/embed-designs-into-eventcatalog.md +29 -0
  164. package/dist/docs/development/design/further-reading.md +19 -0
  165. package/dist/docs/development/design/import-resources.md +27 -0
  166. package/dist/docs/development/design/intro.md +22 -0
  167. package/dist/docs/development/developer-tools/_category_.json +12 -0
  168. package/dist/docs/development/developer-tools/eventcatalog-linter.md +597 -0
  169. package/dist/docs/development/developer-tools/github-action.md +147 -0
  170. package/dist/docs/development/developer-tools/llms.txt.md +55 -0
  171. package/dist/docs/development/developer-tools/schemas.txt.md +42 -0
  172. package/dist/docs/development/governance/_category_.json +6 -0
  173. package/dist/docs/development/governance/architecture-change-detection/01-introduction.md +62 -0
  174. package/dist/docs/development/governance/architecture-change-detection/02-configuration.md +134 -0
  175. package/dist/docs/development/governance/architecture-change-detection/03-recipes.md +309 -0
  176. package/dist/docs/development/governance/architecture-change-detection/04-webhooks.md +187 -0
  177. package/dist/docs/development/governance/architecture-change-detection/05-ci-cd.md +121 -0
  178. package/dist/docs/development/governance/architecture-change-detection/06-pipeline-gates.md +162 -0
  179. package/dist/docs/development/governance/architecture-change-detection/_category_.json +6 -0
  180. package/dist/docs/development/guides/12-customize-your-sidebar.md +12 -0
  181. package/dist/docs/development/guides/99-adding-analytics.md +138 -0
  182. package/dist/docs/development/guides/_category_.json +11 -0
  183. package/dist/docs/development/guides/changelogs/01-introduction.md +33 -0
  184. package/dist/docs/development/guides/changelogs/02-adding-changelogs.md +94 -0
  185. package/dist/docs/development/guides/changelogs/03-automated-changelogs.md +44 -0
  186. package/dist/docs/development/guides/changelogs/_category_.json +11 -0
  187. package/dist/docs/development/guides/channels/01-introduction.md +111 -0
  188. package/dist/docs/development/guides/channels/02-adding-channels.md +198 -0
  189. package/dist/docs/development/guides/channels/04-adding-messages-to-services.md +292 -0
  190. package/dist/docs/development/guides/channels/09-configuration +39 -0
  191. package/dist/docs/development/guides/channels/_category_.json +11 -0
  192. package/dist/docs/development/guides/channels/ownership-and-components/01-owners.md +44 -0
  193. package/dist/docs/development/guides/channels/ownership-and-components/02-components.md +16 -0
  194. package/dist/docs/development/guides/channels/ownership-and-components/_category_.json +11 -0
  195. package/dist/docs/development/guides/channels/versioning-and-lifecycle/01-versioning.md +31 -0
  196. package/dist/docs/development/guides/channels/versioning-and-lifecycle/02-changelog.md +56 -0
  197. package/dist/docs/development/guides/channels/versioning-and-lifecycle/_category_.json +11 -0
  198. package/dist/docs/development/guides/data/01-introduction.md +34 -0
  199. package/dist/docs/development/guides/data/02-adding-data.md +86 -0
  200. package/dist/docs/development/guides/data/03a-adding-schemas-to-data-stores.md +73 -0
  201. package/dist/docs/development/guides/data/_category_.json +11 -0
  202. package/dist/docs/development/guides/data/ownership-and-components/01-owners.md +45 -0
  203. package/dist/docs/development/guides/data/ownership-and-components/02-components.md +17 -0
  204. package/dist/docs/development/guides/data/ownership-and-components/_category_.json +11 -0
  205. package/dist/docs/development/guides/data/versioning-and-lifecycle/01-versioning.md +32 -0
  206. package/dist/docs/development/guides/data/versioning-and-lifecycle/02-changelog.md +57 -0
  207. package/dist/docs/development/guides/data/versioning-and-lifecycle/03-deprecating.md +71 -0
  208. package/dist/docs/development/guides/data/versioning-and-lifecycle/_category_.json +11 -0
  209. package/dist/docs/development/guides/data-products/01-introduction.md +116 -0
  210. package/dist/docs/development/guides/data-products/02-adding-data-products.md +157 -0
  211. package/dist/docs/development/guides/data-products/03-inputs-and-outputs.md +128 -0
  212. package/dist/docs/development/guides/data-products/04-contracts.md +102 -0
  213. package/dist/docs/development/guides/data-products/05-versioning.md +240 -0
  214. package/dist/docs/development/guides/data-products/06-adding-to-domains.md +52 -0
  215. package/dist/docs/development/guides/data-products/_category_.json +11 -0
  216. package/dist/docs/development/guides/diagrams/01-introduction.md +78 -0
  217. package/dist/docs/development/guides/diagrams/02-creating-diagrams.md +195 -0
  218. package/dist/docs/development/guides/diagrams/03-referencing-diagrams.md +195 -0
  219. package/dist/docs/development/guides/diagrams/04-versioning-diagrams.md +204 -0
  220. package/dist/docs/development/guides/diagrams/05-comparing-diagrams.md +145 -0
  221. package/dist/docs/development/guides/diagrams/06-diagrams-with-llms.md +165 -0
  222. package/dist/docs/development/guides/diagrams/_category_.json +10 -0
  223. package/dist/docs/development/guides/domains/01-introduction.md +22 -0
  224. package/dist/docs/development/guides/domains/02-creating-domains/02-adding-domains.md +108 -0
  225. package/dist/docs/development/guides/domains/02-creating-domains/02a-subdomains.md +84 -0
  226. package/dist/docs/development/guides/domains/02-creating-domains/03-adding-services-to-domains.md +90 -0
  227. package/dist/docs/development/guides/domains/02-creating-domains/04-adding-messages-to-domains.md +107 -0
  228. package/dist/docs/development/guides/domains/02-creating-domains/05-adding-data-products-to-domains.md +105 -0
  229. package/dist/docs/development/guides/domains/02-creating-domains/_category_.json +11 -0
  230. package/dist/docs/development/guides/domains/03-ownership-and-language/01-owners.md +36 -0
  231. package/dist/docs/development/guides/domains/03-ownership-and-language/02-adding-ubiquitous-language.md +75 -0
  232. package/dist/docs/development/guides/domains/03-ownership-and-language/_category_.json +10 -0
  233. package/dist/docs/development/guides/domains/04-versioning-and-changelogs/01-versioning.md +40 -0
  234. package/dist/docs/development/guides/domains/04-versioning-and-changelogs/02-changelog.md +53 -0
  235. package/dist/docs/development/guides/domains/04-versioning-and-changelogs/_category_.json +10 -0
  236. package/dist/docs/development/guides/domains/05-entities/01-introduction.md +24 -0
  237. package/dist/docs/development/guides/domains/05-entities/02-adding-entities.md +157 -0
  238. package/dist/docs/development/guides/domains/05-entities/03-adding-entities-to-domains.md +30 -0
  239. package/dist/docs/development/guides/domains/05-entities/04-domain-entity-map.md +134 -0
  240. package/dist/docs/development/guides/domains/05-entities/_category_.json +11 -0
  241. package/dist/docs/development/guides/domains/08-domain-integration-map.md +41 -0
  242. package/dist/docs/development/guides/domains/_category_.json +11 -0
  243. package/dist/docs/development/guides/flows/01-introduction.md +36 -0
  244. package/dist/docs/development/guides/flows/02-adding-flows.md +198 -0
  245. package/dist/docs/development/guides/flows/03-flow-nodes.md +273 -0
  246. package/dist/docs/development/guides/flows/04-adding-flows-to-services.md +42 -0
  247. package/dist/docs/development/guides/flows/05-adding-flows-to-domains.md +43 -0
  248. package/dist/docs/development/guides/flows/06-versioning.md +27 -0
  249. package/dist/docs/development/guides/flows/07-create-flow-with-ai.md +171 -0
  250. package/dist/docs/development/guides/flows/_category_.json +11 -0
  251. package/dist/docs/development/guides/messages/01-overview.md +57 -0
  252. package/dist/docs/development/guides/messages/_category_.json +11 -0
  253. package/dist/docs/development/guides/messages/commands/01-introduction.md +26 -0
  254. package/dist/docs/development/guides/messages/commands/02-adding-commands.md +131 -0
  255. package/dist/docs/development/guides/messages/commands/_category_.json +11 -0
  256. package/dist/docs/development/guides/messages/common/01-map-to-producers-and-consumers.md +37 -0
  257. package/dist/docs/development/guides/messages/common/02-adding-schemas.md +58 -0
  258. package/dist/docs/development/guides/messages/common/02-deprecating.md +71 -0
  259. package/dist/docs/development/guides/messages/common/02-draft-messages.md +63 -0
  260. package/dist/docs/development/guides/messages/common/02-examples.md +99 -0
  261. package/dist/docs/development/guides/messages/common/03-owners.md +40 -0
  262. package/dist/docs/development/guides/messages/common/04-versioning.md +27 -0
  263. package/dist/docs/development/guides/messages/common/05-changelog.md +73 -0
  264. package/dist/docs/development/guides/messages/common/07-components.md +12 -0
  265. package/dist/docs/development/guides/messages/common/08-shared-messages-across-boundaries.md +70 -0
  266. package/dist/docs/development/guides/messages/common/09-grouping-messages.md +98 -0
  267. package/dist/docs/development/guides/messages/common/_category_.json +11 -0
  268. package/dist/docs/development/guides/messages/events/01-introduction.md +25 -0
  269. package/dist/docs/development/guides/messages/events/02-adding-events.md +130 -0
  270. package/dist/docs/development/guides/messages/events/_category_.json +11 -0
  271. package/dist/docs/development/guides/messages/queries/01-introduction.md +25 -0
  272. package/dist/docs/development/guides/messages/queries/02-adding-queries.md +130 -0
  273. package/dist/docs/development/guides/messages/queries/_category_.json +11 -0
  274. package/dist/docs/development/guides/owners/_category_.json +11 -0
  275. package/dist/docs/development/guides/owners/teams/01-introduction.md +21 -0
  276. package/dist/docs/development/guides/owners/teams/02-adding-teams.md +73 -0
  277. package/dist/docs/development/guides/owners/teams/_category_.json +11 -0
  278. package/dist/docs/development/guides/owners/users/01-introduction.md +20 -0
  279. package/dist/docs/development/guides/owners/users/02-adding-users.md +70 -0
  280. package/dist/docs/development/guides/owners/users/_category_.json +11 -0
  281. package/dist/docs/development/guides/schemas/01-introduction.md +64 -0
  282. package/dist/docs/development/guides/schemas/02-schema-explorer.md +74 -0
  283. package/dist/docs/development/guides/schemas/03-schema-api.md +59 -0
  284. package/dist/docs/development/guides/schemas/04-schema-mcp.md +22 -0
  285. package/dist/docs/development/guides/schemas/05-field-usage.md +120 -0
  286. package/dist/docs/development/guides/schemas/06-fields-explorer.md +120 -0
  287. package/dist/docs/development/guides/schemas/_category_.json +11 -0
  288. package/dist/docs/development/guides/services/01-introduction.md +33 -0
  289. package/dist/docs/development/guides/services/02-adding-services.md +113 -0
  290. package/dist/docs/development/guides/services/03-creating-external-systems.md +71 -0
  291. package/dist/docs/development/guides/services/_category_.json +11 -0
  292. package/dist/docs/development/guides/services/adding-to-services/01-messages.md +229 -0
  293. package/dist/docs/development/guides/services/adding-to-services/02-datastores.md +77 -0
  294. package/dist/docs/development/guides/services/adding-to-services/03-entities.md +47 -0
  295. package/dist/docs/development/guides/services/adding-to-services/04-openapi.md +97 -0
  296. package/dist/docs/development/guides/services/adding-to-services/05-asyncapi.md +97 -0
  297. package/dist/docs/development/guides/services/adding-to-services/06-graphql.md +96 -0
  298. package/dist/docs/development/guides/services/adding-to-services/_category_.json +10 -0
  299. package/dist/docs/development/guides/services/ownership-and-components/01-owners.md +41 -0
  300. package/dist/docs/development/guides/services/ownership-and-components/02-components.md +13 -0
  301. package/dist/docs/development/guides/services/ownership-and-components/_category_.json +11 -0
  302. package/dist/docs/development/guides/services/versioning-and-lifecycle/01-versioning.md +27 -0
  303. package/dist/docs/development/guides/services/versioning-and-lifecycle/02-changelog.md +52 -0
  304. package/dist/docs/development/guides/services/versioning-and-lifecycle/03-deprecating.md +70 -0
  305. package/dist/docs/development/guides/services/versioning-and-lifecycle/_category_.json +11 -0
  306. package/dist/docs/development/upgrading/_category_.json +12 -0
  307. package/dist/docs/development/upgrading/upgrading.md +142 -0
  308. package/dist/docs/development/upgrading/v2.md +69 -0
  309. package/dist/docs/development/upgrading/v3.md +277 -0
  310. package/dist/docs/miro/_category_.json +12 -0
  311. package/dist/docs/miro/contributing/01-getting-involved.md +53 -0
  312. package/dist/docs/miro/contributing/_category_.json +11 -0
  313. package/dist/docs/miro/getting-started/01-overview.md +63 -0
  314. package/dist/docs/miro/getting-started/02-installation.md +37 -0
  315. package/dist/docs/miro/getting-started/03-connecting-to-eventcatalog.md +59 -0
  316. package/dist/docs/miro/getting-started/_category_.json +11 -0
  317. package/dist/docs/miro/guides/01-adding-resources-to-board.md +90 -0
  318. package/dist/docs/miro/guides/02-creating-new-resources.md +61 -0
  319. package/dist/docs/miro/guides/03-editing-resources.md +50 -0
  320. package/dist/docs/miro/guides/04-connected-resources.md +54 -0
  321. package/dist/docs/miro/guides/05-services-and-dependencies.md +54 -0
  322. package/dist/docs/miro/guides/06-navigating-the-board.md +44 -0
  323. package/dist/docs/miro/guides/07-exporting-to-eventcatalog.md +75 -0
  324. package/dist/docs/miro/guides/_category_.json +11 -0
  325. package/dist/docs/miro/specifications/01-asyncapi.md +86 -0
  326. package/dist/docs/miro/specifications/02-openapi.md +86 -0
  327. package/dist/docs/miro/specifications/03-schema-registries.md +88 -0
  328. package/dist/docs/miro/specifications/_category_.json +11 -0
  329. package/dist/docs/miro/using-ai/01-overview.md +105 -0
  330. package/dist/docs/miro/using-ai/_category_.json +11 -0
  331. package/dist/docs/plugins/01-intro.md +49 -0
  332. package/dist/docs/plugins/02-generators.md +76 -0
  333. package/dist/docs/plugins/03-all-plugins.md +26 -0
  334. package/dist/docs/plugins/_category_.json +12 -0
  335. package/dist/docs/plugins/amazon-apigateway/00-intro.md +75 -0
  336. package/dist/docs/plugins/amazon-apigateway/01-installation.md +198 -0
  337. package/dist/docs/plugins/amazon-apigateway/02-plugin-configuration.md +136 -0
  338. package/dist/docs/plugins/amazon-apigateway/03-features.md +71 -0
  339. package/dist/docs/plugins/amazon-apigateway/04-examples.md +15 -0
  340. package/dist/docs/plugins/amazon-apigateway/_category_.json +11 -0
  341. package/dist/docs/plugins/apicurio/00-intro.md +102 -0
  342. package/dist/docs/plugins/apicurio/01-installation.md +165 -0
  343. package/dist/docs/plugins/apicurio/02-plugin-configuration.md +682 -0
  344. package/dist/docs/plugins/apicurio/03-features.md +221 -0
  345. package/dist/docs/plugins/apicurio/04-examples.md +20 -0
  346. package/dist/docs/plugins/apicurio/_category_.json +12 -0
  347. package/dist/docs/plugins/asyncapi/00-intro.md +81 -0
  348. package/dist/docs/plugins/asyncapi/01-installation.md +155 -0
  349. package/dist/docs/plugins/asyncapi/02-plugin-configuration.md +312 -0
  350. package/dist/docs/plugins/asyncapi/03-features.md +698 -0
  351. package/dist/docs/plugins/asyncapi/03a-workflows.md +153 -0
  352. package/dist/docs/plugins/asyncapi/04-examples.md +23 -0
  353. package/dist/docs/plugins/asyncapi/04-using-reference-objects.md +45 -0
  354. package/dist/docs/plugins/asyncapi/_category_.json +12 -0
  355. package/dist/docs/plugins/aws-glue-registry/00-intro.md +104 -0
  356. package/dist/docs/plugins/aws-glue-registry/00a-installation.md +305 -0
  357. package/dist/docs/plugins/aws-glue-registry/01-features.md +287 -0
  358. package/dist/docs/plugins/aws-glue-registry/02-examples.md +368 -0
  359. package/dist/docs/plugins/aws-glue-registry/03-api.md +282 -0
  360. package/dist/docs/plugins/aws-glue-registry/_category_.json +11 -0
  361. package/dist/docs/plugins/azure-schema-registry/00-intro.md +92 -0
  362. package/dist/docs/plugins/azure-schema-registry/01-installation.md +409 -0
  363. package/dist/docs/plugins/azure-schema-registry/02-plugin-configuration.md +375 -0
  364. package/dist/docs/plugins/azure-schema-registry/03-features.md +347 -0
  365. package/dist/docs/plugins/azure-schema-registry/04-examples.md +378 -0
  366. package/dist/docs/plugins/azure-schema-registry/_category_.json +12 -0
  367. package/dist/docs/plugins/backstage/00-intro.md +67 -0
  368. package/dist/docs/plugins/backstage/01-installation.md +250 -0
  369. package/dist/docs/plugins/backstage/02-api.md +51 -0
  370. package/dist/docs/plugins/backstage/03-examples.md +12 -0
  371. package/dist/docs/plugins/backstage/_category_.json +11 -0
  372. package/dist/docs/plugins/confluent-schema-registry/00-intro.md +90 -0
  373. package/dist/docs/plugins/confluent-schema-registry/01-installation.md +223 -0
  374. package/dist/docs/plugins/confluent-schema-registry/02-plugin-configuration.md +473 -0
  375. package/dist/docs/plugins/confluent-schema-registry/03-features.md +43 -0
  376. package/dist/docs/plugins/confluent-schema-registry/04-examples.md +19 -0
  377. package/dist/docs/plugins/confluent-schema-registry/_category_.json +12 -0
  378. package/dist/docs/plugins/eventbridge/00-intro.md +55 -0
  379. package/dist/docs/plugins/eventbridge/00a-installation.md +317 -0
  380. package/dist/docs/plugins/eventbridge/01-features.md +225 -0
  381. package/dist/docs/plugins/eventbridge/02-examples.md +17 -0
  382. package/dist/docs/plugins/eventbridge/03-api.md +441 -0
  383. package/dist/docs/plugins/eventbridge/03a-workflows.md +133 -0
  384. package/dist/docs/plugins/eventbridge/_category_.json +11 -0
  385. package/dist/docs/plugins/eventcatalog-federation/00-introduction.md +69 -0
  386. package/dist/docs/plugins/eventcatalog-federation/01-installation.md +182 -0
  387. package/dist/docs/plugins/eventcatalog-federation/02-plugin-configuration.md +208 -0
  388. package/dist/docs/plugins/eventcatalog-federation/03-examples.md +15 -0
  389. package/dist/docs/plugins/eventcatalog-federation/04-configuration.md +193 -0
  390. package/dist/docs/plugins/eventcatalog-federation/05-setup-team-catalog.md +97 -0
  391. package/dist/docs/plugins/eventcatalog-federation/_category_.json +11 -0
  392. package/dist/docs/plugins/github/00-intro.md +93 -0
  393. package/dist/docs/plugins/github/01-installation.md +293 -0
  394. package/dist/docs/plugins/github/02-plugin-configuration.md +253 -0
  395. package/dist/docs/plugins/github/03-features.md +42 -0
  396. package/dist/docs/plugins/github/04-examples.md +17 -0
  397. package/dist/docs/plugins/github/_category_.json +12 -0
  398. package/dist/docs/plugins/graphql/00-intro.md +74 -0
  399. package/dist/docs/plugins/graphql/01-installation.md +144 -0
  400. package/dist/docs/plugins/graphql/02-plugin-configuration.md +127 -0
  401. package/dist/docs/plugins/graphql/03-features.md +197 -0
  402. package/dist/docs/plugins/graphql/04-examples.md +15 -0
  403. package/dist/docs/plugins/graphql/_category_.json +12 -0
  404. package/dist/docs/plugins/hookdeck/01-intro.md +152 -0
  405. package/dist/docs/plugins/hookdeck/02-api.md +133 -0
  406. package/dist/docs/plugins/hookdeck/03-cli.md +45 -0
  407. package/dist/docs/plugins/hookdeck/_category_.json +11 -0
  408. package/dist/docs/plugins/openapi/00-intro.md +78 -0
  409. package/dist/docs/plugins/openapi/01-installation.md +148 -0
  410. package/dist/docs/plugins/openapi/02-plugin-configuration.md +332 -0
  411. package/dist/docs/plugins/openapi/03-features.md +790 -0
  412. package/dist/docs/plugins/openapi/03a-workflows.md +153 -0
  413. package/dist/docs/plugins/openapi/04-examples.md +23 -0
  414. package/dist/docs/plugins/openapi/_category_.json +12 -0
  415. package/dist/eventcatalog.cjs +1 -1
  416. package/dist/eventcatalog.js +5 -5
  417. package/dist/generate.cjs +1 -1
  418. package/dist/generate.js +3 -3
  419. package/dist/utils/cli-logger.cjs +1 -1
  420. package/dist/utils/cli-logger.js +2 -2
  421. package/package.json +2 -2
@@ -0,0 +1,698 @@
1
+ ---
2
+ sidebar_position: 1
3
+ keywords:
4
+ - components
5
+ sidebar_label: Features
6
+ title: Features
7
+ description: Features of AsyncAPI with EventCatalog
8
+ ---
9
+
10
+ import AddedIn from '@site/src/components/MDX/AddedIn';
11
+ import Tabs from '@theme/Tabs';
12
+ import TabItem from '@theme/TabItem';
13
+
14
+ <!-- Table -->
15
+ | Feature | Use cases |
16
+ |---------|-----------|
17
+ | [Mapping messages events, commands or queries](#mapping-messages-events-commands-or-queries) | AsyncAPI does not distinguish between commands, events and queries, everything is a message. Using the EventCatalog custom AsyncAPI [extension](https://www.asyncapi.com/docs/concepts/asyncapi-document/extending-specification) `x-eventcatalog-message-type` you can specify if your messages are events, command or queries. |
18
+ | [Defining message ownership roles](#defining-message-ownership-roles) | AsyncAPI specification files do not define who owns the message and it's contract. Your AsyncAPI file my define messages your service consumes and produces but that service may not be the service that owns it's contract. (e.g An order service that consumes a Payment event. The order service (AsyncAPI file) would specify it consumes the payment event, but it is not the owner of the contract or event). |
19
+ | [Defining message versions](#defining-message-versions) | In EventCatalog you can version your domains, services and all your messages. This can be useful as you can specify which version of a message your service produces or consumes. |
20
+ | [Mapping channels into EventCatalog](#mapping-channels-into-eventcatalog) | EventCatalog supports [Channels](/docs/development/guides/channels/introduction) ([see demo](https://demo.eventcatalog.dev/docs/channels/inventory.%7Benv%7D.events/1.0.0)). This let's you document how messages or organized and transported in your event-driven architecture. |
21
+ | [Creating draft domains, services and messages](#creating-draft-domains-services-and-messages) | You can create draft domains, services and messages in EventCatalog from your AsyncAPI files. This will be used to mark the resources as draft in EventCatalog. |
22
+ | [Persist markdown](#persist-markdown) | When you generate your AsyncAPI files your markdown on your domains,services, and messages in EventCatalog is persisted between versions. This allows you to add [custom components](/docs/custom-components), our [MDX components](/docs/components) and customize your EventCatalog pages without losing changes when you version your AsyncAPI files. |
23
+ | [Fetch AsyncAPI files by URL](#fetch-asyncapi-files-by-url) | You can use the `path` property of the generator to specify a path to your local file system or an external URL, or you can mix both of them. |
24
+ | [Authenticate remote URLs](#authenticate-remote-urls) | Use HTTP headers to access protected AsyncAPI files from authenticated URLs. |
25
+ | [Automatic versioning](#automatic-versioning) | When you change versions in your AsyncAPI file and run generate, your services and messages are automatically versioned. This allows you to keep an audit log of changes between AsyncAPI files, schemas and more. |
26
+ | [Downloading schemas](#downloading-schemas) | If your messages have schemas (e.g avro, json) EventCatalog will document these for you. Run your generator and every message will show it's schema on the UI and give users the ability to download it's schema. |
27
+ | [Attach headers to schema](#attach-headers-to-schema) | Combine message headers and payload into a single schema with `headers` and `payload` properties. Useful when header metadata is part of the message contract. |
28
+ | [Parse message examples](#parse-message-examples) | Automatically write message examples from your AsyncAPI file as `.json` files in the message's `examples` folder in EventCatalog. |
29
+ | [AsyncAPI 3.1.0 support](#asyncapi-310-support) | Use AsyncAPI specification files up to version 3.1.0 without any extra configuration. |
30
+ | [Group messages](#group-messages) | Group related messages together in the visualiser for easier navigation of large APIs. |
31
+
32
+ ### Mapping messages events, commands or queries
33
+
34
+ AsyncAPI does not distinguish between commands, events and queries, everything is a message.
35
+
36
+ Using the EventCatalog custom AsyncAPI [extension](https://www.asyncapi.com/docs/concepts/asyncapi-document/extending-specification) `x-eventcatalog-message-type` you can specify if your messages are events, command or queries.
37
+
38
+ You can use the `x-eventcatalog-message-type` to specify the type of message.
39
+
40
+ By default everything parsed by EventCatalog is an event, unless you specify with the x-eventcatalog-message-type extension.
41
+
42
+ ```js title="x-eventcatalog-message-type example"
43
+ components:
44
+ messages:
45
+ OrderCreated:
46
+ description: 'Event triggered when an order is created'
47
+ x-eventcatalog-message-type: event // event/query/command
48
+ ```
49
+
50
+ You can see more [examples of the extension on the demo project](https://github.com/event-catalog/generators/tree/main/examples/generator-asyncapi/tree/main/asyncapi-files).
51
+
52
+ ### Defining message ownership roles
53
+
54
+ <AddedIn version="2.4.0" pkg="@eventcatalog/generator-asyncapi" url="https://github.com/event-catalog/generators/releases/tag/v"/>
55
+
56
+ AsyncAPI specification files do not define who owns the message and it's contract. Your AsyncAPI file my define messages your service consumes and produces but that service may not be the service that owns it's contract. (e.g An order service that consumes a Payment event. The order service (AsyncAPI file) would specify it consumes the payment event, but it is not the owner of the contract or event).
57
+
58
+ By default when you integrate your AsyncAPI files into EventCatalog, EventCatalog will assume your service (AsyncAPI file) owns the messages and will document them this way.
59
+
60
+ If you want to define ownership of messages in your files you can use the `x-eventcatalog-role` extension in your AsyncAPI files. This let's you specify if your service is a provider (owner) or the message or just a consumer (client) of the message.
61
+
62
+ The available extension values are:
63
+
64
+ - `provider`: Generator will generate a new message considering the service is the owner of message contract (`default`).
65
+ - `client`: Generator will consider the message as a sent/received message in service but will NOT generate or modify the message in EventCatalog.
66
+
67
+ ```js title="x-eventcatalog-role example"
68
+ components:
69
+ messages:
70
+ SendOrderConfirmation:
71
+ description: 'Command received to ask for sending an Order confirmation notification'
72
+ x-eventcatalog-role: client // Define the ownership. This example shows the service is a client of the message and does not own the message.
73
+ ```
74
+
75
+ You can see more [examples of the extension on the demo project](https://github.com/event-catalog/generators/tree/main/examples/generator-asyncapi/tree/main/asyncapi-files).
76
+
77
+ AsyncAPI specification files do not define who owns the message and it's contract. Your AsyncAPI file my define messages your service consumes and produces but that service may not be the service that owns it's contract. (e.g An order service that consumes a Payment event. The order service (AsyncAPI file) would specify it consumes the payment event, but it is not the owner of the contract or event).
78
+
79
+ By default when you integrate your AsyncAPI files into EventCatalog, EventCatalog will assume your service (AsyncAPI file) owns the messages and will document them this way.
80
+
81
+ If you want to define ownership of messages in your files you can use the `x-eventcatalog-role` extension in your AsyncAPI files. This let's you specify if your service is a provider (owner) or the message or just a consumer (client) of the message.
82
+
83
+ The available extension values are:
84
+
85
+ - `provider`: Generator will generate a new message considering the service is the owner of message contract (`default`).
86
+ - `client`: Generator will consider the message as a sent/received message in service but will NOT generate or modify the message in EventCatalog.
87
+
88
+ ```js title="x-eventcatalog-role example"
89
+ components:
90
+ messages:
91
+ SendOrderConfirmation:
92
+ description: 'Command received to ask for sending an Order confirmation notification'
93
+ x-eventcatalog-role: client // Define the ownership. This example shows the service is a client of the message and does not own the message.
94
+ ```
95
+
96
+ You can see more [examples of the extension on the demo project](https://github.com/event-catalog/generators/tree/main/examples/generator-asyncapi/tree/main/asyncapi-files).
97
+
98
+ ### Defining message versions
99
+
100
+ <AddedIn version="2.4.2" pkg="@eventcatalog/generator-asyncapi" url="https://github.com/event-catalog/generators/releases/tag/v"/>
101
+
102
+ In EventCatalog you can version your domains, services and all your messages. This can be useful as you can specify which version of a message your service produces or consumes.
103
+
104
+ Using the AsyncAPI generator by default the messages that are generated all use the AsyncAPI version.
105
+
106
+ In the example below the service `Account Service` will be documented using the version `1.0.0`. The `UserSignedUp` event will be documented as version `1.0.0` (taken from the AsyncAPI version).
107
+
108
+ ```yaml
109
+ asyncapi: 3.0.0
110
+ info:
111
+ title: Account Service
112
+ # This version is uses for your service and all messages
113
+ version: 1.0.0
114
+ description: This service is in charge of processing user signups
115
+ contact:
116
+ name: Awesome Team
117
+ url: https://example.com
118
+ email: support@asyncapi.org
119
+ # rest of AsyncAPI file...
120
+ UserSignedUp:
121
+ description: 'Sign up a user'
122
+ x-eventcatalog-message-version: 2.0.0
123
+ tags:
124
+ - name: 'New'
125
+ description: 'New event'
126
+ payload:
127
+ type: object
128
+ properties:
129
+ displayName:
130
+ type: string
131
+ description: Name of the user
132
+ email:
133
+ type: string
134
+ format: email
135
+ description: Email of the user
136
+ ```
137
+
138
+ #### Defining message versions
139
+
140
+ If you want to version your messages separate from the AsyncAPI file you can use the `x-eventcatalog-message-version` extension.
141
+
142
+ Using the `x-eventcatalog-message-version` extension you can specify individual message versions.
143
+
144
+ In the example below the service `Account Service` will be documented using the version `1.0.0`. The `UserSignedUp` event will be documented as version `2.0.0`.
145
+
146
+
147
+ ```yaml
148
+ asyncapi: 3.0.0
149
+ info:
150
+ title: Account Service
151
+ # This version is uses for your service and all messages
152
+ version: 1.0.0
153
+ description: This service is in charge of processing user signups
154
+ contact:
155
+ name: Awesome Team
156
+ url: https://example.com
157
+ email: support@asyncapi.org
158
+ # rest of AsyncAPI file...
159
+ UserSignedUp:
160
+ description: 'Sign up a user'
161
+ # Here we set the version of this message to 2.0.0.
162
+ x-eventcatalog-message-version: 2.0.0
163
+ tags:
164
+ - name: 'New'
165
+ description: 'New event'
166
+ payload:
167
+ type: object
168
+ properties:
169
+ displayName:
170
+ type: string
171
+ description: Name of the user
172
+ email:
173
+ type: string
174
+ format: email
175
+ description: Email of the user
176
+ # rest of AsyncAPI file...
177
+ ```
178
+
179
+ `x-eventcatalog-message-version` is optional per message, by default the AsyncAPI version will be used per message unless you specify the `x-eventcatalog-message-version` version.
180
+
181
+ ### Mapping channels into EventCatalog
182
+
183
+ <AddedIn version="2.7.0" pkg="@eventcatalog/generator-asyncapi" url="https://github.com/event-catalog/generators/releases/tag/v"/>
184
+
185
+ EventCatalog supports [Channels](/docs/development/guides/channels/introduction) ([see demo](https://demo.eventcatalog.dev/docs/channels/inventory.%7Benv%7D.events/1.0.0)). This let's you document how messages or organized and transported in your event-driven architecture.
186
+
187
+ ![Example](../../../docs/development/guides/img/channels/channels-example.png)
188
+
189
+ AsyncAPI also supports [documenting channels](https://www.asyncapi.com/docs/concepts/channel#main-content). These can be added using the `channels` object. ([see example](https://github.com/asyncapi/spec/blob/97ea47fc412c3c1b6259e897eb900c73a6141205/examples/streetlights-kafka-asyncapi.yml#L39)).
190
+
191
+ Channels can give your developers more insights into how messages are transported between services (e.g producers and consumers). Channels support dynamic naming, protocol definition and can be assigned to messages.
192
+
193
+ **Documenting channels is off by default** but you can turn this on using the `parseChannels` [flag in your generator](/docs/plugins/asyncapi/plugin-configuration).
194
+
195
+ When `parseChannels` is `true`, channels are associated with the service via `sends`/`receives` using `to`/`from` pointers rather than being added directly to messages. Channel pointers include the version only when `x-eventcatalog-channel-version` is explicitly set on the channel; otherwise they default to `"latest"`.
196
+
197
+ ### Creating draft domains, services and messages
198
+
199
+ <AddedIn version="4.4.0" pkg="@eventcatalog/generator-asyncapi" url="https://github.com/event-catalog/generators/releases/tag/v"/>
200
+
201
+ You can create draft domains, services and messages in EventCatalog from your AsyncAPI files.
202
+
203
+ ![Draft resources](../img/draft-resource.png)
204
+
205
+ **Use case:**
206
+
207
+ - You want to create a service in EventCatalog that is not yet implemented or going through feedback/design phase.
208
+ - You want to introduce a new endpoint to your service, but warn users that it is not yet implemented or still in development or draft.
209
+ - You want to introduce a whole new domain, but warn users everything in the domain is still in development or draft.
210
+
211
+ **Getting started**
212
+
213
+ You have a few options to create draft resources from your specification files.
214
+
215
+ - `domain.draft` - If true, the domain will be drafted in EventCatalog with all it's services / messages.
216
+ - `service.draft` - If true, the service will be drafted in EventCatalog with all it's endpoints / messages.
217
+
218
+ You can also choose to use AsyncAPI extensions to create draft resources.
219
+
220
+ - `x-eventcatalog-draft` - If true, the resource will be drafted in EventCatalog (e.g service and messages).
221
+
222
+ <details>
223
+ <summary>Example of creating draft resources through domains (configuration)</summary>
224
+
225
+ Setting the `draft` property to true will create a draft domain with all it's services and messages in EventCatalog.
226
+
227
+ ```js title="eventcatalog.config.js"
228
+ // ..rest of file
229
+ generators: [
230
+ [
231
+ '@eventcatalog/generator-asyncapi',
232
+ {
233
+ domain: { id: 'orders', name: 'Orders', version: '0.0.1', draft: true },
234
+ services: [
235
+ { path: path.join(__dirname, 'asyncapi-files', 'orders-service.yml'), id: 'orders-service', draft: true },
236
+ ],
237
+ },
238
+ ],
239
+ ],
240
+ };
241
+ ```
242
+ </details>
243
+ <details>
244
+ <summary>Example of creating draft resources through services (configuration)</summary>
245
+
246
+ Setting the `draft` property to true will create a draft service with all it's messages in EventCatalog.
247
+
248
+ ```js title="eventcatalog.config.js"
249
+ // ..rest of file
250
+ generators: [
251
+ [
252
+ '@eventcatalog/generator-asyncapi',
253
+ {
254
+ services: [
255
+ { path: path.join(__dirname, 'openapi-files', 'orders-service.yml'), id: 'orders-service', draft: true },
256
+ ],
257
+ },
258
+ ],
259
+ ],
260
+ };
261
+ ```
262
+
263
+ In this example the **Orders Service** and all it's messages will be marked as draft in EventCatalog.
264
+ </details>
265
+ <details>
266
+ <summary>Example marking service as draft (AsyncAPI extension)</summary>
267
+
268
+ Setting the `x-eventcatalog-draft` extension to true will mark the service as draft in EventCatalog.
269
+
270
+ ```yml title="x-eventcatalog-draft example"
271
+ asyncapi: 3.0.0
272
+ info:
273
+ title: Orders Service
274
+ version: 1.0.0
275
+ # Here we mark the service as draft
276
+ x-eventcatalog-draft: true
277
+ # rest of AsyncAPI file...
278
+ ```
279
+
280
+ In this example the **Orders Service** and all it's messages will be marked as draft in EventCatalog.
281
+
282
+ </details>
283
+ <details>
284
+ <summary>Example marking a message as draft (AsyncAPI extension)</summary>
285
+
286
+ Setting the `x-eventcatalog-draft` extension on each message will mark the message as draft in EventCatalog.
287
+
288
+ ```yml title="x-eventcatalog-draft example"
289
+ asyncapi: 3.0.0
290
+ info:
291
+ title: Account Service
292
+ version: 1.0.0
293
+ description: This service is in charge of processing user signups
294
+ channels:
295
+ userSignedup:
296
+ address: user/signedup
297
+ messages:
298
+ UserSignedUp:
299
+ $ref: '#/components/messages/UserSignedUp'
300
+ operations:
301
+ sendUserSignedup:
302
+ action: send
303
+ channel:
304
+ $ref: '#/channels/userSignedup'
305
+ messages:
306
+ - $ref: '#/channels/userSignedup/messages/UserSignedUp'
307
+ components:
308
+ messages:
309
+ UserSignedUp:
310
+ description: 'User signed up the application'
311
+ x-eventcatalog-message-type: event
312
+ # This will mark the message as draft in EventCatalog
313
+ x-eventcatalog-draft: true
314
+ tags:
315
+ - name: 'New'
316
+ description: 'New event'
317
+ headers:
318
+ type: object
319
+ properties:
320
+ ec-message-type:
321
+ type: string
322
+ default: event
323
+ description: Type of message for EventCatalog
324
+ payload:
325
+ type: object
326
+ properties:
327
+ displayName:
328
+ type: string
329
+ description: Name of the user
330
+ email:
331
+ type: string
332
+ format: email
333
+ description: Email of the user
334
+ ```
335
+
336
+ In this example we mark the message `UserSignedUp` as draft but the service is not marked as draft in EventCatalog.
337
+
338
+ This can be useful if you want to introduce a new message, but warn users that it is not yet implemented or still in development or draft.
339
+
340
+ </details>
341
+
342
+
343
+ #### Setting custom versions for channels
344
+
345
+ EventCatalog supports versioning of channels. By default the version of the channel documented is the AsyncAPI version (you specify in the info object).
346
+
347
+ If you want more flexibility and document your channels individually you can use the `x-eventcatalog-channel-version` extension.
348
+
349
+ **Example of a channel with custom version**
350
+
351
+ ```yaml
352
+ info:
353
+ title: Streetlights Kafka API
354
+ # Global version of this service (used by default)
355
+ version: 1.0.0
356
+ channels:
357
+ lightingMeasured:
358
+ address: 'smartylighting.streetlights.1.0.event.{streetlightId}.lighting.measured'
359
+ bindings:
360
+ kafka:
361
+ topic: 'my-topic'
362
+ partitions: 3
363
+ title: 'Lighting Measured Channel'
364
+ summary: 'Inform about environmental lighting conditions of a particular streetlight.'
365
+ messages:
366
+ lightMeasured:
367
+ $ref: '#/components/messages/lightMeasured'
368
+ description: The topic on which measured values may be produced and consumed.
369
+ parameters:
370
+ streetlightId:
371
+ $ref: '#/components/parameters/streetlightId'
372
+ # The version of the channel
373
+ x-eventcatalog-channel-version: 2.0.0
374
+ # AsyncAPI file contents...
375
+ ```
376
+
377
+ When `parseChannels` is set to true, running the generate command will document your channels and all messages that are assigned to that channel.
378
+
379
+ ### Parsing $ref values and message schemas
380
+
381
+ <AddedIn version="2.5.1" pkg="@eventcatalog/generator-asyncapi" url="https://github.com/event-catalog/generators/releases/tag/v"/>
382
+
383
+ Your AsyncAPI file may have references to other files/schemas in it. When using this with EventCatalog it's recommended to use the [saveParsedSpecFile](/docs/plugins/asyncapi/plugin-configuration) field.
384
+
385
+ Setting this value to true, will parse your specification file and remove any $ref values, as EventCatalog cannot parse $ref values when hosted in the project.
386
+
387
+ When your AsyncAPI file is parsed, by default the schemas will also be parsed. If you want to keep them as they are you can also use the [parseSchemas](/docs/plugins/asyncapi/plugin-configuration) flag. Setting this to `false` will keep your schemas as they are.
388
+
389
+ ### Attach headers to schema
390
+
391
+ <AddedIn version="5.5.1" pkg="@eventcatalog/generator-asyncapi" url="https://github.com/event-catalog/generators/releases/tag/v"/>
392
+
393
+ When a message defines both headers and a payload, you can combine them into a single schema using `attachHeadersToSchema`. The resulting schema wraps both under `headers` and `payload` properties.
394
+
395
+ This is useful when your consumers need to validate or inspect message headers alongside the payload, for example when Spring `__TypeId__` headers or routing metadata are part of the contract.
396
+
397
+ ```js title="eventcatalog.config.js"
398
+ generators: [
399
+ [
400
+ '@eventcatalog/generator-asyncapi',
401
+ {
402
+ services: [
403
+ { path: path.join(__dirname, 'asyncapi-files', 'orders-service.yml'), id: 'orders-service' },
404
+ ],
405
+ attachHeadersToSchema: true,
406
+ },
407
+ ],
408
+ ],
409
+ ```
410
+
411
+ Given an AsyncAPI message with headers and a JSON schema payload, the generated `schema.json` will look like this:
412
+
413
+ ```json title="schema.json (generated output)"
414
+ {
415
+ "type": "object",
416
+ "properties": {
417
+ "headers": {
418
+ "type": "object",
419
+ "properties": {
420
+ "__TypeId__": {
421
+ "type": "string",
422
+ "description": "Spring Type Id Header"
423
+ }
424
+ }
425
+ },
426
+ "payload": {
427
+ "type": "object",
428
+ "properties": {
429
+ "orderId": {
430
+ "type": "string"
431
+ }
432
+ }
433
+ }
434
+ }
435
+ }
436
+ ```
437
+
438
+ This option only applies to messages using JSON schema format. Messages with non-JSON schema formats (e.g. Avro) are not affected. If a message has no headers, the payload schema is written unchanged.
439
+
440
+ ### Parse message examples
441
+
442
+ <AddedIn version="6.1.0" pkg="@eventcatalog/generator-asyncapi" url="https://github.com/event-catalog/generators/releases/tag/v"/>
443
+
444
+ When `parseExamples` is enabled (the default), the generator reads any [examples](https://www.asyncapi.com/docs/reference/specification/v3.0.0#messageExampleObject) defined on your AsyncAPI messages and writes each payload to the message's `examples` folder in EventCatalog.
445
+
446
+ Named examples use `{name}.json` as the filename. Unnamed examples fall back to `example-{index}.json` (e.g. `example-0.json`).
447
+
448
+ ```yaml title="AsyncAPI message with examples"
449
+ components:
450
+ messages:
451
+ OrderCreated:
452
+ description: 'Triggered when an order is created'
453
+ x-eventcatalog-message-type: event
454
+ payload:
455
+ type: object
456
+ properties:
457
+ orderId:
458
+ type: string
459
+ total:
460
+ type: number
461
+ examples:
462
+ - name: basic-order
463
+ payload:
464
+ orderId: 'ord-123'
465
+ total: 49.99
466
+ - payload:
467
+ orderId: 'ord-456'
468
+ total: 0.00
469
+ ```
470
+
471
+ Running the generator with the above file produces two example files for the `OrderCreated` message:
472
+
473
+ - `examples/basic-order.json` (named example)
474
+ - `examples/example-1.json` (unnamed, falls back to index)
475
+
476
+ To disable example parsing, set `parseExamples` to `false` in your generator configuration:
477
+
478
+ ```js title="eventcatalog.config.js"
479
+ generators: [
480
+ [
481
+ '@eventcatalog/generator-asyncapi',
482
+ {
483
+ services: [
484
+ { path: path.join(__dirname, 'asyncapi-files', 'orders-service.yml'), id: 'orders-service' },
485
+ ],
486
+ parseExamples: false,
487
+ },
488
+ ],
489
+ ],
490
+ ```
491
+
492
+ ### Adding prefix to all messages
493
+
494
+ <AddedIn version="4.5.1" pkg="@eventcatalog/generator-asyncapi" url="https://github.com/event-catalog/generators/releases/tag/v"/>
495
+
496
+ If you want more control over the ids of the generated messages you can add a prefix to the id of the generated messages.
497
+
498
+ <Tabs>
499
+ <TabItem value="prefix (with a string)">
500
+
501
+ This will add a prefix to the id of the generated messages. For example a message with the id `orderPlaced` with a configured prefix of `hello-` will be `hello-orderPlaced`.
502
+
503
+ ```js title="eventcatalog.config.js"
504
+ generators: [
505
+ [
506
+ '@eventcatalog/generator-asyncapi',
507
+ {
508
+ messages: { id: { prefix: 'hello' } },
509
+ },
510
+ ],
511
+ ],
512
+ ```
513
+ </TabItem>
514
+ <TabItem value="prefix (with custom separator)">
515
+
516
+ This will add a prefix to the id of the generated messages. For example a message with the id `orderPlaced` with a configured prefix of `hello-` and separator of `_` will be `hello_orderPlaced`.
517
+
518
+ ```js title="eventcatalog.config.js"
519
+ generators: [
520
+ [
521
+ '@eventcatalog/generator-asyncapi',
522
+ {
523
+ messages: { id: { prefix: 'hello', separator: '_' } },
524
+ },
525
+ ],
526
+ ],
527
+ ```
528
+ </TabItem>
529
+ <TabItem value="prefix (with service id)">
530
+
531
+ This will add the service id to the id of the generated messages. For example a message with the id `orderPlaced` and the service id `orders-service` will be `orders-service-orderPlaced`.
532
+
533
+ ```js title="eventcatalog.config.js"
534
+ generators: [
535
+ [
536
+ '@eventcatalog/generator-asyncapi',
537
+ {
538
+ messages: { id: { prefixWithServiceId: true } },
539
+ },
540
+ ],
541
+ ],
542
+ ```
543
+ </TabItem>
544
+ </Tabs>
545
+
546
+ ### Deprecating messages
547
+
548
+ <AddedIn version="4.0.3" pkg="@eventcatalog/generator-asyncapi" url="https://github.com/event-catalog/generators/releases/tag/v"/>
549
+
550
+ To mark messages as deprecated you can use the `x-eventcatalog-deprecated-date` and `x-eventcatalog-deprecated-message` extensions.
551
+
552
+ ```yml title="Deprecating a message using x-eventcatalog-deprecated-date and x-eventcatalog-deprecated-message"
553
+ SignUpUser:
554
+ description: 'Sign up a user'
555
+ x-eventcatalog-message-type: command
556
+ x-eventcatalog-message-version: 2.0.0
557
+ # Date the message will be deprecated (YYYY-MM-DD)
558
+ x-eventcatalog-deprecated-date: 2025-04-09
559
+ # Message to show in the deprecation banner (optional)
560
+ x-eventcatalog-deprecated-message: This operation is deprecated because it is not used in the codebase
561
+ payload:
562
+ type: object
563
+ properties:
564
+ displayName:
565
+ type: string
566
+ description: Name of the user
567
+ email:
568
+ type: string
569
+ format: email
570
+ description: Email of the user
571
+ ```
572
+
573
+ This will render a banner in EventCatalog indicating that the message will be deprecated on 2026-05-01.
574
+
575
+ _Example of a deprecated resource in EventCatalog:_
576
+
577
+ ![Deprecated message](../../development/guides/img/deprecated/will-be-deprecated.png)
578
+
579
+
580
+ ### Persist markdown
581
+
582
+ When you generate your AsyncAPI files your markdown on your domains,services, and messages in EventCatalog is persisted between versions.
583
+
584
+ This allows you to add [custom components](/docs/custom-components), our [MDX components](/docs/components) and customize your EventCatalog pages without losing changes when you version your AsyncAPI files.
585
+
586
+ ### Fetch AsyncAPI files by URL
587
+
588
+ <AddedIn version="2.3.0" pkg="@eventcatalog/generator-asyncapi" url="https://github.com/event-catalog/generators/releases/tag/v"/>
589
+
590
+ You can use the `path` property of the generator to specify a path to your local file system or an external URL, or you can mix both of them.
591
+
592
+ ```js
593
+ [
594
+ '@eventcatalog/generator-asyncapi',
595
+ {
596
+ services: [
597
+ // Add AsyncAPI file by public URL
598
+ { path: "https://raw.githubusercontent.com/event-catalog/eventcatalog-asyncapi-example/refs/heads/main/asyncapi-files/payment-service.yml", id: "Payment Service"},
599
+ // Add AsyncAPI file using file system
600
+ { path: path.join(__dirname, 'asyncapi-files', 'fraud-detection-service.yml'), "Fraud Service"}
601
+ ],
602
+ domain: { id: 'payment', name: 'Payment', version: '0.0.1' },
603
+
604
+ // Run in debug mode, for extra output, if your AsyncAPI fails to parse, it will tell you why
605
+ debug: true,
606
+
607
+ // Parse and add channels to your eventcatalog from the AsyncAPI spec files
608
+ parseChannels: true
609
+ },
610
+ ],
611
+ ```
612
+
613
+ ### Authenticate remote URLs
614
+
615
+ When fetching AsyncAPI files from authenticated URLs, provide HTTP headers using the `headers` property.
616
+
617
+ This is useful for accessing private specifications from internal registries, API gateways, or other protected endpoints.
618
+
619
+ ```js
620
+ [
621
+ '@eventcatalog/generator-asyncapi',
622
+ {
623
+ services: [
624
+ {
625
+ path: "https://api.example.com/specs/payment-service.asyncapi.yml",
626
+ id: "Payment Service",
627
+ headers: {
628
+ Authorization: 'Bearer your-api-token',
629
+ 'X-Api-Key': 'your-api-key'
630
+ }
631
+ }
632
+ ],
633
+ domain: { id: 'payment', name: 'Payment', version: '0.0.1' }
634
+ }
635
+ ]
636
+ ```
637
+
638
+ The headers are passed with every HTTP request when fetching the AsyncAPI file from the specified URL.
639
+
640
+ ### Automatic versioning
641
+
642
+ When you change versions in your AsyncAPI file and run generate, your services and messages are automatically versioned. This allows you to keep an audit log of changes between AsyncAPI files, schemas and more.
643
+
644
+ You can also add changelogs between different versions of your services and messages. [Read here for more information](/docs/development/guides/messages/common/changelog).
645
+
646
+ ### Downloading schemas
647
+
648
+ If your messages have schemas (e.g avro, json) EventCatalog will document these for you. Run your generator and every message will show it's schema on the UI and give users the ability to download it's schema.
649
+
650
+ The service that is also generated will allow you to see and download the AsyncAPI file.
651
+
652
+ ### AsyncAPI 3.1.0 support
653
+
654
+ <AddedIn version="6.0.0" pkg="@eventcatalog/generator-asyncapi" url="https://github.com/event-catalog/generators/releases/tag/v"/>
655
+
656
+ The generator supports AsyncAPI specification files up to and including version 3.1.0. No extra configuration is needed; point the `path` property at your 3.1.0 file and the generator handles the rest.
657
+
658
+ ### Group messages
659
+
660
+ <AddedIn version="6.4.0" pkg="@eventcatalog/generator-asyncapi" url="https://github.com/event-catalog/generators/releases/tag/v"/>
661
+
662
+ When a service sends or receives many messages, the [visualiser](/docs/development/guides/messages/common/grouping-messages) can become crowded. The `groupMessagesBy` option lets you automatically group related messages together so they collapse into a single node in the visualiser map, making your architecture easier to understand at a glance.
663
+
664
+ ![Message group expanded in the visualiser](./img/message-group-expanded.png)
665
+
666
+ To learn more about how groups work in the visualiser, see [Grouping messages](/docs/development/guides/messages/common/grouping-messages).
667
+
668
+ Set `groupMessagesBy: 'x-extension'` in your generator config, then add `x-eventcatalog-group` to each message in your AsyncAPI components.
669
+
670
+ ```js title="eventcatalog.config.js"
671
+ generators: [
672
+ [
673
+ '@eventcatalog/generator-asyncapi',
674
+ {
675
+ services: [{ path: './asyncapi.yml', id: 'my-service' }],
676
+ groupMessagesBy: 'x-extension',
677
+ },
678
+ ],
679
+ ],
680
+ ```
681
+
682
+ ```yaml title="asyncapi.yml"
683
+ components:
684
+ messages:
685
+ ShipmentDispatched:
686
+ x-eventcatalog-group: Shipping
687
+ description: A shipment has been dispatched
688
+ ```
689
+
690
+ When `parseChannels` is also enabled, group assignments and channel pointers are both preserved on the generated messages.
691
+
692
+ :::tip
693
+ Once grouped, messages appear as a compact stacked card in the visualiser. Click the group to expand it and see the full downstream graph — channels, consumers, and producers — just as if the messages were ungrouped. See [Grouping messages](/docs/development/guides/messages/common/grouping-messages) for more details.
694
+ :::
695
+
696
+ ### Example
697
+
698
+ See the [eventcatalog-asyncapi-example](https://github.com/event-catalog/generators/tree/main/examples/generator-asyncapi) for a working example.