Client:将管理端默认地址切换为正式 HTTPS 地址 #148

Closed
opened 2026-08-11 11:46:36 +08:00 by ila · 3 comments
Owner

基本信息

  • 类型:需求
  • 父级大工单:#1
  • 所属 MVP / 版本:#2 / Client 可运行任务闭环
  • 阶段:Admin 连接默认配置

要解决什么

Client 当前管理端默认地址仍是本机地址,新安装或尚未保存配置的客户端不能默认连接正式管理端。需要把默认地址调整为 https://buy.833729.com,同时保护用户已经手动保存的自定义地址。

做什么 / 不做什么

  • 做:把 Client 的管理端默认地址统一调整为 https://buy.833729.com。
  • 做:首次运行或数据库中没有管理端地址时使用新默认值。
  • 做:已有值恰好是旧默认地址 http://127.0.0.1:8080 时迁移到新默认值。
  • 做:保留用户手动保存的其他管理端地址,不强制覆盖。
  • 做:登记、领取任务、提交结果和提交失败继续读取同一份已保存配置。
  • 不做:不修改 Admin 接口路径、请求字段、认证方式和四接口契约。
  • 不做:不把账号、密码、Token 或 Cookie 写入数据库、日志、工单或代码。

怎么做

  • 修改 client/src/http_admin_gateway.py 中唯一的管理端默认地址常量。
  • 在现有设置加载或数据库迁移边界中加入最小兼容处理:空值和旧默认值改为新地址,自定义值保持不变。
  • 检查 client/src/settings_ui_event.py、client/src/pdd_ui_event.py 等调用方继续复用统一配置,不新增第二套地址来源。
  • 补充默认值、旧值迁移和自定义值保留测试;预计不修改 Admin 和接口契约。

验收标准

  • 全新 Client 默认显示并使用 https://buy.833729.com。
  • 数据库没有管理端地址时使用并保存新默认值。
  • 原值为 http://127.0.0.1:8080 时升级后迁移到新默认值。
  • 用户保存的其他管理端地址升级后保持不变。
  • 设备登记与任务领取、结果提交使用同一管理端地址。
  • 自动化测试不访问真实管理端,也不记录任何凭据。

怎么验证

从 client/ 执行:

C:/Python310/python.exe -m unittest discover -s test -p "test_*admin*py"
C:/Python310/python.exe -m unittest discover -s test -p "test_*settings*py"

另用临时数据库分别验证“无配置、旧默认值、自定义值”三种升级场景。

风险和回退

  • 风险:无条件覆盖会破坏测试环境或其他部署地址,因此只迁移空值和明确的旧默认值。
  • 风险:正式 HTTPS 证书或网络异常时,Client 应显示现有连接错误,不能绕过证书校验。
  • 回退:恢复旧默认常量和兼容迁移逻辑;已经由用户手动保存的地址不回滚。
## 基本信息 - 类型:需求 - 父级大工单:#1 - 所属 MVP / 版本:#2 / Client 可运行任务闭环 - 阶段:Admin 连接默认配置 ## 要解决什么 Client 当前管理端默认地址仍是本机地址,新安装或尚未保存配置的客户端不能默认连接正式管理端。需要把默认地址调整为 `https://buy.833729.com`,同时保护用户已经手动保存的自定义地址。 ## 做什么 / 不做什么 - 做:把 Client 的管理端默认地址统一调整为 `https://buy.833729.com`。 - 做:首次运行或数据库中没有管理端地址时使用新默认值。 - 做:已有值恰好是旧默认地址 `http://127.0.0.1:8080` 时迁移到新默认值。 - 做:保留用户手动保存的其他管理端地址,不强制覆盖。 - 做:登记、领取任务、提交结果和提交失败继续读取同一份已保存配置。 - 不做:不修改 Admin 接口路径、请求字段、认证方式和四接口契约。 - 不做:不把账号、密码、Token 或 Cookie 写入数据库、日志、工单或代码。 ## 怎么做 - 修改 `client/src/http_admin_gateway.py` 中唯一的管理端默认地址常量。 - 在现有设置加载或数据库迁移边界中加入最小兼容处理:空值和旧默认值改为新地址,自定义值保持不变。 - 检查 `client/src/settings_ui_event.py`、`client/src/pdd_ui_event.py` 等调用方继续复用统一配置,不新增第二套地址来源。 - 补充默认值、旧值迁移和自定义值保留测试;预计不修改 Admin 和接口契约。 ## 验收标准 - [ ] 全新 Client 默认显示并使用 `https://buy.833729.com`。 - [ ] 数据库没有管理端地址时使用并保存新默认值。 - [ ] 原值为 `http://127.0.0.1:8080` 时升级后迁移到新默认值。 - [ ] 用户保存的其他管理端地址升级后保持不变。 - [ ] 设备登记与任务领取、结果提交使用同一管理端地址。 - [ ] 自动化测试不访问真实管理端,也不记录任何凭据。 ## 怎么验证 从 `client/` 执行: ```powershell C:/Python310/python.exe -m unittest discover -s test -p "test_*admin*py" C:/Python310/python.exe -m unittest discover -s test -p "test_*settings*py" ``` 另用临时数据库分别验证“无配置、旧默认值、自定义值”三种升级场景。 ## 风险和回退 - 风险:无条件覆盖会破坏测试环境或其他部署地址,因此只迁移空值和明确的旧默认值。 - 风险:正式 HTTPS 证书或网络异常时,Client 应显示现有连接错误,不能绕过证书校验。 - 回退:恢复旧默认常量和兼容迁移逻辑;已经由用户手动保存的地址不回滚。
Author
Owner

状态:进行中。

实施确认:管理端地址有设置页与 PDD 任务页两个读取入口。本次将增加统一读取/兼容迁移函数,只迁移空值和旧默认值 http://127.0.0.1:8080,不覆盖用户自定义地址;随后补充临时 SQLite 测试。

状态:进行中。 实施确认:管理端地址有设置页与 PDD 任务页两个读取入口。本次将增加统一读取/兼容迁移函数,只迁移空值和旧默认值 `http://127.0.0.1:8080`,不覆盖用户自定义地址;随后补充临时 SQLite 测试。
Author
Owner

状态:已完成,待验收。

实现提交:5c2f4f6
归档提交:dd1c7c1
归档:docs/task/148-切换正式管理端默认地址.md

验证结果:管理端地址服务测试 6 项、HTTP Gateway 测试 13 项、设置页离屏测试 43 项全部通过,相关 Python 文件语法检查通过。未向正式 Admin 发起真实请求。

状态:已完成,待验收。 实现提交:`5c2f4f6` 归档提交:`dd1c7c1` 归档:`docs/task/148-切换正式管理端默认地址.md` 验证结果:管理端地址服务测试 6 项、HTTP Gateway 测试 13 项、设置页离屏测试 43 项全部通过,相关 Python 文件语法检查通过。未向正式 Admin 发起真实请求。
Author
Owner

用户于 2026-08-13 明确验收通过。本地归档状态已更新,批量验收记录提交:ad44f83。现关闭工单。

用户于 2026-08-13 明确验收通过。本地归档状态已更新,批量验收记录提交:`ad44f83`。现关闭工单。
ila closed this issue 2026-08-13 15:57:56 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#148