@eventcatalog/core 5.0.0-beta.9 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +13 -12
- package/README.md +5 -5
- package/dist/analytics/analytics.cjs +1 -1
- package/dist/analytics/analytics.js +2 -2
- package/dist/analytics/log-build.cjs +91 -44
- package/dist/analytics/log-build.d.cts +2 -2
- package/dist/analytics/log-build.d.ts +2 -2
- package/dist/analytics/log-build.js +6 -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/catalog-runtime.cjs +1 -1
- package/dist/{chunk-ZEY2XUJN.js → chunk-46TBJZC3.js} +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-GAHKCOQM.js → chunk-DVHJTQWQ.js} +1 -1
- package/dist/{chunk-TZVDMWQX.js → chunk-HFR5OPHV.js} +4 -2
- package/dist/{chunk-4CFZUHGG.js → chunk-KTXSCPEK.js} +1 -1
- package/dist/{chunk-ENAG6UH7.js → chunk-NKNOXQ62.js} +1 -6
- package/dist/{chunk-36RYTYT5.js → chunk-PD7KTSYN.js} +1 -1
- package/dist/chunk-S5GWAUG5.js +29 -0
- package/dist/{chunk-EUNQJO3J.js → chunk-UWAXRTAJ.js} +1 -1
- package/dist/{chunk-JQMYHZWI.js → chunk-YPWK5ITM.js} +15 -7
- 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 +340 -249
- package/dist/eventcatalog.config.d.cts +18 -15
- package/dist/eventcatalog.config.d.ts +18 -15
- package/dist/eventcatalog.js +46 -28
- 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 +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 +12 -12
- 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
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 1
|
|
3
|
+
keywords:
|
|
4
|
+
- license
|
|
5
|
+
- license.jwt
|
|
6
|
+
- EC_LICENSE
|
|
7
|
+
- trial
|
|
8
|
+
- offline license
|
|
9
|
+
sidebar_label: License file
|
|
10
|
+
title: License file
|
|
11
|
+
description: Where to put your license.jwt file, how EventCatalog verifies it, and how EventCatalog shows your license and trial status.
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
import AddedIn from '@site/src/components/MDX/AddedIn';
|
|
15
|
+
|
|
16
|
+
<AddedIn version="5.0.0" />
|
|
17
|
+
|
|
18
|
+
From v5, EventCatalog is licensed under the Business Source License 1.1 and every feature is included (on a paid plan, federation is Enterprise only). Your license is a signed file called `license.jwt`. EventCatalog reads it to show who the catalog is licensed to and when the license expires.
|
|
19
|
+
|
|
20
|
+
This page covers how the file works. To find out whether you need a commercial license, read the [licensing FAQ](/license-faq). For prices, see [pricing](/pricing).
|
|
21
|
+
|
|
22
|
+
:::info Using v4 license keys?
|
|
23
|
+
|
|
24
|
+
License keys such as `EVENTCATALOG_SCALE_LICENSE_KEY` are covered in [License Keys (v4)](/docs/development/license-keys/overview).
|
|
25
|
+
|
|
26
|
+
:::
|
|
27
|
+
|
|
28
|
+
## Get a license file
|
|
29
|
+
|
|
30
|
+
Get your `license.jwt` from [EventCatalog Cloud](https://eventcatalog.cloud). Free users confirm their eligibility there, and commercial customers get a file with their license. See [license keys in the FAQ](/license-faq#keys).
|
|
31
|
+
|
|
32
|
+
One file covers your whole organization. You don't need a file per catalog or per environment.
|
|
33
|
+
|
|
34
|
+
## Add the file to your catalog
|
|
35
|
+
|
|
36
|
+
Put `license.jwt` in the root of your catalog, next to `eventcatalog.config.js`.
|
|
37
|
+
|
|
38
|
+
```txt
|
|
39
|
+
my-catalog/
|
|
40
|
+
├── domains/
|
|
41
|
+
├── services/
|
|
42
|
+
├── eventcatalog.config.js
|
|
43
|
+
└── license.jwt
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
To keep the file somewhere else, set `EC_LICENSE` to the path of the file. `EC_LICENSE` is a file path, not the contents of the file.
|
|
47
|
+
|
|
48
|
+
```bash title=".env"
|
|
49
|
+
EC_LICENSE=/etc/secrets/eventcatalog/license.jwt
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
EventCatalog loads `.env` before it checks the license, so you can set `EC_LICENSE` there or in your shell.
|
|
53
|
+
|
|
54
|
+
### Use the file in CI/CD
|
|
55
|
+
|
|
56
|
+
You can commit `license.jwt` with your catalog. If you prefer not to, store its contents as a CI secret, write it to a file during the job, and point `EC_LICENSE` at that file:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# LICENSE_JWT is a CI secret that holds the contents of license.jwt
|
|
60
|
+
echo "$LICENSE_JWT" > "$RUNNER_TEMP/license.jwt"
|
|
61
|
+
export EC_LICENSE="$RUNNER_TEMP/license.jwt"
|
|
62
|
+
|
|
63
|
+
npx eventcatalog build
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## How the file is verified
|
|
67
|
+
|
|
68
|
+
EventCatalog verifies the file offline, against a public key built into EventCatalog. It checks the signature, the issuer, the audience, and the dates the license is valid from and until.
|
|
69
|
+
|
|
70
|
+
There are no calls home: the license works air-gapped, and nothing about your catalog is sent to EventCatalog to verify it.
|
|
71
|
+
|
|
72
|
+
When you change the file, EventCatalog verifies it again.
|
|
73
|
+
|
|
74
|
+
## License status in the terminal
|
|
75
|
+
|
|
76
|
+
`eventcatalog dev` and `eventcatalog build` print the catalog's license status when they start.
|
|
77
|
+
|
|
78
|
+
With a valid license, they show who it's licensed to and when it expires:
|
|
79
|
+
|
|
80
|
+
```txt
|
|
81
|
+
╭────── EventCatalog Commercial License ──────╮
|
|
82
|
+
│ │
|
|
83
|
+
│ Licensed to Acme Ltd │
|
|
84
|
+
│ Valid until Oct 1, 2027 (359 days left) │
|
|
85
|
+
│ │
|
|
86
|
+
╰─────────────────────────────────────────────╯
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
| Status | What the terminal shows |
|
|
90
|
+
| --- | --- |
|
|
91
|
+
| Valid license | A green **EventCatalog Commercial License** box with who it's licensed to and the expiry date. |
|
|
92
|
+
| Expires in fewer than 30 days | A yellow box with the days left and a link to [eventcatalog.cloud](https://eventcatalog.cloud) to renew it. |
|
|
93
|
+
| Expired license | A yellow **EventCatalog License Expired** box with the date it expired, a link to renew it, and the trial status. |
|
|
94
|
+
| Invalid license | A yellow **EventCatalog license** box with the reason, the trial status, and a link to the licensing FAQ. |
|
|
95
|
+
| No license | An **EventCatalog trial** box with the days left of the trial and when it ends. |
|
|
96
|
+
|
|
97
|
+
A license is invalid when it can't be verified, for example when:
|
|
98
|
+
|
|
99
|
+
- the file is empty
|
|
100
|
+
- it is not valid yet
|
|
101
|
+
- its signature is invalid
|
|
102
|
+
- it was not issued by EventCatalog
|
|
103
|
+
- it has no expiry date
|
|
104
|
+
|
|
105
|
+
## License status in the catalog
|
|
106
|
+
|
|
107
|
+
### Header badge
|
|
108
|
+
|
|
109
|
+
While you run `eventcatalog dev`, the header shows a badge for your license or trial. The badge never appears in built or served catalogs.
|
|
110
|
+
|
|
111
|
+
| Status | Badge | Links to |
|
|
112
|
+
| --- | --- | --- |
|
|
113
|
+
| No license | **Trial · N days left**, counting down the trial | [Licensing FAQ](/license-faq) |
|
|
114
|
+
| No license, trial over | **Trial ended** | [Licensing FAQ](/license-faq) |
|
|
115
|
+
| Valid license, 30 or more days left | No badge | |
|
|
116
|
+
| Valid license, fewer than 30 days left | **License · N days left** | Settings > License |
|
|
117
|
+
| Expired license | **License expired** | Settings > License |
|
|
118
|
+
|
|
119
|
+
### Settings > License
|
|
120
|
+
|
|
121
|
+
**Settings > License** (`/settings/license`) shows the catalog's license. For a valid license it lists:
|
|
122
|
+
|
|
123
|
+
- **Licensed to**
|
|
124
|
+
- **License ID**
|
|
125
|
+
- **Issued**
|
|
126
|
+
- **Expires**
|
|
127
|
+
- **Time left**
|
|
128
|
+
|
|
129
|
+
When the license has fewer than 30 days left, or has expired, the page shows a callout with a **Renew license** button that opens [EventCatalog Cloud](https://eventcatalog.cloud). When the file can't be verified, the page shows the reason.
|
|
130
|
+
|
|
131
|
+
Without a valid license, the page also shows the trial: its length, when it started, when it ends and the time left.
|
|
132
|
+
|
|
133
|
+
In a static build, the page shows the license as it was when you built the catalog. The days left are counted in the browser, so they stay current.
|
|
134
|
+
|
|
135
|
+
## The trial
|
|
136
|
+
|
|
137
|
+
Without a valid license, EventCatalog counts down a trial, starting from when you first ran your catalog.
|
|
138
|
+
|
|
139
|
+
The trial countdown in EventCatalog is a reminder. The terms of the evaluation, and what to do when it ends, are in the [licensing FAQ](/license-faq#production).
|
|
140
|
+
|
|
141
|
+
## When a trial or license ends
|
|
142
|
+
|
|
143
|
+
Your catalog keeps building and running. EventCatalog never fails a build, or turns features off, because a trial ended or a license expired. It shows reminders in the terminal, in the dev header and on Settings > License.
|
|
144
|
+
|
|
145
|
+
To renew a license, get a new `license.jwt` from [EventCatalog Cloud](https://eventcatalog.cloud) and replace the file.
|
|
146
|
+
|
|
147
|
+
## v4 license keys
|
|
148
|
+
|
|
149
|
+
EventCatalog checks for a `license.jwt` first. If there isn't a valid one, it still recognizes a Scale or Starter license key (`EVENTCATALOG_SCALE_LICENSE_KEY` or `EVENTCATALOG_STARTER_LICENSE_KEY`). With one of those keys, EventCatalog shows no trial, and Settings > License shows the plan as active.
|
|
150
|
+
|
|
151
|
+
These keys are verified online, as they were in v4. See [License Keys (v4)](/docs/development/license-keys/overview).
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"label": "License",
|
|
3
|
+
"position": 10.5,
|
|
4
|
+
"collapsible": true,
|
|
5
|
+
"collapsed": true,
|
|
6
|
+
"link": {
|
|
7
|
+
"type": "generated-index",
|
|
8
|
+
"slug": "development/license",
|
|
9
|
+
"title": "License",
|
|
10
|
+
"description": "How EventCatalog v5 reads and verifies your license file, and how the trial works."
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"label": "License Keys",
|
|
2
|
+
"label": "License Keys (v4)",
|
|
3
3
|
"position": 11,
|
|
4
4
|
"collapsible": true,
|
|
5
5
|
"collapsed": true,
|
|
6
6
|
"link": {
|
|
7
7
|
"type": "generated-index",
|
|
8
8
|
"slug": "development/license-keys",
|
|
9
|
-
"title": "License Keys",
|
|
10
|
-
"description": "How
|
|
9
|
+
"title": "License Keys (v4)",
|
|
10
|
+
"description": "How license keys worked in EventCatalog v4 and earlier. From v5, everything is included: see the licensing FAQ."
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -7,46 +7,16 @@ keywords:
|
|
|
7
7
|
- openapi
|
|
8
8
|
- asyncapi
|
|
9
9
|
sidebar_label: Integrations
|
|
10
|
-
title:
|
|
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.
|