@eventcatalog/core 5.0.0-beta.9 → 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 +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-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-JZN4RSMF.js} +1 -1
- package/dist/{chunk-JQMYHZWI.js → chunk-NEAVAFSJ.js} +16 -8
- package/dist/{chunk-4CFZUHGG.js → chunk-NIVST4WY.js} +1 -1
- package/dist/{chunk-ENAG6UH7.js → chunk-NKNOXQ62.js} +1 -6
- package/dist/{chunk-ZEY2XUJN.js → chunk-OX6TSVHY.js} +6 -6
- package/dist/{chunk-36RYTYT5.js → chunk-PD7KTSYN.js} +1 -1
- package/dist/{chunk-EUNQJO3J.js → chunk-RE7UTPWH.js} +1 -1
- package/dist/chunk-S5GWAUG5.js +29 -0
- package/dist/{chunk-TZVDMWQX.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 +340 -249
- package/dist/eventcatalog.config.d.cts +18 -15
- package/dist/eventcatalog.config.d.ts +18 -15
- package/dist/eventcatalog.js +51 -33
- package/dist/features.cjs +36 -49
- package/dist/features.d.cts +1 -3
- package/dist/features.d.ts +1 -3
- package/dist/features.js +4 -6
- package/dist/federation/federate.cjs +37 -44
- package/dist/federation/federate.js +5 -5
- package/dist/federation/source-provider.js +2 -2
- package/dist/generate.cjs +37 -42
- package/dist/generate.js +4 -4
- package/dist/resolve-catalog-dependencies.cjs +34 -41
- package/dist/resolve-catalog-dependencies.js +2 -2
- package/dist/runtime-dependencies/@eventcatalog__visualiser__studio-fonts.css.mjs +3 -0
- package/dist/runtime-dependencies/@eventcatalog__visualiser__studio.css.mjs +3 -0
- package/dist/runtime-dependencies/@eventcatalog__visualiser__studio.mjs +3 -0
- package/dist/runtime-dependencies/htmlparser2.mjs +3 -0
- package/dist/runtime-dependencies/manifest.json +5 -1
- package/dist/runtime-dependencies/react-syntax-highlighter__dist__cjs__create-element.js.mjs +3 -0
- package/dist/utils/child-process-signals.cjs +53 -0
- package/dist/utils/child-process-signals.d.cts +19 -0
- package/dist/utils/child-process-signals.d.ts +19 -0
- package/dist/utils/child-process-signals.js +6 -0
- package/dist/utils/cli-logger.cjs +1 -1
- package/dist/utils/cli-logger.js +2 -2
- package/dist/utils/license-status.cjs +11 -4
- package/dist/utils/license-status.d.cts +3 -2
- package/dist/utils/license-status.d.ts +3 -2
- package/dist/utils/license-status.js +1 -1
- package/eventcatalog/astro.config.mjs +21 -1
- package/eventcatalog/integrations/config-loader.mjs +56 -58
- package/eventcatalog/integrations/skip-startup-reload.mjs +31 -0
- package/eventcatalog/integrations/stable-dependency-order.mjs +29 -0
- package/eventcatalog/integrations/storage.mjs +20 -0
- package/eventcatalog/integrations/studio-server.mjs +4 -1
- package/eventcatalog/src/components/CatalogGraph/CatalogForceGraph.tsx +39 -0
- package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +2 -0
- package/eventcatalog/src/components/Homepage/CatalogDashboard.astro +342 -0
- package/eventcatalog/src/components/MDX/NodeGraph/AstroNodeGraph.tsx +60 -4
- package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.astro +5 -1
- package/eventcatalog/src/components/NavigationProgress.astro +7 -0
- package/eventcatalog/src/components/SchemaExplorer/ApiContentViewer.tsx +2 -0
- package/eventcatalog/src/components/SchemaExplorer/ExamplesViewer.tsx +2 -0
- package/eventcatalog/src/components/SchemaExplorer/SchemaCodeModal.tsx +2 -0
- package/eventcatalog/src/components/SchemaExplorer/SchemaContentViewer.tsx +2 -0
- package/eventcatalog/src/components/Search/SearchDataLoader.astro +16 -28
- package/eventcatalog/src/components/Search/SearchModal.tsx +2 -10
- package/eventcatalog/src/components/Search/search-utils.ts +26 -0
- package/eventcatalog/src/components/Seo.astro +5 -1
- package/eventcatalog/src/components/Settings/AssistantSettingsForm.tsx +53 -48
- package/eventcatalog/src/components/Settings/GeneralSettingsForm.tsx +183 -178
- package/eventcatalog/src/components/Settings/LicenseSettings.tsx +140 -31
- package/eventcatalog/src/components/Settings/LlmAccessSettingsForm.tsx +40 -35
- package/eventcatalog/src/components/Settings/LogoUpload.tsx +1 -1
- package/eventcatalog/src/components/Settings/McpSettingsForm.tsx +9 -8
- package/eventcatalog/src/components/Settings/Row.tsx +7 -4
- package/eventcatalog/src/components/Settings/SettingsShared.tsx +3 -3
- package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +37 -76
- package/eventcatalog/src/components/SideNav/NestedSideBar/storage.ts +2 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/utils.ts +122 -1
- package/eventcatalog/src/components/SideNav/SideNav.astro +9 -1
- package/eventcatalog/src/components/TrialBadge.astro +20 -9
- package/eventcatalog/src/content.config.ts +19 -2
- package/eventcatalog/src/features/auth/error.astro +4 -2
- package/eventcatalog/src/features/auth/login.astro +2 -1
- package/eventcatalog/src/features/auth/middleware/middleware-auth.ts +21 -1
- package/eventcatalog/src/features/auth/unauthorized.astro +1 -1
- package/eventcatalog/src/features/fields/pages/fields.astro +1 -1
- package/eventcatalog/src/features/integrations/eventcatalog-features.ts +13 -7
- package/eventcatalog/src/features/mcp/apps/architecture-diagram/node-chat.tsx +6 -45
- package/eventcatalog/src/features/mcp/apps/canvas/shared.ts +3 -3
- package/eventcatalog/src/features/mcp/apps/canvas/styles.css +3 -1
- package/eventcatalog/src/features/mcp/apps/canvas/view.tsx +7 -5
- package/eventcatalog/src/features/mcp/apps/generated/canvas.html +123 -98
- package/eventcatalog/src/features/mcp/apps/generated/viewer.html +118 -101
- package/eventcatalog/src/features/mcp/mcp-server.ts +20 -4
- package/eventcatalog/src/features/server/start.ts +25 -0
- package/eventcatalog/src/features/storage/database.ts +88 -0
- package/eventcatalog/src/features/storage/migrations.ts +85 -0
- package/eventcatalog/src/features/storage/sql/database.sql +5 -0
- package/eventcatalog/src/features/storage/sql/migrations/0001-studio-canvases.sql +12 -0
- package/eventcatalog/src/features/storage/sql/migrations.sql +15 -0
- package/eventcatalog/src/features/storage/sql.ts +28 -0
- package/eventcatalog/src/features/studio/agent-choreography.ts +13 -10
- package/eventcatalog/src/features/studio/agents.ts +28 -0
- package/eventcatalog/src/features/studio/api/canvases-api.ts +219 -0
- package/eventcatalog/src/features/studio/api/canvases.ts +25 -0
- package/eventcatalog/src/features/studio/api/client.ts +40 -0
- package/eventcatalog/src/features/studio/canvas-actions.ts +160 -34
- package/eventcatalog/src/features/studio/canvas-preview.ts +1 -2
- package/eventcatalog/src/features/studio/catalog.ts +16 -14
- package/eventcatalog/src/features/studio/components/CanvasHeader.tsx +274 -105
- package/eventcatalog/src/features/studio/components/CanvasStatusMenu.tsx +15 -14
- package/eventcatalog/src/features/studio/components/ConnectAgentDialog.tsx +272 -119
- package/eventcatalog/src/features/studio/components/ConnectionsChooser.tsx +1 -2
- package/eventcatalog/src/features/studio/components/DeleteCanvasDialog.tsx +65 -0
- package/eventcatalog/src/features/studio/components/Dialog.tsx +60 -0
- package/eventcatalog/src/features/studio/components/JoinForm.tsx +101 -26
- package/eventcatalog/src/features/studio/components/LeftPanel.tsx +122 -230
- package/eventcatalog/src/features/studio/components/NodeDetails.tsx +183 -0
- package/eventcatalog/src/features/studio/components/OpenInStudioDialog.tsx +79 -0
- package/eventcatalog/src/features/studio/components/Presence.tsx +52 -45
- package/eventcatalog/src/features/studio/components/ShareDialog.tsx +277 -141
- package/eventcatalog/src/features/studio/components/ShortcutsDialog.tsx +41 -0
- package/eventcatalog/src/features/studio/components/StudioDesigner.tsx +1314 -385
- package/eventcatalog/src/features/studio/components/StudioNotice.astro +24 -0
- package/eventcatalog/src/features/studio/document-name.ts +7 -0
- package/eventcatalog/src/features/studio/from-visualiser.ts +138 -0
- package/eventcatalog/src/features/studio/hooks/presence-sender.ts +19 -2
- package/eventcatalog/src/features/studio/hooks/use-canvas-webmcp.ts +9 -3
- package/eventcatalog/src/features/studio/hooks/use-comments.ts +2 -2
- package/eventcatalog/src/features/studio/hooks/use-follow-camera.ts +8 -3
- package/eventcatalog/src/features/studio/hooks/use-studio-flow.ts +244 -32
- package/eventcatalog/src/features/studio/identity.ts +25 -1
- package/eventcatalog/src/features/studio/limits.ts +2 -0
- package/eventcatalog/src/features/studio/pages/[id].astro +42 -16
- package/eventcatalog/src/features/studio/pages/index.astro +596 -373
- package/eventcatalog/src/features/studio/pages/webmcp-relay.ts +12 -15
- package/eventcatalog/src/features/studio/server/canvas-mcp.ts +8 -23
- package/eventcatalog/src/features/studio/server/runtime.ts +150 -46
- package/eventcatalog/src/features/studio/server/sql/storage.sql +18 -0
- package/eventcatalog/src/features/studio/server/storage.ts +53 -73
- package/eventcatalog/src/features/studio/webmcp-relay/LICENSE +21 -0
- package/eventcatalog/src/features/studio/webmcp-relay/README.md +5 -0
- package/eventcatalog/src/features/studio/webmcp-relay/embed.js +2 -0
- package/eventcatalog/src/features/studio/webmcp-relay/widget.html +10 -0
- package/eventcatalog/src/features/studio/webmcp-relay/widget.js +1 -0
- package/eventcatalog/src/features/tools/catalog-tools.ts +3 -1
- package/eventcatalog/src/layouts/BaseLayout.astro +4 -4
- package/eventcatalog/src/layouts/SettingsLayout.astro +2 -2
- package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +3 -2
- package/eventcatalog/src/pages/_index.astro +5 -342
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.spec.ts +2 -3
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +3 -1
- package/eventcatalog/src/pages/diagrams/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/diagrams/[id]/[version]/embed.astro +1 -0
- package/eventcatalog/src/pages/diagrams/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/directory/[type]/_index.data.ts +5 -7
- package/eventcatalog/src/pages/directory/[type]/index.astro +3 -1
- package/eventcatalog/src/pages/discover/[type]/_index.data.ts +5 -7
- package/eventcatalog/src/pages/discover/[type]/index.astro +3 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/[filename].astro +3 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/_[filename].data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/examples/[...filename].astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/examples/_[...filename].data.ts +0 -4
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/field-lineage/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/field-lineage/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/[filename].astro +3 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/_[filename].data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.spec.ts +2 -3
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/[filename].astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/_[filename].data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/index.astro +2 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/language/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/language/index.astro +1 -0
- package/eventcatalog/src/pages/docs/custom/[...path]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/custom/[...path]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/services/[id]/[docType]/[docId]/index.astro +1 -1
- package/eventcatalog/src/pages/docs/services/[id]/[version]/resources/index.astro +1 -0
- package/eventcatalog/src/pages/docs/services/[id]/asyncapi/[filename].astro +1 -1
- package/eventcatalog/src/pages/docs/services/[id]/changelog/index.astro +1 -1
- package/eventcatalog/src/pages/docs/services/[id]/graphql/[filename].astro +1 -1
- package/eventcatalog/src/pages/docs/services/[id]/spec/[filename].astro +1 -1
- package/eventcatalog/src/pages/docs/teams/[id]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/teams/[id]/index.astro +1 -0
- package/eventcatalog/src/pages/docs/users/[id]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/docs/users/[id]/index.astro +1 -0
- package/eventcatalog/src/pages/index.astro +4 -2
- package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/index.astro +9 -1
- package/eventcatalog/src/pages/schemas/explorer/_index.data.ts +0 -7
- package/eventcatalog/src/pages/schemas/explorer/index.astro +4 -2
- package/eventcatalog/src/pages/settings/license.astro +9 -1
- package/eventcatalog/src/pages/triggers/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/triggers/[type]/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/data/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/data/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/_index.data.ts +38 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/index.astro +18 -41
- package/eventcatalog/src/pages/visualiser/designs/[id]/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/designs/[id]/index.astro +2 -1
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/_index.data.ts +0 -7
- package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/index.astro +1 -0
- package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/index.astro +1 -0
- package/eventcatalog/src/types/react-syntax-highlighter.d.ts +10 -0
- package/eventcatalog/src/utils/collections/flows.ts +20 -7
- package/eventcatalog/src/utils/collections/resource-owners.ts +8 -2
- package/eventcatalog/src/utils/collections/resources.ts +2 -0
- package/eventcatalog/src/utils/collections/util.ts +8 -4
- package/eventcatalog/src/utils/git.ts +11 -0
- package/eventcatalog/src/utils/homepage-dashboard.ts +143 -0
- package/eventcatalog/src/utils/license.ts +1 -1
- package/eventcatalog/src/utils/link-validation.ts +25 -19
- package/eventcatalog/src/utils/node-graphs/domain-entity-map.ts +3 -1
- package/eventcatalog/src/utils/node-graphs/domain-levels-node-graph.ts +3 -3
- package/eventcatalog/src/utils/node-graphs/field-node-graph.ts +4 -2
- package/eventcatalog/src/utils/node-graphs/layout-node-graph.ts +20 -1
- package/eventcatalog/src/utils/node-graphs/node-resource.ts +67 -0
- package/eventcatalog/src/utils/node-graphs/systems-node-graph.ts +1 -1
- package/eventcatalog/src/utils/page-loaders/hybrid-page.ts +4 -15
- package/eventcatalog/src/utils/page-title.ts +15 -0
- package/eventcatalog/src/utils/syntax-highlighter-renderer.ts +64 -0
- package/eventcatalog/src/utils/trial.ts +13 -0
- package/package.json +11 -11
- package/dist/docs/development/ask-your-architecture/05-skills/02-installation.md +0 -60
- package/dist/docs/development/ask-your-architecture/05-skills/_category_.json +0 -11
- package/dist/docs/development/ask-your-architecture/06-slack-integration/01-introduction.md +0 -63
- package/dist/docs/development/ask-your-architecture/06-slack-integration/02-slack-app-setup.md +0 -154
- package/dist/docs/development/ask-your-architecture/06-slack-integration/03-installation.md +0 -169
- package/dist/docs/development/ask-your-architecture/06-slack-integration/04-deployment.md +0 -236
- package/dist/docs/development/ask-your-architecture/06-slack-integration/05-usage.md +0 -140
- package/dist/docs/development/ask-your-architecture/06-slack-integration/06-troubleshooting.md +0 -268
- package/dist/docs/development/ask-your-architecture/06-slack-integration/_category_.json +0 -13
- package/dist/docs/development/guides/domains/06-visualize-domains/01-domain-integration-map.md +0 -40
- package/dist/runtime-dependencies/@mcp-b__webmcp-local-relay.mjs +0 -3
- package/eventcatalog/src/features/studio/canvas-doc.ts +0 -409
- package/eventcatalog/src/features/studio/clipboard.ts +0 -97
- package/eventcatalog/src/features/studio/components/CanvasControls.tsx +0 -154
- package/eventcatalog/src/features/studio/components/Comments.tsx +0 -770
- package/eventcatalog/src/features/studio/components/ContainerChooser.tsx +0 -145
- package/eventcatalog/src/features/studio/components/DragGhost.tsx +0 -115
- package/eventcatalog/src/features/studio/components/Picture.tsx +0 -21
- package/eventcatalog/src/features/studio/components/PropertiesPanel.tsx +0 -212
- package/eventcatalog/src/features/studio/components/canvas-nodes.tsx +0 -255
- package/eventcatalog/src/features/studio/components/icons.ts +0 -53
- package/eventcatalog/src/features/studio/components/status.ts +0 -51
- package/eventcatalog/src/features/studio/edges.ts +0 -56
- package/eventcatalog/src/features/studio/flow-state.ts +0 -92
- package/eventcatalog/src/features/studio/grouping.ts +0 -226
- package/eventcatalog/src/features/studio/layout.ts +0 -42
- package/eventcatalog/src/features/studio/levels.ts +0 -282
- package/eventcatalog/src/features/studio/node-types.ts +0 -205
- package/eventcatalog/src/features/studio/pages/new.astro +0 -24
- package/eventcatalog/src/features/studio/pages/wake.ts +0 -15
- package/eventcatalog/src/features/studio/placement.ts +0 -197
- package/eventcatalog/src/features/studio/studio.css +0 -273
- package/dist/{chunk-A2RZR3U4.js → chunk-6K7XZAYI.js} +3 -3
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// src/analytics/studio-usage.js
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
var DAY_IN_MS = 24 * 60 * 60 * 1e3;
|
|
5
|
+
var DEFAULT_DATABASE_PATH = ".eventcatalog/eventcatalog.db";
|
|
6
|
+
var getStudioMode = (configFile) => {
|
|
7
|
+
const enabled = configFile.studio?.enabled;
|
|
8
|
+
if (enabled === false) return "off";
|
|
9
|
+
return configFile.output === "server" && enabled === true ? "server" : "dev";
|
|
10
|
+
};
|
|
11
|
+
var getStorageType = (configFile) => configFile.storage?.type || "memory";
|
|
12
|
+
var loadSqlite = () => {
|
|
13
|
+
const emitWarning = process.emitWarning;
|
|
14
|
+
process.emitWarning = function(warning, ...args) {
|
|
15
|
+
const type = typeof args[0] === "object" ? args[0]?.type : args[0];
|
|
16
|
+
const message = typeof warning === "string" ? warning : warning?.message;
|
|
17
|
+
if (type === "ExperimentalWarning" && message?.startsWith("SQLite")) return;
|
|
18
|
+
return emitWarning.call(this, warning, ...args);
|
|
19
|
+
};
|
|
20
|
+
try {
|
|
21
|
+
return process.getBuiltinModule?.("node:sqlite");
|
|
22
|
+
} catch {
|
|
23
|
+
return void 0;
|
|
24
|
+
} finally {
|
|
25
|
+
process.emitWarning = emitWarning;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
var UNKNOWN = "canvases:unknown";
|
|
29
|
+
var serializeStudioUsage = (projectDirectory, configFile, now = Date.now()) => {
|
|
30
|
+
if (getStudioMode(configFile) === "off" || getStorageType(configFile) !== "sqlite") return UNKNOWN;
|
|
31
|
+
const file = path.resolve(projectDirectory, configFile.storage.path ?? DEFAULT_DATABASE_PATH);
|
|
32
|
+
if (!fs.existsSync(file)) return "canvases:0,changed7d:0,changed30d:0,deleted:0";
|
|
33
|
+
let database;
|
|
34
|
+
try {
|
|
35
|
+
const sqlite = loadSqlite();
|
|
36
|
+
if (!sqlite?.DatabaseSync) return UNKNOWN;
|
|
37
|
+
database = new sqlite.DatabaseSync(file, { readOnly: true });
|
|
38
|
+
const canvases = database.prepare(
|
|
39
|
+
"SELECT COUNT(*) AS total, SUM(updated_at >= ?) AS changed7d, SUM(updated_at >= ?) AS changed30d FROM studio_canvases"
|
|
40
|
+
).get(now - 7 * DAY_IN_MS, now - 30 * DAY_IN_MS);
|
|
41
|
+
const { deleted } = database.prepare("SELECT COUNT(*) AS deleted FROM studio_deleted_canvases").get();
|
|
42
|
+
return `canvases:${canvases.total},changed7d:${canvases.changed7d ?? 0},changed30d:${canvases.changed30d ?? 0},deleted:${deleted}`;
|
|
43
|
+
} catch {
|
|
44
|
+
return UNKNOWN;
|
|
45
|
+
} finally {
|
|
46
|
+
database?.close();
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export {
|
|
51
|
+
getStudioMode,
|
|
52
|
+
getStorageType,
|
|
53
|
+
serializeStudioUsage
|
|
54
|
+
};
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
getLicenseAnalytics
|
|
3
|
+
} from "./chunk-AD7CL772.js";
|
|
4
4
|
import {
|
|
5
5
|
countResources,
|
|
6
6
|
hashCatalogContent,
|
|
7
7
|
serializeCounts
|
|
8
8
|
} from "./chunk-ZAZHAVKB.js";
|
|
9
|
+
import {
|
|
10
|
+
getStorageType,
|
|
11
|
+
getStudioMode,
|
|
12
|
+
serializeStudioUsage
|
|
13
|
+
} from "./chunk-CA6WCQ2T.js";
|
|
14
|
+
import {
|
|
15
|
+
raiseEvent
|
|
16
|
+
} from "./chunk-NIVST4WY.js";
|
|
9
17
|
import {
|
|
10
18
|
TELEMETRY_REQUEST_TIMEOUT_MS,
|
|
11
19
|
isTelemetryDisabled
|
|
12
20
|
} from "./chunk-CPW6G62V.js";
|
|
13
|
-
import {
|
|
14
|
-
getLicenseAnalytics
|
|
15
|
-
} from "./chunk-AWOO63ME.js";
|
|
16
21
|
import {
|
|
17
22
|
getEventCatalogConfigFile,
|
|
18
23
|
verifyRequiredFieldsAreInCatalogConfigFile
|
|
19
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-4G7FSRPN.js";
|
|
20
25
|
|
|
21
26
|
// src/analytics/log-build.js
|
|
22
27
|
var isMCPEnabled = (configFile) => configFile.output === "server" && (configFile.mcp?.enabled ?? true);
|
|
@@ -31,7 +36,9 @@ var getFeatures = async (configFile) => {
|
|
|
31
36
|
environments: Array.isArray(configFile.environments) && configFile.environments.length > 0,
|
|
32
37
|
output: configFile.output || "static",
|
|
33
38
|
mcp,
|
|
34
|
-
mcpAuth: mcp && (configFile.mcp?.auth?.enabled ?? false)
|
|
39
|
+
mcpAuth: mcp && (configFile.mcp?.auth?.enabled ?? false),
|
|
40
|
+
studio: getStudioMode(configFile),
|
|
41
|
+
storage: getStorageType(configFile)
|
|
35
42
|
};
|
|
36
43
|
};
|
|
37
44
|
var getDirectoryProvider = (source) => {
|
|
@@ -132,7 +139,8 @@ var main = async (projectDir, { command = "build", license } = {}) => {
|
|
|
132
139
|
generators: generatorNames.toString(),
|
|
133
140
|
features: Object.keys(features).map((feature) => `${feature}:${features[feature]}`).join(","),
|
|
134
141
|
directorySources: serializeDirectorySources(configFile),
|
|
135
|
-
resources: serializeCounts(resourceCounts)
|
|
142
|
+
resources: serializeCounts(resourceCounts),
|
|
143
|
+
studio: serializeStudioUsage(projectDir, configFile)
|
|
136
144
|
},
|
|
137
145
|
configFile
|
|
138
146
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getEventCatalogConfigFile
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4G7FSRPN.js";
|
|
4
4
|
|
|
5
5
|
// src/features.ts
|
|
6
6
|
import { join } from "path";
|
|
@@ -13,10 +13,6 @@ var isOutputServer = async () => {
|
|
|
13
13
|
const config = await getEventCatalogConfigFile(process.env.PROJECT_DIR || "");
|
|
14
14
|
return config?.output === "server";
|
|
15
15
|
};
|
|
16
|
-
var isStudioEnabled = async () => {
|
|
17
|
-
const config = await getEventCatalogConfigFile(process.env.PROJECT_DIR || "");
|
|
18
|
-
return config?.output === "server" && config?.studio?.enabled === true;
|
|
19
|
-
};
|
|
20
16
|
var isIndexedSearchEnabled = async () => {
|
|
21
17
|
const config = await getEventCatalogConfigFile(process.env.PROJECT_DIR || "");
|
|
22
18
|
return config?.search?.type === "indexed";
|
|
@@ -30,7 +26,6 @@ var isAuthEnabled = async () => {
|
|
|
30
26
|
export {
|
|
31
27
|
getProjectOutDir,
|
|
32
28
|
isOutputServer,
|
|
33
|
-
isStudioEnabled,
|
|
34
29
|
isIndexedSearchEnabled,
|
|
35
30
|
isAuthEnabled
|
|
36
31
|
};
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getFederationDiagnostics,
|
|
3
|
-
resolveFederationRules
|
|
4
|
-
} from "./chunk-JJPB6EOZ.js";
|
|
5
1
|
import {
|
|
6
2
|
withFederationOutputTransaction
|
|
7
3
|
} from "./chunk-WRNH5C3U.js";
|
|
@@ -10,13 +6,17 @@ import {
|
|
|
10
6
|
} from "./chunk-5EPNFDT5.js";
|
|
11
7
|
import {
|
|
12
8
|
createFederationSourceProvider
|
|
13
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-6K7XZAYI.js";
|
|
14
10
|
import {
|
|
15
11
|
createFederationContentCache
|
|
16
12
|
} from "./chunk-R7Z5ALYI.js";
|
|
13
|
+
import {
|
|
14
|
+
getFederationDiagnostics,
|
|
15
|
+
resolveFederationRules
|
|
16
|
+
} from "./chunk-JJPB6EOZ.js";
|
|
17
17
|
import {
|
|
18
18
|
getEventCatalogConfigFile
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-4G7FSRPN.js";
|
|
20
20
|
|
|
21
21
|
// src/federation/federate.ts
|
|
22
22
|
import { createHash } from "crypto";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// src/utils/child-process-signals.ts
|
|
2
|
+
import { constants } from "os";
|
|
3
|
+
var FORWARDED_SIGNALS = ["SIGINT", "SIGTERM", "SIGHUP"];
|
|
4
|
+
var isRunning = (child) => child.exitCode === null && child.signalCode === null;
|
|
5
|
+
var stopChildWithParent = (child, parent = process) => {
|
|
6
|
+
let received;
|
|
7
|
+
const onSignal = (signal) => {
|
|
8
|
+
received = signal;
|
|
9
|
+
if (isRunning(child)) child.kill(signal);
|
|
10
|
+
};
|
|
11
|
+
const onExit = () => {
|
|
12
|
+
if (isRunning(child)) child.kill("SIGTERM");
|
|
13
|
+
};
|
|
14
|
+
for (const signal of FORWARDED_SIGNALS) parent.on(signal, onSignal);
|
|
15
|
+
parent.on("exit", onExit);
|
|
16
|
+
return {
|
|
17
|
+
childClosed: () => {
|
|
18
|
+
for (const signal of FORWARDED_SIGNALS) parent.off(signal, onSignal);
|
|
19
|
+
parent.off("exit", onExit);
|
|
20
|
+
if (!received) return false;
|
|
21
|
+
parent.exit(128 + constants.signals[received]);
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export {
|
|
28
|
+
stopChildWithParent
|
|
29
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
logger
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JZN4RSMF.js";
|
|
4
4
|
import {
|
|
5
5
|
cleanup,
|
|
6
6
|
getEventCatalogConfigFile
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4G7FSRPN.js";
|
|
8
8
|
|
|
9
9
|
// src/generate.js
|
|
10
10
|
import path from "path";
|
|
@@ -54,10 +54,12 @@ var generate = async (PROJECT_DIRECTORY) => {
|
|
|
54
54
|
for (const { plugin } of errors) {
|
|
55
55
|
logger.error(` - ${plugin}`, "generator");
|
|
56
56
|
}
|
|
57
|
+
process.exitCode = 1;
|
|
57
58
|
}
|
|
58
59
|
} catch (error) {
|
|
59
60
|
console.error(error);
|
|
60
61
|
await cleanup(PROJECT_DIRECTORY);
|
|
62
|
+
process.exitCode = 1;
|
|
61
63
|
}
|
|
62
64
|
};
|
|
63
65
|
|
package/dist/constants.cjs
CHANGED
package/dist/constants.js
CHANGED
|
@@ -339,7 +339,7 @@ module.exports = {
|
|
|
339
339
|
|
|
340
340
|
### `navigation` {#navigation}
|
|
341
341
|
|
|
342
|
-
<AddedIn version="4.0" />
|
|
342
|
+
<AddedIn version="4.0.0" />
|
|
343
343
|
|
|
344
344
|
- Type: `object`
|
|
345
345
|
|
|
@@ -587,7 +587,7 @@ docs: {
|
|
|
587
587
|
Configuration for [EventCatalog Assistant](/docs/development/ask-your-architecture/eventcatalog-assistant/what-is-eventcatalog-assistant).
|
|
588
588
|
|
|
589
589
|
:::info
|
|
590
|
-
The `chat` property requires
|
|
590
|
+
The `chat` property requires `output: 'server'` to take effect.
|
|
591
591
|
:::
|
|
592
592
|
|
|
593
593
|
```js title="eventcatalog.config.js"
|
|
@@ -608,7 +608,7 @@ module.exports = {
|
|
|
608
608
|
|
|
609
609
|
Configuration for the built-in EventCatalog MCP server.
|
|
610
610
|
|
|
611
|
-
The MCP server requires
|
|
611
|
+
The MCP server requires `output: 'server'`. When that prerequisite is met, it is enabled by default. Set
|
|
612
612
|
`mcp.enabled` to `false` to prevent the MCP routes from being registered and hide the MCP connection actions on domain and
|
|
613
613
|
system pages.
|
|
614
614
|
|
|
@@ -623,14 +623,62 @@ module.exports = {
|
|
|
623
623
|
|
|
624
624
|
| Property | Type | Default | Description |
|
|
625
625
|
|---|---|---|---|
|
|
626
|
-
| `mcp.enabled` | `boolean` | `true` | Enables or disables the built-in MCP server when its SSR
|
|
626
|
+
| `mcp.enabled` | `boolean` | `true` | Enables or disables the built-in MCP server when its SSR prerequisite is met. |
|
|
627
627
|
|
|
628
628
|
See the [MCP server guide](/docs/development/ask-your-architecture/mcp-server/getting-started) for scoped domain and system
|
|
629
629
|
endpoints, client setup, and OAuth configuration.
|
|
630
630
|
|
|
631
|
+
### `studio` {#studio}
|
|
632
|
+
|
|
633
|
+
<AddedIn version="5.0.0" />
|
|
634
|
+
|
|
635
|
+
- Type: `object`
|
|
636
|
+
|
|
637
|
+
Configuration for [EventCatalog Studio](/docs/development/studio/introduction), the collaborative canvases at `/studio`.
|
|
638
|
+
|
|
639
|
+
Studio is on in `eventcatalog dev`. In production it needs `output: 'server'` and `studio.enabled: true`. Set
|
|
640
|
+
`studio.enabled` to `false` to turn it off everywhere.
|
|
641
|
+
|
|
642
|
+
```js title="eventcatalog.config.js"
|
|
643
|
+
module.exports = {
|
|
644
|
+
output: 'server',
|
|
645
|
+
studio: {
|
|
646
|
+
enabled: true,
|
|
647
|
+
},
|
|
648
|
+
};
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
| Option | Type | Default | Description |
|
|
652
|
+
| ------ | ---- | ------- | ----------- |
|
|
653
|
+
| `studio.enabled` | `boolean` | `false` | Turns Studio on in production (`output: 'server'`, served with `eventcatalog start`). Studio is on in `eventcatalog dev` unless this is `false`. |
|
|
654
|
+
|
|
655
|
+
See [Run Studio in production](/docs/development/studio/run-studio-in-production) and the [Studio configuration reference](/docs/development/studio/reference#configuration).
|
|
656
|
+
|
|
657
|
+
### `storage` {#storage}
|
|
658
|
+
|
|
659
|
+
<AddedIn version="5.0.0" />
|
|
660
|
+
|
|
661
|
+
- Type: `object`
|
|
662
|
+
|
|
663
|
+
Where EventCatalog keeps state between restarts, such as Studio's canvases.
|
|
664
|
+
|
|
665
|
+
```js title="eventcatalog.config.js"
|
|
666
|
+
module.exports = {
|
|
667
|
+
storage: {
|
|
668
|
+
type: 'sqlite',
|
|
669
|
+
path: '.eventcatalog/eventcatalog.db',
|
|
670
|
+
},
|
|
671
|
+
};
|
|
672
|
+
```
|
|
673
|
+
|
|
674
|
+
| Option | Type | Default | Description |
|
|
675
|
+
| ------ | ---- | ------- | ----------- |
|
|
676
|
+
| `storage.type` | `'memory'` \| `'sqlite'` | `'memory'` | `'memory'` keeps state while the server runs. `'sqlite'` keeps it in a database file. SQLite needs Node.js 22.13 or later. |
|
|
677
|
+
| `storage.path` | `string` | `'.eventcatalog/eventcatalog.db'` | The database file, relative to your catalog. In a container, put it on a volume so it survives redeploys. |
|
|
678
|
+
|
|
631
679
|
### `search` {#search}
|
|
632
680
|
|
|
633
|
-
<AddedIn version="3.36.
|
|
681
|
+
<AddedIn version="3.36.1" />
|
|
634
682
|
|
|
635
683
|
- Type: `object`
|
|
636
684
|
|
|
@@ -688,11 +736,13 @@ module.exports = {
|
|
|
688
736
|
- Type: `string`
|
|
689
737
|
|
|
690
738
|
:::tip
|
|
691
|
-
|
|
739
|
+
This gives you the ability to show your own GitHub repository in EventCatalog (in the header bar).
|
|
692
740
|
:::
|
|
693
741
|
|
|
694
742
|
URL to your repository for EventCatalog.
|
|
695
743
|
|
|
744
|
+
When set, the header shows a link to your repository next to the EventCatalog Discord and GitHub links. The EventCatalog links are always shown.
|
|
745
|
+
|
|
696
746
|
```js title="eventcatalog.config.js"
|
|
697
747
|
module.exports = {
|
|
698
748
|
repositoryUrl: 'https://github.com/boyney123/eventcatalog-demo',
|
|
@@ -962,7 +1012,7 @@ See the [Customize tables](/docs/development/customization/customize-tables) doc
|
|
|
962
1012
|
|
|
963
1013
|
### `systems` {#systems}
|
|
964
1014
|
|
|
965
|
-
<AddedIn version="4.0" />
|
|
1015
|
+
<AddedIn version="4.0.0" />
|
|
966
1016
|
|
|
967
1017
|
- Type: `object`
|
|
968
1018
|
|
|
@@ -5,10 +5,10 @@ keywords:
|
|
|
5
5
|
- EventCatalog introduction
|
|
6
6
|
sidebar_label: Why EventCatalog?
|
|
7
7
|
title: Why EventCatalog?
|
|
8
|
-
description: EventCatalog
|
|
8
|
+
description: EventCatalog helps you bring discoverability to your event-driven architecture.
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
Software architecture consists of many different primitives including domains, systems, services,
|
|
11
|
+
Software architecture consists of many different primitives including [domains](/docs/development/guides/domains/introduction), [systems](/docs/development/guides/systems/introduction), [services](/docs/development/guides/resources/services/introduction), [APIs](/docs/development/guides/resources/schemas/add-specifications-to-services/add-openapi-specifications), [contracts](/docs/development/guides/resources/schemas/what-are-schemas-and-specifications), [messages](/docs/development/guides/resources/messages/what-are-messages) and many more.
|
|
12
12
|
|
|
13
13
|
As systems grow, complexity grows. Documentation becomes important for teams but teams struggle to keep docs in sync, or relevant to what they are trying to model.
|
|
14
14
|
|
|
@@ -18,11 +18,11 @@ As systems grow, complexity grows. Documentation becomes important for teams but
|
|
|
18
18
|
|
|
19
19
|
### What is EventCatalog?
|
|
20
20
|
|
|
21
|
-
EventCatalog is
|
|
21
|
+
EventCatalog is a tool that is built for software architecture.
|
|
22
22
|
|
|
23
23
|
We focus on architecture primitives like domains, systems and resources (e.g services, messages) and let you document your architecture with primitives you are already familiar with.
|
|
24
24
|
|
|
25
|
-
EventCatalog creates an internal architecture graph of how your systems work. This makes EventCatalog accessible to your AI agents, LLMs and AI workflows and [creates context of your business and architecture](/docs/development/ask-your-architecture/intro).
|
|
25
|
+
EventCatalog creates an internal [architecture graph](/docs/development/guides/architecture-graph) of how your systems work. This makes EventCatalog accessible to your AI agents, LLMs and AI workflows and [creates context of your business and architecture](/docs/development/ask-your-architecture/intro).
|
|
26
26
|
|
|
27
27
|
EventCatalog is technology agnostic, this means you can document and model any systems you have.
|
|
28
28
|
|
|
@@ -34,20 +34,20 @@ EventCatalog is technology agnostic, this means you can document and model any s
|
|
|
34
34
|
- Document high level information for stakeholders while providing lower level details to your teams.
|
|
35
35
|
- Connect to your AI Agents and AI Workflows. Give your LLMs the context they need.
|
|
36
36
|
- **Create a documentation solution you can trust**
|
|
37
|
-
- Sync documentation from your code with
|
|
38
|
-
- Automate documentation from your OpenAPI, AsyncAPI, or schema registries
|
|
37
|
+
- Sync documentation from your code with the [EventCatalog Agent](/docs/development/ask-your-architecture/agents/code-to-docs)
|
|
38
|
+
- Automate documentation from your [OpenAPI](/integrations/openapi), [AsyncAPI](/integrations/asyncapi), or [schema registries](/integrations)
|
|
39
39
|
- Use EventCatalog Agent to sync code to docs from your CI/CD workflows.
|
|
40
40
|
- Write your own automation and plugins with the [EventCatalog SDK](/docs/sdk)
|
|
41
41
|
- **Help you detect breaking changes before they reach production**
|
|
42
|
-
- Use EventCatalog Agent to detect breaking schema changes
|
|
42
|
+
- Use EventCatalog Agent to [detect breaking schema changes](/docs/development/ask-your-architecture/agents/breaking-changes)
|
|
43
43
|
- Bring your own model and get notified when things break
|
|
44
|
-
- **Use natural
|
|
44
|
+
- **Use natural language to query your architecture**
|
|
45
45
|
- Connect AI tools to your architecture using [EventCatalog's MCP server](/docs/development/ask-your-architecture/mcp-server/introduction)
|
|
46
|
-
- Ask architectural questions grounded in your documented domains, services, events, data products, and schemas
|
|
46
|
+
- Ask architectural questions grounded in your documented domains, services, events, [data products](/docs/development/guides/resources/data-products/introduction), and schemas
|
|
47
47
|
- **Help your teams understand the bigger picture**
|
|
48
48
|
- Help business stakeholders understand the bigger picture
|
|
49
|
-
- Visualize your architecture and future ideas
|
|
50
|
-
- Document key business workflows
|
|
49
|
+
- Visualize your architecture, and design future ideas with [EventCatalog Studio](/docs/development/studio/introduction)
|
|
50
|
+
- Document key business workflows as [flows](/docs/development/guides/resources/flows/introduction)
|
|
51
51
|
|
|
52
52
|
**EventCatalog is self-hosted. You own your data and host it wherever you want.**
|
|
53
53
|
|
|
@@ -8,17 +8,20 @@ title: Fundamentals
|
|
|
8
8
|
description: Understanding the fundamentals of EventCatalog
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
import CatalogModel from '@site/src/components/CatalogModel';
|
|
12
|
+
import DiagramLevels from '@site/src/components/DiagramLevels';
|
|
13
|
+
|
|
14
|
+
EventCatalog is a self-hosted tool to document, visualize and collaborate on your software architecture. You document it using software primitives and patterns such as [domains](/docs/development/guides/domains/introduction), [systems](/docs/development/guides/systems/introduction) and [resources](/docs/resources), rather than scattered documentation pages (e.g. Confluence).
|
|
12
15
|
|
|
13
16
|
EventCatalog follows the [docs-as-code](https://www.writethedocs.org/guide/docs-as-code/) pattern. Your documentation is stored in code using [markdown (MDX)](https://mdxjs.com/) and stays private, in your own repository and infrastructure.
|
|
14
17
|
|
|
15
18
|
At its core, EventCatalog gives you a small set of building blocks for your documentation.
|
|
16
19
|
|
|
17
|
-
|
|
20
|
+
<CatalogModel />
|
|
18
21
|
|
|
19
|
-
- **Domains
|
|
20
|
-
- **Systems
|
|
21
|
-
- **Resources
|
|
22
|
+
- **Domains** - a domain describes a business boundary.
|
|
23
|
+
- **Systems** - a system is a collection of resources that work together to perform a function.
|
|
24
|
+
- **Resources** - individual resources (e.g. services, messages, data stores) that can be assigned to systems or domains.
|
|
22
25
|
|
|
23
26
|
:::info What blocks to use?
|
|
24
27
|
All building blocks are optional in your catalog. It's up to you how you want to model your documentation.
|
|
@@ -49,19 +52,23 @@ Teams and users can own domains, systems, resources, and contracts. This makes o
|
|
|
49
52
|
|
|
50
53
|
## Levels of detail
|
|
51
54
|
|
|
52
|
-
Architecture documentation
|
|
55
|
+
Architecture documentation has different audiences, and EventCatalog can be useful to anyone in your organization. Stakeholders want the big picture, and developers want the implementation details.
|
|
56
|
+
|
|
57
|
+
Every diagram in EventCatalog has three levels of detail, **L1**, **L2** and **L3**, and they mean the same thing on every diagram:
|
|
58
|
+
|
|
59
|
+
| Level | What you see | What it answers | Example |
|
|
60
|
+
|-------|--------------|-----------------|---------|
|
|
61
|
+
| **L1** | Domains, systems and the relationships between them | Which business boundaries and systems exist, and how do they depend on each other? | `Shopping` domain, `Cart System` |
|
|
62
|
+
| **L2** | The services and data stores inside them, and how they connect | What runs inside a system, and what does it talk to? | `Cart API`, cart database |
|
|
63
|
+
| **L3** | Everything in L2, plus the messages and channels | What flows between services? | `CartUpdated` event, `cart.events` topic |
|
|
53
64
|
|
|
54
|
-
|
|
65
|
+
<DiagramLevels />
|
|
55
66
|
|
|
56
|
-
|
|
57
|
-
|-------|------|-----------------|---------|
|
|
58
|
-
| Level 1 | Domains | High level, what business boundary are we looking at? | Shopping |
|
|
59
|
-
| Level 2 | Systems | What software capability exists inside that boundary? | Cart System |
|
|
60
|
-
| Level 3 | Resources | What makes up, connects to, or documents that system? | Cart API, cart database, checkout flow |
|
|
67
|
+
When a level doesn't apply to a diagram, it's greyed out. On a service diagram, for example, L1 is greyed out because there are no domains or systems to show above it. Read more in the [domain diagram](/docs/development/guides/domains/visualize-domains/domain-diagram) and [system diagram](/docs/development/guides/systems/system-context-maps) docs.
|
|
61
68
|
|
|
62
69
|
Contracts and ownership sit across these levels. A service can implement an OpenAPI contract. A message can have a schema. A team can own a domain, system, or resource.
|
|
63
70
|
|
|
64
|
-
This gives different users a way into the same catalog. Architects can start at
|
|
71
|
+
This gives different users a way into the same catalog. Architects can start at L1, platform teams can explore the services and data stores in L2, and developers can drill into the messages and contracts they work with every day in L3.
|
|
65
72
|
|
|
66
73
|
## Docs-as-code
|
|
67
74
|
|
|
@@ -15,12 +15,12 @@ Configuration lives in `eventcatalog.config.js` at the root of your project. You
|
|
|
15
15
|
|
|
16
16
|
## Configuring environment variables {#configuring-environment-variables}
|
|
17
17
|
|
|
18
|
-
Some features need values that should not live directly in `eventcatalog.config.js`, such as
|
|
18
|
+
Some features need values that should not live directly in `eventcatalog.config.js`, such as API keys or provider credentials.
|
|
19
19
|
|
|
20
20
|
Put those values in a `.env` file in the root of your catalog. EventCatalog loads `.env` when it runs locally and when it builds.
|
|
21
21
|
|
|
22
22
|
```bash title=".env (example)"
|
|
23
|
-
|
|
23
|
+
OPENAI_API_KEY=your-api-key
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
Do not commit real secrets to source control.
|
|
@@ -54,6 +54,14 @@ npm run dev
|
|
|
54
54
|
|
|
55
55
|
Open [http://localhost:3000](http://localhost:3000) to view your catalog.
|
|
56
56
|
|
|
57
|
+
:::info Licensing
|
|
58
|
+
EventCatalog v5 is source-available under the [Business Source License](/license). It's free in production for individuals, open-source projects, teaching and research, and organisations under $10M in revenue and under $10M raised. Larger organisations get a 60-day evaluation, then need a [commercial license](/pricing).
|
|
59
|
+
|
|
60
|
+
The "Trial" countdown you see in the header is a reminder. Trying EventCatalog with sample content, like the catalog this command creates, is always free and doesn't start your evaluation. That starts when your catalog documents real systems that people rely on. Your builds never stop working when a trial or license ends.
|
|
61
|
+
|
|
62
|
+
[Licensing FAQ](/license-faq) · [Add your license file](/docs/development/license/license-file)
|
|
63
|
+
:::
|
|
64
|
+
|
|
57
65
|
## CLI installation flags
|
|
58
66
|
|
|
59
67
|
You can pass flags to `create-eventcatalog` to customize the catalog that gets created.
|
|
@@ -92,7 +100,7 @@ Then ask your AI agent to inspect your codebase and generate EventCatalog docume
|
|
|
92
100
|
Look at my directory and generate EventCatalog documentation from information you find.
|
|
93
101
|
```
|
|
94
102
|
|
|
95
|
-
The generated files can be edited like any other EventCatalog documentation. Learn more about [EventCatalog skills](/docs/development/ask-your-architecture/skills
|
|
103
|
+
The generated files can be edited like any other EventCatalog documentation. Learn more about [EventCatalog skills](/docs/development/ask-your-architecture/install-skills).
|
|
96
104
|
|
|
97
105
|
## Optional: Use EventCatalog Editor
|
|
98
106
|
|
|
@@ -4,7 +4,7 @@ keywords:
|
|
|
4
4
|
- EventCatalog introduction
|
|
5
5
|
sidebar_label: Getting Started
|
|
6
6
|
title: Getting Started
|
|
7
|
-
description: EventCatalog
|
|
7
|
+
description: EventCatalog helps you bring discoverability to your event-driven architecture.
|
|
8
8
|
hide_title: true
|
|
9
9
|
hide_table_of_contents: true
|
|
10
10
|
hide_breadcrumbs: true
|
|
@@ -11,11 +11,11 @@ import AddedIn from '@site/src/components/MDX/AddedIn';
|
|
|
11
11
|
|
|
12
12
|
EventCatalog creates an internal graph of your architecture. Perfect for AI and LLMs.
|
|
13
13
|
|
|
14
|
-
EventCatalog supports
|
|
14
|
+
EventCatalog supports six ways to use AI with your catalog:
|
|
15
15
|
|
|
16
|
-
- [llms.txt](/docs/development/ask-your-architecture/llms.txt) - Give AI tools a machine-readable index of your catalog.
|
|
17
|
-
- [schemas.txt](/docs/development/ask-your-architecture/schemas.txt) - Give AI tools access to your schemas and specifications.
|
|
18
|
-
- [EventCatalog Assistant](/docs/development/ask-your-architecture/eventcatalog-assistant/what-is-eventcatalog-assistant) - AI Chat in your Catalog.
|
|
19
16
|
- [EventCatalog MCP Server](/docs/development/ask-your-architecture/mcp-server/introduction) - Connect EventCatalog to Agents through MCP
|
|
17
|
+
- [AI Skills](/docs/development/ask-your-architecture/install-skills) - Install our Skills to help you manage your catalog
|
|
20
18
|
- [EventCatalog Agent](/docs/development/ask-your-architecture/agents/overview) - CI/CD Agent for breaking changes and doc updates
|
|
21
|
-
- [
|
|
19
|
+
- [EventCatalog Assistant](/docs/development/ask-your-architecture/eventcatalog-assistant/what-is-eventcatalog-assistant) - AI Chat in your Catalog.
|
|
20
|
+
- [llms.txt](/docs/development/ask-your-architecture/llms.txt) - Give AI tools a machine-readable index of your catalog.
|
|
21
|
+
- [schemas.txt](/docs/development/ask-your-architecture/schemas.txt) - Give AI tools access to your schemas and specifications.
|
|
@@ -9,10 +9,6 @@ description: Learn how EventCatalog Assistant helps users explore documentation
|
|
|
9
9
|
|
|
10
10
|
import AddedIn from '@site/src/components/MDX/AddedIn';
|
|
11
11
|
|
|
12
|
-
import PlanBanner from '@site/src/components/MDX/PlanBanner';
|
|
13
|
-
|
|
14
|
-
<PlanBanner plan="Scale" />
|
|
15
|
-
|
|
16
12
|
EventCatalog Assistant brings AI chat to your catalog.
|
|
17
13
|
|
|
18
14
|
It is embedded directly into your documentation site, enabling users to quickly find answers, understand your system, and succeed without manually searching through pages.
|
package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/02-configuration.md
CHANGED
|
@@ -8,9 +8,6 @@ description: Configure EventCatalog Assistant
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
import AddedIn from '@site/src/components/MDX/AddedIn';
|
|
11
|
-
import PlanBanner from '@site/src/components/MDX/PlanBanner';
|
|
12
|
-
|
|
13
|
-
<PlanBanner plan="Scale" />
|
|
14
11
|
|
|
15
12
|
**EventCatalog Assistant is shown by default.**
|
|
16
13
|
|
|
@@ -82,3 +79,18 @@ export const configuration = {
|
|
|
82
79
|
```
|
|
83
80
|
|
|
84
81
|
Once you have configured your model, restart EventCatalog and you can start asking questions about your architecture.
|
|
82
|
+
|
|
83
|
+
### Troubleshooting
|
|
84
|
+
|
|
85
|
+
#### `eventcatalog.chat.js` fails to load
|
|
86
|
+
|
|
87
|
+
<AddedIn version="5.0.0" />
|
|
88
|
+
|
|
89
|
+
If your catalog has an `eventcatalog.chat.js` file but it fails to load (for example, a package it imports isn't installed),
|
|
90
|
+
the assistant explains the problem instead of answering:
|
|
91
|
+
|
|
92
|
+
- **In `eventcatalog dev`**, the assistant shows why the file didn't load and the steps to fix it: install the packages your
|
|
93
|
+
`eventcatalog.chat.js` imports (for example `npm install ai @ai-sdk/anthropic`), add the provider's API key to your `.env`
|
|
94
|
+
file, and restart EventCatalog.
|
|
95
|
+
- **Everywhere else**, the reason is not shown to readers. The assistant tells them that the catalog owner can find the cause
|
|
96
|
+
in the server logs, under `Error loading chat configuration`.
|
|
@@ -11,11 +11,8 @@ title: Custom Tools
|
|
|
11
11
|
description: Extend EventCatalog Assistant with custom tools to bring real-time data, metrics, and integrations into your architecture conversations
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
import PlanBanner from '@site/src/components/MDX/PlanBanner';
|
|
15
14
|
import AddedIn from '@site/src/components/MDX/AddedIn';
|
|
16
15
|
|
|
17
|
-
<PlanBanner plan="Scale" />
|
|
18
|
-
|
|
19
16
|
EventCatalog Assistant comes with built-in tools that allow the AI to search and understand your architecture documentation. But what if you could go beyond static documentation and bring **real-time data** directly into your conversations?
|
|
20
17
|
|
|
21
18
|
With custom tools, you can extend the assistant to query your production metrics, check service health, look up on-call engineers, fetch data from your databases, and much more.
|