@eventcatalog/core 5.0.0-beta.8 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +234 -134
- package/README.md +5 -5
- package/dist/analytics/analytics.cjs +18 -3
- package/dist/analytics/analytics.d.cts +1 -1
- package/dist/analytics/analytics.d.ts +1 -1
- package/dist/analytics/analytics.js +3 -2
- package/dist/analytics/log-build.cjs +157 -76
- package/dist/analytics/log-build.d.cts +2 -2
- package/dist/analytics/log-build.d.ts +2 -2
- package/dist/analytics/log-build.js +7 -5
- package/dist/analytics/studio-usage.cjs +90 -0
- package/dist/analytics/studio-usage.d.cts +5 -0
- package/dist/analytics/studio-usage.d.ts +5 -0
- package/dist/analytics/studio-usage.js +10 -0
- package/dist/analytics/telemetry.cjs +42 -0
- package/dist/analytics/telemetry.d.cts +20 -0
- package/dist/analytics/telemetry.d.ts +20 -0
- package/dist/analytics/telemetry.js +8 -0
- package/dist/catalog-runtime.cjs +1 -1
- package/dist/{chunk-RFIXKATC.js → chunk-4G7FSRPN.js} +35 -42
- package/dist/{chunk-AWOO63ME.js → chunk-AD7CL772.js} +11 -4
- package/dist/chunk-CA6WCQ2T.js +54 -0
- package/dist/chunk-CPW6G62V.js +17 -0
- package/dist/{chunk-PU25TOOJ.js → chunk-JZN4RSMF.js} +1 -1
- package/dist/{chunk-4W55ZOOS.js → chunk-NEAVAFSJ.js} +66 -35
- package/dist/{chunk-C6T2AAFR.js → chunk-NIVST4WY.js} +9 -3
- package/dist/{chunk-ENAG6UH7.js → chunk-NKNOXQ62.js} +1 -6
- package/dist/{chunk-AYNZXUB5.js → chunk-OX6TSVHY.js} +5 -5
- package/dist/{chunk-36RYTYT5.js → chunk-PD7KTSYN.js} +1 -1
- package/dist/{chunk-RDIZJ7UT.js → chunk-RE7UTPWH.js} +1 -1
- package/dist/chunk-S5GWAUG5.js +29 -0
- package/dist/{chunk-T4G3VVZ4.js → chunk-YQGRMDRB.js} +4 -2
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/docs/api/02-config.md +57 -7
- package/dist/docs/development/00-why-eventcatalog.md +11 -11
- package/dist/docs/development/01-fundamentals.md +20 -13
- package/dist/docs/development/01-getting-started/configuration-overview.md +2 -2
- package/dist/docs/development/01-getting-started/installation.md +9 -1
- package/dist/docs/development/_getting-started.mdx +1 -1
- package/dist/docs/development/ask-your-architecture/01-intro.md +5 -5
- package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/01-what-is-eventcatalog-assistant.md +0 -4
- package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/02-configuration.md +15 -3
- package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/03-bring-your-own-tools.md +0 -3
- package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/_category_.json +1 -1
- package/dist/docs/development/ask-your-architecture/02-llms.txt.md +1 -1
- package/dist/docs/development/ask-your-architecture/{05-skills/01-introduction.md → 03-install-skills.md} +57 -7
- package/dist/docs/development/ask-your-architecture/03-mcp-server/_category_.json +1 -1
- package/dist/docs/development/ask-your-architecture/03-mcp-server/getting-started.md +86 -33
- package/dist/docs/development/ask-your-architecture/03-mcp-server/introduction.md +14 -4
- package/dist/docs/development/ask-your-architecture/03-schemas.txt.md +1 -1
- package/dist/docs/development/ask-your-architecture/04-agents/_category_.json +1 -1
- package/dist/docs/development/authentication/01-introduction.md +2 -23
- package/dist/docs/development/authentication/02-enabling-authentication.md +0 -20
- package/dist/docs/development/authentication/07-rbac-middleware.md +0 -2
- package/dist/docs/development/authentication/providers/03-setting-up-github.md +0 -2
- package/dist/docs/development/authentication/providers/03a-setting-up-google.md +0 -2
- package/dist/docs/development/authentication/providers/04-setting-up-azure-ad.md +0 -2
- package/dist/docs/development/authentication/providers/05-setting-up-okta.md +0 -3
- package/dist/docs/development/authentication/providers/06-setting-up-auth0.md +0 -2
- package/dist/docs/development/bring-your-own-documentation/01-introduction.md +0 -4
- package/dist/docs/development/bring-your-own-documentation/custom-pages/01-introduction.md +0 -3
- package/dist/docs/development/bring-your-own-documentation/custom-pages/02-adding-custom-docs.md +0 -17
- package/dist/docs/development/bring-your-own-documentation/custom-pages/03-components.md +0 -4
- package/dist/docs/development/bring-your-own-documentation/custom-pages/04-owners.md +0 -2
- package/dist/docs/development/bring-your-own-documentation/resource-docs/01-introduction.md +1 -3
- package/dist/docs/development/bring-your-own-documentation/resource-docs/02-adding-resource-docs.md +1 -4
- package/dist/docs/development/bring-your-own-documentation/resource-docs/03-categories.md +0 -2
- package/dist/docs/development/bring-your-own-documentation/resource-docs/04-versioning.md +1 -3
- package/dist/docs/development/components/components/11-flow.md +17 -0
- package/dist/docs/development/components/components/15-nodegraph.md +43 -10
- package/dist/docs/development/components/components/18-remote-schema.md +1 -4
- package/dist/docs/development/components/custom-components/07-reference.md +14 -0
- package/dist/docs/development/customization/02-themes.md +0 -5
- package/dist/docs/development/customization/03-search.md +1 -1
- package/dist/docs/development/customization/05-custom-pages-and-api-routes/01-introduction.md +0 -2
- package/dist/docs/development/customization/05-custom-pages-and-api-routes/04-reference.md +7 -1
- package/dist/docs/development/customization/05-resource-sidebar.md +1 -1
- package/dist/docs/development/customization/09-embed-eventcatalog.md +20 -25
- package/dist/docs/development/deployment/hosting-options.md +7 -2
- package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/05-fix-common-problems.md +16 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/reference/03-rules.md +31 -1
- package/dist/docs/development/developer-tools/eventcatalog-linter/reference/05-supported-resources.md +1 -1
- package/dist/docs/development/governance/architecture-change-detection/01-introduction.md +0 -10
- package/dist/docs/development/governance/architecture-change-detection/06-pipeline-gates.md +0 -4
- package/dist/docs/development/guides/97-architecture-graph.md +1 -1
- package/dist/docs/development/guides/99-adding-analytics.md +0 -7
- package/dist/docs/development/guides/domains/03-model-subdomains.md +2 -2
- package/dist/docs/development/guides/domains/04-add-resources-to-domains/01-add-systems-to-domains.md +3 -1
- package/dist/docs/development/guides/domains/04-add-resources-to-domains/02-add-services-to-domains.md +5 -1
- package/dist/docs/development/guides/domains/04-add-resources-to-domains/03-add-messages-to-domains.md +2 -2
- package/dist/docs/development/guides/domains/04-add-resources-to-domains/05-add-entities-to-domains.md +1 -1
- package/dist/docs/development/guides/domains/04-add-resources-to-domains/06-domain-resources-page.md +40 -0
- package/dist/docs/development/guides/domains/06-visualize-domains/01-domain-diagram.md +89 -0
- package/dist/docs/development/guides/domains/06-visualize-domains/_category_.json +1 -2
- package/dist/docs/development/guides/domains/09-reference.md +4 -4
- package/dist/docs/development/guides/owners/automated-teams-and-users/create-your-own-connector.md +0 -2
- package/dist/docs/development/guides/owners/automated-teams-and-users/sync-from-github.md +0 -3
- package/dist/docs/development/guides/owners/automated-teams-and-users/sync-from-microsoft-entra.md +0 -2
- package/dist/docs/development/guides/resources/adrs/03-linking-resources.md +8 -0
- package/dist/docs/development/guides/resources/adrs/06-reference.md +4 -4
- package/dist/docs/development/guides/resources/agents/11-reference.md +1 -1
- package/dist/docs/development/guides/resources/data/04-reference.md +1 -1
- package/dist/docs/development/guides/resources/data-products/07-reference.md +1 -1
- package/dist/docs/development/guides/resources/entities/05-entity-maps.md +1 -1
- package/dist/docs/development/guides/resources/entities/06-reference.md +2 -2
- package/dist/docs/development/guides/resources/flows/01-introduction.md +11 -1
- package/dist/docs/development/guides/resources/flows/03-model-flow-steps.md +65 -6
- package/dist/docs/development/guides/resources/flows/05-explore-flows.md +112 -0
- package/dist/docs/development/guides/resources/flows/06-reference.md +25 -4
- package/dist/docs/development/guides/resources/messages/01-what-are-messages.md +19 -0
- package/dist/docs/development/guides/resources/messages/04-message-channels/01-introduction.md +16 -0
- package/dist/docs/development/guides/resources/messages/04-message-channels/05-reference.md +2 -1
- package/dist/docs/development/guides/resources/messages/10-reference.md +6 -3
- package/dist/docs/development/guides/resources/schemas/04-explore-schemas/01-schema-explorer.md +2 -2
- package/dist/docs/development/guides/resources/schemas/04-explore-schemas/02-fields-explorer.md +0 -9
- package/dist/docs/development/guides/resources/schemas/05-schema-api.md +0 -3
- package/dist/docs/development/guides/resources/schemas/06-schema-mcp.md +11 -3
- package/dist/docs/development/guides/resources/services/04-add-resources-to-services/03-add-entities-to-services.md +1 -1
- package/dist/docs/development/guides/resources/services/05-resources-page.md +50 -0
- package/dist/docs/development/guides/resources/services/08-reference.md +2 -1
- package/dist/docs/development/guides/systems/01-introduction.md +1 -1
- package/dist/docs/development/guides/systems/02-create-system.md +2 -2
- package/dist/docs/development/guides/systems/03-add-resources-to-systems.md +35 -9
- package/dist/docs/development/guides/systems/04-model-relationships-and-actors.md +5 -3
- package/dist/docs/development/guides/systems/05-system-context-maps.md +39 -22
- package/dist/docs/development/guides/systems/06-reference.md +4 -4
- package/dist/docs/development/license/01-license-file.md +151 -0
- package/dist/docs/development/license/_category_.json +12 -0
- package/dist/docs/development/license-keys/_category_.json +3 -3
- package/dist/docs/development/license-keys/integrations.md +7 -37
- package/dist/docs/development/license-keys/license-validation.md +4 -0
- package/dist/docs/development/license-keys/overview.md +5 -1
- package/dist/docs/development/license-keys/plans.md +4 -2
- package/dist/docs/development/studio/01-introduction.md +60 -0
- package/dist/docs/development/studio/02-create-a-canvas.md +103 -0
- package/dist/docs/development/studio/03-set-up-persistent-storage.md +59 -0
- package/dist/docs/development/studio/04-collaborate-on-a-canvas.md +78 -0
- package/dist/docs/development/studio/05-connect-your-agent.md +102 -0
- package/dist/docs/development/studio/06-run-studio-in-production.md +54 -0
- package/dist/docs/development/studio/07-reference.md +294 -0
- package/dist/docs/development/studio/_category_.json +12 -0
- package/dist/docs/development/upgrading/v5.md +345 -0
- package/dist/docs/federation/00-overview.md +2 -8
- package/dist/docs/federation/01-first-federation.md +6 -18
- package/dist/docs/federation/explanation/how-it-works.md +0 -4
- package/dist/docs/federation/explanation/lockfile-and-cache.md +0 -4
- package/dist/docs/federation/explanation/mvp-status-and-feedback.md +0 -4
- package/dist/docs/federation/explanation/ownership-and-references.md +0 -4
- package/dist/docs/federation/how-to/configure-github-sources.md +6 -5
- package/dist/docs/federation/how-to/configure-validation-rules.md +0 -4
- package/dist/docs/federation/how-to/run-in-ci.md +2 -9
- package/dist/docs/federation/how-to/share-assets-and-components.md +0 -4
- package/dist/docs/federation/how-to/use-local-sources.md +0 -4
- package/dist/docs/federation/legacy-federation/00-introduction.md +4 -22
- package/dist/docs/federation/legacy-federation/01-installation.md +7 -58
- package/dist/docs/federation/legacy-federation/02-plugin-configuration.md +3 -21
- package/dist/docs/federation/legacy-federation/03-examples.md +3 -5
- package/dist/docs/federation/legacy-federation/04-configuration.md +3 -8
- package/dist/docs/federation/legacy-federation/05-setup-team-catalog.md +3 -6
- package/dist/docs/federation/reference/cli.md +2 -8
- package/dist/docs/federation/reference/configuration.md +0 -4
- package/dist/docs/federation/reference/diagnostic-rules.md +0 -5
- package/dist/docs/federation/reference/generated-output.md +0 -4
- package/dist/docs/federation/reference/supported-content.md +0 -4
- package/dist/docs/federation/reference/troubleshooting.md +0 -14
- package/dist/docs/plugins/02-generators.md +1 -1
- package/dist/docs/plugins/amazon-apigateway/00-intro.md +3 -28
- package/dist/docs/plugins/amazon-apigateway/01-installation.md +4 -56
- package/dist/docs/plugins/amazon-apigateway/02-plugin-configuration.md +1 -6
- package/dist/docs/plugins/apicurio/00-intro.md +2 -31
- package/dist/docs/plugins/apicurio/01-installation.md +2 -26
- package/dist/docs/plugins/apicurio/02-plugin-configuration.md +5 -13
- package/dist/docs/plugins/apicurio/03-features.md +1 -3
- package/dist/docs/plugins/asyncapi/00-intro.md +2 -28
- package/dist/docs/plugins/asyncapi/01-installation.md +3 -54
- package/dist/docs/plugins/asyncapi/02-plugin-configuration.md +2 -1
- package/dist/docs/plugins/aws-glue-registry/00-intro.md +4 -32
- package/dist/docs/plugins/aws-glue-registry/00a-installation.md +3 -53
- package/dist/docs/plugins/azure-schema-registry/00-intro.md +4 -32
- package/dist/docs/plugins/azure-schema-registry/01-installation.md +6 -33
- package/dist/docs/plugins/azure-schema-registry/02-plugin-configuration.md +1 -14
- package/dist/docs/plugins/azure-schema-registry/04-examples.md +0 -2
- package/dist/docs/plugins/backstage/00-overview.md +1 -7
- package/dist/docs/plugins/backstage/01-get-started.md +6 -15
- package/dist/docs/plugins/backstage/06-configuration.md +2 -8
- package/dist/docs/plugins/confluent-schema-registry/00-intro.md +2 -29
- package/dist/docs/plugins/confluent-schema-registry/01-installation.md +2 -26
- package/dist/docs/plugins/eventbridge/00-intro.md +0 -4
- package/dist/docs/plugins/eventbridge/00a-installation.md +1 -87
- package/dist/docs/plugins/eventbridge/03-api.md +2 -20
- package/dist/docs/plugins/github/00-intro.md +0 -31
- package/dist/docs/plugins/github/01-installation.md +2 -34
- package/dist/docs/plugins/graphql/00-intro.md +0 -30
- package/dist/docs/plugins/graphql/01-installation.md +1 -53
- package/dist/docs/plugins/graphql/02-plugin-configuration.md +0 -1
- package/dist/docs/plugins/hookdeck/01-intro.md +1 -1
- package/dist/docs/plugins/openapi/00-intro.md +0 -30
- package/dist/docs/plugins/openapi/01-installation.md +1 -57
- package/dist/docs/plugins/openapi/02-plugin-configuration.md +0 -5
- package/dist/docs/plugins/openapi/03-features.md +0 -4
- package/dist/eventcatalog-config-file-utils.cjs +34 -41
- package/dist/eventcatalog-config-file-utils.d.cts +56 -58
- package/dist/eventcatalog-config-file-utils.d.ts +56 -58
- package/dist/eventcatalog-config-file-utils.js +1 -1
- package/dist/eventcatalog.cjs +408 -281
- package/dist/eventcatalog.config.d.cts +26 -15
- package/dist/eventcatalog.config.d.ts +26 -15
- package/dist/eventcatalog.js +46 -27
- package/dist/features.cjs +36 -49
- package/dist/features.d.cts +1 -3
- package/dist/features.d.ts +1 -3
- package/dist/features.js +4 -6
- package/dist/federation/federate.cjs +37 -44
- package/dist/federation/federate.js +5 -5
- package/dist/federation/source-provider.js +2 -2
- package/dist/generate.cjs +37 -42
- package/dist/generate.js +4 -4
- package/dist/resolve-catalog-dependencies.cjs +34 -41
- package/dist/resolve-catalog-dependencies.js +2 -2
- package/dist/runtime-dependencies/@eventcatalog__visualiser__studio-fonts.css.mjs +3 -0
- package/dist/runtime-dependencies/@eventcatalog__visualiser__studio.css.mjs +3 -0
- package/dist/runtime-dependencies/@eventcatalog__visualiser__studio.mjs +3 -0
- package/dist/runtime-dependencies/htmlparser2.mjs +3 -0
- package/dist/runtime-dependencies/manifest.json +5 -1
- package/dist/runtime-dependencies/react-syntax-highlighter__dist__cjs__create-element.js.mjs +3 -0
- package/dist/utils/child-process-signals.cjs +53 -0
- package/dist/utils/child-process-signals.d.cts +19 -0
- package/dist/utils/child-process-signals.d.ts +19 -0
- package/dist/utils/child-process-signals.js +6 -0
- package/dist/utils/cli-logger.cjs +1 -1
- package/dist/utils/cli-logger.js +2 -2
- package/dist/utils/license-status.cjs +11 -4
- package/dist/utils/license-status.d.cts +3 -2
- package/dist/utils/license-status.d.ts +3 -2
- package/dist/utils/license-status.js +1 -1
- package/eventcatalog/astro.config.mjs +21 -1
- package/eventcatalog/integrations/config-loader.mjs +56 -58
- package/eventcatalog/integrations/skip-startup-reload.mjs +31 -0
- package/eventcatalog/integrations/stable-dependency-order.mjs +29 -0
- package/eventcatalog/integrations/storage.mjs +20 -0
- package/eventcatalog/integrations/studio-server.mjs +4 -1
- package/eventcatalog/src/components/CatalogGraph/CatalogForceGraph.tsx +39 -0
- package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +2 -0
- package/eventcatalog/src/components/Homepage/CatalogDashboard.astro +342 -0
- package/eventcatalog/src/components/MDX/NodeGraph/AstroNodeGraph.tsx +60 -4
- package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.astro +5 -1
- package/eventcatalog/src/components/NavigationProgress.astro +7 -0
- package/eventcatalog/src/components/SchemaExplorer/ApiContentViewer.tsx +2 -0
- package/eventcatalog/src/components/SchemaExplorer/ExamplesViewer.tsx +2 -0
- package/eventcatalog/src/components/SchemaExplorer/SchemaCodeModal.tsx +2 -0
- package/eventcatalog/src/components/SchemaExplorer/SchemaContentViewer.tsx +2 -0
- package/eventcatalog/src/components/Search/SearchDataLoader.astro +16 -28
- package/eventcatalog/src/components/Search/SearchModal.tsx +2 -10
- package/eventcatalog/src/components/Search/search-utils.ts +26 -0
- package/eventcatalog/src/components/Seo.astro +5 -1
- package/eventcatalog/src/components/Settings/AssistantSettingsForm.tsx +53 -48
- package/eventcatalog/src/components/Settings/GeneralSettingsForm.tsx +183 -178
- package/eventcatalog/src/components/Settings/LicenseSettings.tsx +140 -31
- package/eventcatalog/src/components/Settings/LlmAccessSettingsForm.tsx +40 -35
- package/eventcatalog/src/components/Settings/LogoUpload.tsx +1 -1
- package/eventcatalog/src/components/Settings/McpSettingsForm.tsx +9 -8
- package/eventcatalog/src/components/Settings/Row.tsx +7 -4
- package/eventcatalog/src/components/Settings/SettingsShared.tsx +3 -3
- package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +37 -76
- package/eventcatalog/src/components/SideNav/NestedSideBar/storage.ts +2 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/utils.ts +122 -1
- package/eventcatalog/src/components/SideNav/SideNav.astro +9 -1
- package/eventcatalog/src/components/TrialBadge.astro +20 -9
- package/eventcatalog/src/content.config.ts +19 -2
- package/eventcatalog/src/features/auth/error.astro +4 -2
- package/eventcatalog/src/features/auth/login.astro +2 -1
- package/eventcatalog/src/features/auth/middleware/middleware-auth.ts +21 -1
- package/eventcatalog/src/features/auth/unauthorized.astro +1 -1
- package/eventcatalog/src/features/fields/pages/fields.astro +1 -1
- package/eventcatalog/src/features/integrations/eventcatalog-features.ts +13 -7
- package/eventcatalog/src/features/mcp/apps/architecture-diagram/node-chat.tsx +6 -45
- package/eventcatalog/src/features/mcp/apps/canvas/shared.ts +3 -3
- package/eventcatalog/src/features/mcp/apps/canvas/styles.css +3 -1
- package/eventcatalog/src/features/mcp/apps/canvas/view.tsx +7 -5
- package/eventcatalog/src/features/mcp/apps/generated/canvas.html +123 -98
- package/eventcatalog/src/features/mcp/apps/generated/viewer.html +118 -101
- package/eventcatalog/src/features/mcp/mcp-server.ts +20 -4
- package/eventcatalog/src/features/server/start.ts +25 -0
- package/eventcatalog/src/features/storage/database.ts +88 -0
- package/eventcatalog/src/features/storage/migrations.ts +85 -0
- package/eventcatalog/src/features/storage/sql/database.sql +5 -0
- package/eventcatalog/src/features/storage/sql/migrations/0001-studio-canvases.sql +12 -0
- package/eventcatalog/src/features/storage/sql/migrations.sql +15 -0
- package/eventcatalog/src/features/storage/sql.ts +28 -0
- package/eventcatalog/src/features/studio/agent-choreography.ts +13 -10
- package/eventcatalog/src/features/studio/agents.ts +28 -0
- package/eventcatalog/src/features/studio/api/canvases-api.ts +219 -0
- package/eventcatalog/src/features/studio/api/canvases.ts +25 -0
- package/eventcatalog/src/features/studio/api/client.ts +40 -0
- package/eventcatalog/src/features/studio/canvas-actions.ts +160 -34
- package/eventcatalog/src/features/studio/canvas-preview.ts +1 -2
- package/eventcatalog/src/features/studio/catalog.ts +16 -14
- package/eventcatalog/src/features/studio/components/CanvasHeader.tsx +274 -105
- package/eventcatalog/src/features/studio/components/CanvasStatusMenu.tsx +15 -14
- package/eventcatalog/src/features/studio/components/ConnectAgentDialog.tsx +272 -119
- package/eventcatalog/src/features/studio/components/ConnectionsChooser.tsx +1 -2
- package/eventcatalog/src/features/studio/components/DeleteCanvasDialog.tsx +65 -0
- package/eventcatalog/src/features/studio/components/Dialog.tsx +60 -0
- package/eventcatalog/src/features/studio/components/JoinForm.tsx +101 -26
- package/eventcatalog/src/features/studio/components/LeftPanel.tsx +122 -230
- package/eventcatalog/src/features/studio/components/NodeDetails.tsx +183 -0
- package/eventcatalog/src/features/studio/components/OpenInStudioDialog.tsx +79 -0
- package/eventcatalog/src/features/studio/components/Presence.tsx +52 -45
- package/eventcatalog/src/features/studio/components/ShareDialog.tsx +277 -141
- package/eventcatalog/src/features/studio/components/ShortcutsDialog.tsx +41 -0
- package/eventcatalog/src/features/studio/components/StudioDesigner.tsx +1314 -385
- package/eventcatalog/src/features/studio/components/StudioNotice.astro +24 -0
- package/eventcatalog/src/features/studio/document-name.ts +7 -0
- package/eventcatalog/src/features/studio/from-visualiser.ts +138 -0
- package/eventcatalog/src/features/studio/hooks/presence-sender.ts +19 -2
- package/eventcatalog/src/features/studio/hooks/use-canvas-webmcp.ts +9 -3
- package/eventcatalog/src/features/studio/hooks/use-comments.ts +2 -2
- package/eventcatalog/src/features/studio/hooks/use-follow-camera.ts +8 -3
- package/eventcatalog/src/features/studio/hooks/use-studio-flow.ts +244 -32
- package/eventcatalog/src/features/studio/identity.ts +25 -1
- package/eventcatalog/src/features/studio/limits.ts +2 -0
- package/eventcatalog/src/features/studio/pages/[id].astro +42 -16
- package/eventcatalog/src/features/studio/pages/index.astro +596 -373
- package/eventcatalog/src/features/studio/pages/webmcp-relay.ts +12 -15
- package/eventcatalog/src/features/studio/server/canvas-mcp.ts +8 -23
- package/eventcatalog/src/features/studio/server/runtime.ts +150 -46
- package/eventcatalog/src/features/studio/server/sql/storage.sql +18 -0
- package/eventcatalog/src/features/studio/server/storage.ts +53 -73
- package/eventcatalog/src/features/studio/webmcp-relay/LICENSE +21 -0
- package/eventcatalog/src/features/studio/webmcp-relay/README.md +5 -0
- package/eventcatalog/src/features/studio/webmcp-relay/embed.js +2 -0
- package/eventcatalog/src/features/studio/webmcp-relay/widget.html +10 -0
- package/eventcatalog/src/features/studio/webmcp-relay/widget.js +1 -0
- package/eventcatalog/src/features/tools/catalog-tools.ts +3 -1
- package/eventcatalog/src/layouts/BaseLayout.astro +4 -4
- package/eventcatalog/src/layouts/SettingsLayout.astro +2 -2
- package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +3 -2
- package/eventcatalog/src/pages/_index.astro +5 -342
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.spec.ts +2 -3
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +3 -1
- package/eventcatalog/src/pages/diagrams/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/diagrams/[id]/[version]/embed.astro +1 -0
- package/eventcatalog/src/pages/diagrams/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/directory/[type]/_index.data.ts +5 -7
- package/eventcatalog/src/pages/directory/[type]/index.astro +3 -1
- package/eventcatalog/src/pages/discover/[type]/_index.data.ts +5 -7
- package/eventcatalog/src/pages/discover/[type]/index.astro +3 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/[filename].astro +3 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/_[filename].data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/examples/[...filename].astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/examples/_[...filename].data.ts +0 -4
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/field-lineage/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/field-lineage/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/[filename].astro +3 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/_[filename].data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.spec.ts +2 -3
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/[filename].astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/_[filename].data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/index.astro +2 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/language/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/language/index.astro +1 -0
- package/eventcatalog/src/pages/docs/custom/[...path]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/custom/[...path]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/services/[id]/[docType]/[docId]/index.astro +1 -1
- package/eventcatalog/src/pages/docs/services/[id]/[version]/resources/index.astro +1 -0
- package/eventcatalog/src/pages/docs/services/[id]/asyncapi/[filename].astro +1 -1
- package/eventcatalog/src/pages/docs/services/[id]/changelog/index.astro +1 -1
- package/eventcatalog/src/pages/docs/services/[id]/graphql/[filename].astro +1 -1
- package/eventcatalog/src/pages/docs/services/[id]/spec/[filename].astro +1 -1
- package/eventcatalog/src/pages/docs/teams/[id]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/teams/[id]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/users/[id]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/users/[id]/index.astro +1 -0
- package/eventcatalog/src/pages/index.astro +4 -2
- package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/index.astro +9 -1
- package/eventcatalog/src/pages/schemas/explorer/_index.data.ts +0 -7
- package/eventcatalog/src/pages/schemas/explorer/index.astro +4 -2
- package/eventcatalog/src/pages/settings/license.astro +9 -1
- package/eventcatalog/src/pages/triggers/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/triggers/[type]/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/data/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/data/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/_index.data.ts +38 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/index.astro +18 -41
- package/eventcatalog/src/pages/visualiser/designs/[id]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/designs/[id]/index.astro +2 -1
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/types/react-syntax-highlighter.d.ts +10 -0
- package/eventcatalog/src/utils/collections/flows.ts +20 -7
- package/eventcatalog/src/utils/collections/resource-owners.ts +8 -2
- package/eventcatalog/src/utils/collections/resources.ts +2 -0
- package/eventcatalog/src/utils/collections/util.ts +8 -4
- package/eventcatalog/src/utils/git.ts +11 -0
- package/eventcatalog/src/utils/homepage-dashboard.ts +143 -0
- package/eventcatalog/src/utils/license.ts +1 -1
- package/eventcatalog/src/utils/link-validation.ts +25 -19
- package/eventcatalog/src/utils/node-graphs/domain-entity-map.ts +3 -1
- package/eventcatalog/src/utils/node-graphs/domain-levels-node-graph.ts +3 -3
- package/eventcatalog/src/utils/node-graphs/field-node-graph.ts +4 -2
- package/eventcatalog/src/utils/node-graphs/layout-node-graph.ts +20 -1
- package/eventcatalog/src/utils/node-graphs/node-resource.ts +67 -0
- package/eventcatalog/src/utils/node-graphs/systems-node-graph.ts +1 -1
- package/eventcatalog/src/utils/page-loaders/hybrid-page.ts +4 -15
- package/eventcatalog/src/utils/page-title.ts +15 -0
- package/eventcatalog/src/utils/syntax-highlighter-renderer.ts +64 -0
- package/eventcatalog/src/utils/trial.ts +13 -0
- package/package.json +11 -11
- package/dist/docs/development/ask-your-architecture/05-skills/02-installation.md +0 -60
- package/dist/docs/development/ask-your-architecture/05-skills/_category_.json +0 -11
- package/dist/docs/development/ask-your-architecture/06-slack-integration/01-introduction.md +0 -63
- package/dist/docs/development/ask-your-architecture/06-slack-integration/02-slack-app-setup.md +0 -154
- package/dist/docs/development/ask-your-architecture/06-slack-integration/03-installation.md +0 -169
- package/dist/docs/development/ask-your-architecture/06-slack-integration/04-deployment.md +0 -236
- package/dist/docs/development/ask-your-architecture/06-slack-integration/05-usage.md +0 -140
- package/dist/docs/development/ask-your-architecture/06-slack-integration/06-troubleshooting.md +0 -268
- package/dist/docs/development/ask-your-architecture/06-slack-integration/_category_.json +0 -13
- package/dist/docs/development/guides/domains/06-visualize-domains/01-domain-integration-map.md +0 -40
- package/dist/runtime-dependencies/@mcp-b__webmcp-local-relay.mjs +0 -3
- package/eventcatalog/src/features/studio/canvas-doc.ts +0 -409
- package/eventcatalog/src/features/studio/clipboard.ts +0 -97
- package/eventcatalog/src/features/studio/components/CanvasControls.tsx +0 -154
- package/eventcatalog/src/features/studio/components/Comments.tsx +0 -770
- package/eventcatalog/src/features/studio/components/ContainerChooser.tsx +0 -145
- package/eventcatalog/src/features/studio/components/DragGhost.tsx +0 -115
- package/eventcatalog/src/features/studio/components/Picture.tsx +0 -21
- package/eventcatalog/src/features/studio/components/PropertiesPanel.tsx +0 -212
- package/eventcatalog/src/features/studio/components/canvas-nodes.tsx +0 -255
- package/eventcatalog/src/features/studio/components/icons.ts +0 -53
- package/eventcatalog/src/features/studio/components/status.ts +0 -51
- package/eventcatalog/src/features/studio/edges.ts +0 -56
- package/eventcatalog/src/features/studio/flow-state.ts +0 -92
- package/eventcatalog/src/features/studio/grouping.ts +0 -226
- package/eventcatalog/src/features/studio/layout.ts +0 -42
- package/eventcatalog/src/features/studio/levels.ts +0 -282
- package/eventcatalog/src/features/studio/node-types.ts +0 -205
- package/eventcatalog/src/features/studio/pages/new.astro +0 -24
- package/eventcatalog/src/features/studio/pages/wake.ts +0 -15
- package/eventcatalog/src/features/studio/placement.ts +0 -197
- package/eventcatalog/src/features/studio/studio.css +0 -273
- package/dist/{chunk-A2RZR3U4.js → chunk-6K7XZAYI.js} +3 -3
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 7
|
|
3
|
+
keywords:
|
|
4
|
+
- EventCatalog Studio
|
|
5
|
+
- reference
|
|
6
|
+
sidebar_label: Reference
|
|
7
|
+
title: Studio reference
|
|
8
|
+
description: Configuration, canvas controls, components, connection labels, MCP tools, keyboard shortcuts and limits for EventCatalog Studio.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Everything about Studio and its canvases in one place.
|
|
12
|
+
|
|
13
|
+
## Configuration {#configuration}
|
|
14
|
+
|
|
15
|
+
### `studio`
|
|
16
|
+
|
|
17
|
+
| Option | Type | Default | Description |
|
|
18
|
+
|---|---|---|---|
|
|
19
|
+
| `studio.enabled` | `boolean` | `false` | Turns Studio on in production. Studio is on in `eventcatalog dev` unless this is `false`. `false` turns it off everywhere. |
|
|
20
|
+
|
|
21
|
+
### `storage`
|
|
22
|
+
|
|
23
|
+
| Option | Type | Default | Description |
|
|
24
|
+
|---|---|---|---|
|
|
25
|
+
| `storage.type` | `'memory'` \| `'sqlite'` | `'memory'` | `'memory'` keeps canvases while the server runs. `'sqlite'` keeps them in a database file. |
|
|
26
|
+
| `storage.path` | `string` | `'.eventcatalog/eventcatalog.db'` | The SQLite database file, relative to your catalog. |
|
|
27
|
+
|
|
28
|
+
SQLite storage needs Node.js 22.13 or later.
|
|
29
|
+
|
|
30
|
+
### Related options
|
|
31
|
+
|
|
32
|
+
| Option | Why it matters for Studio |
|
|
33
|
+
|---|---|
|
|
34
|
+
| `output` | Must be `'server'` for Studio in production, and for agents to connect through the MCP server. |
|
|
35
|
+
| `auth.enabled` | With [authentication](/docs/development/authentication/introduction) on, only signed-in people can open canvases. |
|
|
36
|
+
| `mcp.enabled` | Agents connect through the MCP server. Setting it to `false` stops agents connecting. |
|
|
37
|
+
| `security.allowedDomains` | Needed when a proxy serves your catalog over HTTPS. |
|
|
38
|
+
|
|
39
|
+
### When Studio is on
|
|
40
|
+
|
|
41
|
+
| Command | `studio.enabled` not set | `true` | `false` |
|
|
42
|
+
|---|---|---|---|
|
|
43
|
+
| `eventcatalog dev` | On | On | Off |
|
|
44
|
+
| `eventcatalog start` (`output: 'server'`) | Off | On | Off |
|
|
45
|
+
| Static build (`output: 'static'`) | Off | Off | Off |
|
|
46
|
+
|
|
47
|
+
### Example
|
|
48
|
+
|
|
49
|
+
```js title="eventcatalog.config.js"
|
|
50
|
+
export default {
|
|
51
|
+
output: 'server',
|
|
52
|
+
studio: {
|
|
53
|
+
enabled: true,
|
|
54
|
+
},
|
|
55
|
+
storage: {
|
|
56
|
+
type: 'sqlite',
|
|
57
|
+
path: '/data/eventcatalog.db',
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
See the [full configuration reference](/docs/api/config) for every EventCatalog option.
|
|
63
|
+
|
|
64
|
+
## Canvas {#canvas}
|
|
65
|
+
|
|
66
|
+
### Toolbar
|
|
67
|
+
|
|
68
|
+
| Button | Shortcut | What it does |
|
|
69
|
+
|---|---|---|
|
|
70
|
+
| Lock | | Locks the canvas, so it can be looked at but not changed |
|
|
71
|
+
| Select | <kbd>V</kbd> | Select and move nodes |
|
|
72
|
+
| Hand | <kbd>H</kbd> | Drag to move around |
|
|
73
|
+
| L1 / L2 / L3 | <kbd>1</kbd> <kbd>2</kbd> <kbd>3</kbd> | Change the [level](#levels) |
|
|
74
|
+
| Sticky note | <kbd>N</kbd> | Click where the note goes |
|
|
75
|
+
| Text | <kbd>T</kbd> | Click anywhere and type |
|
|
76
|
+
| Comment | <kbd>C</kbd> | Click a node, or a spot, to comment |
|
|
77
|
+
| Hotspot | <kbd>A</kbd> | Click a node, or a spot, to flag a risk |
|
|
78
|
+
|
|
79
|
+
The controls at the bottom left zoom, undo and redo, fit the view (<kbd>⇧</kbd> <kbd>1</kbd>), reorder the diagram, and list comments and hotspots.
|
|
80
|
+
|
|
81
|
+
### Levels
|
|
82
|
+
|
|
83
|
+
| Level | Shows |
|
|
84
|
+
|---|---|
|
|
85
|
+
| **L1** | Domains, systems and their relationships |
|
|
86
|
+
| **L2** | Services and data stores |
|
|
87
|
+
| **L3** | Everything, including messages and channels |
|
|
88
|
+
|
|
89
|
+
L1 is unavailable until the canvas has a domain or system.
|
|
90
|
+
|
|
91
|
+
### Canvas menu
|
|
92
|
+
|
|
93
|
+
The three dots next to the canvas title.
|
|
94
|
+
|
|
95
|
+

|
|
96
|
+
|
|
97
|
+
| Item | Shortcut |
|
|
98
|
+
|---|---|
|
|
99
|
+
| Open… | <kbd>⌘</kbd> <kbd>O</kbd> |
|
|
100
|
+
| Save to file… | <kbd>⌘</kbd> <kbd>S</kbd> |
|
|
101
|
+
| Export image… | <kbd>⌘</kbd> <kbd>⇧</kbd> <kbd>E</kbd> |
|
|
102
|
+
| Live collaboration… | |
|
|
103
|
+
| Connect your AI agent… | |
|
|
104
|
+
| Help | <kbd>?</kbd> |
|
|
105
|
+
| Rename canvas | |
|
|
106
|
+
| Copy link | |
|
|
107
|
+
| New canvas | |
|
|
108
|
+
| Delete canvas | |
|
|
109
|
+
|
|
110
|
+
The bottom of the menu shows the connection status, for example **Connected**.
|
|
111
|
+
|
|
112
|
+
### Right-click menus
|
|
113
|
+
|
|
114
|
+
| On | Items |
|
|
115
|
+
|---|---|
|
|
116
|
+
| A node | Add comment, Add hotspot, Add a note, Edit details, Copy, Duplicate, Delete |
|
|
117
|
+
| The canvas | Add comment, Add hotspot, Add a sticky note, Paste here, Reorder diagram |
|
|
118
|
+
|
|
119
|
+
### Statuses
|
|
120
|
+
|
|
121
|
+
| Status | Meaning |
|
|
122
|
+
|---|---|
|
|
123
|
+
| **Draft** | Being worked on. Every canvas starts as a draft. |
|
|
124
|
+
| **Proposed** | Ready for review |
|
|
125
|
+
| **Accepted** | The agreed design |
|
|
126
|
+
| **Rejected** | Decided against, kept for the record |
|
|
127
|
+
|
|
128
|
+
- Each status change can have a note. The status menu shows the history, with who changed it, when and the note.
|
|
129
|
+
- Changing the nodes or connections on an accepted or rejected canvas makes it a draft again.
|
|
130
|
+
|
|
131
|
+
### Hotspots
|
|
132
|
+
|
|
133
|
+
| Field | Values |
|
|
134
|
+
|---|---|
|
|
135
|
+
| Severity | **Critical** (red), **Warning** (amber) or **Info** (blue) |
|
|
136
|
+
| Title | Up to 120 characters, for example "Single point of failure" |
|
|
137
|
+
| Description | Optional. Why it matters, and what to do about it |
|
|
138
|
+
|
|
139
|
+
- A hotspot is on a node, and moves with it, or on a spot on the canvas.
|
|
140
|
+
- The **Hotspots** list shows the most severe first.
|
|
141
|
+
- At L1 and L2, hotspots inside a domain or system are shown on that domain or system.
|
|
142
|
+
|
|
143
|
+
### Studio page
|
|
144
|
+
|
|
145
|
+
The Studio page lists canvases with their status, contents, open comments, who created them, and when they were last updated. Filter by name or status. Each canvas's menu has **Make a copy** and **Delete**.
|
|
146
|
+
|
|
147
|
+
### Limits
|
|
148
|
+
|
|
149
|
+
| Limit | Value |
|
|
150
|
+
|---|---|
|
|
151
|
+
| Canvas title | 200 characters |
|
|
152
|
+
| Your name | 60 characters |
|
|
153
|
+
| `.eventcatalog` file | 2 MB |
|
|
154
|
+
|
|
155
|
+
## Components and connections {#components-and-connections}
|
|
156
|
+
|
|
157
|
+
### Components
|
|
158
|
+
|
|
159
|
+
New components start at version `0.0.1`.
|
|
160
|
+
|
|
161
|
+
| Group | Component | Description |
|
|
162
|
+
|---|---|---|
|
|
163
|
+
| Boundaries | Domain | A business area, e.g. Sales |
|
|
164
|
+
| | System | Services doing one job |
|
|
165
|
+
| Services | Service | An API, worker or function |
|
|
166
|
+
| | View | A screen or app people use |
|
|
167
|
+
| | External System | A third party you use |
|
|
168
|
+
| | Agent | An AI agent at work |
|
|
169
|
+
| Messages | Event | Something that happened |
|
|
170
|
+
| | Command | A request to do something |
|
|
171
|
+
| | Query | A request for data |
|
|
172
|
+
| | Channel | A topic, queue or bus |
|
|
173
|
+
| Data | Database | Tables, e.g. PostgreSQL |
|
|
174
|
+
| | Cache | Fast data, e.g. Redis |
|
|
175
|
+
| | Search index | Search, e.g. Elasticsearch |
|
|
176
|
+
| | Object store | Files and blobs, e.g. S3 |
|
|
177
|
+
| | Entity | Part of the domain model |
|
|
178
|
+
| People | Actor | Someone who uses it |
|
|
179
|
+
| | Team | Who owns what |
|
|
180
|
+
|
|
181
|
+
Sticky notes and text are added from the toolbar.
|
|
182
|
+
|
|
183
|
+
### Catalog resources
|
|
184
|
+
|
|
185
|
+
You can add these resources from your catalog: domains, systems, services, events, commands, queries, channels and data stores. They are added at their latest version, with their name, version and summary from your catalog.
|
|
186
|
+
|
|
187
|
+
### Connection labels
|
|
188
|
+
|
|
189
|
+
When you connect two nodes, Studio labels the connection with EventCatalog's wording:
|
|
190
|
+
|
|
191
|
+
| From | To | Label |
|
|
192
|
+
|---|---|---|
|
|
193
|
+
| Service, agent, actor, external system or view | Event | publishes event |
|
|
194
|
+
| Service, agent, actor, external system or view | Command | invokes |
|
|
195
|
+
| Service, agent, actor, external system or view | Query | requests |
|
|
196
|
+
| Event | Anything but a message or channel | subscribed by |
|
|
197
|
+
| Command or query | Anything but a message or channel | accepts |
|
|
198
|
+
| Message | Message | triggers |
|
|
199
|
+
| Message | Channel | sent to |
|
|
200
|
+
| Channel | Anything | routes to |
|
|
201
|
+
| Anything else | Channel | publishes to |
|
|
202
|
+
| Anything | Data store | writes to |
|
|
203
|
+
| Data store | Anything | read by |
|
|
204
|
+
| Actor | Anything | uses |
|
|
205
|
+
| Anything | View | serves |
|
|
206
|
+
| Anything | External system | calls |
|
|
207
|
+
| Anything | Actor | notifies |
|
|
208
|
+
| Team | Anything | owns |
|
|
209
|
+
| Entity | Entity | references |
|
|
210
|
+
| Message | Entity | carries |
|
|
211
|
+
| Anything else | Entity | manages |
|
|
212
|
+
|
|
213
|
+
Agents can set their own labels through the [MCP tools](#mcp-tools).
|
|
214
|
+
|
|
215
|
+
## MCP tools {#mcp-tools}
|
|
216
|
+
|
|
217
|
+
When Studio is on, the [EventCatalog MCP server](/docs/development/ask-your-architecture/mcp-server/introduction) has these tools for canvases. Unlike the other MCP tools, they change your canvases.
|
|
218
|
+
|
|
219
|
+
| Tool | What it does |
|
|
220
|
+
|---|---|
|
|
221
|
+
| `openCanvas` | Shows a canvas in the chat, in clients that support MCP Apps |
|
|
222
|
+
| `listCanvases` | Lists canvases and who is on each one |
|
|
223
|
+
| `createCanvas` | Creates a canvas and returns its link |
|
|
224
|
+
| `getCanvas` | Reads a canvas: its nodes, connections, comments and who is on it |
|
|
225
|
+
| `addToCanvas` | Adds catalog resources or new components, and connects them |
|
|
226
|
+
| `updateCanvasNode` | Renames, describes, versions or moves a node |
|
|
227
|
+
| `connectCanvasNodes` | Connects nodes |
|
|
228
|
+
| `removeFromCanvas` | Removes nodes or connections |
|
|
229
|
+
| `layoutCanvas` | Lays out the whole canvas |
|
|
230
|
+
| `setCanvasStatus` | Sets the status to draft, proposed, accepted or rejected, with a note |
|
|
231
|
+
| `commentOnCanvas` | Starts a comment thread on a node or a spot |
|
|
232
|
+
| `replyToCanvasComment` | Replies to a thread |
|
|
233
|
+
| `resolveCanvasComment` | Resolves or reopens a thread |
|
|
234
|
+
|
|
235
|
+
Every tool takes an optional `agentName`, the name people on the canvas see. It defaults to the name of the client, for example Claude, Claude Code, ChatGPT or Cursor.
|
|
236
|
+
|
|
237
|
+
### How agents appear
|
|
238
|
+
|
|
239
|
+
- An agent has its own pointer and name on the canvas.
|
|
240
|
+
- Its changes appear one step at a time, with what it is doing, for example "Connecting InstalmentPlanApproved to Notification Service".
|
|
241
|
+
- A banner shows when an agent is working. Choose **Follow** to move your view with it.
|
|
242
|
+
|
|
243
|
+
### Browser tools (WebMCP)
|
|
244
|
+
|
|
245
|
+
When WebMCP is turned on in the **Connect your AI agent** dialog, the open canvas offers agents in the browser these tools: `get_canvas`, `search_catalog`, `add_to_canvas`, `update_node`, `connect_nodes`, `remove_from_canvas`, `layout_canvas`, `set_canvas_status`, `add_comment`, `reply_to_comment`, `resolve_comment` and `show_nodes`.
|
|
246
|
+
|
|
247
|
+
## Keyboard shortcuts {#keyboard-shortcuts}
|
|
248
|
+
|
|
249
|
+
Press <kbd>?</kbd> on a canvas to see these shortcuts. On Windows and Linux, use <kbd>Ctrl</kbd> instead of <kbd>⌘</kbd>.
|
|
250
|
+
|
|
251
|
+

|
|
252
|
+
|
|
253
|
+
### Tools
|
|
254
|
+
|
|
255
|
+
| Action | Shortcut |
|
|
256
|
+
|---|---|
|
|
257
|
+
| Select | <kbd>V</kbd> |
|
|
258
|
+
| Hand (move around) | <kbd>H</kbd> |
|
|
259
|
+
| Sticky note | <kbd>N</kbd> |
|
|
260
|
+
| Text | <kbd>T</kbd> |
|
|
261
|
+
| Comment | <kbd>C</kbd> |
|
|
262
|
+
| Hotspot | <kbd>A</kbd> |
|
|
263
|
+
| Level 1 / 2 / 3 | <kbd>1</kbd> <kbd>2</kbd> <kbd>3</kbd> |
|
|
264
|
+
| Back to selecting | <kbd>Esc</kbd> |
|
|
265
|
+
|
|
266
|
+
### Canvas
|
|
267
|
+
|
|
268
|
+
| Action | Shortcut |
|
|
269
|
+
|---|---|
|
|
270
|
+
| Select everything | <kbd>⌘</kbd> <kbd>A</kbd> |
|
|
271
|
+
| Select several | <kbd>⇧</kbd> + click |
|
|
272
|
+
| Delete what's selected | <kbd>Delete</kbd> |
|
|
273
|
+
| Duplicate | <kbd>⌘</kbd> <kbd>D</kbd> |
|
|
274
|
+
| Copy / paste | <kbd>⌘</kbd> <kbd>C</kbd> / <kbd>⌘</kbd> <kbd>V</kbd> |
|
|
275
|
+
| Undo / redo | <kbd>⌘</kbd> <kbd>Z</kbd> / <kbd>⌘</kbd> <kbd>⇧</kbd> <kbd>Z</kbd> |
|
|
276
|
+
| Move around | Scroll |
|
|
277
|
+
| Zoom | <kbd>⌘</kbd> + scroll |
|
|
278
|
+
| Fit view | <kbd>⇧</kbd> <kbd>1</kbd> |
|
|
279
|
+
|
|
280
|
+
### Notes and text
|
|
281
|
+
|
|
282
|
+
| Action | Shortcut |
|
|
283
|
+
|---|---|
|
|
284
|
+
| Write on one | Double-click |
|
|
285
|
+
| Finish writing | <kbd>Esc</kbd> |
|
|
286
|
+
|
|
287
|
+
### Files
|
|
288
|
+
|
|
289
|
+
| Action | Shortcut |
|
|
290
|
+
|---|---|
|
|
291
|
+
| Open a file | <kbd>⌘</kbd> <kbd>O</kbd> |
|
|
292
|
+
| Save to file | <kbd>⌘</kbd> <kbd>S</kbd> |
|
|
293
|
+
| Export image | <kbd>⌘</kbd> <kbd>⇧</kbd> <kbd>E</kbd> |
|
|
294
|
+
| Help | <kbd>?</kbd> |
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"label": "Studio",
|
|
3
|
+
"position": 4.5,
|
|
4
|
+
"collapsible": true,
|
|
5
|
+
"collapsed": false,
|
|
6
|
+
"link": {
|
|
7
|
+
"type": "generated-index",
|
|
8
|
+
"slug": "development/studio",
|
|
9
|
+
"title": "EventCatalog Studio",
|
|
10
|
+
"description": "Design changes to your architecture on live canvases, with your team and AI agents."
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 1.5
|
|
3
|
+
keywords:
|
|
4
|
+
- Upgrade EventCatalog
|
|
5
|
+
- EventCatalog v5
|
|
6
|
+
sidebar_label: v5
|
|
7
|
+
title: Upgrade to EventCatalog v5
|
|
8
|
+
description: How to upgrade to EventCatalog v5.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
This guide will help you upgrade from v4 to v5 of EventCatalog. (Missed the announcement? [Read the blog post](/blog/eventcatalog-v5) to find out what's changing.)
|
|
12
|
+
|
|
13
|
+
EventCatalog v5 includes every feature in one product, moves the core to the Business Source License 1.1, and brings new visualiser diagrams with levels, flow grouping, Resources pages for more resources, and interactive diagrams in MCP clients.
|
|
14
|
+
|
|
15
|
+
## Upgrade EventCatalog
|
|
16
|
+
|
|
17
|
+
:::warning Install v5 from a clean install
|
|
18
|
+
v5 uses React 19. If you upgrade over an existing v4 install, your package manager can keep React 18 at the top of `node_modules` and give `@eventcatalog/core` its own copy of React 19. The build then fails with errors such as `Cannot read properties of null (reading 'useState')`.
|
|
19
|
+
|
|
20
|
+
Delete your installed packages and lock file before you install v5.
|
|
21
|
+
:::
|
|
22
|
+
|
|
23
|
+
1. Create a branch for the upgrade.
|
|
24
|
+
1. Delete `node_modules`, `.astro` and `.eventcatalog-core` (if you have one).
|
|
25
|
+
1. Delete your lock file: `package-lock.json`, `yarn.lock` or `pnpm-lock.yaml`.
|
|
26
|
+
1. If your `package.json` lists `react` or `react-dom`, change them to `^19.2.0`.
|
|
27
|
+
1. Install v5:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
rm -rf node_modules .astro .eventcatalog-core package-lock.json
|
|
31
|
+
npm install @eventcatalog/core@latest
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
If you use yarn or pnpm, delete `yarn.lock` or `pnpm-lock.yaml` instead of `package-lock.json`, and install with that package manager.
|
|
35
|
+
|
|
36
|
+
_Problems upgrading? [Try resetting your project](/docs/development/upgrading#having-problems)._
|
|
37
|
+
|
|
38
|
+
## After you upgrade
|
|
39
|
+
|
|
40
|
+
Most v4 catalogs build on v5 without changes to their resources. The changes most likely to affect you are flow step validation, `pages/api` routes in static builds, custom React components, and links to visualiser pages.
|
|
41
|
+
|
|
42
|
+
1. Run `eventcatalog build` and fix any flow step errors it reports.
|
|
43
|
+
1. Run your catalog locally and check custom pages, custom components, custom navigation, and links to visualiser pages.
|
|
44
|
+
|
|
45
|
+
### The license has changed
|
|
46
|
+
|
|
47
|
+
`@eventcatalog/core` 5.0.0 and later is licensed under the Business Source License 1.1 (`BUSL-1.1`). Releases up to and including 4.x stay under the MIT License. Ecosystem packages, such as `@eventcatalog/create-eventcatalog`, stay MIT. The generators, integrations and plugins we publish are MIT too, and no longer need a license key. You can remove `EVENTCATALOG_LICENSE_KEY_*` variables and `licenseKey` options; they are ignored.
|
|
48
|
+
|
|
49
|
+
Read the [licensing FAQ](/license-faq) to find out whether you need a commercial license, and [pricing](/pricing) for prices. The [blog post](/blog/eventcatalog-v5) explains why the license changed.
|
|
50
|
+
|
|
51
|
+
If you have a license, add your `license.jwt` file to the catalog. See [License file](/docs/development/license/license-file).
|
|
52
|
+
|
|
53
|
+
### Every feature is included
|
|
54
|
+
|
|
55
|
+
Every feature now works without `EVENTCATALOG_SCALE_LICENSE_KEY`, a Starter or Scale plan, or a Backstage license key. This includes custom documentation, resource docs, custom pages, custom styles, the schema API and `schemas.txt`, Fields Explorer lineage, schema diffs, schema and directory sources, private remote files, analytics integrations, embedding, federation, the assistant, the MCP server, authentication and governance checks.
|
|
56
|
+
|
|
57
|
+
Federation is free for organizations that qualify for Free Use. Commercial customers need the Enterprise plan to use federation in production.
|
|
58
|
+
|
|
59
|
+
The [EventCatalog Assistant](/docs/development/ask-your-architecture/eventcatalog-assistant/what-is-eventcatalog-assistant), the [MCP server](/docs/development/ask-your-architecture/mcp-server/introduction) and [authentication](/docs/development/authentication/introduction) still need server output (`output: 'server'`) and their configuration files.
|
|
60
|
+
|
|
61
|
+
#### What do I need to do?
|
|
62
|
+
|
|
63
|
+
Nothing. You can remove `EVENTCATALOG_SCALE_LICENSE_KEY` and `EVENTCATALOG_STARTER_LICENSE_KEY` from your environment once you have a `license.jwt`. If you keep them, EventCatalog still recognizes them.
|
|
64
|
+
|
|
65
|
+
## Removed
|
|
66
|
+
|
|
67
|
+
The following features have now been entirely removed from the code base and can no longer be used.
|
|
68
|
+
|
|
69
|
+
### Removed: Billing settings page
|
|
70
|
+
|
|
71
|
+
The billing settings page (`/settings/billing`) and the upgrade prompts are removed. Your license is shown on the new **Settings > License** page.
|
|
72
|
+
|
|
73
|
+
#### What do I need to do?
|
|
74
|
+
|
|
75
|
+
Update any links to `/settings/billing` to `/settings/license`.
|
|
76
|
+
|
|
77
|
+
### Removed: Domain Integration Map
|
|
78
|
+
|
|
79
|
+
The Domain Integration Map page (`/visualiser/domain-integrations`) is removed. Level 1 of a domain's Diagram shows how domains integrate.
|
|
80
|
+
|
|
81
|
+
#### What do I need to do?
|
|
82
|
+
|
|
83
|
+
Update any custom navigation or links that point to `/visualiser/domain-integrations`.
|
|
84
|
+
|
|
85
|
+
### Removed: Data Dependency Graph
|
|
86
|
+
|
|
87
|
+
The service Data Dependency Graph (`/visualiser/services/:id/:version/data`) is removed, along with its sidebar link. Level 2 of the service's Diagram shows the same data stores and the services it talks to. The old route redirects there.
|
|
88
|
+
|
|
89
|
+
#### What do I need to do?
|
|
90
|
+
|
|
91
|
+
Nothing. Links redirect. If you embed this page, see [Changed: visualiser routes and levels](#changed-visualiser-routes-and-levels).
|
|
92
|
+
|
|
93
|
+
### Removed: Separate Resource, Context and System Diagram pages
|
|
94
|
+
|
|
95
|
+
Domains and systems now have a single **Diagram** page with three levels. The domain System Diagram (`/visualiser/domains/:id/:version/systems-context`) and the system Context Diagram (`/visualiser/systems/:id/:version/context`) redirect to level 1 of the Diagram page. The old Resource Diagram pages are replaced by the Diagram page.
|
|
96
|
+
|
|
97
|
+
#### What do I need to do?
|
|
98
|
+
|
|
99
|
+
Nothing. Links redirect. See [Changed: visualiser routes and levels](#changed-visualiser-routes-and-levels).
|
|
100
|
+
|
|
101
|
+
### Removed: Architecture overview pages
|
|
102
|
+
|
|
103
|
+
The architecture overview pages (`/architecture/{type}/{id}/{version}`) for domains, systems and services are replaced by their Resources pages. Old links redirect to the Resources page, or to the docs page when there is nothing to list. The sidebar's Architecture section no longer has an **Overview** link.
|
|
104
|
+
|
|
105
|
+
#### What do I need to do?
|
|
106
|
+
|
|
107
|
+
Nothing. Links redirect. Update custom navigation to point to `/docs/{type}/{id}/{version}/resources`.
|
|
108
|
+
|
|
109
|
+
### Removed: "Open in EventCatalog Studio" menu item
|
|
110
|
+
|
|
111
|
+
The visualiser canvas menu no longer has the **Open in EventCatalog Studio** item.
|
|
112
|
+
|
|
113
|
+
#### What do I need to do?
|
|
114
|
+
|
|
115
|
+
Remove any internal guidance that tells people to use this menu item.
|
|
116
|
+
|
|
117
|
+
### Removed: `EVENTCATALOG_SHOW_BRANDING`
|
|
118
|
+
|
|
119
|
+
The EventCatalog branding (the Discord and GitHub links in the header and the footer) is always shown. `EVENTCATALOG_SHOW_BRANDING` is no longer used.
|
|
120
|
+
|
|
121
|
+
#### What do I need to do?
|
|
122
|
+
|
|
123
|
+
Remove `EVENTCATALOG_SHOW_BRANDING` from your environment.
|
|
124
|
+
|
|
125
|
+
### Removed: `ENABLE_EMBED`
|
|
126
|
+
|
|
127
|
+
In v4, the EventCatalog CLI set `ENABLE_EMBED` from your license. `ENABLE_EMBED`, `EVENTCATALOG_STARTER` and `EVENTCATALOG_SCALE` are no longer passed to the Astro runtime. Embedding works for every catalog: add `embed=true` to a URL. See [Embed EventCatalog](/docs/development/customization/embed-eventcatalog).
|
|
128
|
+
|
|
129
|
+
#### What do I need to do?
|
|
130
|
+
|
|
131
|
+
Nothing, unless your custom code uses them. If it reads `ENABLE_EMBED`, `EVENTCATALOG_STARTER` or `EVENTCATALOG_SCALE`, or imports `isEventCatalogStarterEnabled` or `isEventCatalogScaleEnabled` from `@utils/feature`, remove those checks.
|
|
132
|
+
|
|
133
|
+
## Breaking changes
|
|
134
|
+
|
|
135
|
+
The following changes are considered breaking changes in EventCatalog v5. Breaking changes may or may not affect your catalog depending on how much you customize EventCatalog.
|
|
136
|
+
|
|
137
|
+
### Changed: visualiser routes and levels
|
|
138
|
+
|
|
139
|
+
Every diagram now has the same three levels, shown as L1, L2 and L3 in the canvas toolbar:
|
|
140
|
+
|
|
141
|
+
| Level | `?level=` | Shows |
|
|
142
|
+
| --- | --- | --- |
|
|
143
|
+
| L1 | `1` | Domains, systems and their relationships |
|
|
144
|
+
| L2 | `2` | Services and data stores |
|
|
145
|
+
| L3 | `3` | Adds messages and channels |
|
|
146
|
+
|
|
147
|
+
Domain and system diagrams live at `/visualiser/domains/:id/:version` and `/visualiser/systems/:id/:version`. Old routes redirect:
|
|
148
|
+
|
|
149
|
+
| Old route | Redirects to |
|
|
150
|
+
| --- | --- |
|
|
151
|
+
| `/visualiser/domains/:id/:version/systems-context` | `/visualiser/domains/:id/:version?level=1` |
|
|
152
|
+
| `/visualiser/systems/:id/:version/context` | `/visualiser/systems/:id/:version?level=1` |
|
|
153
|
+
| `/visualiser/services/:id/:version/data` | `/visualiser/services/:id/:version?level=2` |
|
|
154
|
+
|
|
155
|
+
#### What do I need to do?
|
|
156
|
+
|
|
157
|
+
- If you link to a diagram with `?level=`, check the value matches the new levels.
|
|
158
|
+
- Update embedded URLs that use the old routes. The redirect drops the query string, including `embed=true`.
|
|
159
|
+
- Update custom navigation that points to the old routes.
|
|
160
|
+
|
|
161
|
+
### Changed: sidebar labels
|
|
162
|
+
|
|
163
|
+
Sidebar links have been renamed:
|
|
164
|
+
|
|
165
|
+
| v4 label | v5 label |
|
|
166
|
+
| --- | --- |
|
|
167
|
+
| System Diagram (domains) | Diagram |
|
|
168
|
+
| Resource Diagram (domains and systems) | Diagram |
|
|
169
|
+
| Context Diagram (systems) | Diagram |
|
|
170
|
+
| Map | Diagram |
|
|
171
|
+
| Entity Map | Entity Diagram |
|
|
172
|
+
| System Context Map | System Context Diagram |
|
|
173
|
+
| Domain Resources | Resources |
|
|
174
|
+
| System Resources | Resources |
|
|
175
|
+
| Data Dependency Graph | Removed |
|
|
176
|
+
| Overview (in the Architecture section) | Removed |
|
|
177
|
+
|
|
178
|
+
Entity diagram pages and custom docs domain embeds also say "Diagram" instead of "Map".
|
|
179
|
+
|
|
180
|
+
#### What do I need to do?
|
|
181
|
+
|
|
182
|
+
Update screenshots, onboarding docs and training material that use the old labels.
|
|
183
|
+
|
|
184
|
+
### Changed: saved layouts for old Resource Diagrams don't carry over
|
|
185
|
+
|
|
186
|
+
Diagrams are now laid out with ELK instead of dagre, and domains and systems are laid out inside their boxes. Layouts you saved in dev mode for a domain's or system's old Resource Diagram don't carry over to the new Diagram page. Layouts saved for a system's context diagram carry over to level 1.
|
|
187
|
+
|
|
188
|
+
#### What do I need to do?
|
|
189
|
+
|
|
190
|
+
Open the diagram in `eventcatalog dev` and save the layout again if needed.
|
|
191
|
+
|
|
192
|
+
### Changed: `pages/api` routes require `output: 'server'`
|
|
193
|
+
|
|
194
|
+
Custom pages are now served for every catalog. In v4, catalogs without a Scale license skipped them. A `pages/api` directory now requires server output: a static build fails with a message instead of skipping the routes.
|
|
195
|
+
|
|
196
|
+
#### What do I need to do?
|
|
197
|
+
|
|
198
|
+
If you have a `pages/api` directory, set `output: 'server'` in `eventcatalog.config.js`, or remove the directory.
|
|
199
|
+
|
|
200
|
+
```js title="eventcatalog.config.js"
|
|
201
|
+
export default {
|
|
202
|
+
output: 'server',
|
|
203
|
+
};
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
See the [custom pages and API routes reference](/docs/development/customization/custom-pages-and-api-routes/reference).
|
|
207
|
+
|
|
208
|
+
### Changed: custom React components run on React 19
|
|
209
|
+
|
|
210
|
+
EventCatalog now uses React and React DOM 19. React components in your catalog's `components/` folder run on React 19.
|
|
211
|
+
|
|
212
|
+
#### What do I need to do?
|
|
213
|
+
|
|
214
|
+
If your `package.json` lists `react` or `react-dom`, change them to `^19.2.0` and reinstall from a clean install, as in [Upgrade EventCatalog](#upgrade-eventcatalog).
|
|
215
|
+
|
|
216
|
+
If any of your components use APIs that React 19 removed, update them:
|
|
217
|
+
|
|
218
|
+
- `defaultProps` on function components
|
|
219
|
+
- `propTypes`
|
|
220
|
+
- string refs
|
|
221
|
+
- `ReactDOM.render`
|
|
222
|
+
- `findDOMNode`
|
|
223
|
+
|
|
224
|
+
See the [custom components reference](/docs/development/components/custom-components/reference#react-components).
|
|
225
|
+
|
|
226
|
+
### Changed: header shows `repositoryUrl` next to the EventCatalog links
|
|
227
|
+
|
|
228
|
+
When [`repositoryUrl`](/docs/api/config#repositoryUrl) is set, the header shows your repository link next to the EventCatalog Discord and GitHub links, rather than in place of them.
|
|
229
|
+
|
|
230
|
+
#### What do I need to do?
|
|
231
|
+
|
|
232
|
+
Nothing.
|
|
233
|
+
|
|
234
|
+
### Changed: flow steps are validated
|
|
235
|
+
|
|
236
|
+
Mistakes in flows no longer fail silently:
|
|
237
|
+
|
|
238
|
+
- Unknown step properties fail the build. Custom properties must start with `x-`.
|
|
239
|
+
- Steps that use two node types, or both `next_step` and `next_steps`, fail with a message naming the step and what to change.
|
|
240
|
+
- A `next_step` to a step that doesn't exist, or a reference to a resource that isn't in the catalog, logs a warning naming the flow and the step.
|
|
241
|
+
- The step `type` field is still accepted, but ignored.
|
|
242
|
+
|
|
243
|
+
The [EventCatalog Linter](/docs/development/developer-tools/eventcatalog-linter) checks the same rules, and adds `refs/flow-step-exists` for next steps that aren't in the flow.
|
|
244
|
+
|
|
245
|
+
#### What do I need to do?
|
|
246
|
+
|
|
247
|
+
Run `eventcatalog build` and fix any errors. Rename custom step properties to start with `x-`:
|
|
248
|
+
|
|
249
|
+
```diff title="flows/Checkout/index.mdx"
|
|
250
|
+
steps:
|
|
251
|
+
- id: place-order
|
|
252
|
+
title: Place order
|
|
253
|
+
service:
|
|
254
|
+
id: OrderService
|
|
255
|
+
- priority: high
|
|
256
|
+
+ x-priority: high
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### Changed: `@eventcatalog/visualiser` API
|
|
260
|
+
|
|
261
|
+
This only affects you if you use the `@eventcatalog/visualiser` package directly, for example to embed the visualiser in your own application.
|
|
262
|
+
|
|
263
|
+
- `layoutGraph` now returns a promise.
|
|
264
|
+
- The dagre helpers (`createDagreGraph`, `layoutDagreGraph`, `getNodesAndEdgesFromDagre`, `calculatedNodes`) are removed.
|
|
265
|
+
- Edges are drawn along the route in `data.route` when there is one.
|
|
266
|
+
- A new `@eventcatalog/visualiser/layout` entry (no React) exports `layoutWithElk`, `getNodeSize`, `hideMessageNodes`, `hideNodes`, `getMessagesLabel`, `isCarrier` and `isMessageNode`.
|
|
267
|
+
|
|
268
|
+
#### What do I need to do?
|
|
269
|
+
|
|
270
|
+
`await` calls to `layoutGraph`, and replace the dagre helpers with `layoutWithElk` from `@eventcatalog/visualiser/layout`.
|
|
271
|
+
|
|
272
|
+
## New features
|
|
273
|
+
|
|
274
|
+
The following new features and improvements have been added to EventCatalog v5.
|
|
275
|
+
|
|
276
|
+
### Diagram levels and the canvas toolbar
|
|
277
|
+
|
|
278
|
+
Every diagram has a floating canvas toolbar with the levels (L1, L2, L3), simulate messages, the minimap and fit to view. Levels a diagram doesn't have are greyed out. The level is kept in the URL, so shared links open at the same level.
|
|
279
|
+
|
|
280
|
+
Clicking a legend entry now hides or shows those nodes. The canvas menu has a **Hide messages** option.
|
|
281
|
+
|
|
282
|
+
### Domain and system Diagram pages
|
|
283
|
+
|
|
284
|
+
A domain's Diagram shows the domain with its systems and the other domains they send messages to or receive them from (L1). L2 expands the systems into their services and data stores, and L3 adds messages and channels. Subdomains are shown as domains inside the domain.
|
|
285
|
+
|
|
286
|
+

|
|
287
|
+
|
|
288
|
+

|
|
289
|
+
|
|
290
|
+
On a domain's diagram, the toolbar has **Highlight cross-domain communication**, which picks out the edges to and from other domains.
|
|
291
|
+
|
|
292
|
+
A system's Diagram shows the system context at L1, expands the system into its services at L2, and adds messages and channels at L3. Read more in [System diagrams](/docs/development/guides/systems/system-context-maps).
|
|
293
|
+
|
|
294
|
+
### Group flows by domain, system or team
|
|
295
|
+
|
|
296
|
+
Flows can group their steps by domain, system, team, or domain then system, drawn as boxes or lanes. Use the **Group by** menu (top right, or press G). Groups come from the catalog, so your flows need no changes. The choice is kept in the URL (`?group=system&groupStyle=boxes`).
|
|
297
|
+
|
|
298
|
+

|
|
299
|
+
|
|
300
|
+
To start a flow grouped in your docs, use `<Flow lanes="team" />`. See the [Flow component](/docs/development/components/components/flow).
|
|
301
|
+
|
|
302
|
+
Flows no longer show the L1/L2/L3 levels. The step-by-step walkthrough is smaller and starts at the first step: it numbers the steps walked so far, rings the current step, and offers a dropdown at branches.
|
|
303
|
+
|
|
304
|
+
### Channel flow steps
|
|
305
|
+
|
|
306
|
+
Flow steps can reference channels with `channel: { id, version }`. A step's `title` is now optional and defaults to the name of what it references. The SDK adds `FlowBuilder.addChannelStep`.
|
|
307
|
+
|
|
308
|
+
```md title="flows/Checkout/index.mdx"
|
|
309
|
+
steps:
|
|
310
|
+
- id: orders-topic
|
|
311
|
+
channel:
|
|
312
|
+
id: orders
|
|
313
|
+
version: 1.0.0
|
|
314
|
+
next_step: notify-customer
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
Read more in the [flows documentation](/docs/development/guides/resources/flows/introduction).
|
|
318
|
+
|
|
319
|
+
### Resources pages for services, flows, channels and messages
|
|
320
|
+
|
|
321
|
+
Services, flows, channels, events, commands and queries now have a Resources page, like domains and systems, linked from Quick Reference in the sidebar. Every Resources page lists the decision records (ADRs) that apply to it, and has a Relationship column (for example Sends, Receives, Reads from, Writes to) with Inbound and Outbound filters.
|
|
322
|
+
|
|
323
|
+

|
|
324
|
+
|
|
325
|
+
Read more about the [service Resources page](/docs/development/guides/resources/services/resources-page), the [message Resources page](/docs/development/guides/resources/messages/what-are-messages#resources-page) and the [channel Resources page](/docs/development/guides/resources/messages/message-channels/introduction#resources-page).
|
|
326
|
+
|
|
327
|
+
### Interactive diagrams and schemas in MCP clients
|
|
328
|
+
|
|
329
|
+
The MCP server has a new `showResource` tool. With `view: "architecture"` it returns a resource's diagram, built the same way as its Diagram page. With `view: "schema"` it shows a message's schema. In MCP clients that support MCP Apps (for example Claude, ChatGPT and VS Code) these open as interactive views. Other clients get Mermaid or the schema code.
|
|
330
|
+
|
|
331
|
+
Every MCP tool now has a title and is read-only, versions are optional, and hidden resources are not listed. Read more in [interactive diagrams and schemas](/docs/development/ask-your-architecture/mcp-server/getting-started#interactive-diagrams-and-schemas).
|
|
332
|
+
|
|
333
|
+
### Settings > MCP lists domain MCP servers
|
|
334
|
+
|
|
335
|
+
**Settings > MCP** lists each domain's MCP server next to the Catalog MCP Server, with full URLs to copy. See the [MCP server documentation](/docs/development/ask-your-architecture/mcp-server/introduction).
|
|
336
|
+
|
|
337
|
+
### License status in the CLI and Settings > License
|
|
338
|
+
|
|
339
|
+
`eventcatalog dev` and `eventcatalog build` show the catalog's license or trial in the terminal. While you run `eventcatalog dev`, the header shows the trial, or a reminder when your license is about to expire. The new **Settings > License** page shows who the catalog is licensed to and when the license expires.
|
|
340
|
+
|
|
341
|
+
Read more in [License file](/docs/development/license/license-file).
|
|
342
|
+
|
|
343
|
+
## Known issues
|
|
344
|
+
|
|
345
|
+
Please check [EventCatalog issues on GitHub](https://github.com/event-catalog/eventcatalog/issues) for any reported issues, or to file an issue yourself.
|
|
@@ -5,10 +5,6 @@ title: EventCatalog Federation
|
|
|
5
5
|
description: Combine independently owned EventCatalogs into one validated organization-wide catalog.
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
import EventCatalogEnterprise from '@site/src/components/MDX/EventCatalogEnterprise';
|
|
9
|
-
|
|
10
|
-
<EventCatalogEnterprise />
|
|
11
|
-
|
|
12
8
|
EventCatalog Federation is a solution for distributed documentation across your organization. Teams document and own their services, domains, messages, ADRs, specifications, schemas, diagrams, and everything else EventCatalog supports in their own catalogs, while Federation combines them into one organization-wide view.
|
|
13
9
|
|
|
14
10
|
Each team keeps its documentation, ownership, and review workflow in its own EventCatalog project. A central catalog selects those catalogs, validates them together, and materializes their resources as one connected catalog.
|
|
@@ -128,11 +124,9 @@ npm run build
|
|
|
128
124
|
|
|
129
125
|
`eventcatalog federate` fetches, validates, and materializes the configured sources. `npm run build` renders the resulting catalog. Federation does not run automatically before `dev`, `build`, or `generate`.
|
|
130
126
|
|
|
131
|
-
:::info
|
|
132
|
-
|
|
133
|
-
EventCatalog Federation requires an EventCatalog Enterprise offline license. To try it, email [hello@eventcatalog.dev](mailto:hello@eventcatalog.dev?subject=EventCatalog%20Federation%20Trial) and we will send you an offline trial key. Save the `license.jwt` file in the root of your central catalog before running Federation.
|
|
127
|
+
:::info License
|
|
134
128
|
|
|
135
|
-
|
|
129
|
+
Federation is free for organizations that [qualify for Free Use](/license-faq), using their free license key. Commercial customers need the [Enterprise plan](/pricing). Every organization can try it during its 60-day evaluation.
|
|
136
130
|
|
|
137
131
|
:::
|
|
138
132
|
|