@eventcatalog/core 3.35.0 → 3.36.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/dist/analytics/analytics.cjs +1 -1
- package/dist/analytics/analytics.js +2 -2
- package/dist/analytics/log-build.cjs +1 -1
- package/dist/analytics/log-build.js +3 -3
- package/dist/{chunk-LUWCWNOR.js → chunk-6D65JSOA.js} +1 -1
- package/dist/{chunk-NEWQKEP7.js → chunk-C7JCOHTI.js} +1 -1
- package/dist/chunk-D6IBLY3O.js +320 -0
- package/dist/{chunk-Y5O6SCX3.js → chunk-HDENGAZL.js} +1 -1
- package/dist/{chunk-DFLUDECO.js → chunk-UJ7DX4SA.js} +3 -3
- package/dist/{chunk-3KXCGYET.js → chunk-ULZYHF3V.js} +5 -0
- package/dist/{chunk-B2LDVIVY.js → chunk-V22QY5Q3.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/docs/api/01-overview.md +74 -0
- package/dist/docs/api/02-config.md +959 -0
- package/dist/docs/api/03-domain-api.md +394 -0
- package/dist/docs/api/04-service-api.md +368 -0
- package/dist/docs/api/05-command-api.md +319 -0
- package/dist/docs/api/06-event-api.md +318 -0
- package/dist/docs/api/06-query-api.md +316 -0
- package/dist/docs/api/08-channel-api.md +317 -0
- package/dist/docs/api/08-code-blocks.md +53 -0
- package/dist/docs/api/09-flow-api.md +362 -0
- package/dist/docs/api/10-entity-api.md +285 -0
- package/dist/docs/api/11-data-api.md +268 -0
- package/dist/docs/api/12-data-product-api.md +416 -0
- package/dist/docs/api/_category_.json +12 -0
- package/dist/docs/cli/channels.md +180 -0
- package/dist/docs/cli/commands.md +183 -0
- package/dist/docs/cli/custom-docs.md +78 -0
- package/dist/docs/cli/data-products.md +177 -0
- package/dist/docs/cli/data-stores.md +166 -0
- package/dist/docs/cli/diagrams.md +147 -0
- package/dist/docs/cli/domains.md +280 -0
- package/dist/docs/cli/entities.md +138 -0
- package/dist/docs/cli/events.md +186 -0
- package/dist/docs/cli/export.md +27 -0
- package/dist/docs/cli/governance.md +24 -0
- package/dist/docs/cli/import.md +26 -0
- package/dist/docs/cli/index.md +121 -0
- package/dist/docs/cli/messages.md +69 -0
- package/dist/docs/cli/queries.md +183 -0
- package/dist/docs/cli/services.md +266 -0
- package/dist/docs/cli/snapshots.md +44 -0
- package/dist/docs/cli/teams.md +75 -0
- package/dist/docs/cli/users.md +75 -0
- package/dist/docs/cli/utilities.md +43 -0
- package/dist/docs/contributing/01-overview.md +186 -0
- package/dist/docs/contributing/_category_.json +12 -0
- package/dist/docs/development/00-why-eventcatalog.md +87 -0
- package/dist/docs/development/01-fundamentals.md +34 -0
- package/dist/docs/development/01-getting-started/_category_.json +12 -0
- package/dist/docs/development/01-getting-started/configuration-overview.md +124 -0
- package/dist/docs/development/01-getting-started/develop-and-build.md +71 -0
- package/dist/docs/development/01-getting-started/installation.md +103 -0
- package/dist/docs/development/01-getting-started/project-structure.md +269 -0
- package/dist/docs/development/_category_.json +12 -0
- package/dist/docs/development/_getting-started.mdx +15 -0
- package/dist/docs/development/agent-resources/_category_.json +6 -0
- package/dist/docs/development/agent-resources/eventcatalog-skills.md +17 -0
- package/dist/docs/development/agent-resources/llms-full.md +17 -0
- package/dist/docs/development/agent-resources/llms.md +17 -0
- package/dist/docs/development/ask-your-architecture/01-intro.md +89 -0
- package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/01-what-is-eventcatalog-assistant.md +23 -0
- package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/02-configuration.md +72 -0
- package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/03-bring-your-own-tools.md +385 -0
- package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/_category_.json +11 -0
- package/dist/docs/development/ask-your-architecture/03-mcp-server/_category_.json +12 -0
- package/dist/docs/development/ask-your-architecture/03-mcp-server/getting-started.md +216 -0
- package/dist/docs/development/ask-your-architecture/03-mcp-server/introduction.md +47 -0
- package/dist/docs/development/ask-your-architecture/04-skills/01-introduction.md +40 -0
- package/dist/docs/development/ask-your-architecture/04-skills/02-installation.md +60 -0
- package/dist/docs/development/ask-your-architecture/04-skills/_category_.json +11 -0
- package/dist/docs/development/ask-your-architecture/05-slack-integration/01-introduction.md +63 -0
- package/dist/docs/development/ask-your-architecture/05-slack-integration/02-slack-app-setup.md +154 -0
- package/dist/docs/development/ask-your-architecture/05-slack-integration/03-installation.md +169 -0
- package/dist/docs/development/ask-your-architecture/05-slack-integration/04-deployment.md +236 -0
- package/dist/docs/development/ask-your-architecture/05-slack-integration/05-usage.md +140 -0
- package/dist/docs/development/ask-your-architecture/05-slack-integration/06-troubleshooting.md +268 -0
- package/dist/docs/development/ask-your-architecture/05-slack-integration/_category_.json +12 -0
- package/dist/docs/development/ask-your-architecture/_category_.json +12 -0
- package/dist/docs/development/authentication/01-introduction.md +78 -0
- package/dist/docs/development/authentication/02-enabling-authentication.md +152 -0
- package/dist/docs/development/authentication/07-rbac-middleware.md +269 -0
- package/dist/docs/development/authentication/_category_.json +11 -0
- package/dist/docs/development/authentication/providers/03-setting-up-github.md +83 -0
- package/dist/docs/development/authentication/providers/03a-setting-up-google.md +92 -0
- package/dist/docs/development/authentication/providers/04-setting-up-azure-ad.md +100 -0
- package/dist/docs/development/authentication/providers/05-setting-up-okta.md +105 -0
- package/dist/docs/development/authentication/providers/06-setting-up-auth0.md +106 -0
- package/dist/docs/development/authentication/providers/_category_.json +11 -0
- package/dist/docs/development/bring-your-own-documentation/01-introduction.md +48 -0
- package/dist/docs/development/bring-your-own-documentation/_category_.json +12 -0
- package/dist/docs/development/bring-your-own-documentation/custom-pages/01-introduction.md +60 -0
- package/dist/docs/development/bring-your-own-documentation/custom-pages/02-adding-custom-docs.md +207 -0
- package/dist/docs/development/bring-your-own-documentation/custom-pages/03-components.md +46 -0
- package/dist/docs/development/bring-your-own-documentation/custom-pages/04-owners.md +45 -0
- package/dist/docs/development/bring-your-own-documentation/custom-pages/_category_.json +11 -0
- package/dist/docs/development/bring-your-own-documentation/resource-docs/01-introduction.md +34 -0
- package/dist/docs/development/bring-your-own-documentation/resource-docs/02-adding-resource-docs.md +143 -0
- package/dist/docs/development/bring-your-own-documentation/resource-docs/03-categories.md +68 -0
- package/dist/docs/development/bring-your-own-documentation/resource-docs/04-versioning.md +45 -0
- package/dist/docs/development/bring-your-own-documentation/resource-docs/_category_.json +11 -0
- package/dist/docs/development/components/04-snippets.md +134 -0
- package/dist/docs/development/components/05-using-components.md +67 -0
- package/dist/docs/development/components/07-resource-references.md +136 -0
- package/dist/docs/development/components/_category_.json +12 -0
- package/dist/docs/development/components/components/01-accordian.md +41 -0
- package/dist/docs/development/components/components/02-accordian-group.md +57 -0
- package/dist/docs/development/components/components/03-admonitions.md +43 -0
- package/dist/docs/development/components/components/04-attachments.md +56 -0
- package/dist/docs/development/components/components/05-channel-information.md +29 -0
- package/dist/docs/development/components/components/06-design.md +66 -0
- package/dist/docs/development/components/components/07-entitymap.md +71 -0
- package/dist/docs/development/components/components/08-flow.md +46 -0
- package/dist/docs/development/components/components/09-link.md +32 -0
- package/dist/docs/development/components/components/10-mermaid-file-loader.md +63 -0
- package/dist/docs/development/components/components/11-message-table.md +43 -0
- package/dist/docs/development/components/components/12-nodegraph.md +167 -0
- package/dist/docs/development/components/components/13-openapi.md +55 -0
- package/dist/docs/development/components/components/14-prompt.md +69 -0
- package/dist/docs/development/components/components/15-remote-schema.md +174 -0
- package/dist/docs/development/components/components/16-resource-group-table.md +86 -0
- package/dist/docs/development/components/components/17-resource-link.md +57 -0
- package/dist/docs/development/components/components/18-schema.md +44 -0
- package/dist/docs/development/components/components/19-schema-viewer.md +69 -0
- package/dist/docs/development/components/components/20-steps.md +83 -0
- package/dist/docs/development/components/components/21-tabs.md +55 -0
- package/dist/docs/development/components/components/22-tiles.md +53 -0
- package/dist/docs/development/components/components/23-visibility.md +61 -0
- package/dist/docs/development/components/components/_category_.json +12 -0
- package/dist/docs/development/components/diagram-syntax/01-mermaid.md +218 -0
- package/dist/docs/development/components/diagram-syntax/02-plantuml.md +140 -0
- package/dist/docs/development/components/diagram-syntax/03-structurizr.md +24 -0
- package/dist/docs/development/components/diagram-syntax/04-icepanel.md +75 -0
- package/dist/docs/development/components/diagram-syntax/_category_.json +12 -0
- package/dist/docs/development/components/external-diagram-embeds/01-miro.md +64 -0
- package/dist/docs/development/components/external-diagram-embeds/02-lucid.md +47 -0
- package/dist/docs/development/components/external-diagram-embeds/03-drawio.md +46 -0
- package/dist/docs/development/components/external-diagram-embeds/04-figjam.md +44 -0
- package/dist/docs/development/components/external-diagram-embeds/05-icepanel.md +68 -0
- package/dist/docs/development/components/external-diagram-embeds/_category_.json +12 -0
- package/dist/docs/development/customization/01-customize-landing-page.md +155 -0
- package/dist/docs/development/customization/02-themes.md +429 -0
- package/dist/docs/development/customization/03-search.md +79 -0
- package/dist/docs/development/customization/06-customize-tables.md +194 -0
- package/dist/docs/development/customization/_category_.json +12 -0
- package/dist/docs/development/customization/custom-components/00-what-is-mdx.md +73 -0
- package/dist/docs/development/customization/custom-components/01-introduction.md +28 -0
- package/dist/docs/development/customization/custom-components/02-adding-components.md +145 -0
- package/dist/docs/development/customization/custom-components/03-component-styling.md +27 -0
- package/dist/docs/development/customization/custom-components/04-javascript-components.md +32 -0
- package/dist/docs/development/customization/custom-components/_category_.json +11 -0
- package/dist/docs/development/customization/customize-sidebars/00-application-sidebar.md +45 -0
- package/dist/docs/development/customization/customize-sidebars/01-documentation-sidebar.md +187 -0
- package/dist/docs/development/customization/customize-sidebars/_category_.json +11 -0
- package/dist/docs/development/customization/customize-visualizer/00-visualizer-nodes.md +50 -0
- package/dist/docs/development/customization/customize-visualizer/_category_.json +11 -0
- package/dist/docs/development/deployment/_category_.json +12 -0
- package/dist/docs/development/deployment/build-and-deploy.md +71 -0
- package/dist/docs/development/deployment/build-ssr-mode.md +50 -0
- package/dist/docs/development/deployment/deployment-workflows.md +43 -0
- package/dist/docs/development/deployment/hosting-options.md +112 -0
- package/dist/docs/development/deployment/licenses.md +50 -0
- package/dist/docs/development/design/_category_.json +12 -0
- package/dist/docs/development/design/embed-designs-into-eventcatalog.md +29 -0
- package/dist/docs/development/design/further-reading.md +19 -0
- package/dist/docs/development/design/import-resources.md +27 -0
- package/dist/docs/development/design/intro.md +22 -0
- package/dist/docs/development/developer-tools/_category_.json +12 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter.md +597 -0
- package/dist/docs/development/developer-tools/github-action.md +147 -0
- package/dist/docs/development/developer-tools/llms.txt.md +55 -0
- package/dist/docs/development/developer-tools/schemas.txt.md +42 -0
- package/dist/docs/development/governance/_category_.json +6 -0
- package/dist/docs/development/governance/architecture-change-detection/01-introduction.md +62 -0
- package/dist/docs/development/governance/architecture-change-detection/02-configuration.md +134 -0
- package/dist/docs/development/governance/architecture-change-detection/03-recipes.md +309 -0
- package/dist/docs/development/governance/architecture-change-detection/04-webhooks.md +187 -0
- package/dist/docs/development/governance/architecture-change-detection/05-ci-cd.md +121 -0
- package/dist/docs/development/governance/architecture-change-detection/06-pipeline-gates.md +162 -0
- package/dist/docs/development/governance/architecture-change-detection/_category_.json +6 -0
- package/dist/docs/development/guides/12-customize-your-sidebar.md +12 -0
- package/dist/docs/development/guides/99-adding-analytics.md +138 -0
- package/dist/docs/development/guides/_category_.json +11 -0
- package/dist/docs/development/guides/changelogs/01-introduction.md +33 -0
- package/dist/docs/development/guides/changelogs/02-adding-changelogs.md +94 -0
- package/dist/docs/development/guides/changelogs/03-automated-changelogs.md +44 -0
- package/dist/docs/development/guides/changelogs/_category_.json +11 -0
- package/dist/docs/development/guides/channels/01-introduction.md +111 -0
- package/dist/docs/development/guides/channels/02-adding-channels.md +198 -0
- package/dist/docs/development/guides/channels/04-adding-messages-to-services.md +292 -0
- package/dist/docs/development/guides/channels/09-configuration +39 -0
- package/dist/docs/development/guides/channels/_category_.json +11 -0
- package/dist/docs/development/guides/channels/ownership-and-components/01-owners.md +44 -0
- package/dist/docs/development/guides/channels/ownership-and-components/02-components.md +16 -0
- package/dist/docs/development/guides/channels/ownership-and-components/_category_.json +11 -0
- package/dist/docs/development/guides/channels/versioning-and-lifecycle/01-versioning.md +31 -0
- package/dist/docs/development/guides/channels/versioning-and-lifecycle/02-changelog.md +56 -0
- package/dist/docs/development/guides/channels/versioning-and-lifecycle/_category_.json +11 -0
- package/dist/docs/development/guides/data/01-introduction.md +34 -0
- package/dist/docs/development/guides/data/02-adding-data.md +86 -0
- package/dist/docs/development/guides/data/03a-adding-schemas-to-data-stores.md +73 -0
- package/dist/docs/development/guides/data/_category_.json +11 -0
- package/dist/docs/development/guides/data/ownership-and-components/01-owners.md +45 -0
- package/dist/docs/development/guides/data/ownership-and-components/02-components.md +17 -0
- package/dist/docs/development/guides/data/ownership-and-components/_category_.json +11 -0
- package/dist/docs/development/guides/data/versioning-and-lifecycle/01-versioning.md +32 -0
- package/dist/docs/development/guides/data/versioning-and-lifecycle/02-changelog.md +57 -0
- package/dist/docs/development/guides/data/versioning-and-lifecycle/03-deprecating.md +71 -0
- package/dist/docs/development/guides/data/versioning-and-lifecycle/_category_.json +11 -0
- package/dist/docs/development/guides/data-products/01-introduction.md +116 -0
- package/dist/docs/development/guides/data-products/02-adding-data-products.md +157 -0
- package/dist/docs/development/guides/data-products/03-inputs-and-outputs.md +128 -0
- package/dist/docs/development/guides/data-products/04-contracts.md +102 -0
- package/dist/docs/development/guides/data-products/05-versioning.md +240 -0
- package/dist/docs/development/guides/data-products/06-adding-to-domains.md +52 -0
- package/dist/docs/development/guides/data-products/_category_.json +11 -0
- package/dist/docs/development/guides/diagrams/01-introduction.md +78 -0
- package/dist/docs/development/guides/diagrams/02-creating-diagrams.md +195 -0
- package/dist/docs/development/guides/diagrams/03-referencing-diagrams.md +195 -0
- package/dist/docs/development/guides/diagrams/04-versioning-diagrams.md +204 -0
- package/dist/docs/development/guides/diagrams/05-comparing-diagrams.md +145 -0
- package/dist/docs/development/guides/diagrams/06-diagrams-with-llms.md +165 -0
- package/dist/docs/development/guides/diagrams/_category_.json +10 -0
- package/dist/docs/development/guides/domains/01-introduction.md +22 -0
- package/dist/docs/development/guides/domains/02-creating-domains/02-adding-domains.md +108 -0
- package/dist/docs/development/guides/domains/02-creating-domains/02a-subdomains.md +84 -0
- package/dist/docs/development/guides/domains/02-creating-domains/03-adding-services-to-domains.md +90 -0
- package/dist/docs/development/guides/domains/02-creating-domains/04-adding-messages-to-domains.md +107 -0
- package/dist/docs/development/guides/domains/02-creating-domains/05-adding-data-products-to-domains.md +105 -0
- package/dist/docs/development/guides/domains/02-creating-domains/_category_.json +11 -0
- package/dist/docs/development/guides/domains/03-ownership-and-language/01-owners.md +36 -0
- package/dist/docs/development/guides/domains/03-ownership-and-language/02-adding-ubiquitous-language.md +75 -0
- package/dist/docs/development/guides/domains/03-ownership-and-language/_category_.json +10 -0
- package/dist/docs/development/guides/domains/04-versioning-and-changelogs/01-versioning.md +40 -0
- package/dist/docs/development/guides/domains/04-versioning-and-changelogs/02-changelog.md +53 -0
- package/dist/docs/development/guides/domains/04-versioning-and-changelogs/_category_.json +10 -0
- package/dist/docs/development/guides/domains/05-entities/01-introduction.md +24 -0
- package/dist/docs/development/guides/domains/05-entities/02-adding-entities.md +157 -0
- package/dist/docs/development/guides/domains/05-entities/03-adding-entities-to-domains.md +30 -0
- package/dist/docs/development/guides/domains/05-entities/04-domain-entity-map.md +134 -0
- package/dist/docs/development/guides/domains/05-entities/_category_.json +11 -0
- package/dist/docs/development/guides/domains/08-domain-integration-map.md +41 -0
- package/dist/docs/development/guides/domains/_category_.json +11 -0
- package/dist/docs/development/guides/flows/01-introduction.md +36 -0
- package/dist/docs/development/guides/flows/02-adding-flows.md +198 -0
- package/dist/docs/development/guides/flows/03-flow-nodes.md +273 -0
- package/dist/docs/development/guides/flows/04-adding-flows-to-services.md +42 -0
- package/dist/docs/development/guides/flows/05-adding-flows-to-domains.md +43 -0
- package/dist/docs/development/guides/flows/06-versioning.md +27 -0
- package/dist/docs/development/guides/flows/07-create-flow-with-ai.md +171 -0
- package/dist/docs/development/guides/flows/_category_.json +11 -0
- package/dist/docs/development/guides/messages/01-overview.md +57 -0
- package/dist/docs/development/guides/messages/_category_.json +11 -0
- package/dist/docs/development/guides/messages/commands/01-introduction.md +26 -0
- package/dist/docs/development/guides/messages/commands/02-adding-commands.md +131 -0
- package/dist/docs/development/guides/messages/commands/_category_.json +11 -0
- package/dist/docs/development/guides/messages/common/01-map-to-producers-and-consumers.md +37 -0
- package/dist/docs/development/guides/messages/common/02-adding-schemas.md +58 -0
- package/dist/docs/development/guides/messages/common/02-deprecating.md +71 -0
- package/dist/docs/development/guides/messages/common/02-draft-messages.md +63 -0
- package/dist/docs/development/guides/messages/common/02-examples.md +99 -0
- package/dist/docs/development/guides/messages/common/03-owners.md +40 -0
- package/dist/docs/development/guides/messages/common/04-versioning.md +27 -0
- package/dist/docs/development/guides/messages/common/05-changelog.md +73 -0
- package/dist/docs/development/guides/messages/common/07-components.md +12 -0
- package/dist/docs/development/guides/messages/common/08-shared-messages-across-boundaries.md +70 -0
- package/dist/docs/development/guides/messages/common/09-grouping-messages.md +98 -0
- package/dist/docs/development/guides/messages/common/_category_.json +11 -0
- package/dist/docs/development/guides/messages/events/01-introduction.md +25 -0
- package/dist/docs/development/guides/messages/events/02-adding-events.md +130 -0
- package/dist/docs/development/guides/messages/events/_category_.json +11 -0
- package/dist/docs/development/guides/messages/queries/01-introduction.md +25 -0
- package/dist/docs/development/guides/messages/queries/02-adding-queries.md +130 -0
- package/dist/docs/development/guides/messages/queries/_category_.json +11 -0
- package/dist/docs/development/guides/owners/_category_.json +11 -0
- package/dist/docs/development/guides/owners/teams/01-introduction.md +21 -0
- package/dist/docs/development/guides/owners/teams/02-adding-teams.md +73 -0
- package/dist/docs/development/guides/owners/teams/_category_.json +11 -0
- package/dist/docs/development/guides/owners/users/01-introduction.md +20 -0
- package/dist/docs/development/guides/owners/users/02-adding-users.md +70 -0
- package/dist/docs/development/guides/owners/users/_category_.json +11 -0
- package/dist/docs/development/guides/schemas/01-introduction.md +64 -0
- package/dist/docs/development/guides/schemas/02-schema-explorer.md +74 -0
- package/dist/docs/development/guides/schemas/03-schema-api.md +59 -0
- package/dist/docs/development/guides/schemas/04-schema-mcp.md +22 -0
- package/dist/docs/development/guides/schemas/05-field-usage.md +120 -0
- package/dist/docs/development/guides/schemas/06-fields-explorer.md +120 -0
- package/dist/docs/development/guides/schemas/_category_.json +11 -0
- package/dist/docs/development/guides/services/01-introduction.md +33 -0
- package/dist/docs/development/guides/services/02-adding-services.md +113 -0
- package/dist/docs/development/guides/services/03-creating-external-systems.md +71 -0
- package/dist/docs/development/guides/services/_category_.json +11 -0
- package/dist/docs/development/guides/services/adding-to-services/01-messages.md +229 -0
- package/dist/docs/development/guides/services/adding-to-services/02-datastores.md +77 -0
- package/dist/docs/development/guides/services/adding-to-services/03-entities.md +47 -0
- package/dist/docs/development/guides/services/adding-to-services/04-openapi.md +97 -0
- package/dist/docs/development/guides/services/adding-to-services/05-asyncapi.md +97 -0
- package/dist/docs/development/guides/services/adding-to-services/06-graphql.md +96 -0
- package/dist/docs/development/guides/services/adding-to-services/_category_.json +10 -0
- package/dist/docs/development/guides/services/ownership-and-components/01-owners.md +41 -0
- package/dist/docs/development/guides/services/ownership-and-components/02-components.md +13 -0
- package/dist/docs/development/guides/services/ownership-and-components/_category_.json +11 -0
- package/dist/docs/development/guides/services/versioning-and-lifecycle/01-versioning.md +27 -0
- package/dist/docs/development/guides/services/versioning-and-lifecycle/02-changelog.md +52 -0
- package/dist/docs/development/guides/services/versioning-and-lifecycle/03-deprecating.md +70 -0
- package/dist/docs/development/guides/services/versioning-and-lifecycle/_category_.json +11 -0
- package/dist/docs/development/upgrading/_category_.json +12 -0
- package/dist/docs/development/upgrading/upgrading.md +142 -0
- package/dist/docs/development/upgrading/v2.md +69 -0
- package/dist/docs/development/upgrading/v3.md +277 -0
- package/dist/docs/miro/_category_.json +12 -0
- package/dist/docs/miro/contributing/01-getting-involved.md +53 -0
- package/dist/docs/miro/contributing/_category_.json +11 -0
- package/dist/docs/miro/getting-started/01-overview.md +63 -0
- package/dist/docs/miro/getting-started/02-installation.md +37 -0
- package/dist/docs/miro/getting-started/03-connecting-to-eventcatalog.md +59 -0
- package/dist/docs/miro/getting-started/_category_.json +11 -0
- package/dist/docs/miro/guides/01-adding-resources-to-board.md +90 -0
- package/dist/docs/miro/guides/02-creating-new-resources.md +61 -0
- package/dist/docs/miro/guides/03-editing-resources.md +50 -0
- package/dist/docs/miro/guides/04-connected-resources.md +54 -0
- package/dist/docs/miro/guides/05-services-and-dependencies.md +54 -0
- package/dist/docs/miro/guides/06-navigating-the-board.md +44 -0
- package/dist/docs/miro/guides/07-exporting-to-eventcatalog.md +75 -0
- package/dist/docs/miro/guides/_category_.json +11 -0
- package/dist/docs/miro/specifications/01-asyncapi.md +86 -0
- package/dist/docs/miro/specifications/02-openapi.md +86 -0
- package/dist/docs/miro/specifications/03-schema-registries.md +88 -0
- package/dist/docs/miro/specifications/_category_.json +11 -0
- package/dist/docs/miro/using-ai/01-overview.md +105 -0
- package/dist/docs/miro/using-ai/_category_.json +11 -0
- package/dist/docs/plugins/01-intro.md +49 -0
- package/dist/docs/plugins/02-generators.md +76 -0
- package/dist/docs/plugins/03-all-plugins.md +26 -0
- package/dist/docs/plugins/_category_.json +12 -0
- package/dist/docs/plugins/amazon-apigateway/00-intro.md +75 -0
- package/dist/docs/plugins/amazon-apigateway/01-installation.md +198 -0
- package/dist/docs/plugins/amazon-apigateway/02-plugin-configuration.md +136 -0
- package/dist/docs/plugins/amazon-apigateway/03-features.md +71 -0
- package/dist/docs/plugins/amazon-apigateway/04-examples.md +15 -0
- package/dist/docs/plugins/amazon-apigateway/_category_.json +11 -0
- package/dist/docs/plugins/apicurio/00-intro.md +102 -0
- package/dist/docs/plugins/apicurio/01-installation.md +165 -0
- package/dist/docs/plugins/apicurio/02-plugin-configuration.md +682 -0
- package/dist/docs/plugins/apicurio/03-features.md +221 -0
- package/dist/docs/plugins/apicurio/04-examples.md +20 -0
- package/dist/docs/plugins/apicurio/_category_.json +12 -0
- package/dist/docs/plugins/asyncapi/00-intro.md +81 -0
- package/dist/docs/plugins/asyncapi/01-installation.md +155 -0
- package/dist/docs/plugins/asyncapi/02-plugin-configuration.md +312 -0
- package/dist/docs/plugins/asyncapi/03-features.md +698 -0
- package/dist/docs/plugins/asyncapi/03a-workflows.md +153 -0
- package/dist/docs/plugins/asyncapi/04-examples.md +23 -0
- package/dist/docs/plugins/asyncapi/04-using-reference-objects.md +45 -0
- package/dist/docs/plugins/asyncapi/_category_.json +12 -0
- package/dist/docs/plugins/aws-glue-registry/00-intro.md +104 -0
- package/dist/docs/plugins/aws-glue-registry/00a-installation.md +305 -0
- package/dist/docs/plugins/aws-glue-registry/01-features.md +287 -0
- package/dist/docs/plugins/aws-glue-registry/02-examples.md +368 -0
- package/dist/docs/plugins/aws-glue-registry/03-api.md +282 -0
- package/dist/docs/plugins/aws-glue-registry/_category_.json +11 -0
- package/dist/docs/plugins/azure-schema-registry/00-intro.md +92 -0
- package/dist/docs/plugins/azure-schema-registry/01-installation.md +409 -0
- package/dist/docs/plugins/azure-schema-registry/02-plugin-configuration.md +375 -0
- package/dist/docs/plugins/azure-schema-registry/03-features.md +347 -0
- package/dist/docs/plugins/azure-schema-registry/04-examples.md +378 -0
- package/dist/docs/plugins/azure-schema-registry/_category_.json +12 -0
- package/dist/docs/plugins/backstage/00-intro.md +67 -0
- package/dist/docs/plugins/backstage/01-installation.md +250 -0
- package/dist/docs/plugins/backstage/02-api.md +51 -0
- package/dist/docs/plugins/backstage/03-examples.md +12 -0
- package/dist/docs/plugins/backstage/_category_.json +11 -0
- package/dist/docs/plugins/confluent-schema-registry/00-intro.md +90 -0
- package/dist/docs/plugins/confluent-schema-registry/01-installation.md +223 -0
- package/dist/docs/plugins/confluent-schema-registry/02-plugin-configuration.md +473 -0
- package/dist/docs/plugins/confluent-schema-registry/03-features.md +43 -0
- package/dist/docs/plugins/confluent-schema-registry/04-examples.md +19 -0
- package/dist/docs/plugins/confluent-schema-registry/_category_.json +12 -0
- package/dist/docs/plugins/eventbridge/00-intro.md +55 -0
- package/dist/docs/plugins/eventbridge/00a-installation.md +317 -0
- package/dist/docs/plugins/eventbridge/01-features.md +225 -0
- package/dist/docs/plugins/eventbridge/02-examples.md +17 -0
- package/dist/docs/plugins/eventbridge/03-api.md +441 -0
- package/dist/docs/plugins/eventbridge/03a-workflows.md +133 -0
- package/dist/docs/plugins/eventbridge/_category_.json +11 -0
- package/dist/docs/plugins/eventcatalog-federation/00-introduction.md +69 -0
- package/dist/docs/plugins/eventcatalog-federation/01-installation.md +182 -0
- package/dist/docs/plugins/eventcatalog-federation/02-plugin-configuration.md +208 -0
- package/dist/docs/plugins/eventcatalog-federation/03-examples.md +15 -0
- package/dist/docs/plugins/eventcatalog-federation/04-configuration.md +193 -0
- package/dist/docs/plugins/eventcatalog-federation/05-setup-team-catalog.md +97 -0
- package/dist/docs/plugins/eventcatalog-federation/_category_.json +11 -0
- package/dist/docs/plugins/github/00-intro.md +93 -0
- package/dist/docs/plugins/github/01-installation.md +293 -0
- package/dist/docs/plugins/github/02-plugin-configuration.md +253 -0
- package/dist/docs/plugins/github/03-features.md +42 -0
- package/dist/docs/plugins/github/04-examples.md +17 -0
- package/dist/docs/plugins/github/_category_.json +12 -0
- package/dist/docs/plugins/graphql/00-intro.md +74 -0
- package/dist/docs/plugins/graphql/01-installation.md +144 -0
- package/dist/docs/plugins/graphql/02-plugin-configuration.md +127 -0
- package/dist/docs/plugins/graphql/03-features.md +197 -0
- package/dist/docs/plugins/graphql/04-examples.md +15 -0
- package/dist/docs/plugins/graphql/_category_.json +12 -0
- package/dist/docs/plugins/hookdeck/01-intro.md +152 -0
- package/dist/docs/plugins/hookdeck/02-api.md +133 -0
- package/dist/docs/plugins/hookdeck/03-cli.md +45 -0
- package/dist/docs/plugins/hookdeck/_category_.json +11 -0
- package/dist/docs/plugins/openapi/00-intro.md +78 -0
- package/dist/docs/plugins/openapi/01-installation.md +148 -0
- package/dist/docs/plugins/openapi/02-plugin-configuration.md +332 -0
- package/dist/docs/plugins/openapi/03-features.md +790 -0
- package/dist/docs/plugins/openapi/03a-workflows.md +153 -0
- package/dist/docs/plugins/openapi/04-examples.md +23 -0
- package/dist/docs/plugins/openapi/_category_.json +12 -0
- package/dist/eventcatalog.cjs +434 -35
- package/dist/eventcatalog.config.d.cts +8 -0
- package/dist/eventcatalog.config.d.ts +8 -0
- package/dist/eventcatalog.js +87 -10
- package/dist/features.cjs +6 -0
- package/dist/features.d.cts +2 -1
- package/dist/features.d.ts +2 -1
- package/dist/features.js +3 -1
- package/dist/generate.cjs +1 -1
- package/dist/generate.js +3 -3
- package/dist/search-indexer.cjs +356 -0
- package/dist/search-indexer.d.cts +30 -0
- package/dist/search-indexer.d.ts +30 -0
- package/dist/search-indexer.js +10 -0
- package/dist/utils/cli-logger.cjs +1 -1
- package/dist/utils/cli-logger.js +2 -2
- package/eventcatalog/astro.config.mjs +28 -32
- package/eventcatalog/src/components/Search/SearchModal.tsx +248 -148
- package/eventcatalog/src/components/Search/search-utils.spec.ts +138 -1
- package/eventcatalog/src/components/Search/search-utils.ts +271 -0
- package/eventcatalog/src/env.d.ts +1 -0
- package/package.json +4 -3
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 3
|
|
3
|
+
keywords:
|
|
4
|
+
- EventCatalog Assistant
|
|
5
|
+
- Custom Tools
|
|
6
|
+
- AI Tools
|
|
7
|
+
- Runtime Data
|
|
8
|
+
- Metrics
|
|
9
|
+
sidebar_label: Custom Tools
|
|
10
|
+
title: Custom Tools
|
|
11
|
+
description: Extend EventCatalog Assistant with custom tools to bring real-time data, metrics, and integrations into your architecture conversations
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
import PlanBanner from '@site/src/components/MDX/PlanBanner';
|
|
15
|
+
import AddedIn from '@site/src/components/MDX/AddedIn';
|
|
16
|
+
|
|
17
|
+
<AddedIn version="3.2.0" />
|
|
18
|
+
|
|
19
|
+
<PlanBanner plan="Scale" />
|
|
20
|
+
|
|
21
|
+
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?
|
|
22
|
+
|
|
23
|
+
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.
|
|
24
|
+
|
|
25
|
+
## Why custom tools?
|
|
26
|
+
|
|
27
|
+
Your architecture documentation tells part of the story, but the real value often lies in the runtime data:
|
|
28
|
+
|
|
29
|
+
- **Production metrics** - How many events per second? What's the error rate?
|
|
30
|
+
- **Service health** - Is OrderService healthy right now?
|
|
31
|
+
- **Queue depths** - Are there any event backlogs building up?
|
|
32
|
+
- **On-call information** - Who should I contact about PaymentService?
|
|
33
|
+
- **Database queries** - What's the current state of this entity?
|
|
34
|
+
- **External APIs** - Enrich answers with data from Datadog, PagerDuty, Jira, etc.
|
|
35
|
+
|
|
36
|
+
Custom tools transform EventCatalog from a static documentation site into a **live knowledge hub** where developers can ask questions like:
|
|
37
|
+
|
|
38
|
+
> "Is OrderService healthy and who should I contact if there's an issue?"
|
|
39
|
+
|
|
40
|
+
And get real answers based on live data.
|
|
41
|
+
|
|
42
|
+
## How it works
|
|
43
|
+
|
|
44
|
+
Custom tools are defined in your `eventcatalog.chat.js` file alongside your model configuration. Each tool has:
|
|
45
|
+
|
|
46
|
+
1. **A description** - Tells the AI when to use this tool
|
|
47
|
+
2. **An input schema** - Defines what parameters the tool accepts (using Zod)
|
|
48
|
+
3. **An execute function** - The code that runs when the tool is called
|
|
49
|
+
|
|
50
|
+
The AI automatically decides when to use your tools based on the user's question and the tool descriptions.
|
|
51
|
+
|
|
52
|
+
## Creating custom tools
|
|
53
|
+
|
|
54
|
+
### Basic example
|
|
55
|
+
|
|
56
|
+
Here's a simple tool that returns service health information:
|
|
57
|
+
|
|
58
|
+
```js title="eventcatalog.chat.js"
|
|
59
|
+
import { anthropic } from '@ai-sdk/anthropic';
|
|
60
|
+
import { tool } from 'ai';
|
|
61
|
+
import { z } from 'zod';
|
|
62
|
+
|
|
63
|
+
// Export your model
|
|
64
|
+
export default async () => {
|
|
65
|
+
return anthropic('claude-haiku-4-5');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Export custom tools
|
|
69
|
+
export const tools = {
|
|
70
|
+
getServiceHealth: tool({
|
|
71
|
+
description: 'Get the current health status of a service including uptime and active instances. Use this when users ask if a service is up, healthy, or having issues.',
|
|
72
|
+
inputSchema: z.object({
|
|
73
|
+
serviceName: z.string().describe('The name of the service to check health for'),
|
|
74
|
+
}),
|
|
75
|
+
execute: async ({ serviceName }) => {
|
|
76
|
+
// In production, query your monitoring system (Datadog, Prometheus, etc.)
|
|
77
|
+
const response = await fetch(`https://your-monitoring-api.com/health/${serviceName}`);
|
|
78
|
+
const health = await response.json();
|
|
79
|
+
|
|
80
|
+
return {
|
|
81
|
+
serviceName,
|
|
82
|
+
status: health.status,
|
|
83
|
+
uptime: health.uptime,
|
|
84
|
+
instances: health.activeInstances,
|
|
85
|
+
lastIncident: health.lastIncident,
|
|
86
|
+
};
|
|
87
|
+
},
|
|
88
|
+
}),
|
|
89
|
+
};
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### The AI uses tools automatically
|
|
93
|
+
|
|
94
|
+
Once configured, the AI will automatically use your tools when relevant. If a user asks:
|
|
95
|
+
|
|
96
|
+
> "Is the OrderService healthy?"
|
|
97
|
+
|
|
98
|
+
The assistant will:
|
|
99
|
+
1. Recognize this is a health-related question
|
|
100
|
+
2. Call your `getServiceHealth` tool with `serviceName: "OrderService"`
|
|
101
|
+
3. Use the returned data to formulate a helpful response
|
|
102
|
+
|
|
103
|
+
## Example tools
|
|
104
|
+
|
|
105
|
+
### Production metrics
|
|
106
|
+
|
|
107
|
+
Query real-time metrics from your observability platform:
|
|
108
|
+
|
|
109
|
+
```js
|
|
110
|
+
getEventMetrics: tool({
|
|
111
|
+
description: 'Get real-time production metrics for an event including throughput, latency, and error rates. Use this when users ask about event performance, traffic, or production health.',
|
|
112
|
+
inputSchema: z.object({
|
|
113
|
+
eventId: z.string().describe('The event ID to get metrics for'),
|
|
114
|
+
timeRange: z.enum(['1h', '24h', '7d', '30d']).default('24h').describe('Time range for metrics'),
|
|
115
|
+
}),
|
|
116
|
+
execute: async ({ eventId, timeRange }) => {
|
|
117
|
+
// Query Datadog, Prometheus, CloudWatch, etc.
|
|
118
|
+
const metrics = await datadogClient.getMetrics(eventId, timeRange);
|
|
119
|
+
|
|
120
|
+
return {
|
|
121
|
+
eventId,
|
|
122
|
+
timeRange,
|
|
123
|
+
throughput: `${metrics.eventsPerSecond.toLocaleString()} events/sec`,
|
|
124
|
+
latency: {
|
|
125
|
+
p50: `${metrics.p50}ms`,
|
|
126
|
+
p99: `${metrics.p99}ms`,
|
|
127
|
+
},
|
|
128
|
+
errorRate: `${metrics.errorRate}%`,
|
|
129
|
+
status: metrics.errorRate > 0.1 ? 'degraded' : 'healthy',
|
|
130
|
+
};
|
|
131
|
+
},
|
|
132
|
+
}),
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### On-call information
|
|
136
|
+
|
|
137
|
+
Look up who's on-call for a service:
|
|
138
|
+
|
|
139
|
+
```js
|
|
140
|
+
getOnCall: tool({
|
|
141
|
+
description: 'Get the current on-call engineer and escalation contacts for a service. Use this when users ask who to contact, who owns a service, or who is on-call.',
|
|
142
|
+
inputSchema: z.object({
|
|
143
|
+
serviceName: z.string().describe('The name of the service to get on-call info for'),
|
|
144
|
+
}),
|
|
145
|
+
execute: async ({ serviceName }) => {
|
|
146
|
+
// Query PagerDuty, OpsGenie, or your internal system
|
|
147
|
+
const oncall = await pagerdutyClient.getOnCall(serviceName);
|
|
148
|
+
|
|
149
|
+
return {
|
|
150
|
+
serviceName,
|
|
151
|
+
team: oncall.team,
|
|
152
|
+
primary: {
|
|
153
|
+
name: oncall.primary.name,
|
|
154
|
+
email: oncall.primary.email,
|
|
155
|
+
slack: oncall.primary.slack,
|
|
156
|
+
},
|
|
157
|
+
secondary: oncall.secondary,
|
|
158
|
+
slackChannel: oncall.slackChannel,
|
|
159
|
+
escalationPolicy: oncall.escalationUrl,
|
|
160
|
+
};
|
|
161
|
+
},
|
|
162
|
+
}),
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Queue depth and consumer lag
|
|
166
|
+
|
|
167
|
+
Monitor your message brokers:
|
|
168
|
+
|
|
169
|
+
```js
|
|
170
|
+
getQueueDepth: tool({
|
|
171
|
+
description: 'Get the current queue depth, consumer lag, and processing rate for an event. Use this when users ask about event backlogs, processing delays, or queue health.',
|
|
172
|
+
inputSchema: z.object({
|
|
173
|
+
eventId: z.string().describe('The event ID to check queue depth for'),
|
|
174
|
+
environment: z.enum(['production', 'staging', 'development']).default('production'),
|
|
175
|
+
}),
|
|
176
|
+
execute: async ({ eventId, environment }) => {
|
|
177
|
+
// Query Kafka, RabbitMQ, SQS, etc.
|
|
178
|
+
const queue = await kafkaClient.getConsumerLag(eventId, environment);
|
|
179
|
+
|
|
180
|
+
return {
|
|
181
|
+
eventId,
|
|
182
|
+
environment,
|
|
183
|
+
status: queue.lag > 30 ? 'critical' : queue.lag > 5 ? 'warning' : 'healthy',
|
|
184
|
+
queue: {
|
|
185
|
+
depth: queue.depth.toLocaleString(),
|
|
186
|
+
oldestMessage: `${queue.lag.toFixed(1)} seconds ago`,
|
|
187
|
+
},
|
|
188
|
+
consumers: {
|
|
189
|
+
active: queue.consumers,
|
|
190
|
+
processingRate: `${queue.rate.toLocaleString()} events/sec`,
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
},
|
|
194
|
+
}),
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Database queries
|
|
198
|
+
|
|
199
|
+
Look up entity state from your databases:
|
|
200
|
+
|
|
201
|
+
```js
|
|
202
|
+
getEntityState: tool({
|
|
203
|
+
description: 'Get the current state of an entity from the database. Use this when users ask about the current state of an order, user, or other business entity.',
|
|
204
|
+
inputSchema: z.object({
|
|
205
|
+
entityType: z.enum(['order', 'user', 'product', 'inventory']),
|
|
206
|
+
entityId: z.string().describe('The ID of the entity to look up'),
|
|
207
|
+
}),
|
|
208
|
+
execute: async ({ entityType, entityId }) => {
|
|
209
|
+
// Query your database
|
|
210
|
+
const entity = await db.collection(entityType).findOne({ id: entityId });
|
|
211
|
+
|
|
212
|
+
return {
|
|
213
|
+
entityType,
|
|
214
|
+
entityId,
|
|
215
|
+
state: entity.state,
|
|
216
|
+
lastUpdated: entity.updatedAt,
|
|
217
|
+
history: entity.stateHistory?.slice(-5), // Last 5 state changes
|
|
218
|
+
};
|
|
219
|
+
},
|
|
220
|
+
}),
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Best practices
|
|
224
|
+
|
|
225
|
+
### Write clear descriptions
|
|
226
|
+
|
|
227
|
+
The AI uses tool descriptions to decide when to call them. Be specific about:
|
|
228
|
+
- What the tool does
|
|
229
|
+
- When it should be used
|
|
230
|
+
- What kind of questions it answers
|
|
231
|
+
|
|
232
|
+
```js
|
|
233
|
+
// ❌ Vague description
|
|
234
|
+
description: 'Gets metrics',
|
|
235
|
+
|
|
236
|
+
// ✅ Clear description
|
|
237
|
+
description: 'Get real-time production metrics for an event including throughput, latency, and error rates. Use this when users ask about event performance, traffic, or production health.',
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Return structured data
|
|
241
|
+
|
|
242
|
+
Return well-structured objects that the AI can easily interpret:
|
|
243
|
+
|
|
244
|
+
```js
|
|
245
|
+
// ❌ Raw data dump
|
|
246
|
+
return rawApiResponse;
|
|
247
|
+
|
|
248
|
+
// ✅ Structured, meaningful data
|
|
249
|
+
return {
|
|
250
|
+
serviceName,
|
|
251
|
+
status: health.status,
|
|
252
|
+
statusEmoji: health.status === 'healthy' ? '✅' : '⚠️',
|
|
253
|
+
uptime: `${health.uptime}%`,
|
|
254
|
+
recommendation: health.status !== 'healthy'
|
|
255
|
+
? 'Consider scaling up instances'
|
|
256
|
+
: 'No action needed',
|
|
257
|
+
};
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### Handle errors gracefully
|
|
261
|
+
|
|
262
|
+
Always handle potential errors in your tools:
|
|
263
|
+
|
|
264
|
+
```js
|
|
265
|
+
execute: async ({ serviceName }) => {
|
|
266
|
+
try {
|
|
267
|
+
const health = await monitoringApi.getHealth(serviceName);
|
|
268
|
+
return { serviceName, ...health };
|
|
269
|
+
} catch (error) {
|
|
270
|
+
return {
|
|
271
|
+
serviceName,
|
|
272
|
+
error: `Unable to fetch health data: ${error.message}`,
|
|
273
|
+
suggestion: 'Check if the monitoring API is available',
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### Secure your tools
|
|
280
|
+
|
|
281
|
+
Remember that tools execute server-side. Keep security in mind:
|
|
282
|
+
|
|
283
|
+
- **Validate inputs** - Don't trust user-provided data
|
|
284
|
+
- **Use least privilege** - Only grant tools the permissions they need
|
|
285
|
+
- **Protect secrets** - Store API keys in environment variables
|
|
286
|
+
- **Rate limit** - Consider adding rate limiting for expensive operations
|
|
287
|
+
|
|
288
|
+
```js
|
|
289
|
+
execute: async ({ serviceName }) => {
|
|
290
|
+
// Validate the service name exists in your catalog
|
|
291
|
+
const validServices = await getServices();
|
|
292
|
+
if (!validServices.includes(serviceName)) {
|
|
293
|
+
return { error: 'Service not found in catalog' };
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
// Proceed with the query...
|
|
297
|
+
},
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
## Complete example
|
|
301
|
+
|
|
302
|
+
Here's a complete `eventcatalog.chat.js` with multiple tools:
|
|
303
|
+
|
|
304
|
+
```js title="eventcatalog.chat.js"
|
|
305
|
+
import { anthropic } from '@ai-sdk/anthropic';
|
|
306
|
+
import { tool } from 'ai';
|
|
307
|
+
import { z } from 'zod';
|
|
308
|
+
|
|
309
|
+
// Your model configuration
|
|
310
|
+
export default async () => {
|
|
311
|
+
return anthropic('claude-haiku-4-5');
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
export const configuration = {
|
|
315
|
+
temperature: 0.7,
|
|
316
|
+
maxTokens: 10000,
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
// Your custom tools
|
|
320
|
+
export const tools = {
|
|
321
|
+
getEventMetrics: tool({
|
|
322
|
+
description: 'Get real-time production metrics for an event including throughput, latency, and error rates.',
|
|
323
|
+
inputSchema: z.object({
|
|
324
|
+
eventId: z.string(),
|
|
325
|
+
timeRange: z.enum(['1h', '24h', '7d', '30d']).default('24h'),
|
|
326
|
+
}),
|
|
327
|
+
execute: async ({ eventId, timeRange }) => {
|
|
328
|
+
// Your implementation
|
|
329
|
+
},
|
|
330
|
+
}),
|
|
331
|
+
|
|
332
|
+
getServiceHealth: tool({
|
|
333
|
+
description: 'Get the current health status of a service including uptime and active instances.',
|
|
334
|
+
inputSchema: z.object({
|
|
335
|
+
serviceName: z.string(),
|
|
336
|
+
}),
|
|
337
|
+
execute: async ({ serviceName }) => {
|
|
338
|
+
// Your implementation
|
|
339
|
+
},
|
|
340
|
+
}),
|
|
341
|
+
|
|
342
|
+
getOnCall: tool({
|
|
343
|
+
description: 'Get the current on-call engineer and escalation contacts for a service.',
|
|
344
|
+
inputSchema: z.object({
|
|
345
|
+
serviceName: z.string(),
|
|
346
|
+
}),
|
|
347
|
+
execute: async ({ serviceName }) => {
|
|
348
|
+
// Your implementation
|
|
349
|
+
},
|
|
350
|
+
}),
|
|
351
|
+
|
|
352
|
+
getQueueDepth: tool({
|
|
353
|
+
description: 'Get the current queue depth and consumer lag for an event.',
|
|
354
|
+
inputSchema: z.object({
|
|
355
|
+
eventId: z.string(),
|
|
356
|
+
environment: z.enum(['production', 'staging', 'development']).default('production'),
|
|
357
|
+
}),
|
|
358
|
+
execute: async ({ eventId, environment }) => {
|
|
359
|
+
// Your implementation
|
|
360
|
+
},
|
|
361
|
+
}),
|
|
362
|
+
};
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
## Viewing available tools
|
|
366
|
+
|
|
367
|
+
Users can see all available tools (including custom ones) by clicking the **wrench icon** in the chat panel. Custom tools are labeled with a "Custom" badge to distinguish them from built-in tools.
|
|
368
|
+
|
|
369
|
+
## What can you build?
|
|
370
|
+
|
|
371
|
+
The possibilities are endless. Here are some ideas:
|
|
372
|
+
|
|
373
|
+
- **Cost tracking** - "How much did the OrderCreated event cost to process last month?"
|
|
374
|
+
- **Compliance checks** - "Does the PaymentService meet our SLA requirements?"
|
|
375
|
+
- **Deployment info** - "When was InventoryService last deployed?"
|
|
376
|
+
- **Incident history** - "What incidents has NotificationService had this quarter?"
|
|
377
|
+
- **Schema validation** - "Would this schema change break any consumers?"
|
|
378
|
+
- **Test coverage** - "What's the test coverage for OrderService?"
|
|
379
|
+
- **Documentation gaps** - "Which events are missing descriptions?"
|
|
380
|
+
|
|
381
|
+
Custom tools turn EventCatalog into your organization's single pane of glass for architecture knowledge—combining static documentation with live operational data.
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
Have questions about custom tools? [Join our Discord community](https://eventcatalog.dev/discord) to share ideas and get help.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"label": "EventCatalog MCP Server",
|
|
3
|
+
"position": 2,
|
|
4
|
+
"collapsible": true,
|
|
5
|
+
"collapsed": true,
|
|
6
|
+
"link": {
|
|
7
|
+
"type": "generated-index",
|
|
8
|
+
"slug": "development/developer-tools/mcp-server",
|
|
9
|
+
"title": "MCP Server",
|
|
10
|
+
"description": "This section contains tutorials for the EventCatalog MCP Server."
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 2
|
|
3
|
+
keywords:
|
|
4
|
+
- MCP Server
|
|
5
|
+
sidebar_label: Installation
|
|
6
|
+
title: Getting started
|
|
7
|
+
description: Connect MCP clients to your EventCatalog
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
import AddedIn from '@site/src/components/MDX/AddedIn';
|
|
11
|
+
import PlanBanner from '@site/src/components/MDX/PlanBanner';
|
|
12
|
+
|
|
13
|
+
<PlanBanner plan="Scale" />
|
|
14
|
+
|
|
15
|
+
### Prerequisites
|
|
16
|
+
|
|
17
|
+
1. **SSR mode** - EventCatalog must run in [server mode](/docs/development/deployment/build-ssr-mode#building-your-eventcatalog-ssr) (not static)
|
|
18
|
+
2. **Scale license** - You can get a 14 day free trial at [eventcatalog.cloud](https://eventcatalog.cloud)
|
|
19
|
+
|
|
20
|
+
### Quick start
|
|
21
|
+
|
|
22
|
+
Your MCP server is available at:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
https://your-eventcatalog.com/docs/mcp/
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
For local development:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
http://localhost:3000/docs/mcp/
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Verify the server
|
|
35
|
+
|
|
36
|
+
Visit the endpoint in your browser to verify. It returns available tools and resources:
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"name": "EventCatalog MCP Server",
|
|
41
|
+
"version": "1.0.0",
|
|
42
|
+
"status": "running",
|
|
43
|
+
"tools": ["getResources", "getResource", ...],
|
|
44
|
+
"resources": ["eventcatalog://all", "eventcatalog://events", ...]
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Connect clients
|
|
49
|
+
|
|
50
|
+
<details>
|
|
51
|
+
<summary>Claude Desktop</summary>
|
|
52
|
+
1. Get your MCP URL `https://your-eventcatalog.com/docs/mcp/`
|
|
53
|
+
1. Navigate to the [Connectors](https://claude.ai/settings/connectors) page in Claude Settings.
|
|
54
|
+
1. Select **Add custom connector**
|
|
55
|
+
1. Select **Add**
|
|
56
|
+
5. When using Claude, select the attachments button (the plus icon).
|
|
57
|
+
6. Select your MCP server.
|
|
58
|
+
</details>
|
|
59
|
+
|
|
60
|
+
<details>
|
|
61
|
+
<summary>Claude Code</summary>
|
|
62
|
+
1. Get your MCP URL `https://your-eventcatalog.com/docs/mcp/`
|
|
63
|
+
2. Run the command to connect claude code to your eventcatalog instance
|
|
64
|
+
```bash
|
|
65
|
+
claude mcp add --transport http <name> <url>
|
|
66
|
+
```
|
|
67
|
+
</details>
|
|
68
|
+
|
|
69
|
+
<details>
|
|
70
|
+
<summary>Cursor</summary>
|
|
71
|
+
1. Get your MCP URL `https://your-eventcatalog.com/docs/mcp/`
|
|
72
|
+
1. Use `Command` + `Shift` + `P` (`Ctrl` + `Shift` + `P` on Windows) to open the Command Palette.
|
|
73
|
+
1. Search for "Open MCP settings"
|
|
74
|
+
1. Select **Add custom MCP.** This opens the `mcp.json` file.
|
|
75
|
+
1. Add the following to the `mcp.json` file:
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"servers": {
|
|
79
|
+
"<your-mcp-server-name>": {
|
|
80
|
+
"url": "https://your-eventcatalog.com/docs/mcp/"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
</details>
|
|
86
|
+
|
|
87
|
+
<details>
|
|
88
|
+
<summary>VS Code</summary>
|
|
89
|
+
1. Get your MCP URL `https://your-eventcatalog.com/docs/mcp/`
|
|
90
|
+
1. Create a `.vscode/mcp.json` file.
|
|
91
|
+
1. Inside the `mcp.json` file, add the following:
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"servers": {
|
|
95
|
+
"<your-mcp-server-name>": {
|
|
96
|
+
"type": "http",
|
|
97
|
+
"url": "https://your-eventcatalog.com/docs/mcp/"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
</details>
|
|
103
|
+
|
|
104
|
+
## Available tools
|
|
105
|
+
|
|
106
|
+
### 15 built-in tools
|
|
107
|
+
|
|
108
|
+
- `getResources` - Get events, services, commands, queries, flows, domains
|
|
109
|
+
- `getResource` - Get a specific resource by id and version
|
|
110
|
+
- `getMessagesProducedOrConsumedByResource` - Messages a resource sends/receives
|
|
111
|
+
- `getSchemaForResource` - Get OpenAPI, AsyncAPI, or other schemas
|
|
112
|
+
- `findResourcesByOwner` - Resources owned by a team or user
|
|
113
|
+
- `getProducersOfMessage` - Services that produce a message
|
|
114
|
+
- `getConsumersOfMessage` - Services that consume a message
|
|
115
|
+
- `analyzeChangeImpact` - Impact of changing a message
|
|
116
|
+
- `explainBusinessFlow` - Detailed flow information
|
|
117
|
+
- `getTeams` / `getTeam` - Query teams
|
|
118
|
+
- `getUsers` / `getUser` - Query users
|
|
119
|
+
- `findMessageBySchemaId` - Find messages by schema identifiers
|
|
120
|
+
- `explainUbiquitousLanguageTerms` - DDD ubiquitous language from domains
|
|
121
|
+
|
|
122
|
+
[See full API documentation →](/docs/development/ask-your-architecture/mcp-server/getting-started)
|
|
123
|
+
|
|
124
|
+
### 12 resources
|
|
125
|
+
|
|
126
|
+
- `eventcatalog://all` - All resources
|
|
127
|
+
- `eventcatalog://events` - All events
|
|
128
|
+
- `eventcatalog://commands` - All commands
|
|
129
|
+
- `eventcatalog://queries` - All queries
|
|
130
|
+
- `eventcatalog://services` - All services
|
|
131
|
+
- `eventcatalog://channels` - All channels
|
|
132
|
+
- `eventcatalog://diagrams` - All diagrams
|
|
133
|
+
- `eventcatalog://containers` - All containers
|
|
134
|
+
- `eventcatalog://domains` - All domains
|
|
135
|
+
- `eventcatalog://flows` - All flows
|
|
136
|
+
- `eventcatalog://teams` - All teams
|
|
137
|
+
- `eventcatalog://users` - All users
|
|
138
|
+
|
|
139
|
+
## Add custom tools
|
|
140
|
+
|
|
141
|
+
Extend the MCP server with custom tools in `eventcatalog.chat.js`:
|
|
142
|
+
|
|
143
|
+
```javascript
|
|
144
|
+
// eventcatalog.chat.js
|
|
145
|
+
export const tools = {
|
|
146
|
+
myCustomTool: {
|
|
147
|
+
description: 'My custom tool for EventCatalog',
|
|
148
|
+
parameters: z.object({
|
|
149
|
+
query: z.string().describe('The query parameter'),
|
|
150
|
+
}),
|
|
151
|
+
execute: async ({ query }) => {
|
|
152
|
+
// Your custom logic here
|
|
153
|
+
return { result: 'Custom data' };
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Custom tools appear alongside built-in tools automatically.
|
|
160
|
+
|
|
161
|
+
## Use standalone server
|
|
162
|
+
|
|
163
|
+
For catalogs without SSR mode, use the standalone `@eventcatalog/mcp-server` package. We plan to deprecate this in a future release, so we recommend migrating to the built-in server when possible.
|
|
164
|
+
|
|
165
|
+
<details>
|
|
166
|
+
<summary>Standalone server on stdio</summary>
|
|
167
|
+
|
|
168
|
+
For local development and testing, you can use the MCP Server on stdio. This is useful for single-client, low-latency tools.
|
|
169
|
+
|
|
170
|
+
**Prerequisites:**
|
|
171
|
+
- EventCatalog configured with the [`LLMS.txt` feature](/docs/development/developer-tools/llms.txt)
|
|
172
|
+
- EventCatalog Scale license
|
|
173
|
+
- MCP client installed
|
|
174
|
+
|
|
175
|
+
**Command:**
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
npx -y @eventcatalog/mcp-server {URL_TO_YOUR_EVENTCATALOG_INSTANCE} {EVENTCATALOG_LICENSE_KEY}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
</details>
|
|
182
|
+
|
|
183
|
+
<details>
|
|
184
|
+
<summary>Standalone server over HTTP</summary>
|
|
185
|
+
|
|
186
|
+
Run the MCP Server over HTTP for production deployments.
|
|
187
|
+
|
|
188
|
+
**Prerequisites:**
|
|
189
|
+
- EventCatalog instance running
|
|
190
|
+
- EventCatalog Scale license
|
|
191
|
+
- MCP client installed
|
|
192
|
+
|
|
193
|
+
**Run using npx:**
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
npx -y @eventcatalog/mcp-server https://your-eventcatalog-instance.com {EVENTCATALOG_LICENSE_KEY} http {PORT} {ROOT_PATH}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Example:**
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
npx -y @eventcatalog/mcp-server https://demo.eventcatalog.dev {EVENTCATALOG_LICENSE_KEY} http 3000 /mcp
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
This starts the MCP Server over HTTP on port 3000 with root path `/mcp`.
|
|
206
|
+
|
|
207
|
+
**Run using Docker:**
|
|
208
|
+
|
|
209
|
+
See [instructions on the GitHub repository](https://github.com/event-catalog/mcp-server/blob/main/README.Docker.md).
|
|
210
|
+
|
|
211
|
+
</details>
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 1
|
|
3
|
+
keywords:
|
|
4
|
+
- MCP Server
|
|
5
|
+
sidebar_label: Introduction
|
|
6
|
+
title: MCP server
|
|
7
|
+
description: Connect AI tools to your architecture catalog
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
import AddedIn from '@site/src/components/MDX/AddedIn';
|
|
11
|
+
|
|
12
|
+
import PlanBanner from '@site/src/components/MDX/PlanBanner';
|
|
13
|
+
|
|
14
|
+
<PlanBanner plan="Scale" />
|
|
15
|
+
|
|
16
|
+
Every EventCatalog instance automatically includes a [Model Context Protocol (MCP) server](https://modelcontextprotocol.io/introduction).
|
|
17
|
+
|
|
18
|
+
<!-- This allows AI assistants to access your documentation content directly, making it easy for tools like Claude Desktop, Cursor, and VS Code extensions to answer questions using your docs.
|
|
19
|
+
|
|
20
|
+
The MCP server is available at your site's URL with `/docs/mcp` appended.
|
|
21
|
+
|
|
22
|
+
### Using the standalone server?
|
|
23
|
+
|
|
24
|
+
:::warning Standalone server
|
|
25
|
+
The standalone server `@eventcatalog/mcp-server` is getting deprecated. If you want to use the MCP server you should migrate to the `/mcp/` endpoint.
|
|
26
|
+
:::
|
|
27
|
+
|
|
28
|
+
For teams that are using the standalone server, you can still read the documentation for the standalone server below.
|
|
29
|
+
|
|
30
|
+
<details>
|
|
31
|
+
<summary>View standalone server documentation</summary>
|
|
32
|
+
|
|
33
|
+
The standalone server runs locally (stdio) or as an HTTP API.
|
|
34
|
+
|
|
35
|
+
**Transport types:**
|
|
36
|
+
- [stdio](/docs/development/ask-your-architecture/mcp-server/getting-started#use-standalone-server) - Local development and testing
|
|
37
|
+
- [HTTP API](/docs/development/ask-your-architecture/mcp-server/getting-started#use-standalone-server) - Production and integrations
|
|
38
|
+
|
|
39
|
+
**Source code:** [github.com/event-catalog/mcp-server](https://github.com/event-catalog/mcp-server)
|
|
40
|
+
|
|
41
|
+
</details> -->
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|