Repository navigation
Expand file tree
/
Copy pathdev-proxy.config.ts
More file actions
81 lines (76 loc) · 2.43 KB
/
Copy pathdev-proxy.config.ts
File metadata and controls
81 lines (76 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import type { CookieRewriteOptions, DevProxyConfig } from '@langgenius/dev-proxy'
const DIFY_CLOUD_TARGET = 'https://cloud.dify.ai'
const DEV_PROXY_TARGET = process.env.DEV_PROXY_TARGET || DIFY_CLOUD_TARGET
const DEV_PROXY_ENTERPRISE_TARGET = process.env.DEV_PROXY_ENTERPRISE_TARGET || DEV_PROXY_TARGET
const DEV_PROXY_PUBLIC_TARGET = process.env.DEV_PROXY_PUBLIC_TARGET || DEV_PROXY_TARGET
const DEV_PROXY_HOST = process.env.DEV_PROXY_HOST || '127.0.0.1'
const DEV_PROXY_PORT = Number(process.env.DEV_PROXY_PORT || 5001)
const DEV_PROXY_CF_ACCESS_CLIENT_ID = process.env.DEV_PROXY_CF_ACCESS_CLIENT_ID
const DEV_PROXY_CF_ACCESS_CLIENT_SECRET = process.env.DEV_PROXY_CF_ACCESS_CLIENT_SECRET
if (Boolean(DEV_PROXY_CF_ACCESS_CLIENT_ID) !== Boolean(DEV_PROXY_CF_ACCESS_CLIENT_SECRET))
throw new Error(
'Configure both DEV_PROXY_CF_ACCESS_CLIENT_ID and DEV_PROXY_CF_ACCESS_CLIENT_SECRET.',
)
const cloudflareAccessHeaders =
DEV_PROXY_CF_ACCESS_CLIENT_ID && DEV_PROXY_CF_ACCESS_CLIENT_SECRET
? {
'CF-Access-Client-Id': DEV_PROXY_CF_ACCESS_CLIENT_ID,
'CF-Access-Client-Secret': DEV_PROXY_CF_ACCESS_CLIENT_SECRET,
}
: undefined
const difyCookieRewrite: CookieRewriteOptions = {
hostPrefixCookies: [
'access_token',
'csrf_token',
'refresh_token',
'webapp_access_token',
/^passport-/,
],
localCookieScope: 'target-origin',
csrfHeader: {
cookieName: 'csrf_token',
headerName: 'X-CSRF-Token',
},
}
export default {
server: {
host: DEV_PROXY_HOST,
port: DEV_PROXY_PORT,
},
routes: [
{
paths: [
'/console/api/enterprise',
'/api/enterprise',
'/admin-api',
'/inner/api',
'/mfa',
'/scim',
'/v1/audit',
'/v1/dashboard',
'/v1/healthz',
'/v1/plugin-manager',
],
target: DEV_PROXY_ENTERPRISE_TARGET,
requestHeaders: cloudflareAccessHeaders,
cookieRewrite: difyCookieRewrite,
},
{
paths: ['/console/api', '/socket.io'],
target: DEV_PROXY_TARGET,
requestHeaders: cloudflareAccessHeaders,
cookieRewrite: difyCookieRewrite,
},
{
paths: ['/api'],
target: DEV_PROXY_PUBLIC_TARGET,
requestHeaders: cloudflareAccessHeaders,
cookieRewrite: difyCookieRewrite,
},
],
sessionImport: {
refreshPath: '/console/api/refresh-token',
cookieName: 'refresh_token',
redirectTo: 'http://localhost:3000',
},
} satisfies DevProxyConfig