dms-schema.md 4.9 KB

DMS 栏目与字段配置

五个已接入栏目的默认 ID、栏目名称和业务字段名统一保存在 config/dms_schema.json。records(助手问答记录)、sessions(助手会话)、demands(诉求词)、basic(企业基础信息)、honor(企业荣誉信息)是程序内部固定别名。

每个栏目中,id 是 DMS 栏目 ID,name 是启动时核对的栏目名称;fields 左侧为程序内部字段键,右侧为 DMS 模型中的实际字段名。修改 DMS 字段时只改右侧,不改左侧。types 只需列出非默认 text 类型,键使用程序内部字段键。父栏目名称在顶层 parent。DMS 内置的 id、state、column_id、create_time、update_time、title 是接口协议字段,不作为业务字段重命名。

会话三个栏目原有环境变量 DMS_RECORDS_COLUMN_ID、DMS_SESSIONS_COLUMN_ID、DMS_DEMANDS_COLUMN_ID 仍可覆盖配置文件里的 ID;若要统一从文件维护,应移除这些旧覆盖项。企业两栏只从配置文件取 ID。配置变更后重启进程;已创建的 DMS 内容不会自动迁移或改名。严格作用域开启时,还须同步调整 DMS_ALLOWED_SCOPES_JSON 中允许的栏目名称。

程序仍先按栏目 ID 读取元数据,核对栏目名、父栏目和模型字段类型,再访问内容。字段名映射应用于查询条件、写入内容和读取结果;配置非法或服务端模型不符会停止相应 DMS 操作。sh deploy-offline.sh check-dms也读取本文件及现有环境变量,按实际映射只读核对五个栏目的元数据。修改配置不能替代服务端栏目、模型和历史数据迁移。离线部署须重新生成单包,旧包不会自动包含新配置。

本地和线上共用同一套客户端与.env配置项,不根据Git分支、主机名或字段前缀选择代码版本。connection_urls统一解析初次登录、业务请求和token刷新使用的地址;企业查询与会话分析共用这一入口。

可选DMS_LOGIN_URL指定完整HTTP(S)登录地址(例如http://auth.example:8888/oauth/api/user/login), 设置后优先于AUTH_PORT和默认/proxy_oauth/user/login拼接,初次登录及212/401后的刷新均使用此地址。 禁止内嵌用户密码、query、fragment及空白;省略时按下表推导。DMS_BASE_URL可设置完整数据入口 http://data.example:10081/dms;DMS_PORT若非空仍覆盖它的端口,建议删除旧端口项或留空以避免冲突。 仅改变地址路由,表单字段与登录响应契约保持;线上服务协议仍须实际诊断验证。

配置方式 登录请求 数据请求
DMS_BASE_URL为主机和可选端口,AUTH_PORT/DMS_PORT留空 原端口的/proxy_oauth/user/login 原端口的/proxy_dms
主机URL不含路径且同时设置AUTH_PORT与DMS_PORT 认证端口的/oauth/api/user/login 数据端口的/dms
只设置其中一个端口 对应端口覆盖,另一项沿用URL端口 对应端口覆盖,另一项沿用URL端口
URL显式含/proxy_dms 沿用同样的端口规则 保留/proxy_dms路径
URL显式含/dms 有AUTH_PORT可自动登录;未设置时使用已有DMS_TOKEN,不猜认证地址 保留/dms路径,端口规则相同

DMS_USERNAME和DMS_PASSWORD用于自动登录;已提供DMS_TOKEN则先使用它。HTTP 401或DMS 212时,仅在已配置可用登录方式的情况下重新登录并重试一次;无权限或不确定的传输错误不重放写请求。token只留内存,日志不输出凭据。配置项名称相同,值按环境填写;不需要为本地和线上分别维护客户端源码。

栏目ID、c_name/c_c_name等实际字段差异始终由各环境config/dms_schema.json映射,程序不自动增删前缀。仓库默认映射沿用dev版本;线上已有独立config与.env时继续使用现场文件,更新代码不代表迁移栏目或替换这些配置。check-dms按当前配置验证栏目元数据和字段类型,不因栏目暂无记录而失败。

会话与企业列表共用精确空结果契约:仅selectContentList返回code=202且message与content均为“数据不存在”时视为空列表。其他202、权限/认证失败、元数据和写入错误仍明确失败。真实合成草稿已验证新增、更新及回读;销毁请求state=4获成功响应,草稿列表确认测试记录退出。当前服务未返回销毁状态的记录,因此尚未验证销毁记录的归档回读或可恢复性;不能把销毁操作称为物理删除。

F131验证:同一组配置项下,六种地址/端口组合、两种字段映射、企业与会话客户端交叉验证,覆盖200标准空列表、精确202空列表、认证刷新和权限/未知错误隔离。全部使用合成服务替身;不代表已在两套真实环境完成联调,也不修改线上独立配置。