@eventcatalog/core 3.0.0-beta.8 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +41 -98
  2. package/dist/__mocks__/astro-content.cjs +32 -0
  3. package/dist/__mocks__/astro-content.d.cts +13 -0
  4. package/dist/__mocks__/astro-content.d.ts +13 -0
  5. package/dist/__mocks__/astro-content.js +7 -0
  6. package/dist/analytics/analytics.cjs +1 -1
  7. package/dist/analytics/analytics.js +2 -2
  8. package/dist/analytics/log-build.cjs +1 -1
  9. package/dist/analytics/log-build.js +3 -3
  10. package/dist/catalog-to-astro-content-directory.cjs +2 -19
  11. package/dist/catalog-to-astro-content-directory.d.cts +1 -2
  12. package/dist/catalog-to-astro-content-directory.d.ts +1 -2
  13. package/dist/catalog-to-astro-content-directory.js +3 -5
  14. package/dist/{chunk-R2BJ7MJG.js → chunk-6Z6ARMQS.js} +1 -17
  15. package/dist/{chunk-LQUXA3NB.js → chunk-BYP43AAT.js} +1 -1
  16. package/dist/{chunk-UTHNQFM7.js → chunk-E5Q7TZYT.js} +1 -1
  17. package/dist/{chunk-KEYJ3FB3.js → chunk-EKGR533N.js} +1 -1
  18. package/dist/{chunk-7MCE4J6I.js → chunk-KF5PARQK.js} +1 -1
  19. package/dist/{chunk-I3QUYHIK.js → chunk-VO5WYA44.js} +1 -1
  20. package/dist/constants.cjs +1 -1
  21. package/dist/constants.js +1 -1
  22. package/dist/eventcatalog.cjs +20 -64
  23. package/dist/eventcatalog.config.d.cts +4 -0
  24. package/dist/eventcatalog.config.d.ts +4 -0
  25. package/dist/eventcatalog.js +26 -52
  26. package/dist/generate.cjs +1 -1
  27. package/dist/generate.js +3 -3
  28. package/dist/utils/cli-logger.cjs +1 -1
  29. package/dist/utils/cli-logger.js +2 -2
  30. package/eventcatalog/astro.config.mjs +4 -1
  31. package/eventcatalog/integrations/eventcatalog-features.ts +69 -0
  32. package/eventcatalog/public/icons/asyncapi-black.svg +2 -0
  33. package/eventcatalog/public/icons/graphql-black.svg +1 -0
  34. package/eventcatalog/public/icons/openapi-black.svg +1 -0
  35. package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +994 -0
  36. package/eventcatalog/src/components/ChatPanel/ChatPanelButton.tsx +24 -0
  37. package/eventcatalog/src/components/Grids/DomainGrid.tsx +310 -173
  38. package/eventcatalog/src/components/Grids/MessageGrid.tsx +299 -180
  39. package/eventcatalog/src/components/Grids/specification-utils.ts +106 -0
  40. package/eventcatalog/src/components/Header.astro +25 -5
  41. package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.tsx +14 -3
  42. package/eventcatalog/src/components/SchemaExplorer/ApiAccessSection.tsx +95 -90
  43. package/eventcatalog/src/components/SchemaExplorer/ApiContentViewer.tsx +144 -0
  44. package/eventcatalog/src/components/SchemaExplorer/Pagination.tsx +34 -8
  45. package/eventcatalog/src/components/SchemaExplorer/SchemaContentViewer.tsx +2 -2
  46. package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsHeader.tsx +140 -109
  47. package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsPanel.tsx +5 -14
  48. package/eventcatalog/src/components/SchemaExplorer/SchemaExplorer.tsx +247 -59
  49. package/eventcatalog/src/components/SchemaExplorer/SchemaFilters.tsx +64 -126
  50. package/eventcatalog/src/components/SchemaExplorer/SchemaListItem.tsx +41 -43
  51. package/eventcatalog/src/components/Search/Search.astro +2 -2
  52. package/eventcatalog/src/components/Search/SearchDataLoader.astro +25 -0
  53. package/eventcatalog/src/components/SideNav/NestedSideBar/SearchBar.tsx +6 -3
  54. package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +44 -16
  55. package/eventcatalog/src/components/SideNav/SideNav.astro +0 -15
  56. package/eventcatalog/src/components/Tables/Table.tsx +96 -77
  57. package/eventcatalog/src/components/Tables/columns/ContainersTableColumns.tsx +108 -74
  58. package/eventcatalog/src/components/Tables/columns/DomainTableColumns.tsx +74 -55
  59. package/eventcatalog/src/components/Tables/columns/FlowTableColumns.tsx +36 -36
  60. package/eventcatalog/src/components/Tables/columns/MessageTableColumns.tsx +110 -77
  61. package/eventcatalog/src/components/Tables/columns/ServiceTableColumns.tsx +105 -94
  62. package/eventcatalog/src/components/Tables/columns/SharedColumns.tsx +31 -26
  63. package/eventcatalog/src/components/Tables/columns/TeamsTableColumns.tsx +115 -215
  64. package/eventcatalog/src/components/Tables/columns/UserTableColumns.tsx +145 -243
  65. package/eventcatalog/src/content.config.ts +1 -13
  66. package/eventcatalog/src/enterprise/ai/chat-api.ts +360 -0
  67. package/eventcatalog/src/enterprise/auth/[...auth].ts +3 -0
  68. package/eventcatalog/src/enterprise/auth/login.astro +420 -0
  69. package/eventcatalog/src/enterprise/collections/index.ts +0 -1
  70. package/eventcatalog/src/layouts/Footer.astro +8 -5
  71. package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +133 -117
  72. package/eventcatalog/src/pages/_index.astro +243 -559
  73. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.ts +8 -2
  74. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +9 -5
  75. package/eventcatalog/src/pages/directory/[type]/index.astro +6 -0
  76. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/[filename].astro +19 -3
  77. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/index.astro +7 -7
  78. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/[filename].astro +1 -1
  79. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +10 -7
  80. package/eventcatalog/src/pages/docs/[type]/[id]/language/index.astro +194 -121
  81. package/eventcatalog/src/pages/docs/teams/[id]/index.astro +94 -70
  82. package/eventcatalog/src/pages/docs/teams/[id].mdx.ts +36 -0
  83. package/eventcatalog/src/pages/docs/users/[id]/index.astro +56 -45
  84. package/eventcatalog/src/pages/docs/users/[id].mdx.ts +36 -0
  85. package/eventcatalog/src/pages/schemas/explorer/_index.data.ts +178 -0
  86. package/eventcatalog/src/pages/schemas/explorer/index.astro +7 -157
  87. package/eventcatalog/src/pages/studio.astro +124 -72
  88. package/eventcatalog/src/remark-plugins/directives.ts +30 -9
  89. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/container.ts +10 -1
  90. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/domain.ts +17 -7
  91. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/message.ts +10 -1
  92. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/service.ts +11 -4
  93. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/shared.ts +14 -0
  94. package/eventcatalog/src/stores/{sidebar-store.ts → sidebar-store/index.ts} +1 -1
  95. package/eventcatalog/src/utils/collections/channels.ts +0 -2
  96. package/eventcatalog/src/utils/collections/commands.ts +0 -2
  97. package/eventcatalog/src/utils/collections/containers.ts +0 -2
  98. package/eventcatalog/src/utils/collections/domains.ts +0 -2
  99. package/eventcatalog/src/utils/collections/entities.ts +0 -2
  100. package/eventcatalog/src/utils/collections/events.ts +0 -2
  101. package/eventcatalog/src/utils/collections/flows.ts +0 -2
  102. package/eventcatalog/src/utils/collections/queries.ts +0 -2
  103. package/eventcatalog/src/utils/collections/schemas.ts +45 -7
  104. package/eventcatalog/src/utils/collections/services.ts +0 -2
  105. package/eventcatalog/src/utils/feature.ts +9 -5
  106. package/eventcatalog/src/utils/node-graphs/services-node-graph.ts +1 -1
  107. package/eventcatalog/src/utils/resource-files.ts +86 -0
  108. package/package.json +12 -15
  109. package/default-files-for-collections/changelogs.md +0 -5
  110. package/default-files-for-collections/channels.md +0 -8
  111. package/default-files-for-collections/commands.md +0 -8
  112. package/default-files-for-collections/domains.md +0 -8
  113. package/default-files-for-collections/events.md +0 -8
  114. package/default-files-for-collections/flows.md +0 -11
  115. package/default-files-for-collections/queries.md +0 -8
  116. package/default-files-for-collections/services.md +0 -8
  117. package/default-files-for-collections/ubiquitousLanguages.md +0 -7
  118. package/eventcatalog/src/enterprise/collections/chat-prompts.ts +0 -32
  119. package/eventcatalog/src/enterprise/eventcatalog-chat/components/Chat.tsx +0 -60
  120. package/eventcatalog/src/enterprise/eventcatalog-chat/components/ChatMessage.tsx +0 -414
  121. package/eventcatalog/src/enterprise/eventcatalog-chat/components/ChatSidebar.tsx +0 -169
  122. package/eventcatalog/src/enterprise/eventcatalog-chat/components/InputModal.tsx +0 -244
  123. package/eventcatalog/src/enterprise/eventcatalog-chat/components/MentionInput.tsx +0 -211
  124. package/eventcatalog/src/enterprise/eventcatalog-chat/components/WelcomePromptArea.tsx +0 -176
  125. package/eventcatalog/src/enterprise/eventcatalog-chat/components/default-prompts.ts +0 -93
  126. package/eventcatalog/src/enterprise/eventcatalog-chat/components/hooks/ChatProvider.tsx +0 -143
  127. package/eventcatalog/src/enterprise/eventcatalog-chat/components/windows/ChatWindow.server.tsx +0 -387
  128. package/eventcatalog/src/enterprise/eventcatalog-chat/pages/api/chat.ts +0 -59
  129. package/eventcatalog/src/enterprise/eventcatalog-chat/pages/chat/index.astro +0 -104
  130. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/ai-provider.ts +0 -140
  131. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/anthropic.ts +0 -28
  132. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/google.ts +0 -41
  133. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/index.ts +0 -26
  134. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/openai.ts +0 -61
  135. package/eventcatalog/src/enterprise/eventcatalog-chat/utils/chat-prompts.ts +0 -50
  136. package/eventcatalog/src/pages/auth/login.astro +0 -280
  137. package/eventcatalog/src/pages/chat/feature.astro +0 -179
  138. package/eventcatalog/src/pages/chat/index.astro +0 -10
  139. package/eventcatalog/src/pages/docs/_default-docs.mdx +0 -25
  140. package/eventcatalog/src/pages/docs/index.astro +0 -33
  141. package/eventcatalog/src/pages/nav-index.json.ts +0 -30
  142. /package/eventcatalog/src/{pages → enterprise}/auth/error.astro +0 -0
  143. /package/eventcatalog/src/{middleware-auth.ts → enterprise/auth/middleware/middleware-auth.ts} +0 -0
  144. /package/eventcatalog/src/{middleware.ts → enterprise/auth/middleware/middleware.ts} +0 -0
  145. /package/eventcatalog/src/{pages/unauthorized/index.astro → enterprise/auth/unauthorized.astro} +0 -0
  146. /package/eventcatalog/src/{pages → enterprise}/plans/index.astro +0 -0
  147. /package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/flow.ts +0 -0
  148. /package/eventcatalog/src/{components/SideNav/NestedSideBar/sidebar-builder.ts → stores/sidebar-store/state.ts} +0 -0
@@ -1,280 +0,0 @@
1
- ---
2
- import config from '@config';
3
- const { title, logo } = config;
4
- import { join } from 'node:path';
5
- import { isAuthEnabled, isSSR } from '@utils/feature';
6
-
7
- const catalogDirectory = process.env.PROJECT_DIR || process.cwd();
8
-
9
- let hasAuthConfigurationFile = false;
10
- let providers: string[] = [];
11
-
12
- try {
13
- const authConfig = await import(/* @vite-ignore */ join(catalogDirectory, 'eventcatalog.auth.js'));
14
- providers = Object.keys(authConfig.default.providers);
15
- hasAuthConfigurationFile = true;
16
- } catch (error) {
17
- hasAuthConfigurationFile = false;
18
- }
19
-
20
- // Check if we should show login (auth file exists, SSR enabled, auth enabled, and has providers)
21
- const shouldShowLogin = hasAuthConfigurationFile && isSSR() && isAuthEnabled() && providers.length > 0;
22
-
23
- // Check if configuration exists but no providers are set up
24
- const hasConfigButNoProviders = hasAuthConfigurationFile && isSSR() && isAuthEnabled() && providers.length === 0;
25
-
26
- // If we are not in SSR mode, redirect to home
27
- if (!isSSR() || !isAuthEnabled()) {
28
- return Astro.redirect('/');
29
- }
30
-
31
- // If we are in SSR mode, check if the user is already logged in
32
- if (isSSR() && isAuthEnabled()) {
33
- const { getSession } = await import(/* @vite-ignore */ 'auth-astro/server');
34
- const session = await getSession(Astro.request);
35
- if (session) {
36
- return Astro.redirect('/');
37
- }
38
- }
39
-
40
- // Provider configurations
41
- const providerConfig = {
42
- github: {
43
- name: 'GitHub',
44
- icon: `<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
45
- <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"></path>
46
- </svg>`,
47
- },
48
- google: {
49
- name: 'Google',
50
- icon: `<svg class="w-5 h-5" viewBox="0 0 24 24">
51
- <path fill="#4285F4" d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"/>
52
- <path fill="#34A853" d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"/>
53
- <path fill="#FBBC05" d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"/>
54
- <path fill="#EA4335" d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"/>
55
- </svg>`,
56
- },
57
- okta: {
58
- name: 'Okta',
59
- icon: `<svg class="w-5 h-5" viewBox="0 0 24 24" fill="currentColor">
60
- <path d="M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm0 18c-4.418 0-8-3.582-8-8s3.582-8 8-8 8 3.582 8 8-3.582 8-8 8zm-1-13h2v6h-2V7zm0 8h2v2h-2v-2z"></path>
61
- </svg>`,
62
- },
63
- auth0: {
64
- name: 'Auth0',
65
- icon: `<svg class="w-5 h-5" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><path fill="#000000" d="M12.549 1h-4.55l1.407 4.38h4.548l-3.68 2.61 1.406 4.405c2.37-1.725 3.143-4.336 2.274-7.016L12.55 1zM2.045 5.38h4.55L8 1H3.45L2.045 5.38c-.868 2.68-.094 5.29 2.275 7.015L5.725 7.99l-3.68-2.612zm2.275 7.015L8 15l3.68-2.605L8 9.745l-3.68 2.65z"></path></g></svg>`,
66
- },
67
- entra: {
68
- name: 'Microsoft',
69
- icon: `<svg class="w-5 h-5" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><path fill="#F35325" d="M1 1h6.5v6.5H1V1z"></path><path fill="#81BC06" d="M8.5 1H15v6.5H8.5V1z"></path><path fill="#05A6F0" d="M1 8.5h6.5V15H1V8.5z"></path><path fill="#FFBA08" d="M8.5 8.5H15V15H8.5V8.5z"></path></g></svg>`,
70
- },
71
- };
72
- ---
73
-
74
- <!doctype html>
75
- <html lang="en">
76
- <head>
77
- <meta charset="UTF-8" />
78
- <meta name="viewport" content="width=device-width" />
79
- <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
80
- <meta name="generator" content={Astro.generator} />
81
- <title>Sign In | {title}</title>
82
- <link rel="preconnect" href="https://fonts.googleapis.com" />
83
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
84
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
85
- <style>
86
- body {
87
- font-family: 'Inter', sans-serif;
88
- background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
89
- }
90
- </style>
91
- </head>
92
- <body class="min-h-screen">
93
- <div class="flex min-h-screen flex-col items-center justify-center py-12 px-4 sm:px-6 lg:px-8">
94
- <!-- Logo at the top -->
95
- <div class="mb-8">
96
- {
97
- logo && (
98
- <div class="flex flex-col items-center space-y-4">
99
- <img alt={logo.alt} src={logo.src} class="w-12 h-12" />
100
- <h1 class="text-2xl font-bold text-gray-900">{title}</h1>
101
- </div>
102
- )
103
- }
104
- </div>
105
-
106
- {
107
- shouldShowLogin ? (
108
- <div class="w-full max-w-md">
109
- <div class="bg-white rounded-xl shadow-lg border border-gray-100 p-8 space-y-6">
110
- <div class="text-center">
111
- <h2 class="text-2xl font-bold text-gray-900">Sign in to your account</h2>
112
- </div>
113
-
114
- <div class="space-y-4">
115
- {providers.map((provider) => {
116
- const config = providerConfig[provider as keyof typeof providerConfig];
117
- if (!config) return null;
118
-
119
- return (
120
- <button
121
- data-provider={provider}
122
- class="provider-login-btn flex w-full items-center justify-center rounded-lg border border-gray-200 bg-white px-4 py-3 text-sm font-medium text-gray-700 shadow-sm hover:bg-purple-50 hover:border-purple-200 focus:outline-none focus:ring-2 focus:ring-purple-500 focus:ring-offset-2 transition-all duration-200"
123
- >
124
- <span class="mr-3" set:html={config.icon} />
125
- Sign in with {config.name}
126
- </button>
127
- );
128
- })}
129
- </div>
130
- </div>
131
-
132
- <div class="mt-6 text-center">
133
- <p class="text-gray-600 text-sm">
134
- Missing integration?
135
- <a
136
- href="https://github.com/event-catalog/eventcatalog/issues"
137
- target="_blank"
138
- class="text-purple-600 hover:text-purple-700 underline font-medium"
139
- >
140
- Let us know
141
- </a>
142
- </p>
143
- </div>
144
- </div>
145
- ) : hasConfigButNoProviders ? (
146
- <div class="w-full max-w-2xl">
147
- <div class="bg-white rounded-xl shadow-lg border border-gray-100 p-8 space-y-6">
148
- <div class="text-center">
149
- <h2 class="text-2xl font-bold text-gray-900">No Authentication Providers Configured</h2>
150
- <p class="mt-4 text-gray-600">
151
- Authentication is enabled but no providers are configured in your auth configuration file.
152
- </p>
153
- </div>
154
-
155
- <div class="bg-purple-50 border border-purple-100 rounded-lg p-6 space-y-4">
156
- <h3 class="text-lg font-semibold text-gray-900">To add authentication providers:</h3>
157
- <ol class="list-decimal list-inside space-y-2 text-gray-700">
158
- <li>
159
- Update your{' '}
160
- <code class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-sm font-mono">eventcatalog.auth.js</code>{' '}
161
- file to include at least one provider (GitHub, Google, Okta, etc.)
162
- </li>
163
- <li>Configure the provider with the necessary credentials and settings</li>
164
- <li>Restart your EventCatalog server to apply the changes</li>
165
- </ol>
166
- </div>
167
-
168
- <div class="text-center">
169
- <a
170
- href="https://www.eventcatalog.dev/docs/development/authentication/introduction"
171
- class="inline-flex items-center px-6 py-3 border border-transparent text-sm font-medium rounded-lg text-white bg-purple-600 hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-purple-500 transition-colors duration-200"
172
- >
173
- Read Authentication Documentation
174
- </a>
175
- </div>
176
- </div>
177
-
178
- <div class="mt-6 text-center">
179
- <p class="text-gray-600 text-sm">
180
- Missing integration?
181
- <a
182
- href="https://github.com/event-catalog/eventcatalog/issues"
183
- target="_blank"
184
- class="text-purple-600 hover:text-purple-700 underline font-medium"
185
- >
186
- Let us know
187
- </a>
188
- </p>
189
- </div>
190
- </div>
191
- ) : (
192
- <div class="w-full max-w-2xl">
193
- <div class="bg-white rounded-xl shadow-lg border border-gray-100 p-8 space-y-6">
194
- <div class="text-center">
195
- <h2 class="text-2xl font-bold text-gray-900">Authentication Not Configured</h2>
196
- <p class="mt-4 text-gray-600">
197
- {!hasAuthConfigurationFile
198
- ? 'No authentication configuration file found.'
199
- : 'Authentication is not properly enabled.'}
200
- </p>
201
- </div>
202
-
203
- <div class="bg-purple-50 border border-purple-100 rounded-lg p-6 space-y-4">
204
- <h3 class="text-lg font-semibold text-gray-900">To enable authentication:</h3>
205
- <ol class="list-decimal list-inside space-y-2 text-gray-700">
206
- {!hasAuthConfigurationFile && (
207
- <li>
208
- Create an{' '}
209
- <code class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-sm font-mono">eventcatalog.auth.js</code>{' '}
210
- configuration file in your project root
211
- </li>
212
- )}
213
- {!isSSR() && (
214
- <li>
215
- Enable SSR (Server-Side Rendering) in your{' '}
216
- <code class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-sm font-mono">
217
- eventcatalog.config.js
218
- </code>{' '}
219
- file by setting{' '}
220
- <code class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-sm font-mono">output: 'server'</code>
221
- </li>
222
- )}
223
- {!isAuthEnabled() && (
224
- <li>
225
- Enable authentication in your{' '}
226
- <code class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-sm font-mono">
227
- eventcatalog.config.js
228
- </code>{' '}
229
- file by setting{' '}
230
- <code class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-sm font-mono">
231
- auth: {`{ enabled: true }`}
232
- </code>
233
- </li>
234
- )}
235
- </ol>
236
- </div>
237
-
238
- <div class="text-center">
239
- <a
240
- href="https://www.eventcatalog.dev/docs/development/authentication/introduction"
241
- class="inline-flex items-center px-6 py-3 border border-transparent text-sm font-medium rounded-lg text-white bg-purple-600 hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-purple-500 transition-colors duration-200"
242
- >
243
- Read Authentication Documentation
244
- </a>
245
- </div>
246
- </div>
247
-
248
- <div class="mt-6 text-center">
249
- <p class="text-gray-600 text-sm">
250
- Missing integration?
251
- <a
252
- href="https://github.com/event-catalog/eventcatalog/issues"
253
- target="_blank"
254
- class="text-purple-600 hover:text-purple-700 underline font-medium"
255
- >
256
- Let us know
257
- </a>
258
- </p>
259
- </div>
260
- </div>
261
- )
262
- }
263
- </div>
264
- </body>
265
- </html>
266
-
267
- <script>
268
- import { signIn } from 'auth-astro/client';
269
-
270
- // Add event listeners to all provider login buttons
271
- const providerButtons = document.querySelectorAll('.provider-login-btn');
272
-
273
- providerButtons.forEach((button) => {
274
- const provider = button.getAttribute('data-provider');
275
- if (provider) {
276
- let providerId = provider === 'entra' ? 'microsoft-entra-id' : provider;
277
- button.addEventListener('click', () => signIn(providerId));
278
- }
279
- });
280
- </script>
@@ -1,179 +0,0 @@
1
- ---
2
- import VerticalSideBarLayout from '@layouts/VerticalSideBarLayout.astro';
3
- import { isEventCatalogChatEnabled as hasEventCatlaogChatLicense, isSSR } from '@utils/feature';
4
- import { BotMessageSquare } from 'lucide-react';
5
- const hasChatLicense = hasEventCatlaogChatLicense();
6
-
7
- if (hasChatLicense) {
8
- return Astro.redirect('/chat');
9
- }
10
- ---
11
-
12
- <!doctype html>
13
- <html lang="en">
14
- <head>
15
- <meta charset="UTF-8" />
16
- <meta name="viewport" content="width=device-width" />
17
- <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
18
- <meta name="generator" content={Astro.generator} />
19
- <title>EventCatalog chat?</title>
20
- </head>
21
- <body>
22
- <VerticalSideBarLayout title="AI Chat" showNestedSideBar={false}>
23
- <div class="min-h-[calc(100vh-60px)] bg-white">
24
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16">
25
- {/* Hero Section */}
26
- <div class="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center mb-16">
27
- <div>
28
- <div class="inline-flex items-center px-4 py-2 rounded-full bg-purple-100 text-purple-700 font-medium text-sm mb-6">
29
- <BotMessageSquare className="w-4 h-4 mr-2" />
30
- EventCatalog: Agent
31
- </div>
32
- <h1 class="text-4xl font-bold text-gray-900 tracking-tight mb-4">Ask. Understand. Ship faster.</h1>
33
- <p class="text-xl text-gray-600 mb-8">
34
- Get answers about your architecture — instantly. Connect to your own AI models and data.
35
- </p>
36
- <div class="flex flex-col sm:flex-row gap-4 mb-2">
37
- <a
38
- href="https://www.eventcatalog.dev/docs/development/guides/eventcatlaog-chat/what-is-eventcatalog-chat"
39
- target="_blank"
40
- class="inline-flex items-center juNot ready for AI chat? You castify-center px-6 py-3 border border-transparent text-base font-medium rounded-lg text-white bg-purple-600 hover:bg-purple-700 transition-colors duration-150"
41
- >
42
- Get Started
43
- <svg class="ml-2 w-4 h-4" viewBox="0 0 20 20" fill="currentColor">
44
- <path
45
- fill-rule="evenodd"
46
- d="M10.293 3.293a1 1 0 011.414 0l6 6a1 1 0 010 1.414l-6 6a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-4.293-4.293a1 1 0 010-1.414z"
47
- clip-rule="evenodd"></path>
48
- </svg>
49
- </a>
50
- <a
51
- href="https://www.eventcatalog.cloud"
52
- target="_blank"
53
- class="inline-flex items-center justify-center px-6 py-3 border border-gray-300 text-base font-medium rounded-lg text-gray-700 bg-white hover:bg-gray-50 transition-colors duration-150"
54
- >
55
- Try for free
56
- </a>
57
- </div>
58
-
59
- <p class="text-sm text-gray-500 italic mb-6">Available with EventCatalog Starter or Scale plans</p>
60
-
61
- {
62
- !isSSR() && (
63
- <p class="text-sm text-gray-500 my-4 bg-yellow-50 p-4 rounded-lg">
64
- <span class="font-bold">This feature is only available on server side.</span> You can switch to server side by
65
- setting the <code class="font-mono bg-gray-100 p-0.5 rounded">output</code> property to{' '}
66
- <code class="font-mono bg-gray-100 p-0.5 rounded">server</code> in your{' '}
67
- <code class="font-mono bg-gray-100 p-0.5 rounded">eventcatalog.config.js</code> file.
68
- </p>
69
- )
70
- }
71
- </div>
72
-
73
- <div class="relative">
74
- <div class="absolute -inset-4">
75
- <div
76
- class="w-full h-full max-w-full mx-auto opacity-30 blur-lg filter"
77
- style="background: linear-gradient(90deg, #C084FC 0%, #818CF8 100%);"
78
- >
79
- </div>
80
- </div>
81
- <div class="relative">
82
- <div class="bg-white rounded-xl shadow-xl border border-gray-200 overflow-hidden">
83
- <div class="bg-gray-50 px-4 py-3 border-b border-gray-200">
84
- <div class="flex items-center space-x-2">
85
- <div class="w-3 h-3 bg-red-400 rounded-full"></div>
86
- <div class="w-3 h-3 bg-yellow-400 rounded-full"></div>
87
- <div class="w-3 h-3 bg-green-400 rounded-full"></div>
88
- </div>
89
- </div>
90
- <div class="p-4 space-y-4">
91
- <div class="flex justify-end">
92
- <div class="bg-purple-600 text-white rounded-2xl rounded-tr-sm px-4 py-2 max-w-md text-sm">
93
- What services publish order.created?
94
- </div>
95
- </div>
96
-
97
- <div class="flex justify-start">
98
- <div class="bg-gray-50 rounded-2xl rounded-tl-sm px-4 py-3 max-w-md shadow-sm">
99
- <p class="text-gray-700 text-sm">
100
- The <span class="font-semibold">Order Service</span> publishes the order.created event.
101
- </p>
102
- <p class="text-gray-700 text-sm mt-2 mb-1">This event is consumed by:</p>
103
- <ul class="space-y-1 text-gray-600 text-sm">
104
- <li>• Payment Service - Initiates payment processing</li>
105
- <li>• Inventory Service - Updates stock levels</li>
106
- <li>• Notification Service - Sends order confirmations</li>
107
- </ul>
108
- </div>
109
- </div>
110
- </div>
111
- </div>
112
- </div>
113
- </div>
114
- </div>
115
-
116
- {/* Features Section */}
117
- <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
118
- <div class="bg-white rounded-xl p-6 shadow-sm border border-gray-200">
119
- <div class="w-12 h-12 bg-purple-100 rounded-lg flex items-center justify-center mb-4">
120
- <svg class="w-6 h-6 text-purple-600" viewBox="0 0 24 24" fill="currentColor">
121
- <path
122
- d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"
123
- ></path>
124
- </svg>
125
- </div>
126
- <h3 class="text-lg font-semibold text-gray-900 mb-2">Direct Answers</h3>
127
- <p class="text-gray-600">
128
- Ask questions about your catalog and get direct answers, using your own models and API keys.
129
- </p>
130
- </div>
131
-
132
- <div class="bg-white rounded-xl p-6 shadow-sm border border-gray-200">
133
- <div class="w-12 h-12 bg-purple-100 rounded-lg flex items-center justify-center mb-4">
134
- <svg class="w-6 h-6 text-purple-600" viewBox="0 0 24 24" fill="currentColor">
135
- <path
136
- d="M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2.85 11.1l-.85.6V16h-4v-2.3l-.85-.6C7.8 12.16 7 10.63 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.63-.8 3.16-2.15 4.1z"
137
- ></path>
138
- </svg>
139
- </div>
140
- <h3 class="text-lg font-semibold text-gray-900 mb-2">Smart Insights</h3>
141
- <p class="text-gray-600">Get intelligent suggestions and insights about your architecture automatically.</p>
142
- </div>
143
-
144
- <div class="bg-white rounded-xl p-6 shadow-sm border border-gray-200">
145
- <div class="w-12 h-12 bg-purple-100 rounded-lg flex items-center justify-center mb-4">
146
- <svg class="w-6 h-6 text-purple-600" viewBox="0 0 24 24" fill="currentColor">
147
- <path
148
- d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"
149
- ></path>
150
- </svg>
151
- </div>
152
- <h3 class="text-lg font-semibold text-gray-900 mb-2">Privacy First</h3>
153
- <p class="text-gray-600">
154
- Runs on your own infrastructure, and your own models. Provide your own API keys to get started.
155
- </p>
156
- </div>
157
- </div>
158
-
159
- {/* Bottom Link */}
160
- <div class="mt-16 text-center">
161
- <a
162
- href="https://www.eventcatalog.dev/docs/development/guides/customize-sidebars/application-sidebar"
163
- target="_blank"
164
- class="text-sm text-gray-400 hover:text-gray-500 transition-colors duration-150"
165
- >
166
- Not ready for AI chat? You can hide this feature in settings
167
- </a>
168
- </div>
169
- </div>
170
- </div>
171
- </VerticalSideBarLayout>
172
- </body>
173
- </html>
174
-
175
- <style>
176
- .scroll-smooth {
177
- scroll-behavior: smooth;
178
- }
179
- </style>
@@ -1,10 +0,0 @@
1
- ---
2
- import ChatPage from '@enterprise/eventcatalog-chat/pages/chat/index.astro';
3
- import { isEventCatalogChatEnabled } from '@utils/feature';
4
- import { buildUrl } from '@utils/url-builder';
5
- if (!isEventCatalogChatEnabled()) {
6
- return Astro.redirect(buildUrl('/chat/feature'));
7
- }
8
- ---
9
-
10
- <ChatPage />
@@ -1,25 +0,0 @@
1
- # **Welcome to EventCatalog**
2
-
3
- This open-source project is designed to help you and your teams bring discoverability and clarity to your event-driven architectures (EDA).
4
-
5
- This page can be replaced with your own content, but to help you get started, we have created a few guides and resources.
6
-
7
- <Tiles columns={3}>
8
- <Tile icon="BookOpenIcon" href="https://eventcatalog.dev/docs/development/getting-started/introduction" title="Getting started with EventCatalog" description="How to get started with EventCatalog" />
9
- <Tile icon="RectangleGroupIcon" href="https://eventcatalog.dev/docs/development/guides/domains/adding-domains" title="Creating domains" description="Learn how to create domains in your event catalog" />
10
- <Tile icon="ServerIcon" href="https://eventcatalog.dev/docs/development/guides/services/adding-services" title="Creating services" description="Learn how to create services in your event catalog" />
11
- <Tile icon="ChatBubbleLeftIcon" iconColor="text-blue-500" href="https://eventcatalog.dev/docs/development/guides/messages/commands/introduction" title="Creating commands" description="Learn how to create commands in your event catalog" />
12
- <Tile icon="BoltIcon" iconColor="text-orange-500" href="https://eventcatalog.dev/docs/development/guides/messages/events/introduction" title="Creating events" description="Learn how to create events in your event catalog" />
13
- <Tile icon="UserGroupIcon" iconColor="text-green-500" href="https://eventcatalog.dev/docs/owners" title="Assigning owners to resources" description="Learn how to assign owners to resources in your event catalog" />
14
- </Tiles>
15
-
16
- ### **Join the community**
17
-
18
- Our project and community is growing fast. We have over 1000+ members in our [Discord community](https://discord.gg/3rjaZMmrAm).
19
-
20
- <Tiles columns={2}>
21
- <Tile icon="UserGroupIcon" iconColor="text-green-500" href="https://discord.gg/3rjaZMmrAm" title="Join the Discord community" description="Join the community to get help and support" />
22
- <Tile icon="StarIcon" iconColor="text-yellow-500" href="https://github.com/event-catalog/eventcatalog/stargazers" title="Star EventCatalog on GitHub" description="If you like the project, please star it on GitHub to show your support ❤️" />
23
- </Tiles>
24
-
25
- ---
@@ -1,33 +0,0 @@
1
- ---
2
- import Footer from '@layouts/Footer.astro';
3
- import components from '@components/MDX/page-components';
4
- import mdxComponents from '@components/MDX/components';
5
- import { getIndexPage } from '@utils/pages';
6
- import VerticalSideBarLayout from '@layouts/VerticalSideBarLayout.astro';
7
- import { render } from 'astro:content';
8
-
9
- const page = await getIndexPage();
10
- let CustomContent = null;
11
-
12
- const props = Astro.props;
13
-
14
- if (page) {
15
- const { Content } = await render(page);
16
- CustomContent = Content;
17
- } else {
18
- CustomContent = await import('./_default-docs.mdx').then((mod) => mod.default);
19
- }
20
- ---
21
-
22
- <VerticalSideBarLayout title="EventCatalog">
23
- <main class="flex sm:px-8 docs-layout h-full">
24
- <div class="flex docs-layout w-full">
25
- <div class="w-full lg:mr-2 pr-8 overflow-y-auto py-8">
26
- <div class="prose prose-md w-full !max-w-none">
27
- <CustomContent components={{ ...components, ...mdxComponents(props) }} />
28
- </div>
29
- <Footer />
30
- </div>
31
- </div>
32
- </main>
33
- </VerticalSideBarLayout>
@@ -1,30 +0,0 @@
1
- // src/pages/nav-index.json.ts
2
- import { getCollection } from 'astro:content';
3
-
4
- export const prerender = true;
5
-
6
- export async function GET() {
7
- // const services = await getCollection('services');
8
- // const domains = await getCollection('domains');
9
- // // ...other collections
10
-
11
- // const index = buildNavIndex({ services, domains }); // your map logic
12
-
13
- const index = [
14
- {
15
- type: 'group',
16
- title: 'Domains',
17
- pages: [
18
- {
19
- type: 'item',
20
- title: 'Inventory Domain',
21
- icon: 'ServerIcon',
22
- },
23
- ],
24
- },
25
- ];
26
-
27
- return new Response(JSON.stringify(index), {
28
- headers: { 'Content-Type': 'application/json' },
29
- });
30
- }