oclaw/uds-auth/lib/config.js
oliver 64761c8300 Add parallel skill credential path to uds-auth for agent/cron use.
UI session behavior stays unchanged; login writes a separate skill cache, with optional retain-on-logout and loopback agent-credentials/outbound APIs plus helpers/docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 23:01:11 +08:00

60 lines
2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* uds-auth 配置工具
* Config schema 定义在 lib/index.js(由 DSH host 提供 @deepseek-ai/schemastery)
* 这里只做纯 JS 的默认值和工具函数,不依赖 host 运行时
*
* 可配置字段(部署相关,在 DSH 设置面板可改):
* uacBaseUrl UAC 基础 URL
* userSearchUrl icenterapi 用户搜索接口
* loginSystemCode 业务系统 Code
* originSystemCode 来源系统 Code
*
* 内部常量(UDS 固定协议,不暴露给用户):
* uacQrVerifyPath, cookie 名称, header 名称, session 等
*/
const UDS_AUTH_SETTINGS_NAMESPACE = 'uds-auth'
// 可配置字段的默认值(与 lib/index.js 里 Config schema 保持一致)
const DEFAULT_CONFIG = {
uacBaseUrl: 'https://uac.zte.com.cn',
userSearchUrl: 'https://icenterapi.zte.com.cn/zte-km-icenter-addresearch/user/plain/docs/search',
loginSystemCode: '100000455558',
originSystemCode: '',
retainSkillCredentialsOnLogout: true,
skillCredentialTtlSeconds: 7 * 24 * 60 * 60,
outboundAllowedHosts: 'icenterapi.zte.com.cn,icentermsg.dt.zte.com.cn',
}
// 内部常量(不暴露)
const INTERNAL = {
uacQrVerifyPath: '/uacqr/auth/qrcode/verify.serv',
cookieEmpNo: 'PORTALSSOUser',
cookieAuthValue: 'PORTALSSOCookie',
altCookieEmpNo: 'ZTEDPGSSOUser',
altCookieAuthValue: 'ZTEDPGSSOCookie',
empNoHeader: 'X-Emp-No',
authValueHeader: 'X-Auth-Value',
session: {
storeType: 'memory',
redisUrl: 'redis://localhost:6379',
cookieName: 'UDS_SESSION',
cookieMaxAge: 1800000,
},
}
export { DEFAULT_CONFIG, INTERNAL, UDS_AUTH_SETTINGS_NAMESPACE }
export function loadConfig(custom = {}) {
return { ...DEFAULT_CONFIG, ...(custom || {}) }
}
export function buildVerifyUrl(uacBaseUrl, uacQrVerifyPath) {
if (/^https?:\/\//.test(uacQrVerifyPath)) return uacQrVerifyPath
return (uacBaseUrl.replace(/\/$/, '') + '/' + uacQrVerifyPath.replace(/^\//, ''))
}
export function validateConfig(config) {
if (!config?.uacBaseUrl) throw new Error('uacBaseUrl is required')
return true
}