@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
|
@@ -7,46 +7,16 @@ keywords:
|
|
|
7
7
|
- openapi
|
|
8
8
|
- asyncapi
|
|
9
9
|
sidebar_label: Integrations
|
|
10
|
-
title:
|
|
11
|
-
description:
|
|
10
|
+
title: License keys for integrations
|
|
11
|
+
description: From EventCatalog v5, the generators, integrations and plugins EventCatalog publishes are open source under the MIT License and don't need a license key.
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
EventCatalog
|
|
14
|
+
From EventCatalog v5, the generators, integrations and plugins EventCatalog publishes are open source under the MIT License and don't need a license key. You can see the full list on the [integrations page](/integrations).
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
If your config still sets the `licenseKey` option or an `EVENTCATALOG_LICENSE_KEY_*` environment variable, you can remove it. It's ignored.
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
EventCatalog core is licensed separately. To check whether your organization needs a commercial license, see the [licensing FAQ](/license-faq) and [pricing](/pricing).
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-

|
|
23
|
-
|
|
24
|
-
## Adding your Scale key to your catalog
|
|
25
|
-
|
|
26
|
-
Copy your Scale license key from your dashboard into your `.env` file:
|
|
27
|
-
|
|
28
|
-
```bash title=".env"
|
|
29
|
-
EVENTCATALOG_SCALE_LICENSE_KEY=your-scale-license-key-here
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Then configure the integration in your `eventcatalog.config.js` as described in the [integration's documentation](/integrations).
|
|
33
|
-
|
|
34
|
-
:::info Using plugin API keys?
|
|
35
|
-
If you already have older plugin-specific API keys, you can still use them with the environment variables shown in each integration's documentation.
|
|
36
|
-
|
|
37
|
-
For example, the OpenAPI plugin supports:
|
|
38
|
-
|
|
39
|
-
```bash title=".env"
|
|
40
|
-
EVENTCATALOG_LICENSE_KEY_OPENAPI=your-license-key-here
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
For new projects, use `EVENTCATALOG_SCALE_LICENSE_KEY`.
|
|
20
|
+
:::info EventCatalog v4 and earlier
|
|
21
|
+
In v4 and earlier, integrations were unlocked with an EventCatalog Scale license key. See the [License Keys overview](/docs/development/license-keys/overview) and [Scale plan](/docs/development/license-keys/plans) pages for how v4 license keys worked.
|
|
44
22
|
:::
|
|
45
|
-
|
|
46
|
-
## Trying multiple integrations
|
|
47
|
-
|
|
48
|
-
Scale includes all official integrations, so you can configure multiple integrations in the same catalog with the same Scale license key.
|
|
49
|
-
|
|
50
|
-
## Need more time?
|
|
51
|
-
|
|
52
|
-
If 30 days isn't enough to evaluate Scale and integrations in your environment, email us at `hello@eventcatalog.dev` and we'll extend your trial.
|
|
@@ -9,6 +9,10 @@ title: How license validation works
|
|
|
9
9
|
description: How EventCatalog validates your license keys online and offline.
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
+
:::info EventCatalog v4 and earlier
|
|
13
|
+
This page covers license keys for **EventCatalog v4 and earlier**. From v5, every feature and integration is included in one product. See the [licensing FAQ](/license-faq) and [pricing](/pricing).
|
|
14
|
+
:::
|
|
15
|
+
|
|
12
16
|
EventCatalog validates commercial features using online license keys or offline license files. Scale and integration keys use online validation by default. Enterprise features, including Federation, require an offline license file.
|
|
13
17
|
|
|
14
18
|
## Online validation (default)
|
|
@@ -9,7 +9,11 @@ title: License Keys Overview
|
|
|
9
9
|
description: Learn how license keys work in EventCatalog, how to get a free trial, and where to find your keys.
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
:::info EventCatalog v4 and earlier
|
|
13
|
+
This page covers license keys for **EventCatalog v4 and earlier**. From v5, every feature and integration is included in one product. See the [licensing FAQ](/license-faq) and [pricing](/pricing).
|
|
14
|
+
:::
|
|
15
|
+
|
|
16
|
+
EventCatalog v4 has a community edition and commercial plans. EventCatalog Scale, Enterprise, and commercial integrations are unlocked using **license keys**.
|
|
13
17
|
|
|
14
18
|
If you are using the community edition, you don't need a license key and can skip this section.
|
|
15
19
|
|
|
@@ -9,9 +9,11 @@ title: Getting a license key for EventCatalog Scale
|
|
|
9
9
|
description: How to start an EventCatalog Scale plan in EventCatalog Cloud and get your license key.
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
EventCatalog
|
|
12
|
+
:::info EventCatalog v4 and earlier
|
|
13
|
+
This page covers license keys for **EventCatalog v4 and earlier**. From v5, every feature and integration is included in one product. See the [licensing FAQ](/license-faq) and [pricing](/pricing).
|
|
14
|
+
:::
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
EventCatalog Scale is the self-serve commercial plan for teams that need automation, integrations, governance, and a living architecture catalog that stays in sync with code, specs, teams, and tools.
|
|
15
17
|
|
|
16
18
|
## Starting a plan
|
|
17
19
|
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 1
|
|
3
|
+
keywords:
|
|
4
|
+
- EventCatalog Studio
|
|
5
|
+
- architecture design
|
|
6
|
+
- collaborative canvas
|
|
7
|
+
sidebar_label: What is Studio?
|
|
8
|
+
title: What is EventCatalog Studio?
|
|
9
|
+
description: Design changes to your architecture on live canvases, with your team and AI agents.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
import AddedIn from '@site/src/components/MDX/AddedIn';
|
|
13
|
+
|
|
14
|
+
<AddedIn version="5.0.0" />
|
|
15
|
+
|
|
16
|
+
EventCatalog Studio lets your teams design changes to their architecture on live canvases, inside your catalog.
|
|
17
|
+
|
|
18
|
+
Your catalog documents how your architecture works today. Studio is where you plan what comes next: a new service, a new event, a different way to split a domain. You start from the resources you already document, add the parts that don't exist yet, and work on it together with your team and your AI agents.
|
|
19
|
+
|
|
20
|
+
Studio is experimental while we shape it with your feedback. Tell us what you think in [Discord](https://eventcatalog.dev/discord) or on [GitHub](https://github.com/event-catalog/eventcatalog/issues).
|
|
21
|
+
|
|
22
|
+

|
|
23
|
+
|
|
24
|
+
## Why use Studio?
|
|
25
|
+
|
|
26
|
+
Planning conversations often happen outside the catalog, on whiteboards, slides or diagram tools that know nothing about your architecture. Someone redraws the services by hand, and the diagram is out of date before the meeting ends.
|
|
27
|
+
|
|
28
|
+
With Studio:
|
|
29
|
+
|
|
30
|
+
- **You start from real resources.** Drag your domains, systems, services, messages, channels and data stores onto a canvas, with their real names, versions and summaries.
|
|
31
|
+
- **You sketch what's new next to what exists.** Add proposed services, messages and data stores, and connect them to the resources they change.
|
|
32
|
+
- **Team collaboration.** Everyone on a canvas sees each other's pointers and edits, and can comment and flag risks.
|
|
33
|
+
- **You record the decision.** Mark a canvas as proposed, accepted or rejected, with a note, so you can see later what was decided and why.
|
|
34
|
+
- **AI agents work with you.** Agents connect through the [MCP server](/docs/development/ask-your-architecture/mcp-server/introduction) and edit the same canvas, using the resources in your catalog.
|
|
35
|
+
|
|
36
|
+
:::info Studio doesn't change your catalog
|
|
37
|
+
A canvas is a design, kept separately from your catalog files. Adding, editing or deleting anything on a canvas never changes your documentation.
|
|
38
|
+
|
|
39
|
+
When a design is built, your teams document the changes in the catalog as usual.
|
|
40
|
+
:::
|
|
41
|
+
|
|
42
|
+
## How it works
|
|
43
|
+
|
|
44
|
+
- Open **Studio** from the sidebar of your catalog. It lists every canvas, with its status and open comments.
|
|
45
|
+
- Each canvas has the same three levels as the diagrams in your catalog: **L1** for domains and systems, **L2** for services and data stores, **L3** for everything, including messages and channels.
|
|
46
|
+
- Canvases are saved by your EventCatalog, in [storage you configure](/docs/development/studio/set-up-persistent-storage). Nothing is sent to a third party.
|
|
47
|
+
|
|
48
|
+

|
|
49
|
+
|
|
50
|
+
Studio is on when you run `eventcatalog dev`. To use it in a deployed catalog, see [Run Studio in production](/docs/development/studio/run-studio-in-production).
|
|
51
|
+
|
|
52
|
+
:::tip No catalog yet?
|
|
53
|
+
Try [EventCatalog Studio on the web](https://www.eventcatalog.studio/). It runs in your browser with no sign-up, keeps your design in your browser, and lets you export it to EventCatalog when you're ready.
|
|
54
|
+
:::
|
|
55
|
+
|
|
56
|
+
## Next steps
|
|
57
|
+
|
|
58
|
+
- [Create a canvas](/docs/development/studio/create-a-canvas)
|
|
59
|
+
- [Collaborate on a canvas](/docs/development/studio/collaborate-on-a-canvas)
|
|
60
|
+
- [Connect your agent to a canvas](/docs/development/studio/connect-your-agent)
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 2
|
|
3
|
+
keywords:
|
|
4
|
+
- EventCatalog Studio
|
|
5
|
+
- canvas
|
|
6
|
+
sidebar_label: Create a canvas
|
|
7
|
+
title: Create a canvas
|
|
8
|
+
description: Start a canvas, add resources from your catalog, sketch new components and connect them.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
A canvas is where you design a change. Give each canvas one topic, such as "Email customers when their review is published" or "Split the Order Service".
|
|
12
|
+
|
|
13
|
+
This page uses the example catalog from `create-eventcatalog`. Follow along with your own resources, or create the example catalog:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx @eventcatalog/create-eventcatalog@latest my-catalog
|
|
17
|
+
cd my-catalog
|
|
18
|
+
npm run dev
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Start a canvas
|
|
22
|
+
|
|
23
|
+
1. Open **Studio** from the sidebar, or go to `/studio` in your catalog.
|
|
24
|
+
2. The first time, Studio asks what to call you. Your name is shown next to your pointer and your comments.
|
|
25
|
+
3. Choose **New canvas**, name it for what you're designing, and choose **Create canvas**.
|
|
26
|
+
|
|
27
|
+
### Start from a diagram
|
|
28
|
+
|
|
29
|
+
You can also start from any diagram in your catalog. Open the diagram's menu, choose **Open in Studio** and name the canvas.
|
|
30
|
+
|
|
31
|
+

|
|
32
|
+
|
|
33
|
+
The canvas starts with the diagram's resources, their positions, their domains and systems, and their connections. Change it as you like. Your catalog doesn't change.
|
|
34
|
+
|
|
35
|
+
## Add resources from your catalog
|
|
36
|
+
|
|
37
|
+
1. In the palette, choose **Catalog Resources**.
|
|
38
|
+
2. Search for a resource, for example `moderation`.
|
|
39
|
+
3. Click it to add it, or drag it onto the canvas.
|
|
40
|
+
|
|
41
|
+
When you add a service or a message, choose what comes with it:
|
|
42
|
+
|
|
43
|
+
- **Just the service**: the resource on its own, connected to what is already on the canvas.
|
|
44
|
+
- **With its connections**: the resource and what it sends, receives and stores. Tick the groups you want.
|
|
45
|
+
|
|
46
|
+
For example, adding the **Review Moderation Worker** with only **Messages it sends** ticked adds the service and the two events it publishes, already connected:
|
|
47
|
+
|
|
48
|
+

|
|
49
|
+
|
|
50
|
+
Catalog resources keep the name, version and summary from your catalog. To change them, change them in your catalog.
|
|
51
|
+
|
|
52
|
+
## Add something new
|
|
53
|
+
|
|
54
|
+
Use the **Components** tab for things that don't exist yet, such as a proposed service, event or database.
|
|
55
|
+
|
|
56
|
+
1. In the palette, choose **Components**.
|
|
57
|
+
2. Click a component to add it, or drag it onto the canvas. New components start at version `0.0.1`.
|
|
58
|
+
3. Double-click it to set its name, version and summary. Changes save as you type.
|
|
59
|
+
|
|
60
|
+

|
|
61
|
+
|
|
62
|
+
See the [reference](/docs/development/studio/reference#components) for every component.
|
|
63
|
+
|
|
64
|
+
## Connect nodes
|
|
65
|
+
|
|
66
|
+
Drag from the dot on the edge of one node to the dot on another. Studio labels the connection with EventCatalog's wording.
|
|
67
|
+
|
|
68
|
+
For example, connecting the **Review Published** event to a new **Review Emails** service is labelled **subscribed by**:
|
|
69
|
+
|
|
70
|
+

|
|
71
|
+
|
|
72
|
+
To put a node inside a domain or system, drag it onto the box and drop it when it highlights.
|
|
73
|
+
|
|
74
|
+
To tidy the whole canvas, choose **Reorder diagram** in the toolbar at the bottom.
|
|
75
|
+
|
|
76
|
+
## Edit a node
|
|
77
|
+
|
|
78
|
+
Double-click a node, or right-click it and choose **Edit details**. The panel shows its name, version and summary, and what it connects to.
|
|
79
|
+
|
|
80
|
+

|
|
81
|
+
|
|
82
|
+
Right-click a node to comment on it, flag a hotspot, add a note, copy, duplicate or delete it.
|
|
83
|
+
|
|
84
|
+
## Change the level
|
|
85
|
+
|
|
86
|
+
Choose **L1**, **L2** or **L3** in the toolbar, or press <kbd>1</kbd>, <kbd>2</kbd> or <kbd>3</kbd>.
|
|
87
|
+
|
|
88
|
+
| Level | Shows |
|
|
89
|
+
|---|---|
|
|
90
|
+
| **L1** | Domains, systems and their relationships |
|
|
91
|
+
| **L2** | Services and data stores |
|
|
92
|
+
| **L3** | Everything, including messages and channels |
|
|
93
|
+
|
|
94
|
+
You draw at L3. L1 and L2 summarise it: at L2, messages fold into the connections between services, and at L1, services fold into their systems. Use L1 or L2 when you want to talk about the big picture, without every message.
|
|
95
|
+
|
|
96
|
+

|
|
97
|
+
|
|
98
|
+
L1 is greyed out until the canvas has a domain or system.
|
|
99
|
+
|
|
100
|
+
## Next steps
|
|
101
|
+
|
|
102
|
+
- [Collaborate on a canvas](/docs/development/studio/collaborate-on-a-canvas) with your team.
|
|
103
|
+
- [Connect your agent to a canvas](/docs/development/studio/connect-your-agent).
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 3
|
|
3
|
+
keywords:
|
|
4
|
+
- EventCatalog Studio
|
|
5
|
+
- storage
|
|
6
|
+
- sqlite
|
|
7
|
+
sidebar_label: Set up persistent storage
|
|
8
|
+
title: Set up persistent storage
|
|
9
|
+
description: Save canvases to a SQLite database so they survive restarts and redeploys.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
By default, canvases are kept in memory and are lost when the server restarts. To keep them, save them to a SQLite database file.
|
|
13
|
+
|
|
14
|
+
You need **Node.js 22.13 or later**.
|
|
15
|
+
|
|
16
|
+
## Save canvases to SQLite
|
|
17
|
+
|
|
18
|
+
1. In `eventcatalog.config.js`, set `storage`:
|
|
19
|
+
|
|
20
|
+
```js title="eventcatalog.config.js"
|
|
21
|
+
export default {
|
|
22
|
+
storage: {
|
|
23
|
+
type: 'sqlite',
|
|
24
|
+
path: '.eventcatalog/eventcatalog.db',
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The path is relative to your catalog. If you leave it out, it defaults to `.eventcatalog/eventcatalog.db`.
|
|
30
|
+
|
|
31
|
+
2. Restart `eventcatalog dev` or `eventcatalog start`. EventCatalog creates the database, and keeps it up to date each time it starts.
|
|
32
|
+
|
|
33
|
+
3. Open **Studio**. The bottom of the list shows where canvases are saved, for example **Saved in .eventcatalog/eventcatalog.db**.
|
|
34
|
+
|
|
35
|
+
## In a container
|
|
36
|
+
|
|
37
|
+
Put the database on a volume, so it survives redeploys:
|
|
38
|
+
|
|
39
|
+
```js title="eventcatalog.config.js"
|
|
40
|
+
export default {
|
|
41
|
+
storage: {
|
|
42
|
+
type: 'sqlite',
|
|
43
|
+
path: '/data/eventcatalog.db',
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Mount a volume at `/data` when you run the container.
|
|
49
|
+
|
|
50
|
+
## How canvases are saved
|
|
51
|
+
|
|
52
|
+
Canvases save automatically as people work. The server keeps a working copy of each canvas in memory, and writes it to the database a moment after each change and when the server stops, so storage never slows the canvas down.
|
|
53
|
+
|
|
54
|
+
Canvases stay in your infrastructure. Nothing is sent to a third party.
|
|
55
|
+
|
|
56
|
+
| Option | Type | Default | Description |
|
|
57
|
+
|---|---|---|---|
|
|
58
|
+
| `storage.type` | `'memory'` \| `'sqlite'` | `'memory'` | `'memory'` keeps canvases while the server runs. `'sqlite'` keeps them in a database file. |
|
|
59
|
+
| `storage.path` | `string` | `'.eventcatalog/eventcatalog.db'` | The database file, relative to your catalog. |
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 4
|
|
3
|
+
keywords:
|
|
4
|
+
- EventCatalog Studio
|
|
5
|
+
- collaboration
|
|
6
|
+
- comments
|
|
7
|
+
- hotspots
|
|
8
|
+
sidebar_label: Collaborate on a canvas
|
|
9
|
+
title: Collaborate on a canvas
|
|
10
|
+
description: Share a canvas, work on it live, discuss it, and record the decision.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Share a canvas
|
|
14
|
+
|
|
15
|
+
1. On the canvas, choose **Share**.
|
|
16
|
+
2. Choose **Copy link**, or **Invite people** to email an invite or copy an invite message.
|
|
17
|
+
|
|
18
|
+

|
|
19
|
+
|
|
20
|
+
Anyone with the link opens the canvas in your catalog and edits it with you.
|
|
21
|
+
|
|
22
|
+
When [authentication](/docs/development/authentication/introduction) is on, only signed-in people can open canvases, and they appear with the name and picture they signed in with. Without authentication, Studio asks each person for a name, and keeps it in their browser.
|
|
23
|
+
|
|
24
|
+
## Work on it live
|
|
25
|
+
|
|
26
|
+
Everyone on a canvas sees each other's pointers, names and changes as they happen. Changes save automatically.
|
|
27
|
+
|
|
28
|
+
- The avatars at the top right show who is on the canvas. Click one to jump to what that person is looking at.
|
|
29
|
+
- Click your own avatar to change your name and colour.
|
|
30
|
+
|
|
31
|
+
## Comment
|
|
32
|
+
|
|
33
|
+
1. Choose **Comment** in the toolbar, or press <kbd>C</kbd>.
|
|
34
|
+
2. Click a node, or a spot on the canvas.
|
|
35
|
+
3. Type your comment and press <kbd>Enter</kbd>.
|
|
36
|
+
|
|
37
|
+
Click a comment pin to reply. Choose **Resolve** when the thread is settled. **Comments** at the bottom of the canvas lists every thread.
|
|
38
|
+
|
|
39
|
+

|
|
40
|
+
|
|
41
|
+
## Flag a risk with a hotspot
|
|
42
|
+
|
|
43
|
+
A hotspot flags a risk on a node or a spot, such as a single point of failure or data that needs a review.
|
|
44
|
+
|
|
45
|
+
1. Choose **Hotspot** in the toolbar, or press <kbd>A</kbd>.
|
|
46
|
+
2. Click the node at risk.
|
|
47
|
+
3. Pick **Critical**, **Warning** or **Info**, and add a short title and, if you want, why it matters.
|
|
48
|
+
|
|
49
|
+
**Hotspots** at the bottom of the canvas lists every hotspot. At L1 and L2, hotspots inside a domain or system are shown on that domain or system, so zooming out never hides a risk.
|
|
50
|
+
|
|
51
|
+

|
|
52
|
+
|
|
53
|
+
## Add notes and text
|
|
54
|
+
|
|
55
|
+
- **Sticky note** (<kbd>N</kbd>): click where it goes and type. Use notes for assumptions, scope and open questions.
|
|
56
|
+
- **Text** (<kbd>T</kbd>): click anywhere and type. Use text for headings and labels.
|
|
57
|
+
|
|
58
|
+
Double-click a note or text to edit it.
|
|
59
|
+
|
|
60
|
+
## Record the decision
|
|
61
|
+
|
|
62
|
+
Every canvas has a status: **Draft**, **Proposed**, **Accepted** or **Rejected**.
|
|
63
|
+
|
|
64
|
+
1. Choose the status next to the canvas title.
|
|
65
|
+
2. Add a note if you want, for example `Agreed in the architecture review`.
|
|
66
|
+
3. Pick the new status.
|
|
67
|
+
|
|
68
|
+
The menu shows the history of status changes, with who made each change, when, and the note.
|
|
69
|
+
|
|
70
|
+

|
|
71
|
+
|
|
72
|
+
Changing the nodes or connections on an accepted or rejected canvas makes it a draft again, so a decision always matches the design it was made on.
|
|
73
|
+
|
|
74
|
+
To find designs waiting for review, open **Studio** and filter by **Proposed**.
|
|
75
|
+
|
|
76
|
+
## Lock the canvas
|
|
77
|
+
|
|
78
|
+
Choose the lock in the toolbar. Everyone can still look at the canvas, but no one can change it until it is unlocked.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 5
|
|
3
|
+
keywords:
|
|
4
|
+
- EventCatalog Studio
|
|
5
|
+
- AI agents
|
|
6
|
+
- MCP
|
|
7
|
+
- MCP Apps
|
|
8
|
+
sidebar_label: Connect your agent to a canvas
|
|
9
|
+
title: Connect your agent to a canvas
|
|
10
|
+
description: Bring Claude, ChatGPT, Cursor or another AI agent onto a canvas to design with you.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
AI agents can join a canvas and work on it with you, live. An agent can add resources from your catalog, sketch new components, connect them, tidy the layout, comment and change the status.
|
|
14
|
+
|
|
15
|
+
Agents join like a person does. Each one has its own pointer and name, and you see what it's doing ("Connecting InstalmentPlanApproved to Notification Service") as it works. Choose **Follow** on the "is working" banner to move your view with it.
|
|
16
|
+
|
|
17
|
+

|
|
18
|
+
|
|
19
|
+
## Before you start
|
|
20
|
+
|
|
21
|
+
Agents connect through the [EventCatalog MCP server](/docs/development/ask-your-architecture/mcp-server/introduction), so your catalog must run with `output: 'server'`, including when you use `eventcatalog dev`.
|
|
22
|
+
|
|
23
|
+
The MCP server is at `/docs/mcp`, for example `https://your-eventcatalog.com/docs/mcp`.
|
|
24
|
+
|
|
25
|
+
## Connect with one prompt
|
|
26
|
+
|
|
27
|
+
1. On the canvas, choose **Share**, then **Connect agent**. Or open the canvas menu and choose **Connect your AI agent**.
|
|
28
|
+
2. Choose **Copy prompt**.
|
|
29
|
+
3. Paste the prompt into your agent.
|
|
30
|
+
|
|
31
|
+
The prompt tells the agent which canvas to join and how to connect to your catalog.
|
|
32
|
+
|
|
33
|
+

|
|
34
|
+
|
|
35
|
+
## Set up your client
|
|
36
|
+
|
|
37
|
+
### Claude
|
|
38
|
+
|
|
39
|
+
1. Open **Settings → Connectors** and choose **Add custom connector**.
|
|
40
|
+
2. Name it `EventCatalog` and paste your MCP server URL.
|
|
41
|
+
3. In a chat, turn the connector on and ask Claude to join your canvas.
|
|
42
|
+
|
|
43
|
+
### Claude Code
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
claude mcp add --transport http eventcatalog https://your-eventcatalog.com/docs/mcp
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Then ask Claude Code to join your canvas.
|
|
50
|
+
|
|
51
|
+
### ChatGPT
|
|
52
|
+
|
|
53
|
+
1. Open **Settings → Apps & Connectors**, turn on developer mode and create a connector with your MCP server URL.
|
|
54
|
+
2. In a chat, add the connector and ask ChatGPT to join your canvas.
|
|
55
|
+
|
|
56
|
+
### Cursor
|
|
57
|
+
|
|
58
|
+
```json title=".cursor/mcp.json"
|
|
59
|
+
{
|
|
60
|
+
"mcpServers": {
|
|
61
|
+
"eventcatalog": { "url": "https://your-eventcatalog.com/docs/mcp" }
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### VS Code
|
|
67
|
+
|
|
68
|
+
Use Copilot's agent mode.
|
|
69
|
+
|
|
70
|
+
```json title=".vscode/mcp.json"
|
|
71
|
+
{
|
|
72
|
+
"servers": {
|
|
73
|
+
"eventcatalog": { "type": "http", "url": "https://your-eventcatalog.com/docs/mcp" }
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Agents in your browser
|
|
79
|
+
|
|
80
|
+
In the **Connect your AI agent** dialog, choose **This browser**, then **Turn on**. Agents in your browser, such as the MCP-B extension, can then use the open canvas through WebMCP.
|
|
81
|
+
|
|
82
|
+
## The canvas inside your chat
|
|
83
|
+
|
|
84
|
+
In clients that support [MCP Apps](/docs/development/ask-your-architecture/mcp-server/getting-started#interactive-diagrams-and-schemas), such as Claude and ChatGPT, the agent can open the canvas inside the conversation. You and the agent work on it there, and everyone with the canvas open in EventCatalog sees the same changes.
|
|
85
|
+
|
|
86
|
+
## Things to ask
|
|
87
|
+
|
|
88
|
+
**Design ideas together**
|
|
89
|
+
|
|
90
|
+
- "Add a payments service that listens to OrderPlaced"
|
|
91
|
+
- "How could we split the orders service?"
|
|
92
|
+
- "Add retries and a dead letter queue to this"
|
|
93
|
+
|
|
94
|
+
**Understand how it works**
|
|
95
|
+
|
|
96
|
+
- "Put everything the Orders domain owns on the canvas"
|
|
97
|
+
- "Walk me through what happens when a payment fails"
|
|
98
|
+
- "Which services consume this event?"
|
|
99
|
+
|
|
100
|
+
Agents work from your catalog, so the services and messages they add are the ones your teams document. They talk to you in the chat, and only comment on the canvas when you ask them to, for example to review it.
|
|
101
|
+
|
|
102
|
+
See the [reference](/docs/development/studio/reference#mcp-tools) for the MCP tools agents use.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 6
|
|
3
|
+
keywords:
|
|
4
|
+
- EventCatalog Studio
|
|
5
|
+
- production
|
|
6
|
+
- deployment
|
|
7
|
+
sidebar_label: Run Studio in production
|
|
8
|
+
title: Run Studio in production
|
|
9
|
+
description: Turn on Studio for a deployed catalog.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
Studio is on when you run `eventcatalog dev`. To use it in a deployed catalog, run your catalog in [server mode](/docs/development/deployment/build-ssr-mode) and turn Studio on. Studio isn't available in a static build.
|
|
13
|
+
|
|
14
|
+
1. In `eventcatalog.config.js`, set `output` to `'server'` and `studio.enabled` to `true`:
|
|
15
|
+
|
|
16
|
+
```js title="eventcatalog.config.js"
|
|
17
|
+
export default {
|
|
18
|
+
output: 'server',
|
|
19
|
+
studio: {
|
|
20
|
+
enabled: true,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
2. [Set up persistent storage](/docs/development/studio/set-up-persistent-storage). Without it, canvases are lost when the server restarts.
|
|
26
|
+
|
|
27
|
+
3. Build your catalog and serve it with `eventcatalog start`:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npx eventcatalog build
|
|
31
|
+
npx eventcatalog start
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Behind a proxy or load balancer
|
|
35
|
+
|
|
36
|
+
- **Forward WebSocket connections.** Live collaboration uses a WebSocket on the same port as your catalog.
|
|
37
|
+
- **Trust your HTTPS host.** If your proxy serves the catalog over HTTPS, add your host to `security.allowedDomains`. Otherwise forms such as **New canvas** fail the origin check.
|
|
38
|
+
|
|
39
|
+
```js title="eventcatalog.config.js"
|
|
40
|
+
export default {
|
|
41
|
+
output: 'server',
|
|
42
|
+
security: {
|
|
43
|
+
allowedDomains: [{ hostname: 'catalog.example.com', protocol: 'https' }],
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Only let signed-in people in
|
|
49
|
+
|
|
50
|
+
Turn on [authentication](/docs/development/authentication/introduction). Only signed-in people can then open canvases.
|
|
51
|
+
|
|
52
|
+
## Turn Studio off
|
|
53
|
+
|
|
54
|
+
Set `studio.enabled` to `false`. This turns Studio off everywhere, including in `eventcatalog dev`.
|