2026-04-09 10:01:23 +08:00
|
|
|
server:
|
|
|
|
|
port: 8083
|
2026-05-27 22:05:02 +08:00
|
|
|
cors:
|
2026-05-30 14:00:23 +08:00
|
|
|
# 浏览器跨域白名单。生产环境必须改为实际前端/嵌入站点域名,例如 https://support.example.com。
|
2026-05-27 22:05:02 +08:00
|
|
|
# 留空表示不允许跨域请求,只支持同源或非浏览器调用。
|
|
|
|
|
allowedOrigins:
|
|
|
|
|
- http://127.0.0.1:8083
|
|
|
|
|
- http://localhost:8083
|
2026-04-09 10:01:23 +08:00
|
|
|
|
|
|
|
|
db:
|
|
|
|
|
type: sqlite
|
|
|
|
|
dsn: file:./data/app.db?_busy_timeout=5000
|
|
|
|
|
maxIdleConns: 5
|
|
|
|
|
maxOpenConns: 20
|
|
|
|
|
connMaxIdleTimeSeconds: 300
|
|
|
|
|
connMaxLifetimeSeconds: 1800
|
|
|
|
|
|
|
|
|
|
logger:
|
|
|
|
|
level: info
|
|
|
|
|
format: text
|
|
|
|
|
addSource: false
|
|
|
|
|
|
|
|
|
|
auth:
|
2026-04-30 17:42:24 +08:00
|
|
|
tokenTTLHours: 12
|
2026-04-09 10:01:23 +08:00
|
|
|
maxFailedAttempts: 5
|
|
|
|
|
credentialLockMinute: 15
|
|
|
|
|
|
2026-04-28 19:56:27 +08:00
|
|
|
customerSession:
|
|
|
|
|
# 客服会话 token 签名密钥。必须使用独立高强度随机字符串,不要复用渠道 userTokenSecret。
|
|
|
|
|
secret: ""
|
|
|
|
|
# 客服会话 token 默认有效期,单位分钟。
|
|
|
|
|
ttlMinutes: 120
|
|
|
|
|
# token 剩余有效期小于该值时自动续期,单位分钟。
|
|
|
|
|
refreshThresholdMinutes: 30
|
|
|
|
|
|
2026-04-09 10:01:23 +08:00
|
|
|
storage:
|
|
|
|
|
default: local
|
|
|
|
|
maxUploadSizeMB: 20
|
|
|
|
|
local:
|
|
|
|
|
root: data/storage
|
|
|
|
|
baseUrl: /storage
|
|
|
|
|
oss:
|
|
|
|
|
endpoint: ""
|
|
|
|
|
bucket: ""
|
|
|
|
|
accessKeyId: ""
|
|
|
|
|
accessKeySecret: ""
|
|
|
|
|
baseUrl: ""
|
|
|
|
|
private: false
|
|
|
|
|
signedUrlExpireSeconds: 600
|
|
|
|
|
|
|
|
|
|
vectorDB:
|
|
|
|
|
type: qdrant
|
|
|
|
|
host: 127.0.0.1
|
|
|
|
|
grpcPort: 6334
|
|
|
|
|
apiKey: ""
|
|
|
|
|
useTls: false
|
|
|
|
|
|
|
|
|
|
mcp:
|
|
|
|
|
enabled: true
|
|
|
|
|
servers:
|
|
|
|
|
system:
|
|
|
|
|
enabled: true
|
|
|
|
|
endpoint: "http://127.0.0.1:8083/api/mcp"
|
|
|
|
|
timeoutMs: 15000
|
|
|
|
|
headers: {}
|
|
|
|
|
|
2026-05-24 20:49:10 +08:00
|
|
|
oidc:
|
|
|
|
|
# 是否启用 OIDC 登录;本系统作为 OIDC Client。
|
|
|
|
|
enabled: false
|
|
|
|
|
# OIDC Provider issuer,例如 https://idp.example.com/realms/demo。
|
|
|
|
|
issuer: ""
|
|
|
|
|
clientId: ""
|
|
|
|
|
clientSecret: ""
|
|
|
|
|
# 必须与 OIDC Provider 后台登记的 redirect_uri 完全一致。
|
|
|
|
|
redirectUrl: "http://127.0.0.1:8083/api/auth/oidc_callback"
|
|
|
|
|
# OIDC 登录 state 签名密钥;留空时退回使用 clientSecret。
|
|
|
|
|
stateSecret: ""
|
|
|
|
|
scopes:
|
|
|
|
|
- openid
|
|
|
|
|
- profile
|
|
|
|
|
- email
|
|
|
|
|
|
2026-04-09 10:01:23 +08:00
|
|
|
wxWork:
|
2026-04-19 18:11:34 +08:00
|
|
|
# 是否启用企业微信能力。
|
|
|
|
|
# false 时不会初始化企业微信 SDK,登录、客服回调、应用通知都不可用。
|
2026-04-09 10:01:23 +08:00
|
|
|
enabled: false
|
|
|
|
|
# 企业微信公司 ID。
|
|
|
|
|
# 例如:wwxxxxxxxxxxxxxxxx,来自企业微信管理后台。
|
|
|
|
|
corpId:
|
|
|
|
|
# 企业微信应用 Secret。
|
|
|
|
|
# 用于后端换取 access_token 和用户身份,必须保密。
|
|
|
|
|
corpSecret: ""
|
|
|
|
|
# 企业微信自建应用 AgentID。
|
|
|
|
|
# 网页授权 scope=snsapi_privateinfo 时会使用该字段。
|
|
|
|
|
agentId:
|
|
|
|
|
# 企业微信网页授权回调地址。
|
|
|
|
|
# 必须是完整 URL,且应指向后端接口:
|
|
|
|
|
# 例如:http://127.0.0.1:8083/api/auth/wxwork_callback
|
|
|
|
|
# 线上环境应填写可被企业微信访问的正式域名,并确保域名已在企业微信后台配置。
|
|
|
|
|
oauthRedirect: ""
|
|
|
|
|
# 企业微信登录 state 签名密钥。
|
|
|
|
|
# 用于防篡改、防重放校验,建议填写独立随机字符串。
|
|
|
|
|
# 若留空,代码会退回使用 corpSecret,但不建议这样做。
|
|
|
|
|
stateSecret: ""
|
|
|
|
|
# 企业微信回调解密私钥。
|
|
|
|
|
# 当前登录流程未使用,保留给消息回调等场景。
|
|
|
|
|
rsaPrivateKey: ""
|
|
|
|
|
# 企业微信回调 Token。
|
|
|
|
|
# 当前登录流程未使用,保留给消息回调等场景。
|
|
|
|
|
token: ""
|
|
|
|
|
# 企业微信消息加解密 EncodingAESKey。
|
|
|
|
|
# 当前登录流程未使用,保留给消息回调等场景。
|
|
|
|
|
encodingAESKey: ""
|
2026-04-19 18:11:34 +08:00
|
|
|
|
|
|
|
|
notify:
|
|
|
|
|
# 是否启用企业微信应用消息通知。
|
|
|
|
|
enabled: false
|
2026-04-21 17:57:53 +08:00
|
|
|
# 默认接收通知的系统用户ID列表;如业务目标用户已绑定企业微信身份,会优先发给目标用户。
|
|
|
|
|
# 系统用户ID会通过企业微信身份绑定映射为企业微信成员ID后发送。
|
2026-04-19 18:11:34 +08:00
|
|
|
toUsers: []
|
|
|
|
|
# 是否发送保密消息。
|
|
|
|
|
safe: false
|
|
|
|
|
# 是否开启重复消息检查。
|
|
|
|
|
enableDuplicateCheck: true
|
|
|
|
|
# 重复消息检查时间窗口,单位秒。
|
|
|
|
|
duplicateCheckInterval: 1800
|