# DMS 栏目与字段配置 五个已接入栏目的默认 ID、栏目名称和业务字段名统一保存在 [`config/dms_schema.json`](../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_BASE_URL`为主机和可选端口,`AUTH_PORT`/`DMS_PORT`留空 | 原端口的`/proxy_oauth/user/login` | 原端口的`/proxy_dms` | | 设置`AUTH_PORT`与`DMS_PORT` | 认证端口的`/proxy_oauth/user/login` | 数据端口的`/proxy_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空列表、认证刷新和权限/未知错误隔离。全部使用合成服务替身;不代表已在两套真实环境完成联调,也不修改线上独立配置。