server: port: 8083 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: tokenTTLHours: 12 maxFailedAttempts: 5 credentialLockMinute: 15 customerSession: # 客服会话 token 签名密钥。必须使用独立高强度随机字符串,不要复用渠道 userTokenSecret。 secret: "" # 客服会话 token 默认有效期,单位分钟。 ttlMinutes: 120 # token 剩余有效期小于该值时自动续期,单位分钟。 refreshThresholdMinutes: 30 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: {} 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 wxWork: # 是否启用企业微信能力。 # false 时不会初始化企业微信 SDK,登录、客服回调、应用通知都不可用。 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: "" notify: # 是否启用企业微信应用消息通知。 enabled: false # 默认接收通知的系统用户ID列表;如业务目标用户已绑定企业微信身份,会优先发给目标用户。 # 系统用户ID会通过企业微信身份绑定映射为企业微信成员ID后发送。 toUsers: [] # 是否发送保密消息。 safe: false # 是否开启重复消息检查。 enableDuplicateCheck: true # 重复消息检查时间窗口,单位秒。 duplicateCheckInterval: 1800