feat(t229): load ERP credentials from dotenv

This commit is contained in:
QiuSW
2026-07-29 10:25:56 +08:00
parent d75a7d8dc0
commit f0fbdbaddc
12 changed files with 396 additions and 26 deletions
+13 -10
View File
@@ -5,7 +5,7 @@
## 当前快照
- 日期:2026-07-29
- 阶段:T-229 待增加受控 `backend-api/.env` ERP 凭证加载;随后进行人工验证码登录 smoke
- 阶段:T-229 已完成受控 `backend-api/.env` ERP 凭证加载;随后进行人工验证码登录 smoke
- Git:当前分支为 `main`;T-001 至 T-004、T-101 至 T-104、T-201 至 T-219
均按文档提交、实现提交的顺序纳入历史
- 生产代码:`android-buyer/` 已接入 Roubao Android 源码
@@ -20,8 +20,9 @@
- ERP Go 迁移:T-225 已用脱敏 fixture 固定 `internal/platform/shunyunbao` 的 header、
单号/日期查询、分页、详情批量和字段 allowlist,并使货运用例依赖来源中立错误。T-226
已增加受锁保护的 Go 内存 Cookie jar、验证码 ticket、登录和用户校验,以及 ADMIN 的
`/erp` 页面/API;账号密码仅由 `CMROUBAO_SHUNYUNBAO_*` 启动环境读取,重启后需人工
重新登录。T-227 已将其作为 `FreightSource`,查询先校验会话、再执行有界分页/详情
`/erp` 页面/API;账号密码可由 `backend-api/.env` 的受控 `CMROUBAO_SHUNYUNBAO_*`
回退提供,进程环境变量优先,重启后需人工重新登录。T-227 已将其作为 `FreightSource`,
查询先校验会话、再执行有界分页/详情
批量并返回 allowlist;T-228 已删除旧 Python Connector、loopback 端口和共享 API Key;
未访问真实 ERP。
- ERP 增量同步:v14 支持 Asia/Shanghai 创建日期闭区间和“同步至现在”,source 单窗
@@ -35,7 +36,7 @@
- Android Studio:未安装;`winget` 静默安装卡住后已终止,不阻塞命令行构建
- 测试:T-219 Android Debug/Release 单元测试与构建和根 `init.ps1` 通过;
Debug APK `1.4.16 (21)` 已覆盖安装到 PKG110
- 后端测试:T-226 至 T-228 已运行 `go test ./...`、`go test -race ./...`、`go vet ./...`
- 后端测试:T-226 至 T-229 已运行 `go test ./...`、`go test -race ./...`、`go vet ./...`
和三个 Go 入口构建;T-227 增加 Go source 的伪 ERP 会话预检、完整单号、日期分页去重、
详情 allowlist 和稳定错误码覆盖;根 `init.ps1` 的 Android 测试/Debug APK 与 Go 标准
验证也通过,均未访问真实 ERP;
@@ -106,7 +107,9 @@
付款、重复提交或自动支付动作。隔离数据库真实 SSR 已通过三个响应式视口验收。
- T-220 至 T-228 ERP 来源:字段契约已固定 stock/detail/item 外部身份、PII 最小化和
缺图边界;Go API 以受锁内存会话完成受控验证码登录,并直接按完整单号或日期范围查询
allowlist schema。旧 Python Connector、8091 端口和共享服务密钥已删除;未访问线上 ERP。
allowlist schema。T-229 仅允许 API 从当前目录 `.env` 回退读取三个 ERP 配置,且不会
改写进程环境或加载其他配置。旧 Python Connector、8091 端口和共享服务密钥已删除;
未访问线上 ERP。
- Workflow:纯 Kotlin runner 已支持步骤 timeout、最多 3 次 retry、安全阻塞、
用户停止和单 runner 并发拒绝;T-102 已接入搜索加有界候选采集五步
- TaskSource:严格 CLI 已生成并验证真实私有 ProbeTask;默认 APK 不含私有 fixture
@@ -183,6 +186,7 @@
| `docs/tasks/T-226.md` | DONE | Go ERP 会话、验证码登录与 Admin 连接页 |
| `docs/tasks/T-227.md` | DONE | Go 直连顺运宝查询接入货运同步 |
| `docs/tasks/T-228.md` | DONE | 移除 Python Connector 并完成 Go 切换 |
| `docs/tasks/T-229.md` | DONE | 从受控 `.env` 加载 ERP 凭证 |
| `docs/design/` | 已确认 | T-202 原型索引、4 个管理页和 7 个 Android 页面 |
| `deepseek总结.txt` | 已有 | 历史讨论摘要,不是正式需求权威 |
| `android-buyer/` | 已有 | Roubao `main` 固定 commit 的 Android 基线 |
@@ -194,12 +198,11 @@
## 任务摘要
- 已完成:T-001 至 T-004、T-101 至 T-104、T-201 至 T-219。
- 已完成:另含 T-220 至 T-228 ERP 契约、货运存储、采购需求生成、日期增量同步、Go
直连协议、人工验证码会话、直连 `FreightSource` 和旧 Connector 清理。
- 已完成:另含 T-220 至 T-229 ERP 契约、货运存储、采购需求生成、日期增量同步、Go
直连协议、人工验证码会话、直连 `FreightSource`、旧 Connector 清理和受控本地凭证加载。
- 进行中:无。
- 下一步:T-229 让本地单机从受控 `backend-api/.env` 读取 ERP 凭证;随后确认开放 API、
数据使用权限,并由人员在 `/erp` 完成验证码登录后以受控单号执行一次不记录订单内容的
smoke。
- 下一步:确认开放 API、数据使用权限,并由人员在 `/erp` 完成验证码登录后以受控单号
执行一次不记录订单内容的 smoke。
## 当前可运行内容