@eventcatalog/core 4.10.13 → 4.10.15
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-SSSN5FXC.js → chunk-7LWOCX4R.js} +1 -1
- package/dist/{chunk-IIECZFXN.js → chunk-A4JRWRCV.js} +1 -1
- package/dist/{chunk-JHUICVBT.js → chunk-HBVTU6ZP.js} +1 -1
- package/dist/{chunk-PADMH2RJ.js → chunk-I6HUOX4R.js} +1 -1
- package/dist/{chunk-34RMFKFB.js → chunk-Q2ATWE7N.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/docs/api/02-config.md +60 -6
- package/dist/docs/development/ask-your-architecture/02-eventcatalog-assistant/02-configuration.md +18 -11
- 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} +13 -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/components/diagram-syntax/06-mermaid.md +45 -6
- 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/SchemaExplorer/AvroSchemaViewer.tsx +21 -19
- package/eventcatalog/src/components/SchemaExplorer/JSONSchemaViewer.test.tsx +114 -0
- package/eventcatalog/src/components/SchemaExplorer/JSONSchemaViewer.tsx +107 -86
- 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/utils/collections/glob-loader.ts +2 -2
- package/eventcatalog/src/utils/protobuf-schema.ts +211 -16
- package/package.json +8 -8
- 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,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 6
|
|
3
|
+
sidebar_label: Migrate legacy mappings
|
|
4
|
+
title: Migrate legacy resource mappings to entity annotations
|
|
5
|
+
description: Replace pre-1.0 Backstage app configuration mappings with EventCatalog entity annotations.
|
|
6
|
+
keywords:
|
|
7
|
+
- backstage
|
|
8
|
+
- migration
|
|
9
|
+
- annotations
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
Plugin versions before 1.0 mapped Backstage names to EventCatalog IDs in `app-config.yaml`:
|
|
13
|
+
|
|
14
|
+
```yaml title="app-config.yaml"
|
|
15
|
+
eventcatalog:
|
|
16
|
+
URL: https://demo.eventcatalog.dev
|
|
17
|
+
services:
|
|
18
|
+
- backstage-name: order-service
|
|
19
|
+
eventcatalog-id: order-service
|
|
20
|
+
eventcatalog-version: 1.0.0
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Move each resource mapping to the matching Backstage entity:
|
|
24
|
+
|
|
25
|
+
```yaml title="catalog-info.yaml"
|
|
26
|
+
apiVersion: backstage.io/v1alpha1
|
|
27
|
+
kind: Component
|
|
28
|
+
metadata:
|
|
29
|
+
name: order-service
|
|
30
|
+
annotations:
|
|
31
|
+
eventcatalog.dev/id: order-service
|
|
32
|
+
eventcatalog.dev/version: 1.0.0
|
|
33
|
+
eventcatalog.dev/collection: services
|
|
34
|
+
spec:
|
|
35
|
+
type: service
|
|
36
|
+
lifecycle: production
|
|
37
|
+
owner: team-orders
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Keep only the EventCatalog base URL in `app-config.yaml`:
|
|
41
|
+
|
|
42
|
+
```yaml title="app-config.yaml"
|
|
43
|
+
eventcatalog:
|
|
44
|
+
URL: https://demo.eventcatalog.dev
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Re-ingest the entity in Backstage, then open an EventCatalog tab or card and verify that it resolves the expected resource. Repeat for every legacy `services` and `apis` mapping.
|
|
48
|
+
|
|
49
|
+
See the [configuration reference](/docs/plugins/backstage/configuration) for annotation defaults and supported collections.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 7
|
|
3
|
+
sidebar_label: Configuration reference
|
|
4
|
+
title: Backstage plugin configuration reference
|
|
5
|
+
description: Reference for the EventCatalog base URL and Backstage entity annotations.
|
|
6
|
+
keywords:
|
|
7
|
+
- backstage
|
|
8
|
+
- app-config
|
|
9
|
+
- annotations
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Backstage app configuration
|
|
13
|
+
|
|
14
|
+
Configure one EventCatalog base URL in Backstage:
|
|
15
|
+
|
|
16
|
+
```yaml title="app-config.yaml"
|
|
17
|
+
eventcatalog:
|
|
18
|
+
URL: https://demo.eventcatalog.dev
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
| Field | Type | Required | Description |
|
|
22
|
+
| --- | --- | --- | --- |
|
|
23
|
+
| `eventcatalog.URL` | string | Yes | Base URL of the EventCatalog instance. The browser displaying Backstage must be able to reach it. |
|
|
24
|
+
|
|
25
|
+
Configure the EventCatalog origin, without an EventCatalog page path such as `/docs`, `/discover`, or `/visualiser`.
|
|
26
|
+
|
|
27
|
+
## Entity annotations
|
|
28
|
+
|
|
29
|
+
Add these annotations to a Backstage catalog entity:
|
|
30
|
+
|
|
31
|
+
```yaml
|
|
32
|
+
metadata:
|
|
33
|
+
annotations:
|
|
34
|
+
eventcatalog.dev/id: order-service
|
|
35
|
+
eventcatalog.dev/version: 1.0.0
|
|
36
|
+
eventcatalog.dev/collection: services
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
| Annotation | Required | Default | Description |
|
|
40
|
+
| --- | --- | --- | --- |
|
|
41
|
+
| `eventcatalog.dev/id` | Yes for resource views | None | EventCatalog resource ID. |
|
|
42
|
+
| `eventcatalog.dev/version` | No | Latest resource page where supported | EventCatalog resource version. Entity maps, specific system context maps, and flows should provide a version. |
|
|
43
|
+
| `eventcatalog.dev/collection` | No | Inferred for Backstage services, APIs, and domains | EventCatalog collection containing the resource. |
|
|
44
|
+
|
|
45
|
+
Supported collections include:
|
|
46
|
+
|
|
47
|
+
- `agents`
|
|
48
|
+
- `commands`
|
|
49
|
+
- `containers`
|
|
50
|
+
- `data-products`
|
|
51
|
+
- `domains`
|
|
52
|
+
- `entities`
|
|
53
|
+
- `events`
|
|
54
|
+
- `flows`
|
|
55
|
+
- `queries`
|
|
56
|
+
- `services`
|
|
57
|
+
- `systems`
|
|
58
|
+
- `teams`
|
|
59
|
+
|
|
60
|
+
For a Backstage `Component` with `spec.type: service`, and for a Backstage `API`, the inferred collection is `services`. For a Backstage `Domain`, it is `domains`. Other entity kinds should set `eventcatalog.dev/collection` explicitly.
|
|
61
|
+
|
|
62
|
+
## Prop overrides
|
|
63
|
+
|
|
64
|
+
Component props override annotations. For example, this always displays the `ordering` domain even when the current Backstage entity maps to another resource:
|
|
65
|
+
|
|
66
|
+
```tsx
|
|
67
|
+
<EventCatalogDocumentationEntityPage
|
|
68
|
+
page="entity-map"
|
|
69
|
+
id="ordering"
|
|
70
|
+
version="1.0.0"
|
|
71
|
+
collection="domains"
|
|
72
|
+
/>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
`type` is an alias for `collection` and accepts singular or plural values. Known singular resource types are converted to their plural collection, so `type="service"` resolves to `services`.
|
|
76
|
+
|
|
77
|
+
## EventCatalog license configuration
|
|
78
|
+
|
|
79
|
+
For commercial use, set the Scale license key in the EventCatalog deployment rather than the Backstage app:
|
|
80
|
+
|
|
81
|
+
```bash title=".env"
|
|
82
|
+
EVENTCATALOG_SCALE_LICENSE_KEY=your-scale-license-key
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Existing Backstage-specific keys can continue to use `EVENTCATALOG_LICENSE_KEY_BACKSTAGE`, but new deployments should use `EVENTCATALOG_SCALE_LICENSE_KEY`. See [Getting a license key for integrations](/docs/development/license-keys/integrations).
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 8
|
|
3
|
+
sidebar_label: Component reference
|
|
4
|
+
title: Backstage plugin component reference
|
|
5
|
+
description: Reference for all EventCatalog Backstage page and card components and their props.
|
|
6
|
+
keywords:
|
|
7
|
+
- backstage
|
|
8
|
+
- react components
|
|
9
|
+
- props
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
Import components from `@eventcatalog/backstage-plugin-eventcatalog`.
|
|
13
|
+
|
|
14
|
+
## Full-page components
|
|
15
|
+
|
|
16
|
+
Use these components as children of `EntityLayout.Route`.
|
|
17
|
+
|
|
18
|
+
### `EventCatalogDocumentationEntityPage`
|
|
19
|
+
|
|
20
|
+
The general-purpose page component.
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
<EventCatalogDocumentationEntityPage page="docs" />
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Supported `page` values:
|
|
27
|
+
|
|
28
|
+
| Value | Embedded view | Resource selection |
|
|
29
|
+
| --- | --- | --- |
|
|
30
|
+
| `docs` | Resource documentation | Current mapping or `id`, `version`, and `collection` props |
|
|
31
|
+
| `visualiser` | Resource visualizer | Current mapping or override props |
|
|
32
|
+
| `discover` | Discovery table for the mapped collection | Current mapping or override props |
|
|
33
|
+
| `entity-map` | Resource entity map | Current mapping or override props; provide a version |
|
|
34
|
+
| `schema-explorer` | Catalog schema explorer | Global catalog view, rendered from a mapped entity page |
|
|
35
|
+
| `architecture-graph` | Catalog Architecture Graph | Prefer `EventCatalogArchitectureGraphEntityPage` |
|
|
36
|
+
| `system-context-map` | System Context Map | Prefer `EventCatalogSystemContextMapEntityPage` |
|
|
37
|
+
| `flow` | Flow visualizer | Prefer `EventCatalogFlowEntityPage` |
|
|
38
|
+
|
|
39
|
+
### `EventCatalogArchitectureGraphEntityPage`
|
|
40
|
+
|
|
41
|
+
Displays `/visualiser/graph` and focuses the graph on the selected resource.
|
|
42
|
+
|
|
43
|
+
```tsx
|
|
44
|
+
<EventCatalogArchitectureGraphEntityPage
|
|
45
|
+
type="service"
|
|
46
|
+
depth={2}
|
|
47
|
+
/>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The graph accepts `depth={1 | 2 | 3}` and defaults to `2`. The Architecture Graph currently uses the latest version of each resource, so `version` does not change its graph data.
|
|
51
|
+
|
|
52
|
+
### `EventCatalogSystemContextMapEntityPage`
|
|
53
|
+
|
|
54
|
+
Displays the catalog-wide System Context Map when no system is selected:
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
<EventCatalogSystemContextMapEntityPage />
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Pass `system` and `version` to display one system's context:
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
<EventCatalogSystemContextMapEntityPage
|
|
64
|
+
system="order-management-system"
|
|
65
|
+
version="1.0.0"
|
|
66
|
+
/>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
`id` is accepted as an alias for `system`. A mapped Backstage `System` entity can supply both values through annotations.
|
|
70
|
+
|
|
71
|
+
### `EventCatalogFlowEntityPage`
|
|
72
|
+
|
|
73
|
+
Displays a flow visualizer. A flow ID and version are required.
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
<EventCatalogFlowEntityPage
|
|
77
|
+
flow="checkout-saga"
|
|
78
|
+
version="1.0.0"
|
|
79
|
+
/>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
`id` is accepted as an alias for `flow`.
|
|
83
|
+
|
|
84
|
+
## Card components
|
|
85
|
+
|
|
86
|
+
Card components render the same embeds and fill the dimensions of their parent container.
|
|
87
|
+
|
|
88
|
+
| Component | View | Selection props |
|
|
89
|
+
| --- | --- | --- |
|
|
90
|
+
| `EventCatalogEntityVisualiserCard` | Resource visualizer | Current entity mapping |
|
|
91
|
+
| `EventCatalogEntityMessageCard` | Discovery table | Current entity mapping |
|
|
92
|
+
| `EventCatalogEntityEntityMapCard` | Entity map | Current mapping or `id`, `version`, and `collection` |
|
|
93
|
+
| `EventCatalogEntitySchemaExplorerCard` | Schema explorer | Global view |
|
|
94
|
+
| `EventCatalogEntityArchitectureGraphCard` | Architecture Graph | Current mapping or `id`, `type`/`collection`, and `depth` |
|
|
95
|
+
| `EventCatalogEntitySystemContextMapCard` | System Context Map | Overview, or `system`/`id` and `version` |
|
|
96
|
+
| `EventCatalogEntityFlowCard` | Flow visualizer | `flow`/`id` and `version`, or current entity mapping |
|
|
97
|
+
|
|
98
|
+
Set a concrete height on the parent grid item. See [Control embed theme and size](/docs/plugins/backstage/control-theme-and-size).
|
|
99
|
+
|
|
100
|
+
## Shared props
|
|
101
|
+
|
|
102
|
+
| Prop | Type | Default | Description |
|
|
103
|
+
| --- | --- | --- | --- |
|
|
104
|
+
| `id` | `string` | Entity annotation | Override the EventCatalog resource ID. Also aliases `system` and `flow` on their dedicated components. |
|
|
105
|
+
| `version` | `string` | Entity annotation | Override the EventCatalog version. |
|
|
106
|
+
| `collection` | `string` | Entity annotation or inferred value | Override the EventCatalog collection. |
|
|
107
|
+
| `type` | `string` | None | Alias for `collection`; singular known types are converted to plural collections. |
|
|
108
|
+
| `theme` | `'light' \| 'dark'` | Saved EventCatalog theme | Force the color theme for this embed. |
|
|
109
|
+
|
|
110
|
+
## Specialized props
|
|
111
|
+
|
|
112
|
+
| Prop | Component | Type | Default | Description |
|
|
113
|
+
| --- | --- | --- | --- | --- |
|
|
114
|
+
| `page` | `EventCatalogDocumentationEntityPage` | `EventCatalogPage` | `docs` | Select the embedded EventCatalog view. |
|
|
115
|
+
| `depth` | Architecture Graph components | `1 \| 2 \| 3` | `2` | Number of relationship hops around the focused resource. |
|
|
116
|
+
| `system` | System Context Map components | `string` | None | EventCatalog system ID. Omit for the overview. |
|
|
117
|
+
| `flow` | Flow components | `string` | Entity annotation | EventCatalog flow ID. |
|
|
118
|
+
|
|
119
|
+
## Exported types
|
|
120
|
+
|
|
121
|
+
The package exports these public types:
|
|
122
|
+
|
|
123
|
+
- `EventCatalogArchitectureGraphDepth`
|
|
124
|
+
- `EventCatalogArchitectureGraphEntityPageProps`
|
|
125
|
+
- `EventCatalogDocumentationEntityPageProps`
|
|
126
|
+
- `EventCatalogEmbedTheme`
|
|
127
|
+
- `EventCatalogEmbedThemeProps`
|
|
128
|
+
- `EventCatalogFlowEntityPageProps`
|
|
129
|
+
- `EventCatalogSystemContextMapEntityPageProps`
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 9
|
|
3
|
+
sidebar_label: How embeds work
|
|
4
|
+
title: How EventCatalog embeds work in Backstage
|
|
5
|
+
description: Understand resource mapping, iframe rendering, embed mode, themes, and sizing.
|
|
6
|
+
keywords:
|
|
7
|
+
- backstage
|
|
8
|
+
- iframe
|
|
9
|
+
- architecture
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
The Backstage plugin is a frontend integration. EventCatalog remains the source of the documentation and visualizations; the plugin selects a view and embeds it inside a Backstage entity page.
|
|
13
|
+
|
|
14
|
+
## Resource mapping
|
|
15
|
+
|
|
16
|
+
Backstage and EventCatalog use different resource models. The plugin connects them with three annotations:
|
|
17
|
+
|
|
18
|
+
- `eventcatalog.dev/id` identifies the EventCatalog resource.
|
|
19
|
+
- `eventcatalog.dev/version` selects its version.
|
|
20
|
+
- `eventcatalog.dev/collection` identifies the resource collection, such as `services`, `domains`, or `events`.
|
|
21
|
+
|
|
22
|
+
Keeping this mapping on the Backstage entity makes the relationship portable with the entity definition. Props can override the annotations when a tab or card deliberately shows a different resource.
|
|
23
|
+
|
|
24
|
+
## URL construction and embed mode
|
|
25
|
+
|
|
26
|
+
The plugin combines the configured `eventcatalog.URL`, the selected component, and the resolved resource mapping. It adds `embed=true` to the EventCatalog URL.
|
|
27
|
+
|
|
28
|
+
Embed mode removes EventCatalog navigation that would duplicate or cover Backstage navigation. Interactive content such as graph controls, filters, schema tabs, and flow exploration remains available inside the iframe.
|
|
29
|
+
|
|
30
|
+
Specialized views use their native EventCatalog routes:
|
|
31
|
+
|
|
32
|
+
- Architecture Graph: `/visualiser/graph`, with `focus` and `depth` query parameters
|
|
33
|
+
- System Context Map overview: `/visualiser/system-context-map`
|
|
34
|
+
- one system's context: `/visualiser/systems/{id}/{version}/context`
|
|
35
|
+
- flow: `/visualiser/flows/{id}/{version}`
|
|
36
|
+
- schema explorer: `/schemas/explorer`
|
|
37
|
+
|
|
38
|
+
## Theme selection
|
|
39
|
+
|
|
40
|
+
Passing `theme="light"` or `theme="dark"` adds a theme request to the embed URL. EventCatalog applies it before the embedded page paints, avoiding a flash of the wrong theme. The override is local to the embed and does not replace the visitor's saved EventCatalog preference.
|
|
41
|
+
|
|
42
|
+
Without an explicit prop, the embedded page follows that saved preference. The Backstage theme is not automatically mirrored because the two applications have separate theme state.
|
|
43
|
+
|
|
44
|
+
## Height and layout
|
|
45
|
+
|
|
46
|
+
The plugin's wrapper and iframe both use the full width and height available from their parent. This makes the same component suitable for a full route or a grid card, but the parent still determines how much space exists.
|
|
47
|
+
|
|
48
|
+
`height: 100%` only resolves when the ancestor layout has a defined height. Entity tabs typically provide that layout. Overview grid items should set an explicit height so graphs, tables, and schema panels can use the complete card area.
|
|
49
|
+
|
|
50
|
+
## Browser access
|
|
51
|
+
|
|
52
|
+
The iframe loads EventCatalog directly in the user's browser. The configured EventCatalog URL must therefore be reachable by users of Backstage and permit embedding in your deployment environment. Backstage does not copy EventCatalog content into its own backend.
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"label": "Backstage Plugin",
|
|
3
|
+
"position": 8,
|
|
3
4
|
"collapsible": true,
|
|
4
5
|
"collapsed": true,
|
|
5
6
|
"link": {
|
|
6
7
|
"type": "generated-index",
|
|
7
8
|
"slug": "backstage",
|
|
8
|
-
"title": "Backstage",
|
|
9
|
-
"description": "
|
|
9
|
+
"title": "EventCatalog for Backstage",
|
|
10
|
+
"description": "Embed EventCatalog documentation, diagrams, schemas, and flows in Backstage."
|
|
10
11
|
}
|
|
11
|
-
}
|
|
12
|
+
}
|
|
@@ -35,10 +35,10 @@ Using the EventCatalog EventBridge generator you can automate and generate your
|
|
|
35
35
|
The EventCatalog Amazon EventBridge plugin can provide you with many features:
|
|
36
36
|
|
|
37
37
|
- ⭐️ Generate domains, services, channels and messages into your catalog
|
|
38
|
-
- ⭐️ [Automatically version your changes in EventCatalog in sync with your registry versions](#automatic-versioning)
|
|
39
|
-
- ⭐️ [Allow you to write and persist custom markdown between changes](#persist-markdown)
|
|
40
|
-
- ⭐️ [Display your JSONDraft and OpenAPI schemas for each event in EventCatalog](#downloading-schemas)
|
|
41
|
-
- ⭐️ [Filter events to match to your services](#using-filters-to-map-events-to-your-services)
|
|
38
|
+
- ⭐️ [Automatically version your changes in EventCatalog in sync with your registry versions](/docs/plugins/eventbridge/features#automatic-versioning)
|
|
39
|
+
- ⭐️ [Allow you to write and persist custom markdown between changes](/docs/plugins/eventbridge/features#persist-markdown)
|
|
40
|
+
- ⭐️ [Display your JSONDraft and OpenAPI schemas for each event in EventCatalog](/docs/plugins/eventbridge/features#downloading-schemas)
|
|
41
|
+
- ⭐️ [Filter events to match to your services](/docs/plugins/eventbridge/features#using-filters-to-map-events-to-your-services)
|
|
42
42
|
- ⭐️ Visualize your architecture
|
|
43
43
|
- ⭐️ Download schemas and code bindings
|
|
44
44
|
- ⭐️ and more....
|
|
@@ -49,7 +49,7 @@ The EventCatalog Amazon EventBridge plugin can provide you with many features:
|
|
|
49
49
|
|
|
50
50
|
EventCatalog supports [generators](/docs/plugins/generators). These are scripts or plugins that can be run to integrate with any external API, system or specification files. EventCatalog also provides an [SDK](/docs/sdk) to give developers easier access to their catalogs through custom scripts or generators.
|
|
51
51
|
|
|
52
|
-
The EventCatalog EventBridge plugin let's you map your events into domains and services. You can use [custom filters (prefix, suffix, detailType and source)](#using-filters-to-map-events-to-your-services) to map which events you want your service to produce and consume.
|
|
52
|
+
The EventCatalog EventBridge plugin let's you map your events into domains and services. You can use [custom filters (prefix, suffix, detailType and source)](/docs/plugins/eventbridge/features#using-filters-to-map-events-to-your-services) to map which events you want your service to produce and consume.
|
|
53
53
|
|
|
54
54
|
You can also use the EventCatalog plugin to map ALL events from your registry into your system and not map them into services if you wish to have a direct import.
|
|
55
55
|
|
|
@@ -198,9 +198,9 @@ List of services to add and what events they publish (sends) and consume (receiv
|
|
|
198
198
|
| ------------- | -------- | ----------------------------------------------------------------------------- |
|
|
199
199
|
| id | required | Id of the service, this will also be used as the folder name of your service. |
|
|
200
200
|
| version | required | The version of the service |
|
|
201
|
-
| sends | optional | The events the service sends (publishes). You can use [EventCatalog filters](/docs/plugins/eventbridge/
|
|
201
|
+
| sends | optional | The events the service sends (publishes). You can use [EventCatalog filters](/docs/plugins/eventbridge/features#using-filters-to-map-events-to-your-services) to match your events. |
|
|
202
202
|
| sends.eventBusName | optional | The name of the EventBus for the matched events. This will be displayed as an EventCatalog Channel. |
|
|
203
|
-
| receives | optional | The events the service receives (consumes). You can use [EventCatalog filters](/docs/plugins/eventbridge/
|
|
203
|
+
| receives | optional | The events the service receives (consumes). You can use [EventCatalog filters](/docs/plugins/eventbridge/features#using-filters-to-map-events-to-your-services) to match your events. |
|
|
204
204
|
| receives.eventBusName | optional | The name of the EventBus for the matched events. This will be displayed as an EventCatalog Channel. |
|
|
205
205
|
| writesTo | optional | Array of [data stores](/docs/development/guides/resources/data/introduction) ids that the service writes to. (Added in v3.2.2) |
|
|
206
206
|
| readsFrom | optional | Array of [data stores](/docs/development/guides/resources/data/introduction) ids that the service reads from. (Added in v3.2.2) |
|
|
@@ -333,7 +333,7 @@ AWS credentials to use for your plugin.
|
|
|
333
333
|
];
|
|
334
334
|
```
|
|
335
335
|
|
|
336
|
-
If you are using credentials you will want to create a user with limited permissions. [See the documentation to get started](/docs/plugins/eventbridge/
|
|
336
|
+
If you are using credentials you will want to create a user with limited permissions. [See the documentation to get started](/docs/plugins/eventbridge/api#credentials).
|
|
337
337
|
|
|
338
338
|
### `domain` {#domain}
|
|
339
339
|
|
|
@@ -29,8 +29,8 @@ The EventCatalog GraphQL plugin can provide you with many features:
|
|
|
29
29
|
- ⭐️ [Map queries, mutations and subscriptions from your GraphQL schema](/docs/plugins/graphql/features#mapping-operations-as-queries-mutations-or-subscriptions)
|
|
30
30
|
- ⭐️ [Assign owners (your teams) to your services and messages all generated by your GraphQL schemas](/docs/plugins/graphql/features#assign-owners-to-your-domains-services-and-messages)
|
|
31
31
|
- ⭐️ [Add semantic meaning to your GraphQL schemas, persist this meaning between versions](/docs/plugins/graphql/features#persist-markdown)
|
|
32
|
-
- ⭐️ [Automatically version your changes in EventCatalog in sync with your GraphQL schema versions](#automatic-versioning)
|
|
33
|
-
- ⭐️ [Display your GraphQL schemas and operations in the catalog](#displaying-schemas)
|
|
32
|
+
- ⭐️ [Automatically version your changes in EventCatalog in sync with your GraphQL schema versions](/docs/plugins/graphql/features#automatic-versioning)
|
|
33
|
+
- ⭐️ [Display your GraphQL schemas and operations in the catalog](/docs/plugins/graphql/features#displaying-schemas)
|
|
34
34
|
- ⭐️ Ability to download your schemas and GraphQL files (also versioned)
|
|
35
35
|
- ⭐️ Ability to draft services and operations in EventCatalog from your GraphQL schemas
|
|
36
36
|
- ⭐️ and more....
|
|
@@ -35,7 +35,7 @@ Each service in the `services` array requires the following properties:
|
|
|
35
35
|
| `owners` | string[] | No | Owners of the service. You can assign EventCatalog users or teams to services. Setting owners on the service will also set the owners of the messages in the GraphQL schema. If owners are already set on any resource, those owners are persisted. |
|
|
36
36
|
| `name` | string | No | Display name for the service. If not provided, the `id` will be used. |
|
|
37
37
|
| `summary` | string | No | Short summary of the service. |
|
|
38
|
-
| `generateMarkdown` | function | - | Function to override the default markdown generation for the service.
|
|
38
|
+
| `generateMarkdown` | function | - | Function to override the default markdown generation for the service. |
|
|
39
39
|
| `writesTo` | array[\{id: string, version?: string\}] | No | Array of [data stores](/docs/development/guides/resources/data/introduction) id and version (optional) that the service writes to. (Added in v0.4.4) |
|
|
40
40
|
| `readsFrom` | array[\{id: string, version?: string\}] | No | Array of [data stores](/docs/development/guides/resources/data/introduction) id and version (optional) that the service reads from. (Added in v0.4.0) |
|
|
41
41
|
|
|
@@ -49,7 +49,7 @@ Each service in the `services` array requires the following properties:
|
|
|
49
49
|
| `domain.version` | string | - | Domain version |
|
|
50
50
|
| `domain.owners` | string[] | - | Owners of the domain. If owners are already set on the domain, those owners are persisted. |
|
|
51
51
|
| `domain.markdown` | string | - | Custom markdown content for the domain. |
|
|
52
|
-
| `messages.generateMarkdown` | function | - | Function to override the default markdown generation for the message.
|
|
52
|
+
| `messages.generateMarkdown` | function | - | Function to override the default markdown generation for the message. |
|
|
53
53
|
| `writeFilesToRoot` | boolean | `false` | Write GraphQL messages to root instead of service folder. By default all domains, services and messages will be grouped in the folder directory structure. |
|
|
54
54
|
|
|
55
55
|
## Example Configuration
|
|
@@ -18,7 +18,7 @@ Using the EventCatalog Hookdeck plugin you can extract information from Hookdeck
|
|
|
18
18
|
The Hookdeck plugin can provide you with the following features:
|
|
19
19
|
|
|
20
20
|
- ⭐️ [Generate EventCatalog Services](#generate-services) from Hookdeck Sources and Destinations
|
|
21
|
-
- ⭐️ [Auto-generate EventCatalog Messages](#generate-
|
|
21
|
+
- ⭐️ [Auto-generate EventCatalog Messages](#generate-message) from Hookdeck Requests and Events
|
|
22
22
|
- ⭐️ [Auto-generate EventCatalog Message Schemas](#generate-schemas) from Hookdeck Requests and Events
|
|
23
23
|
- ⭐️ [Provide insight into Hookdeck Filters](#filtered-messages) by indicating Requests that are received by an EventCatalog Service but are not connected to destination Service.
|
|
24
24
|
|
|
@@ -34,7 +34,7 @@ The EventCatalog OpenAPI plugin can provide you with many features:
|
|
|
34
34
|
- ⭐️ [Automate your EventCatalog and fetch OpenAPI files by URL](/docs/plugins/openapi/features#fetch-openapi-files-by-url)
|
|
35
35
|
- ⭐️ [Map commands, queries and events from your OpenAPI file using custom extensions](/docs/plugins/openapi/features#mapping-messages-as-commands-queries-or-events)
|
|
36
36
|
- ⭐️ [Add semantic meaning to your OpenAPI files, persist this meaning between versions](/docs/plugins/openapi/features#persist-markdown)
|
|
37
|
-
- ⭐️ [Automatically version your changes in EventCatalog in sync with your OpenAPI versions](#automatic-versioning)
|
|
37
|
+
- ⭐️ [Automatically version your changes in EventCatalog in sync with your OpenAPI versions](/docs/plugins/openapi/features#automatic-versioning)
|
|
38
38
|
- ⭐️ [Render and display your OpenAPI specification in EventCatalog](/docs/plugins/openapi/intro)
|
|
39
39
|
- ⭐️ Display your endpoints and parameters in the catalog
|
|
40
40
|
- ⭐️ Ability to download your schemas and OpenAPI files (also versioned)
|
package/dist/eventcatalog.cjs
CHANGED
|
@@ -144,7 +144,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
|
|
|
144
144
|
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
145
145
|
|
|
146
146
|
// package.json
|
|
147
|
-
var version = "4.10.
|
|
147
|
+
var version = "4.10.15";
|
|
148
148
|
|
|
149
149
|
// src/constants.ts
|
|
150
150
|
var VERSION = version;
|
package/dist/eventcatalog.js
CHANGED
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
import "./chunk-CA4U2JP7.js";
|
|
5
5
|
import {
|
|
6
6
|
log_build_default
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-Q2ATWE7N.js";
|
|
8
|
+
import "./chunk-A4JRWRCV.js";
|
|
9
9
|
import "./chunk-ZAZHAVKB.js";
|
|
10
10
|
import {
|
|
11
11
|
FederationConflictError,
|
|
@@ -31,10 +31,10 @@ import {
|
|
|
31
31
|
} from "./chunk-B7HCX5HM.js";
|
|
32
32
|
import {
|
|
33
33
|
generate
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-7LWOCX4R.js";
|
|
35
35
|
import {
|
|
36
36
|
logger
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-HBVTU6ZP.js";
|
|
38
38
|
import {
|
|
39
39
|
resolve_catalog_dependencies_default
|
|
40
40
|
} from "./chunk-LHR4G2UO.js";
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
import "./chunk-W5JQON7Z.js";
|
|
55
55
|
import {
|
|
56
56
|
VERSION
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-I6HUOX4R.js";
|
|
58
58
|
import {
|
|
59
59
|
linkCoreNodeModules,
|
|
60
60
|
resolveInstalledCoreNodeModules
|
package/dist/generate.cjs
CHANGED
|
@@ -108,7 +108,7 @@ var getEventCatalogConfigFile = async (projectDirectory) => {
|
|
|
108
108
|
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
109
109
|
|
|
110
110
|
// package.json
|
|
111
|
-
var version = "4.10.
|
|
111
|
+
var version = "4.10.15";
|
|
112
112
|
|
|
113
113
|
// src/constants.ts
|
|
114
114
|
var VERSION = version;
|
package/dist/generate.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
generate
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-7LWOCX4R.js";
|
|
4
|
+
import "./chunk-HBVTU6ZP.js";
|
|
5
|
+
import "./chunk-I6HUOX4R.js";
|
|
6
6
|
import "./chunk-6QENHZZP.js";
|
|
7
7
|
export {
|
|
8
8
|
generate
|
package/dist/utils/cli-logger.js
CHANGED
|
@@ -138,28 +138,30 @@ const AvroField = ({ field, level, expand, showRequired }: AvroFieldProps) => {
|
|
|
138
138
|
|
|
139
139
|
{/* Field details */}
|
|
140
140
|
<div className="flex-grow min-w-0">
|
|
141
|
-
<div className="
|
|
142
|
-
<
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
141
|
+
<div className="-mx-1 rounded px-1 transition-colors hover:bg-[rgb(var(--ec-content-hover))]">
|
|
142
|
+
<div className="flex flex-wrap items-baseline gap-x-1.5 gap-y-1">
|
|
143
|
+
<span className="avro-field-name font-semibold text-[rgb(var(--ec-page-text))] text-sm">{field.name}</span>
|
|
144
|
+
<span className="text-[rgb(var(--ec-accent))] font-mono text-xs">{formatAvroType(field.type)}</span>
|
|
145
|
+
{showRequired && isRequired && (
|
|
146
|
+
<span className="text-red-600 dark:text-red-400 text-xs ml-auto flex-shrink-0">required</span>
|
|
147
|
+
)}
|
|
148
|
+
</div>
|
|
149
|
+
|
|
150
|
+
{field.doc && <p className="text-[rgb(var(--ec-page-text-muted))] text-xs mt-1">{field.doc}</p>}
|
|
151
|
+
|
|
152
|
+
{/* Show enum values if present */}
|
|
153
|
+
{enumType && enumType.symbols && (
|
|
154
|
+
<div className="text-xs text-[rgb(var(--ec-page-text-muted))] mt-1">
|
|
155
|
+
Values:{' '}
|
|
156
|
+
{enumType.symbols.map((s: string) => (
|
|
157
|
+
<code key={s} className="bg-[rgb(var(--ec-content-hover))] px-1 rounded mx-0.5 text-[rgb(var(--ec-page-text))]">
|
|
158
|
+
{s}
|
|
159
|
+
</code>
|
|
160
|
+
))}
|
|
161
|
+
</div>
|
|
146
162
|
)}
|
|
147
163
|
</div>
|
|
148
164
|
|
|
149
|
-
{field.doc && <p className="text-[rgb(var(--ec-page-text-muted))] text-xs mt-1">{field.doc}</p>}
|
|
150
|
-
|
|
151
|
-
{/* Show enum values if present */}
|
|
152
|
-
{enumType && enumType.symbols && (
|
|
153
|
-
<div className="text-xs text-[rgb(var(--ec-page-text-muted))] mt-1">
|
|
154
|
-
Values:{' '}
|
|
155
|
-
{enumType.symbols.map((s: string) => (
|
|
156
|
-
<code key={s} className="bg-[rgb(var(--ec-content-hover))] px-1 rounded mx-0.5 text-[rgb(var(--ec-page-text))]">
|
|
157
|
-
{s}
|
|
158
|
-
</code>
|
|
159
|
-
))}
|
|
160
|
-
</div>
|
|
161
|
-
)}
|
|
162
|
-
|
|
163
165
|
{/* Nested fields for record types */}
|
|
164
166
|
{hasNested && recordType && (
|
|
165
167
|
<div className={`avro-nested-content mt-2 ${!isExpanded ? 'hidden' : ''}`}>
|