@eventcatalog/core 4.10.12 → 4.10.14
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-7URQ754Q.js → chunk-HERAHLM2.js} +1 -1
- package/dist/{chunk-Y5XU3YLT.js → chunk-LITOQH56.js} +1 -1
- package/dist/{chunk-S4LLGOO4.js → chunk-LUW6RDA7.js} +1 -1
- package/dist/{chunk-VFSEVDCQ.js → chunk-ONDFEA5R.js} +1 -1
- package/dist/{chunk-A53VCEEA.js → chunk-V2SKOQYF.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/docs/api/02-config.md +55 -1
- package/dist/docs/development/authentication/providers/03-setting-up-github.md +29 -0
- package/dist/docs/development/bring-your-own-documentation/custom-pages/02-adding-custom-docs.md +2 -2
- package/dist/docs/development/bring-your-own-documentation/custom-pages/03-components.md +17 -0
- package/dist/docs/development/components/07-resource-references.md +7 -1
- package/dist/docs/development/components/components/05-architecture-graph.md +65 -0
- package/dist/docs/development/components/components/{05-attachments.md → 06-attachments.md} +1 -1
- package/dist/docs/development/components/components/{06-channel-information.md → 07-channel-information.md} +1 -1
- package/dist/docs/development/components/components/{07-custom-properties.md → 08-custom-properties.md} +1 -1
- package/dist/docs/development/components/components/{08-design.md → 09-design.md} +1 -1
- package/dist/docs/development/components/components/{09-entitymap.md → 10-entitymap.md} +1 -1
- package/dist/docs/development/components/components/{10-flow.md → 11-flow.md} +1 -1
- package/dist/docs/development/components/components/{11-link.md → 12-link.md} +1 -1
- package/dist/docs/development/components/components/{12-mermaid-file-loader.md → 13-mermaid-file-loader.md} +1 -1
- package/dist/docs/development/components/components/{13-message-table.md → 14-message-table.md} +1 -1
- package/dist/docs/development/components/components/{14-nodegraph.md → 15-nodegraph.md} +1 -1
- package/dist/docs/development/components/components/{15-openapi.md → 16-openapi.md} +1 -1
- package/dist/docs/development/components/components/{16-prompt.md → 17-prompt.md} +1 -1
- package/dist/docs/development/components/components/{17-remote-schema.md → 18-remote-schema.md} +1 -1
- package/dist/docs/development/components/components/{18-resource-group-table.md → 19-resource-group-table.md} +1 -1
- package/dist/docs/development/components/components/{19-resource-link.md → 20-resource-link.md} +1 -1
- package/dist/docs/development/components/components/{20-schema.md → 21-schema.md} +1 -1
- package/dist/docs/development/components/components/{21-schema-viewer.md → 22-schema-viewer.md} +1 -1
- package/dist/docs/development/components/components/{22-steps.md → 23-steps.md} +1 -1
- package/dist/docs/development/components/components/{23-tabs.md → 24-tabs.md} +1 -1
- package/dist/docs/development/components/components/{24-tiles.md → 25-tiles.md} +1 -1
- package/dist/docs/development/components/components/{25-visibility.md → 26-visibility.md} +1 -1
- package/dist/docs/development/customization/04-documentation-sidebar.md +3 -3
- package/dist/docs/development/customization/05-resource-sidebar.md +235 -0
- package/dist/docs/development/customization/09-embed-eventcatalog.md +179 -0
- package/dist/docs/development/customization/_category_.json +1 -1
- package/dist/docs/development/deployment/build-and-deploy.md +4 -0
- package/dist/docs/development/deployment/hosting-options.md +1 -1
- package/dist/docs/development/deployment/link-validation.md +105 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/00-overview.md +76 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/01-setup.md +144 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/_category_.json +10 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/01-configure-rules.md +130 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/02-run-in-ci.md +93 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/03-use-custom-frontmatter.md +81 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/04-reference-external-catalogs.md +51 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/05-fix-common-problems.md +120 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/how-to/_category_.json +12 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/reference/01-cli.md +109 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/reference/02-configuration.md +120 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/reference/03-rules.md +287 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/reference/04-versions.md +77 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/reference/05-supported-resources.md +75 -0
- package/dist/docs/development/developer-tools/eventcatalog-linter/reference/_category_.json +12 -0
- package/dist/docs/development/guides/97-architecture-graph.md +78 -0
- package/dist/docs/development/guides/domains/02-create-domain.md +1 -1
- package/dist/docs/development/guides/domains/03-ownership-and-language/02-adding-ubiquitous-language.md +29 -0
- package/dist/docs/development/guides/domains/09-reference.md +10 -0
- package/dist/docs/development/guides/resources/messages/04-message-channels/02-adding-channels.md +2 -2
- package/dist/docs/development/guides/resources/messages/04-message-channels/04-adding-messages-to-services.md +8 -0
- package/dist/docs/development/guides/resources/schemas/03-add-specifications-to-services/01-add-openapi-specifications.md +2 -2
- package/dist/docs/development/guides/resources/schemas/03-add-specifications-to-services/02-add-asyncapi-specifications.md +3 -3
- package/dist/docs/development/guides/systems/05-system-context-maps.md +2 -0
- package/dist/docs/development/license-keys/license-validation.md +7 -3
- package/dist/docs/development/license-keys/overview.md +7 -3
- package/dist/docs/development/upgrading/upgrading.md +3 -3
- package/dist/docs/development/upgrading/v2.md +3 -3
- package/dist/docs/federation/00-overview.md +158 -0
- package/dist/docs/federation/01-first-federation.md +199 -0
- package/dist/docs/federation/_category_.json +12 -0
- package/dist/docs/federation/explanation/_category_.json +12 -0
- package/dist/docs/federation/explanation/how-it-works.md +129 -0
- package/dist/docs/federation/explanation/lockfile-and-cache.md +134 -0
- package/dist/docs/federation/explanation/mvp-status-and-feedback.md +86 -0
- package/dist/docs/federation/explanation/ownership-and-references.md +134 -0
- package/dist/docs/federation/how-to/_category_.json +12 -0
- package/dist/docs/federation/how-to/configure-github-sources.md +156 -0
- package/dist/docs/federation/how-to/configure-validation-rules.md +127 -0
- package/dist/docs/federation/how-to/run-in-ci.md +138 -0
- package/dist/docs/federation/how-to/share-assets-and-components.md +125 -0
- package/dist/docs/federation/how-to/use-local-sources.md +138 -0
- package/dist/docs/{plugins/eventcatalog-federation → federation/legacy-federation}/00-introduction.md +11 -2
- package/dist/docs/{plugins/eventcatalog-federation → federation/legacy-federation}/01-installation.md +11 -3
- package/dist/docs/{plugins/eventcatalog-federation → federation/legacy-federation}/02-plugin-configuration.md +11 -2
- package/dist/docs/{plugins/eventcatalog-federation → federation/legacy-federation}/03-examples.md +11 -1
- package/dist/docs/{plugins/eventcatalog-federation → federation/legacy-federation}/04-configuration.md +11 -1
- package/dist/docs/{plugins/eventcatalog-federation → federation/legacy-federation}/05-setup-team-catalog.md +11 -2
- package/dist/docs/federation/legacy-federation/_category_.json +12 -0
- package/dist/docs/federation/reference/_category_.json +12 -0
- package/dist/docs/federation/reference/cli.md +122 -0
- package/dist/docs/federation/reference/configuration.md +192 -0
- package/dist/docs/federation/reference/diagnostic-rules.md +173 -0
- package/dist/docs/federation/reference/generated-output.md +118 -0
- package/dist/docs/federation/reference/supported-content.md +86 -0
- package/dist/docs/federation/reference/troubleshooting.md +208 -0
- package/dist/docs/plugins/01-intro.md +3 -3
- package/dist/docs/plugins/03-all-plugins.md +2 -2
- package/dist/docs/plugins/asyncapi/00-intro.md +4 -4
- package/dist/docs/plugins/asyncapi/02-plugin-configuration.md +4 -4
- package/dist/docs/plugins/backstage/00-overview.md +53 -0
- package/dist/docs/plugins/backstage/01-get-started.md +95 -0
- package/dist/docs/plugins/backstage/02-embed-entity-tabs.md +109 -0
- package/dist/docs/plugins/backstage/03-add-overview-cards.md +79 -0
- package/dist/docs/plugins/backstage/04-control-theme-and-size.md +54 -0
- package/dist/docs/plugins/backstage/05-migrate-to-annotations.md +49 -0
- package/dist/docs/plugins/backstage/06-configuration.md +85 -0
- package/dist/docs/plugins/backstage/07-components.md +129 -0
- package/dist/docs/plugins/backstage/08-how-embeds-work.md +52 -0
- package/dist/docs/plugins/backstage/_category_.json +4 -3
- package/dist/docs/plugins/eventbridge/00-intro.md +5 -5
- package/dist/docs/plugins/eventbridge/03-api.md +3 -3
- package/dist/docs/plugins/graphql/00-intro.md +2 -2
- package/dist/docs/plugins/graphql/02-plugin-configuration.md +2 -2
- package/dist/docs/plugins/hookdeck/01-intro.md +1 -1
- package/dist/docs/plugins/openapi/00-intro.md +1 -1
- package/dist/eventcatalog.cjs +1 -1
- package/dist/eventcatalog.js +5 -5
- package/dist/generate.cjs +1 -1
- package/dist/generate.js +3 -3
- package/dist/utils/cli-logger.cjs +1 -1
- package/dist/utils/cli-logger.js +2 -2
- package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +208 -119
- package/eventcatalog/src/components/ChatPanel/ChatPanelButton.tsx +28 -8
- package/eventcatalog/src/components/ChatPanel/OfflineReply.tsx +45 -0
- package/eventcatalog/src/components/Header.astro +11 -6
- package/eventcatalog/src/components/MDX/Design/Design.astro +2 -2
- package/eventcatalog/src/components/MDX/EntityMap/EntityMap.astro +2 -2
- package/eventcatalog/src/components/MDX/Flow/Flow.astro +2 -2
- package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.astro +2 -2
- package/eventcatalog/src/components/SchemaExplorer/AvroSchemaViewer.tsx +21 -19
- package/eventcatalog/src/components/SchemaExplorer/JSONSchemaViewer.tsx +79 -77
- package/eventcatalog/src/components/SchemaExplorer/ProtobufSchemaViewer.test.tsx +91 -0
- package/eventcatalog/src/components/SchemaExplorer/ProtobufSchemaViewer.tsx +115 -33
- package/eventcatalog/src/components/SchemaExplorer/SchemaViewerHover.test.tsx +33 -0
- package/eventcatalog/src/components/SchemaExplorer/protobuf-validation.test.ts +84 -0
- package/eventcatalog/src/components/SchemaExplorer/protobuf-validation.ts +149 -0
- package/eventcatalog/src/components/Search/Search.astro +11 -4
- package/eventcatalog/src/components/Settings/AssistantSettingsForm.tsx +29 -24
- package/eventcatalog/src/enterprise/custom-documentation/pages/docs/custom/index.astro +3 -3
- package/eventcatalog/src/pages/diagrams/[id]/[version]/index.astro +2 -2
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/index.astro +5 -3
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/index.astro +10 -4
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/[filename].astro +2 -2
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +3 -3
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/[filename].astro +2 -2
- package/eventcatalog/src/pages/visualiser/designs/[id]/index.astro +2 -2
- package/eventcatalog/src/utils/feature.ts +1 -0
- package/eventcatalog/src/utils/protobuf-schema.ts +211 -16
- package/package.json +3 -3
- package/dist/docs/cli/channels.md +0 -180
- package/dist/docs/cli/commands.md +0 -183
- package/dist/docs/cli/custom-docs.md +0 -78
- package/dist/docs/cli/data-products.md +0 -177
- package/dist/docs/cli/data-stores.md +0 -166
- package/dist/docs/cli/diagrams.md +0 -147
- package/dist/docs/cli/domains.md +0 -280
- package/dist/docs/cli/entities.md +0 -138
- package/dist/docs/cli/events.md +0 -186
- package/dist/docs/cli/export.md +0 -27
- package/dist/docs/cli/governance.md +0 -24
- package/dist/docs/cli/messages.md +0 -69
- package/dist/docs/cli/queries.md +0 -183
- package/dist/docs/cli/services.md +0 -266
- package/dist/docs/cli/snapshots.md +0 -44
- package/dist/docs/cli/teams.md +0 -75
- package/dist/docs/cli/users.md +0 -75
- package/dist/docs/cli/utilities.md +0 -43
- package/dist/docs/development/developer-tools/eventcatalog-linter.md +0 -732
- package/dist/docs/plugins/backstage/00-intro.md +0 -67
- package/dist/docs/plugins/backstage/01-installation.md +0 -242
- package/dist/docs/plugins/backstage/02-api.md +0 -51
- package/dist/docs/plugins/backstage/03-examples.md +0 -12
- package/dist/docs/plugins/eventcatalog-federation/_category_.json +0 -11
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 2
|
|
3
|
+
sidebar_label: Use local sources
|
|
4
|
+
title: Use local catalogs during development
|
|
5
|
+
description: Run the federation pipeline against catalogs on your local filesystem.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
import EventCatalogEnterprise from '@site/src/components/MDX/EventCatalogEnterprise';
|
|
9
|
+
|
|
10
|
+
<EventCatalogEnterprise />
|
|
11
|
+
|
|
12
|
+
Use filesystem sources to test cross-catalog relationships, ownership conflicts, rules, assets, and custom components before pushing source changes to GitHub.
|
|
13
|
+
|
|
14
|
+
## Configure a filesystem source
|
|
15
|
+
|
|
16
|
+
Set `source` to a `file:` locator:
|
|
17
|
+
|
|
18
|
+
```js title="eventcatalog.config.js"
|
|
19
|
+
export default {
|
|
20
|
+
federation: {
|
|
21
|
+
sources: [
|
|
22
|
+
{
|
|
23
|
+
id: 'acme/payments',
|
|
24
|
+
source: 'file:../payments-catalog',
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The path after `file:` is resolved from the central catalog directory.
|
|
32
|
+
|
|
33
|
+
Use `path` when the catalog is inside the selected filesystem source:
|
|
34
|
+
|
|
35
|
+
```js title="eventcatalog.config.js"
|
|
36
|
+
{
|
|
37
|
+
id: 'acme/payments',
|
|
38
|
+
source: 'file:../architecture-catalogs',
|
|
39
|
+
path: 'payments',
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Filesystem sources do not support `ref`.
|
|
44
|
+
|
|
45
|
+
## Switch the same sources between local and GitHub
|
|
46
|
+
|
|
47
|
+
Keep each source `id` and `path` stable, and select only the locator with an environment variable:
|
|
48
|
+
|
|
49
|
+
```js title="eventcatalog.config.js"
|
|
50
|
+
const federationSource =
|
|
51
|
+
process.env.EVENTCATALOG_FEDERATION_LOCAL === 'true'
|
|
52
|
+
? 'file:..'
|
|
53
|
+
: 'github:acme/architecture-catalogs';
|
|
54
|
+
|
|
55
|
+
export default {
|
|
56
|
+
federation: {
|
|
57
|
+
sources: [
|
|
58
|
+
{
|
|
59
|
+
id: 'acme/orders',
|
|
60
|
+
source: federationSource,
|
|
61
|
+
path: 'orders',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: 'acme/payments',
|
|
65
|
+
source: federationSource,
|
|
66
|
+
path: 'payments',
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Run against the local catalogs:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
EVENTCATALOG_FEDERATION_LOCAL=true npx eventcatalog federate
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Run against GitHub:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
npx eventcatalog federate
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Add a local npm script
|
|
86
|
+
|
|
87
|
+
For macOS and Linux, add a script to the central catalog:
|
|
88
|
+
|
|
89
|
+
```json title="package.json"
|
|
90
|
+
{
|
|
91
|
+
"scripts": {
|
|
92
|
+
"federate": "eventcatalog federate",
|
|
93
|
+
"federate:local": "EVENTCATALOG_FEDERATION_LOCAL=true eventcatalog federate"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Then run:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
npm run federate:local
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
On Windows, set `EVENTCATALOG_FEDERATION_LOCAL` using your shell's environment variable syntax or use a cross-platform environment helper.
|
|
105
|
+
|
|
106
|
+
## Rerun after source changes
|
|
107
|
+
|
|
108
|
+
Filesystem federation is currently one-shot. When a source catalog changes, rerun:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
EVENTCATALOG_FEDERATION_LOCAL=true npx eventcatalog federate
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
The EventCatalog development watcher does not automatically rerun Federation for changes in another catalog.
|
|
115
|
+
|
|
116
|
+
## Understand local revisions
|
|
117
|
+
|
|
118
|
+
Federation creates a content-derived revision such as `local:92400b8dfbe1` for each local source. The value changes when indexed source content changes and is recorded in `eventcatalog.lock`.
|
|
119
|
+
|
|
120
|
+
This revision identifies the state used by that run. It does not prevent later local edits from being selected by the next run.
|
|
121
|
+
|
|
122
|
+
## Test a diagnostic
|
|
123
|
+
|
|
124
|
+
To test organization-wide validation locally:
|
|
125
|
+
|
|
126
|
+
1. Add a relationship in one catalog that points to a missing ID.
|
|
127
|
+
2. Run local Federation with `--verbose`.
|
|
128
|
+
3. Confirm the `federation/missing-resource` warning names the source catalog, referring resource, and missing resource.
|
|
129
|
+
4. Add the resource to its owning catalog.
|
|
130
|
+
5. Rerun Federation and confirm the warning disappears.
|
|
131
|
+
|
|
132
|
+
> **_PLACEHOLDER_** — Terminal screenshot showing a locally triggered federation diagnostic.
|
|
133
|
+
|
|
134
|
+
## Next steps
|
|
135
|
+
|
|
136
|
+
- [Configure validation rules](/docs/federation/how-to/configure-validation-rules)
|
|
137
|
+
- [Understand ownership and references](/docs/federation/explanation/ownership-and-references)
|
|
138
|
+
- [Troubleshoot local source errors](/docs/federation/reference/troubleshooting#filesystem-source-errors)
|
|
@@ -10,6 +10,15 @@ description: Merge multiple EventCatalog instances into a single catalog
|
|
|
10
10
|
import AddedIn from '@site/src/components/MDX/AddedIn';
|
|
11
11
|
import PluginLicense from '@site/src/components/MDX/PluginLicense';
|
|
12
12
|
import Beta from '@site/src/components/MDX/Beta';
|
|
13
|
+
import EventCatalogEnterprise from '@site/src/components/MDX/EventCatalogEnterprise';
|
|
14
|
+
|
|
15
|
+
<EventCatalogEnterprise />
|
|
16
|
+
|
|
17
|
+
:::warning Legacy Federation
|
|
18
|
+
|
|
19
|
+
This page documents the legacy `@eventcatalog/generator-federation` implementation. For new projects, use the [current built-in EventCatalog Federation](/docs/federation/overview).
|
|
20
|
+
|
|
21
|
+
:::
|
|
13
22
|
|
|
14
23
|
<!-- <Beta /> -->
|
|
15
24
|
<AddedIn version="2.18.0" />
|
|
@@ -48,9 +57,9 @@ You can get a free 30-day trial Scale license key for the plugin.
|
|
|
48
57
|
|
|
49
58
|
You can read more documentation:
|
|
50
59
|
|
|
51
|
-
- [Configuring your main catalog](/docs/
|
|
60
|
+
- [Configuring your main catalog](/docs/federation/legacy-federation/configuration)
|
|
52
61
|
- This is the main catalog for your organization. It will pull in and merge documentation from your teams catalogs.
|
|
53
|
-
- [Configuring your team catalogs](/docs/
|
|
62
|
+
- [Configuring your team catalogs](/docs/federation/legacy-federation/setup-team-catalog)
|
|
54
63
|
- This is the documentation for how to setup your team catalogs
|
|
55
64
|
|
|
56
65
|
## Commercial Use
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
sidebar_position:
|
|
2
|
+
sidebar_position: 2
|
|
3
3
|
keywords:
|
|
4
4
|
- EventCatalog Federation
|
|
5
5
|
sidebar_label: Installation
|
|
@@ -10,10 +10,19 @@ description: Installation of the EventCatalog Federation plugin
|
|
|
10
10
|
import AddedIn from '@site/src/components/MDX/AddedIn';
|
|
11
11
|
import PluginLicense from '@site/src/components/MDX/PluginLicense';
|
|
12
12
|
import Beta from '@site/src/components/MDX/Beta';
|
|
13
|
+
import EventCatalogEnterprise from '@site/src/components/MDX/EventCatalogEnterprise';
|
|
14
|
+
|
|
15
|
+
<EventCatalogEnterprise />
|
|
16
|
+
|
|
17
|
+
:::warning Legacy Federation
|
|
18
|
+
|
|
19
|
+
This page documents the legacy `@eventcatalog/generator-federation` implementation. For new projects, use the [current built-in EventCatalog Federation](/docs/federation/overview).
|
|
20
|
+
|
|
21
|
+
:::
|
|
13
22
|
|
|
14
23
|
<PluginLicense url="#commercial-use" />
|
|
15
24
|
|
|
16
|
-
The EventCatalog Federation plugin is designed for your [main catalog](/docs/
|
|
25
|
+
The EventCatalog Federation plugin is designed for your [main catalog](/docs/federation/legacy-federation/configuration).
|
|
17
26
|
|
|
18
27
|
This plugin will allow you to merge multiple EventCatalog instances into a single catalog.
|
|
19
28
|
|
|
@@ -178,4 +187,3 @@ npm run dev
|
|
|
178
187
|
|
|
179
188
|
If you get stuck, find an issue or need help, please raise an issue on [GitHub](https://github.com/event-catalog/eventcatalog/issues) or join our [Discord community](https://eventcatalog.dev/discord).
|
|
180
189
|
|
|
181
|
-
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
sidebar_position:
|
|
2
|
+
sidebar_position: 3
|
|
3
3
|
keywords:
|
|
4
4
|
- EventCatalog Federation
|
|
5
5
|
sidebar_label: Plugin Configuration
|
|
@@ -7,6 +7,16 @@ title: Plugin Configuration
|
|
|
7
7
|
description: Configuration of the EventCatalog Federation plugin
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
import EventCatalogEnterprise from '@site/src/components/MDX/EventCatalogEnterprise';
|
|
11
|
+
|
|
12
|
+
<EventCatalogEnterprise />
|
|
13
|
+
|
|
14
|
+
:::warning Legacy Federation
|
|
15
|
+
|
|
16
|
+
This page documents the legacy `@eventcatalog/generator-federation` implementation. For new projects, use the [current built-in EventCatalog Federation](/docs/federation/overview).
|
|
17
|
+
|
|
18
|
+
:::
|
|
19
|
+
|
|
10
20
|
API Configuration for the EventCatalog Federation plugin
|
|
11
21
|
|
|
12
22
|
|
|
@@ -205,4 +215,3 @@ You can view an example configuration in the [EventCatalog Federation plugin Git
|
|
|
205
215
|
|
|
206
216
|
|
|
207
217
|
|
|
208
|
-
|
package/dist/docs/{plugins/eventcatalog-federation → federation/legacy-federation}/03-examples.md
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
sidebar_position:
|
|
2
|
+
sidebar_position: 4
|
|
3
3
|
keywords:
|
|
4
4
|
- components
|
|
5
5
|
sidebar_label: Examples
|
|
@@ -7,6 +7,16 @@ title: Examples
|
|
|
7
7
|
description: Examples of using the Federation plugin
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
import EventCatalogEnterprise from '@site/src/components/MDX/EventCatalogEnterprise';
|
|
11
|
+
|
|
12
|
+
<EventCatalogEnterprise />
|
|
13
|
+
|
|
14
|
+
:::warning Legacy Federation
|
|
15
|
+
|
|
16
|
+
This page documents the legacy `@eventcatalog/generator-federation` implementation. For new projects, use the [current built-in EventCatalog Federation](/docs/federation/overview).
|
|
17
|
+
|
|
18
|
+
:::
|
|
19
|
+
|
|
10
20
|
You can find many examples of using the Federation plugin in the [EventCatalog GitHub repository](https://github.com/event-catalog/generators).
|
|
11
21
|
|
|
12
22
|
## Examples
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
sidebar_position: 5
|
|
2
3
|
keywords:
|
|
3
4
|
- EventCatalog components
|
|
4
5
|
sidebar_label: Configuring main catalog
|
|
@@ -9,10 +10,19 @@ description: Configuring federation in your EventCatalog
|
|
|
9
10
|
import AddedIn from '@site/src/components/MDX/AddedIn';
|
|
10
11
|
import PluginLicense from '@site/src/components/MDX/PluginLicense';
|
|
11
12
|
import Beta from '@site/src/components/MDX/Beta';
|
|
13
|
+
import EventCatalogEnterprise from '@site/src/components/MDX/EventCatalogEnterprise';
|
|
14
|
+
|
|
15
|
+
<EventCatalogEnterprise />
|
|
16
|
+
|
|
17
|
+
:::warning Legacy Federation
|
|
18
|
+
|
|
19
|
+
This page documents the legacy `@eventcatalog/generator-federation` implementation. For new projects, use the [current built-in EventCatalog Federation](/docs/federation/overview).
|
|
20
|
+
|
|
21
|
+
:::
|
|
12
22
|
|
|
13
23
|
<!-- <Beta /> -->
|
|
14
24
|
<AddedIn version="2.18.0" />
|
|
15
|
-
<PluginLicense url="/docs/
|
|
25
|
+
<PluginLicense url="/docs/federation/legacy-federation/introduction#commercial-use" />
|
|
16
26
|
|
|
17
27
|
EventCatalog Federation is powered by the [EventCatalog Federation Generator](https://github.com/event-catalog/generators), this let's you define the repositories you want to merge into your main catalog.
|
|
18
28
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
sidebar_position: 6
|
|
2
3
|
keywords:
|
|
3
4
|
- EventCatalog components
|
|
4
5
|
sidebar_label: Configuring team catalogs
|
|
@@ -9,10 +10,19 @@ description: Configuring federation in your EventCatalog
|
|
|
9
10
|
import AddedIn from '@site/src/components/MDX/AddedIn';
|
|
10
11
|
import PluginLicense from '@site/src/components/MDX/PluginLicense';
|
|
11
12
|
import Beta from '@site/src/components/MDX/Beta';
|
|
13
|
+
import EventCatalogEnterprise from '@site/src/components/MDX/EventCatalogEnterprise';
|
|
14
|
+
|
|
15
|
+
<EventCatalogEnterprise />
|
|
16
|
+
|
|
17
|
+
:::warning Legacy Federation
|
|
18
|
+
|
|
19
|
+
This page documents the legacy `@eventcatalog/generator-federation` implementation. For new projects, use the [current built-in EventCatalog Federation](/docs/federation/overview).
|
|
20
|
+
|
|
21
|
+
:::
|
|
12
22
|
|
|
13
23
|
<!-- <Beta /> -->
|
|
14
24
|
<AddedIn version="2.18.0" />
|
|
15
|
-
<PluginLicense url="/docs/
|
|
25
|
+
<PluginLicense url="/docs/federation/legacy-federation/introduction#commercial-use" />
|
|
16
26
|
|
|
17
27
|
Multiple teams can own their own EventCatalog, this is useful if you have multiple teams that want to own their own EventCatalog / Documentation.
|
|
18
28
|
|
|
@@ -93,4 +103,3 @@ dependencies: {
|
|
|
93
103
|
}
|
|
94
104
|
// rest of your config
|
|
95
105
|
```
|
|
96
|
-
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"label": "Legacy Federation",
|
|
3
|
+
"position": 6,
|
|
4
|
+
"collapsible": true,
|
|
5
|
+
"collapsed": true,
|
|
6
|
+
"link": {
|
|
7
|
+
"type": "generated-index",
|
|
8
|
+
"slug": "federation/legacy-federation",
|
|
9
|
+
"title": "Legacy Federation",
|
|
10
|
+
"description": "Documentation for the legacy @eventcatalog/generator-federation implementation."
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"label": "Reference",
|
|
3
|
+
"position": 4,
|
|
4
|
+
"collapsible": true,
|
|
5
|
+
"collapsed": false,
|
|
6
|
+
"link": {
|
|
7
|
+
"type": "generated-index",
|
|
8
|
+
"slug": "federation/reference",
|
|
9
|
+
"title": "Federation reference",
|
|
10
|
+
"description": "Lookup information for federation configuration, commands, diagnostics, generated files, and troubleshooting."
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 2
|
|
3
|
+
sidebar_label: CLI
|
|
4
|
+
title: Federation CLI reference
|
|
5
|
+
description: Command, option, environment variable, and output reference for eventcatalog federate.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
import EventCatalogEnterprise from '@site/src/components/MDX/EventCatalogEnterprise';
|
|
9
|
+
|
|
10
|
+
<EventCatalogEnterprise />
|
|
11
|
+
|
|
12
|
+
Run Federation from the central catalog directory:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npx eventcatalog federate
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The command loads `federation.sources` and `federation.rules` from `eventcatalog.config.js`.
|
|
19
|
+
|
|
20
|
+
## Requirements
|
|
21
|
+
|
|
22
|
+
- A central EventCatalog project
|
|
23
|
+
- An EventCatalog Enterprise offline license file
|
|
24
|
+
- At least one configured source, unless you are cleaning previous output
|
|
25
|
+
- Git for GitHub sources that do not publish an index
|
|
26
|
+
- Network and repository access for GitHub sources
|
|
27
|
+
|
|
28
|
+
## Options
|
|
29
|
+
|
|
30
|
+
| Option | Description | Default |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| `--no-cache` | Disable content cache reads for this run and refresh fetched entries. | Reuse valid cached content |
|
|
33
|
+
| `--verbose`, `-v` | Show the attributes for warning diagnostics. Error attributes are always shown. | Concise warning summary |
|
|
34
|
+
| `--help`, `-h` | Show command help. | |
|
|
35
|
+
|
|
36
|
+
## Examples
|
|
37
|
+
|
|
38
|
+
Run Federation:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npx eventcatalog federate
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Show every warning:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npx eventcatalog federate --verbose
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Refresh content without reading existing cache entries:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npx eventcatalog federate --no-cache
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Pass options through an npm script:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npm run federate -- --verbose
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Select local sources through a configuration environment variable:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
EVENTCATALOG_FEDERATION_LOCAL=true npx eventcatalog federate
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`EVENTCATALOG_FEDERATION_LOCAL` is not a built-in Federation variable. It is an example of using your own environment variable inside `eventcatalog.config.js`.
|
|
69
|
+
|
|
70
|
+
## Environment variables
|
|
71
|
+
|
|
72
|
+
Place the Enterprise `license.jwt` file in the central catalog root. You can commit it with the catalog or write it during CI/CD. If you store it elsewhere, set `EC_LICENSE` to its file path. Email [hello@eventcatalog.dev](mailto:hello@eventcatalog.dev?subject=EventCatalog%20Federation%20Trial) to request an offline trial key.
|
|
73
|
+
|
|
74
|
+
| Variable | Description |
|
|
75
|
+
| --- | --- |
|
|
76
|
+
| `EC_LICENSE` | Optional path to the Enterprise offline license file. Defaults to `license.jwt` in the catalog root. |
|
|
77
|
+
| `EVENTCATALOG_GITHUB_TOKEN` | Preferred GitHub token for private repositories and authenticated content requests. |
|
|
78
|
+
| `GITHUB_TOKEN` | GitHub token fallback when `EVENTCATALOG_GITHUB_TOKEN` is not set. |
|
|
79
|
+
|
|
80
|
+
The command loads variables from `.env` in the central catalog before Federation starts.
|
|
81
|
+
|
|
82
|
+
## Command stages
|
|
83
|
+
|
|
84
|
+
The command reports progress for:
|
|
85
|
+
|
|
86
|
+
1. Configured source discovery
|
|
87
|
+
2. Source fetching and indexing
|
|
88
|
+
3. Central catalog ownership indexing
|
|
89
|
+
4. Graph resolution and diagnostics
|
|
90
|
+
5. Content hydration and cache reuse
|
|
91
|
+
6. Public asset composition
|
|
92
|
+
7. Lockfile recording
|
|
93
|
+
|
|
94
|
+
## Warning and error output
|
|
95
|
+
|
|
96
|
+
Without `--verbose`, warnings produce a summary and a hint to rerun with verbose output.
|
|
97
|
+
|
|
98
|
+
With `--verbose`, each diagnostic includes:
|
|
99
|
+
|
|
100
|
+
- Severity
|
|
101
|
+
- Human-readable message
|
|
102
|
+
- Stable `federation/*` rule ID
|
|
103
|
+
- Rule-specific attributes
|
|
104
|
+
|
|
105
|
+
Errors always include their details and stop before new generated output is installed.
|
|
106
|
+
|
|
107
|
+
## No configured sources
|
|
108
|
+
|
|
109
|
+
When no sources are configured and no previous Federation state exists, the command reports that there is nothing to do.
|
|
110
|
+
|
|
111
|
+
When previous output exists, running with an empty source list removes the previous `federated/` output, managed public files, and lockfile.
|
|
112
|
+
|
|
113
|
+
## Generated files
|
|
114
|
+
|
|
115
|
+
A successful run can update:
|
|
116
|
+
|
|
117
|
+
- `federated/`
|
|
118
|
+
- `public/` for managed remote public assets
|
|
119
|
+
- `.eventcatalog-cache/federation/content/`
|
|
120
|
+
- `eventcatalog.lock`
|
|
121
|
+
|
|
122
|
+
See [Generated output reference](/docs/federation/reference/generated-output).
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 1
|
|
3
|
+
sidebar_label: Configuration
|
|
4
|
+
title: Federation configuration reference
|
|
5
|
+
description: Reference for federation sources and rule levels in eventcatalog.config.js.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
import EventCatalogEnterprise from '@site/src/components/MDX/EventCatalogEnterprise';
|
|
9
|
+
|
|
10
|
+
<EventCatalogEnterprise />
|
|
11
|
+
|
|
12
|
+
Configure Federation under the `federation` key in the central catalog's `eventcatalog.config.js`.
|
|
13
|
+
|
|
14
|
+
```js title="eventcatalog.config.js"
|
|
15
|
+
export default {
|
|
16
|
+
federation: {
|
|
17
|
+
rules: {
|
|
18
|
+
'federation/missing-resource': 'error',
|
|
19
|
+
},
|
|
20
|
+
sources: [
|
|
21
|
+
{
|
|
22
|
+
id: 'acme/payments',
|
|
23
|
+
source: 'github:acme/payments-catalog',
|
|
24
|
+
path: 'catalog',
|
|
25
|
+
ref: 'main',
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## `federation`
|
|
33
|
+
|
|
34
|
+
| Field | Type | Required | Description |
|
|
35
|
+
| --- | --- | --- | --- |
|
|
36
|
+
| `sources` | `FederationSourceConfig[]` | Yes | Catalogs included in the organization view. Use an empty array to remove previous Federation output. |
|
|
37
|
+
| `rules` | `Record<FederationRuleId, FederationRuleLevel>` | No | Overrides diagnostic levels. Unconfigured rules keep their defaults. |
|
|
38
|
+
|
|
39
|
+
## Sources
|
|
40
|
+
|
|
41
|
+
Each entry in `federation.sources` selects one EventCatalog project.
|
|
42
|
+
|
|
43
|
+
| Field | Type | Required | Default | Description |
|
|
44
|
+
| --- | --- | --- | --- | --- |
|
|
45
|
+
| `id` | `string` | Yes | | Stable source identity used by indexes, ownership, generated paths, diagnostics, and the lockfile. |
|
|
46
|
+
| `source` | `string` | Yes | | Source locator. Supported protocols are `github:` and `file:`. |
|
|
47
|
+
| `path` | `string` | No | `.` | Catalog directory within the selected repository or filesystem source. |
|
|
48
|
+
| `ref` | `string` | No | `main` | GitHub branch, tag, or commit. Not supported by filesystem sources. |
|
|
49
|
+
|
|
50
|
+
### Source IDs
|
|
51
|
+
|
|
52
|
+
Every source requires a non-empty `id`, and the same ID cannot be configured more than once.
|
|
53
|
+
|
|
54
|
+
Use stable organization-oriented IDs:
|
|
55
|
+
|
|
56
|
+
```js
|
|
57
|
+
{
|
|
58
|
+
id: 'acme/payments',
|
|
59
|
+
source: 'github:acme/payments-catalog',
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Changing the repository or directory does not require changing the ID. Keeping it stable preserves understandable provenance and generated paths.
|
|
64
|
+
|
|
65
|
+
If a GitHub source publishes `catalog.index.json`, its `source` value must exactly match the configured `id`.
|
|
66
|
+
|
|
67
|
+
### GitHub locator
|
|
68
|
+
|
|
69
|
+
Syntax:
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
github:<owner>/<repository>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Example at the repository root:
|
|
76
|
+
|
|
77
|
+
```js
|
|
78
|
+
{
|
|
79
|
+
id: 'acme/payments',
|
|
80
|
+
source: 'github:acme/payments-catalog',
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Example in a monorepo:
|
|
85
|
+
|
|
86
|
+
```js
|
|
87
|
+
{
|
|
88
|
+
id: 'acme/payments',
|
|
89
|
+
source: 'github:acme/architecture-catalogs',
|
|
90
|
+
path: 'catalogs/payments',
|
|
91
|
+
ref: 'production',
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
GitHub authentication is read from `EVENTCATALOG_GITHUB_TOKEN`, then `GITHUB_TOKEN` as a fallback.
|
|
96
|
+
|
|
97
|
+
### Filesystem locator
|
|
98
|
+
|
|
99
|
+
Syntax:
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
file:<path-from-central-catalog>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Example:
|
|
106
|
+
|
|
107
|
+
```js
|
|
108
|
+
{
|
|
109
|
+
id: 'acme/payments',
|
|
110
|
+
source: 'file:../payments-catalog',
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Example with a catalog inside the selected source root:
|
|
115
|
+
|
|
116
|
+
```js
|
|
117
|
+
{
|
|
118
|
+
id: 'acme/payments',
|
|
119
|
+
source: 'file:../architecture-catalogs',
|
|
120
|
+
path: 'payments',
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Filesystem sources reject `ref`. Paths must remain within the selected source root, including after symbolic links are resolved.
|
|
125
|
+
|
|
126
|
+
## Rules
|
|
127
|
+
|
|
128
|
+
Every rule accepts:
|
|
129
|
+
|
|
130
|
+
```ts
|
|
131
|
+
'off' | 'warn' | 'error'
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
| Rule ID | Default |
|
|
135
|
+
| --- | --- |
|
|
136
|
+
| `federation/duplicate-source` | `error` |
|
|
137
|
+
| `federation/type-collision` | `error` |
|
|
138
|
+
| `federation/pointer-type-mismatch` | `error` |
|
|
139
|
+
| `federation/facet-disagreement` | `error` |
|
|
140
|
+
| `federation/asset-collision` | `warn` |
|
|
141
|
+
| `federation/missing-resource` | `warn` |
|
|
142
|
+
| `federation/unresolved-version` | `warn` |
|
|
143
|
+
|
|
144
|
+
Example:
|
|
145
|
+
|
|
146
|
+
```js title="eventcatalog.config.js"
|
|
147
|
+
export default {
|
|
148
|
+
federation: {
|
|
149
|
+
rules: {
|
|
150
|
+
'federation/duplicate-source': 'error',
|
|
151
|
+
'federation/missing-resource': 'error',
|
|
152
|
+
'federation/asset-collision': 'off',
|
|
153
|
+
},
|
|
154
|
+
sources: [/* ... */],
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Unknown rule IDs and values other than `off`, `warn`, or `error` cause a configuration error.
|
|
160
|
+
|
|
161
|
+
See the [diagnostic rule reference](/docs/federation/reference/diagnostic-rules) for triggers and output attributes.
|
|
162
|
+
|
|
163
|
+
## Complete conditional source example
|
|
164
|
+
|
|
165
|
+
This example uses local sibling catalogs during development and GitHub in shared environments:
|
|
166
|
+
|
|
167
|
+
```js title="eventcatalog.config.js"
|
|
168
|
+
const source =
|
|
169
|
+
process.env.EVENTCATALOG_FEDERATION_LOCAL === 'true'
|
|
170
|
+
? 'file:..'
|
|
171
|
+
: 'github:acme/architecture-catalogs';
|
|
172
|
+
|
|
173
|
+
export default {
|
|
174
|
+
federation: {
|
|
175
|
+
rules: {
|
|
176
|
+
'federation/unresolved-version': 'error',
|
|
177
|
+
},
|
|
178
|
+
sources: [
|
|
179
|
+
{
|
|
180
|
+
id: 'acme/orders',
|
|
181
|
+
source,
|
|
182
|
+
path: 'orders',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
id: 'acme/payments',
|
|
186
|
+
source,
|
|
187
|
+
path: 'payments',
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
```
|