Federation configuration reference
Configure Federation under the federation key in the central catalog's eventcatalog.config.js.
eventcatalog.config.js
export default {
federation: {
rules: {
'federation/missing-resource': 'error',
},
sources: [
{
id: 'acme/payments',
source: 'github:acme/payments-catalog',
path: 'catalog',
ref: 'main',
},
],
},
};
federation
| Field | Type | Required | Description |
|---|---|---|---|
sources | FederationSourceConfig[] | Yes | Catalogs included in the organization view. Use an empty array to remove previous Federation output. |
rules | Record<FederationRuleId, FederationRuleLevel> | No | Overrides diagnostic levels. Unconfigured rules keep their defaults. |
Sources
Each entry in federation.sources selects one EventCatalog project.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | Yes | Stable source identity used by indexes, ownership, generated paths, diagnostics, and the lockfile. | |
source | string | Yes | Source locator. Supported protocols are github: and file:. | |
path | string | No | . | Catalog directory within the selected repository or filesystem source. |
ref | string | No | main | GitHub branch, tag, or commit. Not supported by filesystem sources. |
Source IDs
Every source requires a non-empty id, and the same ID cannot be configured more than once.
Use stable organization-oriented IDs:
{
id: 'acme/payments',
source: 'github:acme/payments-catalog',
}
Changing the repository or directory does not require changing the ID. Keeping it stable preserves understandable provenance and generated paths.
If a GitHub source publishes catalog.index.json, its source value must exactly match the configured id.
GitHub locator
Syntax:
github:<owner>/<repository>
Example at the repository root:
{
id: 'acme/payments',
source: 'github:acme/payments-catalog',
}
Example in a monorepo:
{
id: 'acme/payments',
source: 'github:acme/architecture-catalogs',
path: 'catalogs/payments',
ref: 'production',
}
GitHub authentication is read from EVENTCATALOG_GITHUB_TOKEN, then GITHUB_TOKEN as a fallback.