@eventcatalog/core 4.12.2 → 5.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/LICENSE +226 -95
  2. package/NOTICE +30 -0
  3. package/README.md +3 -2
  4. package/dist/analytics/analytics.cjs +1 -1
  5. package/dist/analytics/analytics.js +2 -2
  6. package/dist/analytics/log-build.cjs +43 -16
  7. package/dist/analytics/log-build.d.cts +6 -5
  8. package/dist/analytics/log-build.d.ts +6 -5
  9. package/dist/analytics/log-build.js +4 -3
  10. package/dist/{chunk-U4YJSTGV.js → chunk-AYNZXUB5.js} +2 -10
  11. package/dist/{chunk-IVVM67LN.js → chunk-CR6AK5LR.js} +1 -1
  12. package/dist/{chunk-GTIC4R74.js → chunk-LR7AGRHN.js} +13 -16
  13. package/dist/chunk-TQLRG35T.js +203 -0
  14. package/dist/{chunk-WK4J6FP3.js → chunk-TWN43V4T.js} +1 -1
  15. package/dist/{chunk-ZW3MYAWF.js → chunk-WAIADKQE.js} +1 -1
  16. package/dist/{chunk-RPVA2SZY.js → chunk-ZHKEARLJ.js} +1 -1
  17. package/dist/constants.cjs +1 -1
  18. package/dist/constants.js +1 -1
  19. package/dist/eventcatalog.cjs +407 -291
  20. package/dist/eventcatalog.config.d.cts +2 -3
  21. package/dist/eventcatalog.config.d.ts +2 -3
  22. package/dist/eventcatalog.js +30 -93
  23. package/dist/federation/content-cache.d.cts +0 -5
  24. package/dist/federation/content-cache.d.ts +0 -5
  25. package/dist/federation/diagnostics.d.cts +0 -5
  26. package/dist/federation/diagnostics.d.ts +0 -5
  27. package/dist/federation/federate.cjs +0 -9
  28. package/dist/federation/federate.d.cts +0 -5
  29. package/dist/federation/federate.d.ts +0 -5
  30. package/dist/federation/federate.js +2 -3
  31. package/dist/federation/filesystem-source-provider.d.cts +0 -5
  32. package/dist/federation/filesystem-source-provider.d.ts +0 -5
  33. package/dist/federation/github-source-provider.d.cts +0 -5
  34. package/dist/federation/github-source-provider.d.ts +0 -5
  35. package/dist/federation/output-transaction.d.cts +0 -4
  36. package/dist/federation/output-transaction.d.ts +0 -4
  37. package/dist/federation/public-assets.d.cts +0 -5
  38. package/dist/federation/public-assets.d.ts +0 -5
  39. package/dist/federation/source-provider.d.cts +0 -5
  40. package/dist/federation/source-provider.d.ts +0 -5
  41. package/dist/federation/types.d.cts +0 -5
  42. package/dist/federation/types.d.ts +0 -5
  43. package/dist/generate.cjs +1 -1
  44. package/dist/generate.js +3 -3
  45. package/dist/license-C1y-56bb.d.cts +23 -0
  46. package/dist/license-C1y-56bb.d.ts +23 -0
  47. package/dist/runtime-dependencies/@eventcatalog__visualiser__layout.mjs +3 -0
  48. package/dist/runtime-dependencies/@modelcontextprotocol__ext-apps.mjs +3 -0
  49. package/dist/runtime-dependencies/@modelcontextprotocol__ext-apps__react.mjs +3 -0
  50. package/dist/runtime-dependencies/@modelcontextprotocol__ext-apps__server.mjs +3 -0
  51. package/dist/runtime-dependencies/@modelcontextprotocol__sdk__types.js.mjs +3 -0
  52. package/dist/runtime-dependencies/manifest.json +12 -1
  53. package/dist/runtime-dependencies/react-syntax-highlighter__dist__esm__languages__prism__graphql.mjs +3 -0
  54. package/dist/runtime-dependencies/react-syntax-highlighter__dist__esm__languages__prism__json.mjs +3 -0
  55. package/dist/runtime-dependencies/react-syntax-highlighter__dist__esm__languages__prism__markup.mjs +3 -0
  56. package/dist/runtime-dependencies/react-syntax-highlighter__dist__esm__languages__prism__protobuf.mjs +3 -0
  57. package/dist/runtime-dependencies/react-syntax-highlighter__dist__esm__languages__prism__yaml.mjs +3 -0
  58. package/dist/runtime-dependencies/react-syntax-highlighter__dist__esm__styles__prism__one-dark.mjs +3 -0
  59. package/dist/runtime-dependencies/react-syntax-highlighter__dist__esm__styles__prism__one-light.mjs +3 -0
  60. package/dist/utils/cli-logger.cjs +1 -1
  61. package/dist/utils/cli-logger.js +2 -2
  62. package/dist/utils/license-status.cjs +240 -0
  63. package/dist/utils/license-status.d.cts +28 -0
  64. package/dist/utils/license-status.d.ts +28 -0
  65. package/dist/utils/license-status.js +12 -0
  66. package/eventcatalog/astro.config.mjs +1 -1
  67. package/eventcatalog/integrations/eventcatalog-runtime.mjs +1 -1
  68. package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +29 -19
  69. package/eventcatalog/src/components/ChatPanel/OfflineReply.tsx +74 -0
  70. package/eventcatalog/src/components/FieldsExplorer/FieldFilters.tsx +24 -28
  71. package/eventcatalog/src/components/FieldsExplorer/FieldNodeGraph.tsx +16 -11
  72. package/eventcatalog/src/components/FieldsExplorer/FieldsExplorer.tsx +4 -218
  73. package/eventcatalog/src/components/FieldsExplorer/FieldsTable.tsx +27 -36
  74. package/eventcatalog/src/components/Header.astro +43 -58
  75. package/eventcatalog/src/components/Lists/PillListFlat.styles.css +17 -17
  76. package/eventcatalog/src/components/MDX/EntityMap/EntityMap.astro +1 -1
  77. package/eventcatalog/src/components/MDX/Flow/Flow.astro +4 -0
  78. package/eventcatalog/src/components/MDX/NodeGraph/AstroNodeGraph.tsx +14 -0
  79. package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.astro +49 -18
  80. package/eventcatalog/src/components/MDX/RemoteFile.astro +2 -24
  81. package/eventcatalog/src/components/SchemaExplorer/ApiAccessSection.tsx +59 -93
  82. package/eventcatalog/src/components/SchemaExplorer/ApiContentViewer.tsx +1 -32
  83. package/eventcatalog/src/components/SchemaExplorer/DiffViewer.tsx +20 -67
  84. package/eventcatalog/src/components/SchemaExplorer/SchemaContentViewer.tsx +2 -11
  85. package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsPanel.tsx +11 -60
  86. package/eventcatalog/src/components/SchemaExplorer/SchemaExplorer.tsx +1 -3
  87. package/eventcatalog/src/components/SchemaExplorer/SchemaPageViewer.tsx +0 -3
  88. package/eventcatalog/src/components/SchemaExplorer/VersionHistoryModal.tsx +2 -9
  89. package/eventcatalog/src/components/SchemaExplorer/parse-schema.ts +46 -0
  90. package/eventcatalog/src/components/SchemaExplorer/utils.ts +11 -0
  91. package/eventcatalog/src/components/Settings/AssistantSettingsForm.tsx +2 -9
  92. package/eventcatalog/src/components/Settings/LicenseSettings.tsx +288 -0
  93. package/eventcatalog/src/components/Settings/LlmAccessSettingsForm.tsx +3 -19
  94. package/eventcatalog/src/components/Settings/McpSettingsForm.tsx +85 -30
  95. package/eventcatalog/src/components/Settings/SettingsShared.tsx +7 -75
  96. package/eventcatalog/src/components/SideNav/CustomDocsNav.astro +2 -2
  97. package/eventcatalog/src/components/TrialBadge.astro +82 -0
  98. package/eventcatalog/src/content.config.ts +9 -90
  99. package/eventcatalog/src/{enterprise → features}/ai/chat-api.ts +22 -34
  100. package/eventcatalog/src/{enterprise → features}/analytics/adapters/ga4.ts +0 -5
  101. package/eventcatalog/src/{enterprise → features}/analytics/adapters/gtm.ts +0 -5
  102. package/eventcatalog/src/{enterprise → features}/analytics/adapters/posthog.ts +0 -5
  103. package/eventcatalog/src/{enterprise → features}/analytics/components/AnalyticsHead.astro +2 -4
  104. package/eventcatalog/src/{enterprise → features}/analytics/components/AnalyticsTracker.astro +2 -4
  105. package/eventcatalog/src/{enterprise → features}/analytics/tracker.ts +0 -5
  106. package/eventcatalog/src/{enterprise → features}/api/catalog.ts +0 -5
  107. package/eventcatalog/src/{enterprise → features}/auth/[...auth].ts +0 -5
  108. package/eventcatalog/src/{enterprise → features}/auth/middleware/middleware-auth.ts +0 -5
  109. package/eventcatalog/src/{enterprise → features}/auth/middleware/middleware.ts +0 -5
  110. package/eventcatalog/src/{enterprise → features}/collections/custom-pages.ts +0 -5
  111. package/eventcatalog/src/{enterprise → features}/collections/index.ts +0 -5
  112. package/eventcatalog/src/{enterprise → features}/collections/resource-docs.ts +0 -5
  113. package/eventcatalog/src/{enterprise → features}/custom-documentation/collection.ts +0 -5
  114. package/eventcatalog/src/features/custom-documentation/components/CustomDocsNav/CustomDocsNav.astro +9 -0
  115. package/eventcatalog/src/{enterprise → features}/custom-documentation/components/CustomDocsNav/CustomDocsNavWrapper.tsx +0 -5
  116. package/eventcatalog/src/{enterprise → features}/custom-documentation/components/CustomDocsNav/components/NestedItem.tsx +1 -6
  117. package/eventcatalog/src/{enterprise → features}/custom-documentation/components/CustomDocsNav/components/NoResultsFound.tsx +0 -5
  118. package/eventcatalog/src/{enterprise → features}/custom-documentation/components/CustomDocsNav/index.tsx +1 -6
  119. package/eventcatalog/src/{enterprise → features}/custom-documentation/components/CustomDocsNav/types.ts +0 -5
  120. package/eventcatalog/src/{enterprise/custom-documentation/pages/docs/custom/index.astro → features/custom-documentation/components/CustomDocumentationPage.astro} +5 -5
  121. package/eventcatalog/src/{enterprise → features}/custom-documentation/utils/badge-styles.ts +0 -5
  122. package/eventcatalog/src/{enterprise → features}/custom-documentation/utils/custom-docs.ts +1 -6
  123. package/eventcatalog/src/{enterprise → features}/custom-documentation/utils/docs-search.ts +0 -5
  124. package/eventcatalog/src/{enterprise → features}/custom-pages/routes.ts +0 -5
  125. package/eventcatalog/src/{enterprise → features}/directory/user-team-directory.ts +0 -5
  126. package/eventcatalog/src/{enterprise → features}/fields/field-extractor.ts +0 -5
  127. package/eventcatalog/src/{enterprise → features}/fields/field-indexer.ts +0 -5
  128. package/eventcatalog/src/{enterprise → features}/fields/fields-db.ts +0 -5
  129. package/eventcatalog/src/{enterprise → features}/fields/pages/api/fields.ts +1 -6
  130. package/eventcatalog/src/{enterprise → features}/fields/pages/fields.astro +1 -2
  131. package/eventcatalog/src/{enterprise → features}/integrations/eventcatalog-features.ts +17 -75
  132. package/eventcatalog/src/features/mcp/apps/architecture-diagram/links.ts +59 -0
  133. package/eventcatalog/src/features/mcp/apps/architecture-diagram/node-chat.tsx +299 -0
  134. package/eventcatalog/src/features/mcp/apps/architecture-diagram/shared.ts +14 -0
  135. package/eventcatalog/src/features/mcp/apps/architecture-diagram/view.tsx +454 -0
  136. package/eventcatalog/src/features/mcp/apps/generated/viewer.html +432 -0
  137. package/eventcatalog/src/features/mcp/apps/mermaid-stub.ts +10 -0
  138. package/eventcatalog/src/features/mcp/apps/schema-viewer/schema-code.tsx +65 -0
  139. package/eventcatalog/src/features/mcp/apps/schema-viewer/shared.ts +23 -0
  140. package/eventcatalog/src/features/mcp/apps/schema-viewer/view.tsx +170 -0
  141. package/eventcatalog/src/features/mcp/apps/shared/app-view.tsx +98 -0
  142. package/eventcatalog/src/features/mcp/apps/shared/resource-types.ts +15 -0
  143. package/eventcatalog/src/features/mcp/apps/viewer/shared.ts +24 -0
  144. package/eventcatalog/src/features/mcp/apps/viewer/styles.css +25 -0
  145. package/eventcatalog/src/features/mcp/apps/viewer/view.tsx +59 -0
  146. package/eventcatalog/src/features/mcp/mcp-app-icons.ts +63 -0
  147. package/eventcatalog/src/features/mcp/mcp-apps.ts +160 -0
  148. package/eventcatalog/src/{enterprise → features}/mcp/mcp-auth.ts +0 -5
  149. package/eventcatalog/src/{enterprise → features}/mcp/mcp-scope.ts +7 -7
  150. package/eventcatalog/src/{enterprise → features}/mcp/mcp-scoped-tools.ts +47 -40
  151. package/eventcatalog/src/{enterprise → features}/mcp/mcp-server.ts +347 -34
  152. package/eventcatalog/src/{enterprise → features}/mcp/oauth-protected-resource.ts +0 -5
  153. package/eventcatalog/src/features/mcp/schema-viewer.ts +24 -0
  154. package/eventcatalog/src/{enterprise → features}/tools/catalog-tools.ts +133 -102
  155. package/eventcatalog/src/features/tools/index.ts +5 -0
  156. package/eventcatalog/src/{enterprise → features}/visualizer-layout/reset.ts +0 -5
  157. package/eventcatalog/src/{enterprise → features}/visualizer-layout/save.ts +0 -5
  158. package/eventcatalog/src/layouts/BaseLayout.astro +2 -2
  159. package/eventcatalog/src/layouts/Footer.astro +31 -39
  160. package/eventcatalog/src/layouts/SettingsLayout.astro +6 -6
  161. package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +7 -37
  162. package/eventcatalog/src/{enterprise → pages}/api/schemas/[collection]/[id]/[version]/index.ts +0 -22
  163. package/eventcatalog/src/{enterprise → pages}/api/schemas/services/[id]/[version]/[specification]/index.ts +0 -19
  164. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/_index.data.ts +2 -6
  165. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/index.astro +1 -5
  166. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/_index.data.ts +2 -6
  167. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/index.astro +1 -5
  168. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId].md.ts +2 -6
  169. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId].mdx.ts +2 -6
  170. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +9 -5
  171. package/eventcatalog/src/pages/docs/custom/[...path]/index.astro +12 -0
  172. package/eventcatalog/src/{enterprise/custom-documentation/pages/docs/custom/root-index.astro → pages/docs/custom/index.astro} +1 -23
  173. package/eventcatalog/src/pages/docs/llm/llms-full.txt.ts +4 -9
  174. package/eventcatalog/src/pages/docs/llm/llms.txt.ts +4 -4
  175. package/eventcatalog/src/pages/docs/llm/schemas.txt.ts +0 -11
  176. package/eventcatalog/src/pages/docs/services/[id]/[docType]/[docId]/index.astro +2 -2
  177. package/eventcatalog/src/pages/index.astro +2 -2
  178. package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/index.astro +0 -3
  179. package/eventcatalog/src/pages/schemas/explorer/index.astro +1 -4
  180. package/eventcatalog/src/pages/settings/assistant.astro +2 -4
  181. package/eventcatalog/src/pages/settings/license.astro +18 -0
  182. package/eventcatalog/src/pages/settings/llm-access.astro +1 -4
  183. package/eventcatalog/src/pages/settings/mcp.astro +33 -4
  184. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/_index.data.ts +1 -2
  185. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/data/index.astro +2 -45
  186. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/index.astro +1 -1
  187. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version].mermaid.ts +7 -109
  188. package/eventcatalog/src/pages/visualiser/_mermaid-route.ts +78 -0
  189. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/_index.data.ts +44 -0
  190. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/index.astro +1 -1
  191. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/index.astro +56 -0
  192. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/index.astro +3 -40
  193. package/eventcatalog/src/pages/visualiser/domains/[id]/[version].mermaid.ts +20 -0
  194. package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/_index.data.ts +29 -0
  195. package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/index.astro +3 -38
  196. package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/index.astro +56 -0
  197. package/eventcatalog/src/pages/visualiser/systems/[id]/[version].mermaid.ts +20 -0
  198. package/eventcatalog/src/stores/sidebar-store/builders/agent.ts +1 -1
  199. package/eventcatalog/src/stores/sidebar-store/builders/container.ts +1 -1
  200. package/eventcatalog/src/stores/sidebar-store/builders/data-product.ts +1 -1
  201. package/eventcatalog/src/stores/sidebar-store/builders/domain.ts +7 -32
  202. package/eventcatalog/src/stores/sidebar-store/builders/entity.ts +1 -1
  203. package/eventcatalog/src/stores/sidebar-store/builders/message.ts +1 -1
  204. package/eventcatalog/src/stores/sidebar-store/builders/service.ts +2 -8
  205. package/eventcatalog/src/stores/sidebar-store/builders/system.ts +2 -12
  206. package/eventcatalog/src/stores/sidebar-store/custom-sidebar.ts +0 -10
  207. package/eventcatalog/src/stores/sidebar-store/state.ts +4 -6
  208. package/eventcatalog/src/styles/theme.css +22 -18
  209. package/eventcatalog/src/styles/themes/forest.css +8 -8
  210. package/eventcatalog/src/styles/themes/ocean.css +8 -8
  211. package/eventcatalog/src/styles/themes/sapphire.css +8 -8
  212. package/eventcatalog/src/styles/themes/sunset.css +8 -8
  213. package/eventcatalog/src/utils/clipboard.ts +4 -4
  214. package/eventcatalog/src/utils/collections/flow-step-schema.ts +117 -0
  215. package/eventcatalog/src/utils/collections/pointer-schema.ts +7 -0
  216. package/eventcatalog/src/utils/collections/resource-docs.ts +677 -14
  217. package/eventcatalog/src/utils/collections/schema-loader.ts +0 -5
  218. package/eventcatalog/src/utils/feature.ts +14 -23
  219. package/eventcatalog/src/utils/license.ts +114 -0
  220. package/eventcatalog/src/utils/node-graphs/architecture-diagram-types.ts +32 -0
  221. package/eventcatalog/src/utils/node-graphs/architecture-diagram.ts +84 -0
  222. package/eventcatalog/src/utils/node-graphs/catalog-force-graph.ts +1 -0
  223. package/eventcatalog/src/utils/node-graphs/channel-node-graph.ts +4 -25
  224. package/eventcatalog/src/utils/node-graphs/container-node-graph.ts +12 -39
  225. package/eventcatalog/src/utils/node-graphs/data-products-node-graph.ts +11 -27
  226. package/eventcatalog/src/utils/node-graphs/domain-levels-node-graph.ts +679 -0
  227. package/eventcatalog/src/utils/node-graphs/domains-node-graph.ts +3 -20
  228. package/eventcatalog/src/utils/node-graphs/export-mermaid.ts +62 -4
  229. package/eventcatalog/src/utils/node-graphs/field-node-graph.ts +8 -23
  230. package/eventcatalog/src/utils/node-graphs/flow-lanes.ts +119 -0
  231. package/eventcatalog/src/utils/node-graphs/flows-node-graph.ts +153 -45
  232. package/eventcatalog/src/utils/node-graphs/layout-node-graph.ts +28 -0
  233. package/eventcatalog/src/utils/node-graphs/layout-persistence.ts +3 -3
  234. package/eventcatalog/src/utils/node-graphs/message-node-graph.ts +16 -34
  235. package/eventcatalog/src/utils/node-graphs/services-node-graph.ts +11 -25
  236. package/eventcatalog/src/utils/node-graphs/system-context-node-graph.ts +18 -54
  237. package/eventcatalog/src/utils/node-graphs/system-levels-node-graph.ts +59 -0
  238. package/eventcatalog/src/utils/node-graphs/systems-node-graph.ts +20 -80
  239. package/eventcatalog/src/utils/node-graphs/utils/utils.ts +1 -78
  240. package/eventcatalog/src/utils/trial.ts +36 -0
  241. package/eventcatalog/tsconfig.json +1 -1
  242. package/package.json +11 -11
  243. package/dist/chunk-FV56YFM4.js +0 -7
  244. package/dist/federation/entitlement.cjs +0 -31
  245. package/dist/federation/entitlement.d.cts +0 -12
  246. package/dist/federation/entitlement.d.ts +0 -12
  247. package/dist/federation/entitlement.js +0 -6
  248. package/dist/runtime-dependencies/dagre.mjs +0 -3
  249. package/eventcatalog/src/components/Settings/BillingSettingsForm.tsx +0 -265
  250. package/eventcatalog/src/enterprise/LICENSE +0 -57
  251. package/eventcatalog/src/enterprise/README.md +0 -5
  252. package/eventcatalog/src/enterprise/collections/resource-docs-utils.ts +0 -691
  253. package/eventcatalog/src/enterprise/custom-documentation/components/CustomDocsNav/CustomDocsNav.astro +0 -9
  254. package/eventcatalog/src/enterprise/custom-documentation/pages/docs/custom/[...path]/index.astro +0 -18
  255. package/eventcatalog/src/enterprise/custom-documentation/pages/docs/custom/feature.astro +0 -171
  256. package/eventcatalog/src/enterprise/feature.ts +0 -75
  257. package/eventcatalog/src/enterprise/tools/index.ts +0 -10
  258. package/eventcatalog/src/hooks/eventcatalog-visualizer.ts +0 -126
  259. package/eventcatalog/src/pages/settings/billing.astro +0 -17
  260. package/eventcatalog/src/pages/visualiser/domain-integrations/index.astro +0 -26
  261. package/eventcatalog/src/types/mcp-modules.d.ts +0 -67
  262. package/eventcatalog/src/utils/node-graphs/domains-canvas.ts +0 -261
  263. package/eventcatalog/src/utils/node-graphs/export-node-graph.ts +0 -91
  264. /package/eventcatalog/src/{enterprise → features}/auth/error.astro +0 -0
  265. /package/eventcatalog/src/{enterprise → features}/auth/login.astro +0 -0
  266. /package/eventcatalog/src/{enterprise → features}/auth/unauthorized.astro +0 -0
  267. /package/eventcatalog/src/{enterprise/custom-documentation/pages → pages}/docs/custom/[...path]/_index.data.ts +0 -0
  268. /package/eventcatalog/src/{enterprise/custom-documentation/pages → pages}/docs/custom/[...path].mdx.ts +0 -0
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  import VerticalSideBarLayout from './VerticalSideBarLayout.astro';
3
3
  import { buildUrl } from '@utils/url-builder';
4
- import { Settings, Server, Bot, FileText, CreditCard } from 'lucide-react';
4
+ import { Settings, Server, Bot, FileText, BadgeCheck } from 'lucide-react';
5
5
 
6
- export type SettingsSection = 'general' | 'mcp' | 'assistant' | 'llm-access' | 'billing';
6
+ export type SettingsSection = 'general' | 'mcp' | 'assistant' | 'llm-access' | 'license';
7
7
 
8
8
  interface Props {
9
9
  title: string;
@@ -63,10 +63,10 @@ const groups: SectionGroup[] = [
63
63
  label: 'Workspace',
64
64
  items: [
65
65
  {
66
- id: 'billing',
67
- label: 'Billing',
68
- href: buildUrl('/settings/billing'),
69
- icon: CreditCard,
66
+ id: 'license',
67
+ label: 'License',
68
+ href: buildUrl('/settings/license'),
69
+ icon: BadgeCheck,
70
70
  },
71
71
  ],
72
72
  },
@@ -50,12 +50,12 @@ import { getDataProducts } from '@utils/collections/data-products';
50
50
  import { isCollectionVisibleInCatalog } from '@eventcatalog';
51
51
  import { buildUrl } from '@utils/url-builder';
52
52
  import { getQueries } from '@utils/collections/queries';
53
- import { getFirstNavigationPage } from '@enterprise/custom-documentation/utils/custom-docs';
53
+ import { getFirstNavigationPage } from '@features/custom-documentation/utils/custom-docs';
54
54
 
55
- import { isEmbedEnabled, isCustomStylesEnabled, isCustomDocsEnabled, isSSR } from '@utils/feature';
55
+ import { isSSR } from '@utils/feature';
56
56
 
57
57
  const customDocs = await getCollection('customPages');
58
- const firstCustomDocsPage = isCustomDocsEnabled() && customDocs.length > 0 ? await getFirstNavigationPage() : null;
58
+ const firstCustomDocsPage = customDocs.length > 0 ? await getFirstNavigationPage() : null;
59
59
 
60
60
  let events: any[] = [];
61
61
  let commands: any[] = [];
@@ -84,11 +84,9 @@ let dataProducts: any[] = [];
84
84
  ]);
85
85
 
86
86
  // Try and load any custom styles if they exist
87
- if (isCustomStylesEnabled()) {
88
- try {
89
- await import('@catalog/styles');
90
- } catch (error) {}
91
- }
87
+ try {
88
+ await import('@catalog/styles');
89
+ } catch (error) {}
92
90
 
93
91
  const currentPath = Astro.url.pathname;
94
92
  const wrapContent = Astro.props.wrapContent ?? true;
@@ -294,7 +292,7 @@ const builtinNavigationItems: Record<string, Omit<VerticalNavigationItem, 'curre
294
292
  const defaultNavigationGroups: NavigationGroupConfig[] = [
295
293
  {
296
294
  id: 'main',
297
- items: [{ id: '/' }, { id: '/docs/custom', visible: isCustomDocsEnabled() && customDocs.length > 0 }],
295
+ items: [{ id: '/' }, { id: '/docs/custom', visible: customDocs.length > 0 }],
298
296
  },
299
297
  {
300
298
  id: 'browse',
@@ -423,7 +421,6 @@ const clientNavigationItems = navigationGroups.flatMap((group) =>
423
421
  );
424
422
  const { title, description, showNestedSideBar = true, showHeader = true, reducedContentPadding = false } = Astro.props;
425
423
 
426
- const canPageBeEmbedded = isEmbedEnabled();
427
424
  const verticalNavAutoCollapsePaths = [buildUrl('/discover', true), buildUrl('/docs', true)];
428
425
  ---
429
426
 
@@ -600,10 +597,6 @@ const verticalNavAutoCollapsePaths = [buildUrl('/discover', true), buildUrl('/do
600
597
  justify-content: center;
601
598
  padding: 0.75rem 0.25rem;
602
599
  }
603
- :root[data-vertical-nav-collapsed='true'] .vertical-nav-rail .nav-premium-icon,
604
- .vertical-nav-rail[data-collapsed='true'] .nav-premium-icon {
605
- margin-left: 0;
606
- }
607
600
  :root[data-vertical-nav-collapsed='true'] .vertical-nav-rail .nav-collapse-icon,
608
601
  .vertical-nav-rail[data-collapsed='true'] .nav-collapse-icon {
609
602
  transform: rotate(180deg);
@@ -859,22 +852,6 @@ const verticalNavAutoCollapsePaths = [buildUrl('/discover', true), buildUrl('/do
859
852
  )
860
853
  }
861
854
  </main>
862
-
863
- <!-- Create a overlay that tells people to purchase backstage plugin if they want to embed the page -->
864
- <div class="absolute inset-0 bg-black items-center justify-center z-50 hidden" id="embed-overlay">
865
- <div class="text-white text-center space-y-4">
866
- <div>
867
- <h1 class="text-2xl font-bold">EventCatalog Backstage Integration</h1>
868
- <p class="text-md text-red-500">Missing license key for backstage integration.</p>
869
- </div>
870
- <div>
871
- <p class="text-sm text-gray-500">Please configure the backstage plugin to embed this page into Backstage.</p>
872
- <a href="https://www.eventcatalog.dev/integrations/backstage" class="text-blue-500 text-xs"
873
- >Configure backstage plugin &rarr;</a
874
- >
875
- </div>
876
- </div>
877
- </div>
878
855
  </div>
879
856
  </main>
880
857
  </BaseLayout>
@@ -883,7 +860,6 @@ const verticalNavAutoCollapsePaths = [buildUrl('/discover', true), buildUrl('/do
883
860
  <script
884
861
  define:vars={{
885
862
  clientNavigationItems,
886
- canPageBeEmbedded,
887
863
  verticalNavAutoCollapsePaths,
888
864
  }}
889
865
  >
@@ -1145,12 +1121,6 @@ const verticalNavAutoCollapsePaths = [buildUrl('/discover', true), buildUrl('/do
1145
1121
  }
1146
1122
  };
1147
1123
 
1148
- if (embeded && !canPageBeEmbedded) {
1149
- const overlay = document.getElementById('embed-overlay');
1150
- overlay.style.display = 'flex';
1151
- return;
1152
- }
1153
-
1154
1124
  if (embeded) {
1155
1125
  const elementsToHide = [
1156
1126
  'eventcatalog-vertical-nav',
@@ -1,11 +1,5 @@
1
- /**
2
- * Licensed under the EventCatalog Commercial License.
3
- * See /packages/core/eventcatalog/src/enterprise/LICENSE
4
- */
5
-
6
1
  import type { APIRoute } from 'astro';
7
2
  import { getCollection } from 'astro:content';
8
- import { isEventCatalogScaleEnabled } from '@utils/feature';
9
3
  import { sortVersioned } from '@utils/collections/util';
10
4
 
11
5
  const findSchema = async (collection: string | undefined, id: string, version: string | undefined) => {
@@ -59,22 +53,6 @@ export async function getStaticPaths() {
59
53
  }
60
54
 
61
55
  export const GET: APIRoute = async ({ props, params }) => {
62
- if (!isEventCatalogScaleEnabled()) {
63
- return new Response(
64
- JSON.stringify({
65
- error: 'feature_not_available_on_server',
66
- message: 'Schema API is not enabled for this deployment and supported in EventCatalog Scale.',
67
- }),
68
- {
69
- status: 501,
70
- headers: {
71
- 'Content-Type': 'application/json',
72
- 'Cache-Control': 'no-store',
73
- },
74
- }
75
- );
76
- }
77
-
78
56
  // In static mode, props are pre-computed by getStaticPaths
79
57
  if (props.schema !== undefined) {
80
58
  return new Response(props.schema, {
@@ -1,14 +1,8 @@
1
- /**
2
- * Licensed under the EventCatalog Commercial License.
3
- * See /packages/core/eventcatalog/src/enterprise/LICENSE
4
- */
5
-
6
1
  import type { APIRoute } from 'astro';
7
2
  import { getCollection } from 'astro:content';
8
3
  import path from 'node:path';
9
4
  import fs from 'node:fs';
10
5
  import { getSpecificationsForService } from '@utils/collections/services';
11
- import { isEventCatalogScaleEnabled } from '@utils/feature';
12
6
  import { resourceFileExists, readResourceFile } from '@utils/resource-files';
13
7
 
14
8
  export async function getStaticPaths() {
@@ -39,19 +33,6 @@ export async function getStaticPaths() {
39
33
  }
40
34
 
41
35
  export const GET: APIRoute = async ({ props, params }) => {
42
- if (!isEventCatalogScaleEnabled()) {
43
- return new Response(
44
- JSON.stringify({
45
- error: 'feature_not_available_on_server',
46
- message: 'Schema API is not enabled for this deployment and supported in EventCatalog Scale.',
47
- }),
48
- {
49
- status: 501,
50
- headers: { 'Content-Type': 'application/json', 'Cache-Control': 'no-store' },
51
- }
52
- );
53
- }
54
-
55
36
  // In static mode, props are pre-computed by getStaticPaths
56
37
  if (props.schema) {
57
38
  return new Response(props.schema, {
@@ -1,4 +1,4 @@
1
- import { isSSR, isResourceDocsEnabled } from '@utils/feature';
1
+ import { isSSR } from '@utils/feature';
2
2
  import { HybridPage } from '@utils/page-loaders/hybrid-page';
3
3
  import { getResourceDocs, getResourceDocsForResource, type ResourceCollection } from '@utils/collections/resource-docs';
4
4
 
@@ -17,7 +17,7 @@ const supportedResourceCollections = new Set<ResourceCollection>([
17
17
 
18
18
  export class Page extends HybridPage {
19
19
  static async getStaticPaths() {
20
- if (isSSR() || !isResourceDocsEnabled()) {
20
+ if (isSSR()) {
21
21
  return [];
22
22
  }
23
23
 
@@ -37,10 +37,6 @@ export class Page extends HybridPage {
37
37
  }
38
38
 
39
39
  protected static async fetchData(params: any) {
40
- if (!isResourceDocsEnabled()) {
41
- return null;
42
- }
43
-
44
40
  const decodeParam = (value: string) => {
45
41
  try {
46
42
  return decodeURIComponent(value);
@@ -8,7 +8,7 @@ import CopyAsMarkdown from '@components/CopyAsMarkdown';
8
8
  import Badge from '@components/Badge.astro';
9
9
  import { buildUrl } from '@utils/url-builder';
10
10
  import { AlignLeftIcon, HistoryIcon } from 'lucide-react';
11
- import { isEventCatalogChatVisible, isMarkdownDownloadEnabled, isResourceDocsEnabled } from '@utils/feature';
11
+ import { isEventCatalogChatVisible, isMarkdownDownloadEnabled } from '@utils/feature';
12
12
  import { getResourceDocTypeLabel } from '@utils/collections/resource-docs';
13
13
  import { getIcon } from '@utils/badges';
14
14
  import { collectionToResourceMap } from '@utils/collections/util';
@@ -18,10 +18,6 @@ import { Page } from './_index.data';
18
18
  export const prerender = Page.prerender;
19
19
  export const getStaticPaths = Page.getStaticPaths;
20
20
 
21
- if (!isResourceDocsEnabled()) {
22
- return Astro.redirect(buildUrl('/docs/custom/feature'));
23
- }
24
-
25
21
  const props = await Page.getData(Astro);
26
22
  const { Content, headings } = await render(props);
27
23
 
@@ -1,4 +1,4 @@
1
- import { isSSR, isResourceDocsEnabled } from '@utils/feature';
1
+ import { isSSR } from '@utils/feature';
2
2
  import { HybridPage } from '@utils/page-loaders/hybrid-page';
3
3
  import { getResourceDocs, getResourceDocsForResource, type ResourceCollection } from '@utils/collections/resource-docs';
4
4
 
@@ -17,7 +17,7 @@ const supportedResourceCollections = new Set<ResourceCollection>([
17
17
 
18
18
  export class Page extends HybridPage {
19
19
  static async getStaticPaths() {
20
- if (isSSR() || !isResourceDocsEnabled()) {
20
+ if (isSSR()) {
21
21
  return [];
22
22
  }
23
23
 
@@ -37,10 +37,6 @@ export class Page extends HybridPage {
37
37
  }
38
38
 
39
39
  protected static async fetchData(params: any) {
40
- if (!isResourceDocsEnabled()) {
41
- return null;
42
- }
43
-
44
40
  const decodeParam = (value: string) => {
45
41
  try {
46
42
  return decodeURIComponent(value);
@@ -8,7 +8,7 @@ import CopyAsMarkdown from '@components/CopyAsMarkdown';
8
8
  import Badge from '@components/Badge.astro';
9
9
  import { buildUrl } from '@utils/url-builder';
10
10
  import { AlignLeftIcon, HistoryIcon } from 'lucide-react';
11
- import { isEventCatalogChatVisible, isMarkdownDownloadEnabled, isResourceDocsEnabled } from '@utils/feature';
11
+ import { isEventCatalogChatVisible, isMarkdownDownloadEnabled } from '@utils/feature';
12
12
  import { getIcon } from '@utils/badges';
13
13
  import { collectionToResourceMap } from '@utils/collections/util';
14
14
  import { getResourceDocTypeLabel } from '@utils/collections/resource-docs';
@@ -18,10 +18,6 @@ import { Page } from './_index.data';
18
18
  export const prerender = Page.prerender;
19
19
  export const getStaticPaths = Page.getStaticPaths;
20
20
 
21
- if (!isResourceDocsEnabled()) {
22
- return Astro.redirect(buildUrl('/docs/custom/feature'));
23
- }
24
-
25
21
  const props = await Page.getData(Astro);
26
22
  const { Content, headings } = await render(props);
27
23
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  import type { APIRoute } from 'astro';
6
6
  import fs from 'fs';
7
- import { isLLMSTxtEnabled, isResourceDocsEnabled, isSSR } from '@utils/feature';
7
+ import { isLLMSTxtEnabled, isSSR } from '@utils/feature';
8
8
  import { getResourceDocs, getResourceDocsForResource, type ResourceCollection } from '@utils/collections/resource-docs';
9
9
  import { filterMarkdownForAgents } from '@utils/llms';
10
10
 
@@ -22,7 +22,7 @@ const supportedResourceCollections = new Set<ResourceCollection>([
22
22
  ]);
23
23
 
24
24
  export async function getStaticPaths() {
25
- if (isSSR() || !isLLMSTxtEnabled() || !isResourceDocsEnabled()) {
25
+ if (isSSR() || !isLLMSTxtEnabled()) {
26
26
  return [];
27
27
  }
28
28
 
@@ -46,10 +46,6 @@ export const GET: APIRoute = async ({ params, props }) => {
46
46
  return new Response('llms.txt is not enabled for this Catalog.', { status: 404 });
47
47
  }
48
48
 
49
- if (!isResourceDocsEnabled()) {
50
- return new Response('Resource docs are not enabled for this Catalog.', { status: 404 });
51
- }
52
-
53
49
  let filePath = (props as { filePath?: string } | undefined)?.filePath;
54
50
 
55
51
  if (!filePath && isSSR()) {
@@ -4,7 +4,7 @@
4
4
 
5
5
  import type { APIRoute } from 'astro';
6
6
  import fs from 'fs';
7
- import { isLLMSTxtEnabled, isResourceDocsEnabled, isSSR } from '@utils/feature';
7
+ import { isLLMSTxtEnabled, isSSR } from '@utils/feature';
8
8
  import { getResourceDocs, getResourceDocsForResource, type ResourceCollection } from '@utils/collections/resource-docs';
9
9
  import { filterMarkdownForAgents } from '@utils/llms';
10
10
 
@@ -23,7 +23,7 @@ const supportedResourceCollections = new Set<ResourceCollection>([
23
23
  ]);
24
24
 
25
25
  export async function getStaticPaths() {
26
- if (isSSR() || !isLLMSTxtEnabled() || !isResourceDocsEnabled()) {
26
+ if (isSSR() || !isLLMSTxtEnabled()) {
27
27
  return [];
28
28
  }
29
29
 
@@ -47,10 +47,6 @@ export const GET: APIRoute = async ({ params, props }) => {
47
47
  return new Response('llms.txt is not enabled for this Catalog.', { status: 404 });
48
48
  }
49
49
 
50
- if (!isResourceDocsEnabled()) {
51
- return new Response('Resource docs are not enabled for this Catalog.', { status: 404 });
52
- }
53
-
54
50
  let filePath = (props as { filePath?: string } | undefined)?.filePath;
55
51
 
56
52
  if (!filePath && isSSR()) {
@@ -342,8 +342,8 @@ const flowEmbeds = getMDXComponentsByName(props.body || '', 'Flow') || [];
342
342
  // portal so it doesn't collide with the page's default diagram.
343
343
  //
344
344
  // The underlying graph + visualiser link differ per page type:
345
- // - systems → `systems-context`, links to /visualiser/systems/:id/:version/context
346
- // - domains → `domains-systems-context`, links to /visualiser/domains/:id/:version/systems-context
345
+ // - systems → `systems-context`, links to level 1 of /visualiser/systems/:id/:version
346
+ // - domains → `domains-systems-context`, links to level 1 of /visualiser/domains/:id/:version
347
347
  const contextDiagramSupported = props.collection === 'systems' || props.collection === 'domains';
348
348
  const contextDiagrams = contextDiagramSupported
349
349
  ? (getMDXComponentsByName(props.body || '', 'ContextDiagram') || []).map((diagram: any) => {
@@ -357,8 +357,8 @@ const contextDiagrams = contextDiagramSupported
357
357
  graphCollection: props.collection === 'domains' ? 'domains-systems-context' : 'systems-context',
358
358
  visualiserUrl:
359
359
  props.collection === 'domains'
360
- ? buildUrl(`/visualiser/domains/${id}/${version}/systems-context`)
361
- : buildUrl(`/visualiser/systems/${id}/${version}/context`),
360
+ ? buildUrl(`/visualiser/domains/${id}/${version}?level=1`)
361
+ : buildUrl(`/visualiser/systems/${id}/${version}?level=1`),
362
362
  };
363
363
  })
364
364
  : [];
@@ -624,11 +624,15 @@ if (!isAdrPage && !hasCurrentFlowEmbed && !hasCurrentPageNodeGraph) {
624
624
  nodeGraphs.length > 0 &&
625
625
  nodeGraphs.map((nodeGraph: any) => {
626
626
  const collection = resourceToCollectionMap[nodeGraph.type as keyof typeof resourceToCollectionMap];
627
+ // A domain's graph is its Diagram page's (opening at level 1: the
628
+ // domain, its systems and the domains it talks to)
629
+ const isDomain = collection === 'domains';
627
630
  return (
628
631
  <NodeGraph
629
632
  id={nodeGraph.id}
630
633
  version={nodeGraph.version}
631
- collection={collection}
634
+ collection={isDomain ? 'domains-levels' : collection}
635
+ overview={isDomain ? { label: 'domains it talks to' } : undefined}
632
636
  title={nodeGraph.title}
633
637
  mode={nodeGraph.mode || 'simple'}
634
638
  linksToVisualiser={true}
@@ -0,0 +1,12 @@
1
+ ---
2
+ import CustomDocumentationPage from '@features/custom-documentation/components/CustomDocumentationPage.astro';
3
+ import { Page } from './_index.data';
4
+
5
+ export const prerender = Page.prerender;
6
+ export const getStaticPaths = Page.getStaticPaths;
7
+
8
+ // Get data
9
+ const props = await Page.getData(Astro);
10
+ ---
11
+
12
+ <CustomDocumentationPage {...props} />
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  import VerticalSideBarLayout from '@layouts/VerticalSideBarLayout.astro';
3
3
  import { Code } from 'astro-expressive-code/components';
4
- import { isCustomDocsEnabled } from '@utils/feature';
5
4
 
6
5
  // Example for folder structure
7
6
  const folderStructureExample = `my-catalog/
@@ -92,10 +91,6 @@ module.exports = {
92
91
  ]
93
92
  }
94
93
  }`;
95
-
96
- if (!isCustomDocsEnabled()) {
97
- return Astro.redirect('/docs/custom/feature');
98
- }
99
94
  ---
100
95
 
101
96
  <VerticalSideBarLayout title="Custom Documentation" showNestedSideBar={false}>
@@ -104,14 +99,7 @@ if (!isCustomDocsEnabled()) {
104
99
  <div class="mb-12">
105
100
  <div class="flex flex-col md:flex-row md:items-center md:justify-between gap-6">
106
101
  <div>
107
- <div class="flex flex-wrap items-center gap-3 mb-3">
108
- <h1 class="text-4xl font-semibold text-[rgb(var(--ec-page-text))] font-inter">Custom Documentation</h1>
109
- <div
110
- class="inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium bg-[rgb(var(--ec-accent-subtle))] text-[rgb(var(--ec-accent-text))] border border-[rgb(var(--ec-accent)/0.3)] shadow-xs"
111
- >
112
- Pro feature
113
- </div>
114
- </div>
102
+ <h1 class="text-4xl font-semibold text-[rgb(var(--ec-page-text))] font-inter mb-3">Custom Documentation</h1>
115
103
  <p class="text-base mb-0 text-[rgb(var(--ec-page-text-muted))] max-w-3xl">
116
104
  Add custom documentation to EventCatalog to create a unified source of truth for your team. Document your
117
105
  architecture decisions, patterns, and guidelines.
@@ -124,16 +112,6 @@ if (!isCustomDocsEnabled()) {
124
112
  >
125
113
  Read documentation &rarr;
126
114
  </a>
127
- {
128
- !isCustomDocsEnabled() && (
129
- <a
130
- href="https://www.eventcatalog.dev/pro/trial"
131
- class="inline-flex items-center justify-center px-5 py-2 border border-transparent text-sm font-medium rounded-md text-[rgb(var(--ec-button-text))] bg-gradient-to-r from-[rgb(var(--ec-accent-gradient-from))] to-[rgb(var(--ec-accent-gradient-to))] hover:opacity-90 shadow-xs"
132
- >
133
- Start 14-day trial
134
- </a>
135
- )
136
- }
137
115
  </div>
138
116
  </div>
139
117
  </div>
@@ -1,7 +1,7 @@
1
1
  import { getCollection, type CollectionEntry } from 'astro:content';
2
2
  import type { APIRoute } from 'astro';
3
3
  import fs from 'fs';
4
- import { isCustomDocsEnabled, isResourceDocsEnabled, isLLMSTxtEnabled } from '@utils/feature';
4
+ import { isLLMSTxtEnabled } from '@utils/feature';
5
5
  import { addSchemaToMarkdown, filterMarkdownForAgents } from '@utils/llms';
6
6
 
7
7
  type AllowedCollections =
@@ -37,7 +37,7 @@ const flows = await getCollection('flows');
37
37
  const containers = await getCollection('containers');
38
38
  const ubiquitousLanguages = await getCollection('ubiquitousLanguages');
39
39
  const customDocs = await getCollection('customPages');
40
- const resourceDocs = isResourceDocsEnabled() ? await getCollection('resourceDocs') : [];
40
+ const resourceDocs = await getCollection('resourceDocs');
41
41
 
42
42
  export const GET: APIRoute = async ({ params, request }) => {
43
43
  if (!isLLMSTxtEnabled()) {
@@ -61,13 +61,8 @@ export const GET: APIRoute = async ({ params, request }) => {
61
61
  ...ubiquitousLanguages,
62
62
  ];
63
63
 
64
- if (isCustomDocsEnabled()) {
65
- resources.push(...(customDocs as CollectionEntry<AllowedCollections>[]));
66
- }
67
-
68
- if (isResourceDocsEnabled()) {
69
- resources.push(...(resourceDocs as CollectionEntry<AllowedCollections>[]));
70
- }
64
+ resources.push(...(customDocs as CollectionEntry<AllowedCollections>[]));
65
+ resources.push(...(resourceDocs as CollectionEntry<AllowedCollections>[]));
71
66
 
72
67
  const content = resources
73
68
  .map((item) => {
@@ -2,7 +2,7 @@ import { getCollection } from 'astro:content';
2
2
  import config from '@config';
3
3
  import type { APIRoute } from 'astro';
4
4
 
5
- import { isCustomDocsEnabled, isResourceDocsEnabled, isLLMSTxtEnabled } from '@utils/feature';
5
+ import { isLLMSTxtEnabled } from '@utils/feature';
6
6
  import { getUbiquitousLanguage } from '@utils/collections/domains';
7
7
  import { getResourceDocs } from '@utils/collections/resource-docs';
8
8
 
@@ -25,7 +25,7 @@ const containers = await getCollection('containers');
25
25
  const entities = await getCollection('entities');
26
26
 
27
27
  const customDocs = await getCollection('customPages');
28
- const resourceDocsList = isResourceDocsEnabled() ? await getResourceDocs() : [];
28
+ const resourceDocsList = await getResourceDocs();
29
29
 
30
30
  const ubiquitousLanguages: Record<string, { id: string; version: string; properties: any }[]> = {};
31
31
 
@@ -166,10 +166,10 @@ export const GET: APIRoute = async ({ params, request }) => {
166
166
  teams.map((item) => formatSimpleItem(item, 'teams')).join('\n'),
167
167
  '\n## Users',
168
168
  users.map((item) => formatSimpleItem(item, 'users')).join('\n'),
169
- ...(isCustomDocsEnabled()
169
+ ...(customDocs.length > 0
170
170
  ? ['\n## Custom Docs', customDocs.map((item) => formatCustomDoc(item, 'docs/custom')).join('\n')]
171
171
  : []),
172
- ...(isResourceDocsEnabled() && resourceDocsList.length > 0 ? ['\n## Resource Docs', renderResourceDocs()] : []),
172
+ ...(resourceDocsList.length > 0 ? ['\n## Resource Docs', renderResourceDocs()] : []),
173
173
  ].join('\n');
174
174
 
175
175
  return new Response(content, {
@@ -2,7 +2,6 @@ import { getCollection } from 'astro:content';
2
2
  import config from '@config';
3
3
  import type { APIRoute } from 'astro';
4
4
  import { getSpecificationsForService } from '@utils/collections/services';
5
- import { isEventCatalogScaleEnabled } from '@utils/feature';
6
5
 
7
6
  type MessageCollection = 'events' | 'commands' | 'queries';
8
7
 
@@ -48,16 +47,6 @@ const getMessagesWithSchemas = (collection: MessageCollection) => {
48
47
  };
49
48
 
50
49
  export const GET: APIRoute = async ({ params, request }) => {
51
- if (!isEventCatalogScaleEnabled()) {
52
- return new Response(
53
- JSON.stringify({
54
- error: 'feature_not_available_on_server',
55
- message: 'Schema API is not enabled for this deployment and supported in EventCatalog Scale.',
56
- }),
57
- { status: 501, headers: { 'Content-Type': 'application/json', 'Cache-Control': 'no-store' } }
58
- );
59
- }
60
-
61
50
  const url = new URL(request.url);
62
51
  const baseUrl = process.env.LLMS_TXT_BASE_URL || `${url.origin}`;
63
52
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  import LatestVersionRedirect from '@components/LatestVersionRedirect.astro';
3
- import { isResourceDocsEnabled, isSSR } from '@utils/feature';
3
+ import { isSSR } from '@utils/feature';
4
4
  import { buildUrl } from '@utils/url-builder';
5
5
  import { Page as VersionedPage } from '../../../../[type]/[id]/[version]/[docType]/[docId]/_index.data';
6
6
  import { getLatestServicePaths, getLatestServiceVersion } from '../../../_latest-version-route';
@@ -11,7 +11,7 @@ export const getStaticPaths = async () => getLatestServicePaths(await VersionedP
11
11
  const { id, docType, docId } = Astro.params;
12
12
  const version = Astro.props.redirectVersion ?? (id ? await getLatestServiceVersion(id) : undefined);
13
13
 
14
- if (!isResourceDocsEnabled() || !id || !docType || !docId || !version) {
14
+ if (!id || !docType || !docId || !version) {
15
15
  throw new Response(null, { status: 404, statusText: 'Resource documentation not found' });
16
16
  }
17
17
 
@@ -3,7 +3,7 @@ import VerticalSideBarLayout from '@layouts/VerticalSideBarLayout.astro';
3
3
  import { getMDXComponentsByName, parseMdxBooleanProp } from '@utils/markdown';
4
4
  import { resourceToCollectionMap } from '@utils/collections/util';
5
5
  import { buildUrl } from '@utils/url-builder';
6
- import { isCustomLandingPageEnabled, isVisualiserEnabled, isArchitectureGraphEnabled } from '@utils/feature';
6
+ import { isVisualiserEnabled, isArchitectureGraphEnabled } from '@utils/feature';
7
7
  import DefaultAstroLandingPage from './_index.astro';
8
8
  import CustomHomepage from 'virtual:eventcatalog/homepage';
9
9
  import config from '@config';
@@ -23,7 +23,7 @@ const props = Astro.props;
23
23
 
24
24
  const pathToUserDefinedLandingPage = path.join(process.env.PROJECT_DIR || '', 'pages/homepage.astro');
25
25
 
26
- if (existsSync(pathToUserDefinedLandingPage) && isCustomLandingPageEnabled()) {
26
+ if (existsSync(pathToUserDefinedLandingPage)) {
27
27
  CustomContent = CustomHomepage;
28
28
 
29
29
  const [{ default: pageComponents }, { default: mdxComponents }] = await Promise.all([
@@ -8,7 +8,6 @@ import { Page } from './_index.data';
8
8
  import SchemaPageViewer from '@components/SchemaExplorer/SchemaPageViewer';
9
9
  import { pageDataLoader } from '@utils/page-loaders/page-data-loader';
10
10
  import { sortVersioned } from '@utils/collections/util';
11
- import { isEventCatalogScaleEnabled } from '@utils/feature';
12
11
  import { resourceFileExists, readResourceFile } from '@utils/resource-files';
13
12
  import path from 'node:path';
14
13
  import type { FlowUsage, SchemaItem } from '@components/SchemaExplorer/types';
@@ -187,7 +186,6 @@ if (isDataProduct && contractPath) {
187
186
  }
188
187
  }
189
188
 
190
- const apiAccessEnabled = isEventCatalogScaleEnabled();
191
189
  // Render the requested tab on the server so the page does not flash the default tab before hydration.
192
190
  // Static builds cannot see the query string, so the panel also restores the tab on the client.
193
191
  const initialTab = Astro.url.searchParams.get('tab') ?? undefined;
@@ -216,7 +214,6 @@ const initialTab = Astro.url.searchParams.get('tab') ?? undefined;
216
214
  client:load
217
215
  message={currentMessage}
218
216
  availableVersions={sortedVersions}
219
- apiAccessEnabled={apiAccessEnabled}
220
217
  showOwners={true}
221
218
  showProducersConsumers={true}
222
219
  initialTab={initialTab}
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  import VerticalSideBarLayout from '@layouts/VerticalSideBarLayout.astro';
3
3
  import SchemaExplorer from '@components/SchemaExplorer/SchemaExplorer';
4
- import { isEventCatalogScaleEnabled } from '@utils/feature';
5
4
  import { Page } from './_index.data';
6
5
  // Ships the visualiser CSS in the page head for the Usage tab's node graph (see NodeGraph.astro).
7
6
  import '@eventcatalog/visualiser/styles-core.css';
@@ -10,8 +9,6 @@ export const prerender = Page.prerender;
10
9
  export const getStaticPaths = Page.getStaticPaths;
11
10
 
12
11
  const { schemas } = await Page.getData(Astro);
13
-
14
- const apiAccessEnabled = isEventCatalogScaleEnabled();
15
12
  ---
16
13
 
17
14
  <VerticalSideBarLayout title="Schema Explorer - EventCatalog" showNestedSideBar={false}>
@@ -37,6 +34,6 @@ const apiAccessEnabled = isEventCatalogScaleEnabled();
37
34
  class="min-h-0 overflow-hidden bg-[rgb(var(--ec-page-bg))]"
38
35
  style={`--ec-schema-sidebar-width: 360px; margin-left: calc(var(--ec-app-content-padding-left, 5rem) * -1); margin-right: calc(var(--ec-app-content-padding-right, 5rem) * -1); height: calc(100dvh - 60px);`}
39
36
  >
40
- <SchemaExplorer client:load schemas={schemas as any} apiAccessEnabled={apiAccessEnabled} />
37
+ <SchemaExplorer client:load schemas={schemas as any} />
41
38
  </main>
42
39
  </VerticalSideBarLayout>