feat: 实现完整的本地配置管理与CLI重构
本次重构实现了标准化的本地配置系统,替换原有的硬编码环境变量读取逻辑: 1. 新增跨平台的原子化配置文件读写,支持Unix和Windows系统 2. 新增init命令用于安全初始化和更新本地凭据 3. 替换原有错误提示文案为更友好的中文提示 4. 更新文档说明新的配置流程和安全规范 5. 新增完整的配置相关测试用例 6. 添加必要的依赖包支持
This commit is contained in:
@@ -15,13 +15,18 @@ description: 安装、更新并安全使用 shop-crm-agent 查询和维护 Shop
|
||||
2. 缺少仓库时,从 `https://code.zhecent.com/open/shop-crm-agent.git` 匿名 clone,不使用来源不明的压缩包或二进制。
|
||||
3. 检查 `go version` 满足 `go.mod`;缺少 Go 时安装官方 Go 工具链,再继续构建。
|
||||
4. 首次安装在仓库根目录执行 `go run ./scripts/build.go`,使用 `bin/shop-crm-agent`;Windows 使用 `bin/shop-crm-agent.exe`。
|
||||
5. 收到更新通知后先确认 `git status --short` 为空,再执行 `git pull --ff-only`;拉取后重新读取本文件并重新构建。
|
||||
6. 本地存在修改、拉取失败、测试失败、构建失败或版本探针失败时停止,不得强制重置或继续使用半完成产物。
|
||||
5. 只运行仓库内 `bin/shop-crm-agent[.exe]`;不得用 `go install` 安装该 CLI,不得将其二进制复制或软链接到仓库外,也不得为该 CLI 修改 `PATH`、Shell 启动文件或系统级配置。
|
||||
6. 构建成功后执行 `bin/shop-crm-agent init`;让员工在隐藏提示中粘贴 Shop 管理后台只显示一次的 Token,不得要求员工把 Token 发到聊天中。
|
||||
7. 收到更新通知后先确认 `git status --short` 为空,再执行 `git pull --ff-only`;拉取后重新读取本文件并重新构建。`.env` 被 Git 忽略,正常更新不会改动凭据。
|
||||
8. 本地存在修改、拉取失败、测试失败、构建失败或版本探针失败时停止,不得强制重置或继续使用半完成产物。
|
||||
|
||||
## 运行配置
|
||||
|
||||
- 确认 `LIGHTCORE_API_BASE_URL` 和 `LIGHTCORE_SHOP_CRM_AGENT_TOKEN` 已由运行环境提供;不得显示、记录或提交 Token。
|
||||
- 凭据只通过 Shop 管理后台创建和撤销;CLI 不管理凭据。
|
||||
- 默认生产 API 为 `https://api.zhecent.com`,无需设置 `LIGHTCORE_API_BASE_URL`,且不会回退 localhost。
|
||||
- Token 只通过 Shop 管理后台 `/shop/crm/settings/agent-credentials` 创建和撤销,绑定当前管理员与所选 scope,明文仅在创建时显示一次;CLI 的 `init` 只把已有 Token 写入本地 `.env`,不管理服务端凭据。
|
||||
- `.env` 固定在仓库根,由 `init` 创建且已被 Git 忽略;`init` 可重复执行并且每次原子覆盖旧文件,除此之外 Agent 不得读取或修改其内容。
|
||||
- 业务命令默认从 `.env` 读取 Token;CI 可使用 `LIGHTCORE_SHOP_CRM_AGENT_TOKEN` 覆盖。覆盖 `LIGHTCORE_API_BASE_URL` 时必须同时显式提供对应环境的 Token,不得读取 `.env` 中的生产 Token。
|
||||
- 不得显示、记录、提交 Token,也不得把真实 Token 写入命令参数、会保留历史的 Shell 命令、普通日志或聊天内容。
|
||||
- 业务命令使用仓库 `bin/` 下的当前构建产物,精确参数以 `<binary> <subcommand> --help` 为准。
|
||||
|
||||
## 操作流程
|
||||
|
||||
Reference in New Issue
Block a user