@eventcatalog/core 3.0.0-beta.2 → 3.0.0-beta.21
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/README.md +10 -0
- package/dist/__mocks__/astro-content.cjs +32 -0
- package/dist/__mocks__/astro-content.d.cts +13 -0
- package/dist/__mocks__/astro-content.d.ts +13 -0
- package/dist/__mocks__/astro-content.js +7 -0
- 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-JSONCD7V.js → chunk-2FUEBPD3.js} +1 -1
- package/dist/{chunk-3W6JYTHP.js → chunk-HABY2LVH.js} +6 -2
- package/dist/{chunk-H4QHE5YZ.js → chunk-KQAMO3R4.js} +1 -1
- package/dist/chunk-Q6KRYWPV.js +44 -0
- package/dist/{chunk-PQL6O5YA.js → chunk-RRP2B7BL.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/eventcatalog.cjs +84 -65
- package/dist/eventcatalog.config.d.cts +4 -0
- package/dist/eventcatalog.config.d.ts +4 -0
- package/dist/eventcatalog.js +45 -57
- package/dist/generate.cjs +48 -2
- package/dist/generate.js +3 -1
- package/dist/utils/cli-logger.cjs +82 -0
- package/dist/utils/cli-logger.d.cts +10 -0
- package/dist/utils/cli-logger.d.ts +10 -0
- package/dist/utils/cli-logger.js +7 -0
- package/eventcatalog/astro.config.mjs +4 -1
- package/eventcatalog/integrations/ecstudio-watcher.mjs +1 -1
- package/eventcatalog/integrations/eventcatalog-features.ts +69 -0
- package/eventcatalog/public/icons/asyncapi-black.svg +2 -0
- package/eventcatalog/public/icons/graphql-black.svg +1 -0
- package/eventcatalog/public/icons/openapi-black.svg +1 -0
- package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +821 -0
- package/eventcatalog/src/components/ChatPanel/ChatPanelButton.tsx +24 -0
- package/eventcatalog/src/components/Grids/DomainGrid.tsx +1 -3
- package/eventcatalog/src/components/Grids/MessageGrid.tsx +8 -8
- package/eventcatalog/src/components/Header.astro +25 -5
- package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.tsx +14 -3
- package/eventcatalog/src/components/Search/Search.astro +2 -2
- package/eventcatalog/src/components/Search/SearchModal.tsx +16 -7
- package/eventcatalog/src/components/SideNav/NestedSideBar/SearchBar.tsx +9 -2
- package/eventcatalog/src/components/SideNav/NestedSideBar/builders/domain.ts +7 -6
- package/eventcatalog/src/components/SideNav/NestedSideBar/builders/service.ts +6 -3
- package/eventcatalog/src/components/SideNav/NestedSideBar/builders/shared.ts +1 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +23 -8
- package/eventcatalog/src/components/SideNav/NestedSideBar/sidebar-builder.ts +57 -11
- package/eventcatalog/src/content.config.ts +1 -10
- package/eventcatalog/src/enterprise/ai/chat-api.ts +262 -0
- package/eventcatalog/src/enterprise/auth/[...auth].ts +3 -0
- package/eventcatalog/src/enterprise/auth/login.astro +420 -0
- package/eventcatalog/src/enterprise/collections/index.ts +0 -1
- package/eventcatalog/src/layouts/Footer.astro +8 -5
- package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +30 -19
- package/eventcatalog/src/pages/_index.astro +8 -9
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/[filename].astro +19 -3
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/index.astro +7 -7
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/[filename].astro +1 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +5 -5
- package/eventcatalog/src/pages/docs/teams/[id].mdx.ts +36 -0
- package/eventcatalog/src/pages/docs/users/[id].mdx.ts +36 -0
- package/eventcatalog/src/pages/schemas/explorer/_index.data.ts +178 -0
- package/eventcatalog/src/pages/schemas/explorer/index.astro +5 -155
- package/eventcatalog/src/remark-plugins/directives.ts +30 -9
- package/eventcatalog/src/utils/collections/schemas.ts +31 -7
- package/eventcatalog/src/utils/feature.ts +8 -4
- package/eventcatalog/src/utils/resource-files.ts +86 -0
- package/package.json +12 -15
- package/default-files-for-collections/changelogs.md +0 -5
- package/default-files-for-collections/channels.md +0 -8
- package/default-files-for-collections/commands.md +0 -8
- package/default-files-for-collections/domains.md +0 -8
- package/default-files-for-collections/events.md +0 -8
- package/default-files-for-collections/flows.md +0 -11
- package/default-files-for-collections/queries.md +0 -8
- package/default-files-for-collections/services.md +0 -8
- package/default-files-for-collections/ubiquitousLanguages.md +0 -7
- package/eventcatalog/src/enterprise/collections/chat-prompts.ts +0 -32
- package/eventcatalog/src/enterprise/eventcatalog-chat/components/Chat.tsx +0 -60
- package/eventcatalog/src/enterprise/eventcatalog-chat/components/ChatMessage.tsx +0 -414
- package/eventcatalog/src/enterprise/eventcatalog-chat/components/ChatSidebar.tsx +0 -169
- package/eventcatalog/src/enterprise/eventcatalog-chat/components/InputModal.tsx +0 -244
- package/eventcatalog/src/enterprise/eventcatalog-chat/components/MentionInput.tsx +0 -211
- package/eventcatalog/src/enterprise/eventcatalog-chat/components/WelcomePromptArea.tsx +0 -176
- package/eventcatalog/src/enterprise/eventcatalog-chat/components/default-prompts.ts +0 -93
- package/eventcatalog/src/enterprise/eventcatalog-chat/components/hooks/ChatProvider.tsx +0 -143
- package/eventcatalog/src/enterprise/eventcatalog-chat/components/windows/ChatWindow.server.tsx +0 -387
- package/eventcatalog/src/enterprise/eventcatalog-chat/pages/api/chat.ts +0 -59
- package/eventcatalog/src/enterprise/eventcatalog-chat/pages/chat/index.astro +0 -104
- package/eventcatalog/src/enterprise/eventcatalog-chat/providers/ai-provider.ts +0 -140
- package/eventcatalog/src/enterprise/eventcatalog-chat/providers/anthropic.ts +0 -28
- package/eventcatalog/src/enterprise/eventcatalog-chat/providers/google.ts +0 -41
- package/eventcatalog/src/enterprise/eventcatalog-chat/providers/index.ts +0 -26
- package/eventcatalog/src/enterprise/eventcatalog-chat/providers/openai.ts +0 -61
- package/eventcatalog/src/enterprise/eventcatalog-chat/utils/chat-prompts.ts +0 -50
- package/eventcatalog/src/pages/auth/login.astro +0 -280
- package/eventcatalog/src/pages/chat/feature.astro +0 -179
- package/eventcatalog/src/pages/chat/index.astro +0 -10
- package/eventcatalog/src/pages/nav-index.json.ts +0 -30
- /package/eventcatalog/src/{pages → enterprise}/auth/error.astro +0 -0
- /package/eventcatalog/src/{middleware-auth.ts → enterprise/auth/middleware/middleware-auth.ts} +0 -0
- /package/eventcatalog/src/{middleware.ts → enterprise/auth/middleware/middleware.ts} +0 -0
- /package/eventcatalog/src/{pages/unauthorized/index.astro → enterprise/auth/unauthorized.astro} +0 -0
- /package/eventcatalog/src/{pages → enterprise}/plans/index.astro +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="#"
|
|
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="#"
|
|
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,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
|
-
}
|
|
File without changes
|
/package/eventcatalog/src/{middleware-auth.ts → enterprise/auth/middleware/middleware-auth.ts}
RENAMED
|
File without changes
|
|
File without changes
|
/package/eventcatalog/src/{pages/unauthorized/index.astro → enterprise/auth/unauthorized.astro}
RENAMED
|
File without changes
|
|
File without changes
|