docs(#114): upgrade DevHarness workflow baseline
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
|
||||
wiki_page: Project-Profile
|
||||
wiki_url: https://git.ilapage.cn/OPC/goauto/wiki/Project-Profile.-
|
||||
wiki_revision: a1f90d0ff56ce30ace6febbe5de859f3e20ca5fd
|
||||
synchronized_at: 2026-08-24T08:21:02Z
|
||||
wiki_revision: 5c3a304d160e52f23b94c54a127b0fb51333a8f4
|
||||
synchronized_at: 2026-08-27T09:37:39Z
|
||||
<!-- gitea-wiki-mirror:end -->
|
||||
|
||||
# 项目档案
|
||||
@@ -25,12 +25,12 @@ synchronized_at: 2026-08-24T08:21:02Z
|
||||
|
||||
| 基线 | 来源与版本 | 许可证 / 使用方式 | GoAuto 适配 |
|
||||
|---|---|---|---|
|
||||
| DevHarness | `D:\OPC\dev_harness`,目标提交 `bfdf648962d11a8024f62768380d8571e1f45f68` | 开发流程与文档模板 | 2026-08-19 升级(#47):命令入口合并为 `harness.py`、项目档案改按需读取、新增 Wiki 初始化门禁与本地 HTML 审核快照、统一 LF 行尾;2026-08-24 再按 #76 精简为单人工单事实源、长期 Wiki 和按需历史快照;保留 GoAuto 专用安全与设计门禁 |
|
||||
| DevHarness | `D:\OPC\dev_harness`,目标提交 `4bbacf4d7fb265984396bb5589c544105043fa0b` | 开发流程与文档模板 | 2026-08-27 升级(#114):在 #76 已采用的单人工单事实源基础上,增量加入部署模板、Gitea MCP 与最小工单读取、线上原型默认审核与按需 HTML 导出、PowerShell UTF-8/ExecutionPolicy 边界;继续保留 GoAuto 专用安全与设计门禁 |
|
||||
| 服务端 | `go-admin` v2.3.0 | 上游开源管理端基线;升级时复核许可证和安全公告 | 保留认证、菜单、配置和管理端基础能力,新增 GoAuto 业务模块 |
|
||||
| 管理端 | `go-admin-ui` v3.0.0,`web/package.json` 标注 MIT | Vue 管理界面基线 | 保留应用外壳与通用组件,新增 GoAuto 页面 |
|
||||
| Android | 原生 Kotlin Agent | 自研业务客户端 | 通过 HTTPS 直连服务端,不保留 Windows 桌面 Client/ADB 作为生产拓扑 |
|
||||
|
||||
升级必须比较当前记录的目标提交与新的明确提交,不能笼统复制“最新版”。上一基线为 `b1f500128d6eb100985792d4a715db8b6b5ae203`(2026-08-17),本次升级区间共 12 个提交。模板内容一律按 GoAuto 事实改写:`harness.py` 的核心文档校验清单已改为 GoAuto 实际文档结构,README 校验改为产品 README 结构(新项目 Wiki 初始化门禁改由 `AGENTS.md` 与开发工作流承载)。
|
||||
升级必须比较当前记录的目标提交与新的明确提交,不能笼统复制“最新版”。本次上一基线为 `bfdf648962d11a8024f62768380d8571e1f45f68`,目标为 `4bbacf4d7fb265984396bb5589c544105043fa0b`,区间共 13 个提交;更早基线 `b1f500128d6eb100985792d4a715db8b6b5ae203` 的适配见 #47。模板内容一律按 GoAuto 事实改写:不复制 DevHarness 的项目事实、任务记录、占位部署参数或历史归档;`harness.py` 继续校验 GoAuto 实际核心页面与产品 README,GoAuto 更严格的付款、订单、设备、数据和真机门禁继续优先。
|
||||
|
||||
## 交付单元
|
||||
|
||||
@@ -39,7 +39,7 @@ synchronized_at: 2026-08-24T08:21:02Z
|
||||
| `server/` | go-admin API、任务调度、规则、设备连接、结果持久化 | Go 1.26.5、go-admin v2.3.0、MySQL 8.4 | Go 单元与构建验证 |
|
||||
| `web/` | go-admin-ui 管理端 | Vue、go-admin-ui v3.0.0、pnpm | lint、生产构建、浏览器验收 |
|
||||
| `android/` | Portal/Agent、注册保活、任务执行和结果提交 | Kotlin 1.9.22、Android SDK 34 | Android 单元测试、APK 构建与真机验收 |
|
||||
| `prototypes/` | 与代码版本绑定的服务端和 Android HTML 原型 | HTML/CSS/JavaScript | 静态检查、浏览器人工验收 |
|
||||
| `prototypes/` | 用户或项目规则明确要求时导出的版本化 HTML 原型快照;既有快照保留 | HTML/CSS/JavaScript | 入口、交互、相对资源和敏感信息检查 |
|
||||
| `docs/` | 核心 Wiki 的本地只读镜像、版本绑定分析和规则文件 | Markdown、JSON | Wiki 镜像一致性、链接、结构和差异检查 |
|
||||
|
||||
跨端共享契约以 [Android Agent API 契约](https://git.ilapage.cn/OPC/goauto/wiki/Android-Agent-API-Contract) 为唯一事实来源。各交付单元可以独立构建和验证,但共享字段、状态或能力变化必须在同一工单中验证所有受影响端。
|
||||
@@ -49,7 +49,7 @@ synchronized_at: 2026-08-24T08:21:02Z
|
||||
- Gitea 工单是单次任务需求、变化、实现、测试、提交和验收的唯一事实来源。
|
||||
- Gitea Wiki 只保存长期产品需求、架构、业务规则、开发规范、共享契约、安全边界和操作说明。
|
||||
- Git `docs/` 保存核心 Wiki 的只读镜像,以及与代码版本绑定且未映射到 Wiki 的分析和规则文件。
|
||||
- QuantUX 保存外部交互原型;工单必须记录 App ID、链接和草稿/确认状态。
|
||||
- QuantUX 保存可编辑交互原型;工单必须记录可访问链接、App ID、版本或确认日期和审核状态。本地 HTML 只在用户或项目规则明确要求时按版本导出。
|
||||
- Gitea Wiki 已于 2026-08-17 完成核心页面迁移、显式映射和单向同步验证,长期文档采用 Wiki-first。
|
||||
- 只有长期事实变化时才按修改 Wiki、读取 revision、导出本地镜像、检查一致性并提交的顺序更新;无长期影响的任务不运行 Wiki 同步。不得直接编辑镜像后反向覆盖 Wiki。
|
||||
- 既有 Wiki 任务归档和 `docs/task/` 只作历史兼容;标准任务不创建,只有用户明确要求专项快照时才使用 `archive` / `export`。
|
||||
|
||||
+24
-11
@@ -2,8 +2,8 @@
|
||||
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
|
||||
wiki_page: Development-Workflow
|
||||
wiki_url: https://git.ilapage.cn/OPC/goauto/wiki/Development-Workflow.-
|
||||
wiki_revision: a7f146e9e25f621fdca6c16f970e2228c8f6e111
|
||||
synchronized_at: 2026-08-24T08:21:11Z
|
||||
wiki_revision: 3167457d79824afe532dd5560990af8a485a57d1
|
||||
synchronized_at: 2026-08-27T09:37:51Z
|
||||
<!-- gitea-wiki-mirror:end -->
|
||||
|
||||
# 开发工作流
|
||||
@@ -34,6 +34,15 @@ synchronized_at: 2026-08-24T08:21:11Z
|
||||
|
||||
进行基线或差距审计时,记录 source commit、核验日期、证据路径、GAP-ID、审计范围、不在范围和证据边界。轻量日常工单不强制建立完整 SRS/SAD/ADR 文档集,但接口、状态机和跨端决策必须进入对应长期契约。
|
||||
|
||||
## Gitea 交互与工单最小读取
|
||||
|
||||
- 所有工单和 Wiki 的查询、创建、更新、评论、状态变更及关闭优先使用项目已配置的 Gitea MCP;MCP 不可用或不支持所需操作时才回退 Gitea API,并在当前工单记录原因。凭据只从环境或 MCP 安全配置读取。
|
||||
- 首次接手任务时读取工单确认基线和完成当前判断所需的评论,不因节省上下文跳过范围、依赖、安全、验收或重要变化。
|
||||
- 同一任务、同一会话且关键前提未变化时复用仍有效的工单事实,优先关注当前状态、最新评论和首个未完成步骤。
|
||||
- 会话、代码、配置、依赖、凭据、远端状态或关键前提变化,或最新评论改变范围、方案、风险和验收时,重新读取必要历史;无法判断影响范围时读取完整工单。
|
||||
- 连接器不支持评论分页或增量读取时可以读取完整工单,但不得为规避完整读取而建立本地缓存或第二事实来源。
|
||||
- 正确性、安全规则和已确认范围优先于读取成本;边界不确定时补读必要证据。
|
||||
|
||||
## 新项目 Wiki 初始化门禁
|
||||
|
||||
本项目 Wiki 已于 2026-08-17 初始化并启用 Wiki-first,本节适用于从本仓库派生新项目的场景。
|
||||
@@ -71,13 +80,14 @@ synchronized_at: 2026-08-24T08:21:11Z
|
||||
| 后端、接口、数据或定时任务 | 架构、API、数据、状态或流程设计 | 用户确认技术方案后实施 |
|
||||
| 恢复既有行为的 Bug | 原设计、截图、复现步骤或已有验收证据 | 确认是恢复而不是改需求 |
|
||||
|
||||
### 本地 HTML 审核快照
|
||||
### 线上原型审核与按需导出
|
||||
|
||||
- 完整原型在用户审核前导出到 `prototypes/<工单号>/<版本>/index.html`,资源使用相对路径。
|
||||
- QuantUX 保留可编辑源,Git HTML 是版本化审核证据;工单只保存索引。
|
||||
- 已确认快照不得原位覆盖;结构、流程、状态、权限或异常处理变化时建立新版本并重新确认。
|
||||
- 提交审核前检查入口、交互和资源完整性,删除凭据、账号、个人信息和生产数据。
|
||||
- QuantUX 无法生成可用 HTML 时记录限制并停止审核;纯文案、小范围 UI、非 UI 和恢复已有行为的 Bug 不强制 HTML。
|
||||
- 完整原型默认通过 QuantUX 或其他设计工具的可访问线上链接审核;工单记录链接、App ID、版本/revision 或确认日期、审核版本识别方式、确认人、确认时间和覆盖范围。
|
||||
- 线上链接无法访问或不能区分审核版本时停止审核,等待用户确认等效方案。
|
||||
- 只有用户明确要求 `导出原型 #N`、`导出全部原型`,或项目专用规则明确要求离线证据时,才导出到 `prototypes/<工单号>/<版本>/index.html`;导出不自动提交。
|
||||
- 已确认的本地快照不得原位覆盖;结构、流程、状态、权限、异常处理或验收结果变化时建立新版本并重新确认。
|
||||
- 导出后检查入口、主要交互、相对资源完整性,并删除凭据、账号、个人信息和生产数据。
|
||||
- 设计工具无法完成用户明确要求的 HTML 导出时,记录限制并停止该导出;只要线上原型可访问且版本明确,线上审核不因此阻塞。纯文案、小范围 UI、非 UI 和恢复已有行为的 Bug 不强制完整原型或 HTML。
|
||||
|
||||
存量 `quantux-*.html` 平铺快照建立于规则前,保持原样;新目录规则自 #47 生效。
|
||||
|
||||
@@ -135,11 +145,13 @@ synchronized_at: 2026-08-24T08:21:11Z
|
||||
|---|---|---|
|
||||
| `只分析` | 只读检查并给出方案 | 等待确认,不建单、不修改 |
|
||||
| `建工单` | 根据已确认方案创建单元任务 | 工单创建后停止 |
|
||||
| `执行工单 #N` | 检查依赖,实施、测试、提交并回写证据 | 工单待验收 |
|
||||
| `执行工单 #N` | 检查依赖,实施、测试、提交、推送并回写证据;仅在明确要求时创建任务快照 | 工单待验收 |
|
||||
| `建工单并做` | 依次建单和执行 | 工单待验收 |
|
||||
| `继续工单 #N` | 从首个未完成步骤继续 | 到当前停止条件 |
|
||||
| `继续工单 #N` | 优先核对当前状态、最新评论、Git 和必要 Wiki 证据,从首个未完成步骤继续 | 到当前停止条件 |
|
||||
| `检查工单 #N` | 只读检查范围、验收、测试和证据 | 输出报告,不自动修复 |
|
||||
| `同步文档` | 读取 Wiki,导出核心镜像并检查一致性 | 不修改 Wiki、不处理任务快照、不自动提交 |
|
||||
| `导出原型 #N` | 用户明确要求时导出指定工单已确认的原型版本 | 写入版本目录,不扩展范围、不自动提交 |
|
||||
| `导出全部原型` | 用户明确要求时导出当前项目明确范围内的全部已确认原型 | 不扩展范围、不自动提交 |
|
||||
| `导出任务归档` | 用户明确要求时按 revision 导出历史任务快照 | 只写 `docs/task/` |
|
||||
| `导出全部任务归档` | 用户明确要求时全量导出历史任务快照 | 只写 `docs/task/` |
|
||||
| `#N 验收通过` | 记录验收、关闭任务并同步父工单 | 无新长期事实时不再同步 Wiki |
|
||||
@@ -152,6 +164,7 @@ synchronized_at: 2026-08-24T08:21:11Z
|
||||
- 完成必要安全和前置检查后,优先执行能产生真实反馈的最小命令。
|
||||
- 采用“执行 → 查看首个可行动错误 → 最小修复 → 继续”的闭环。
|
||||
- 同一任务、同一环境已经验证的事实不重复检查;环境或关键前提变化后再验证。
|
||||
- Skill 和平台规则是否需要重新读取,按当前 Agent 平台和任务触发规则执行,不自行跳过。
|
||||
- 不新增与验收无关的文档、脚本、框架、重构或扩展性设计。
|
||||
- 完成工单范围、必要验证、按影响触发的文档闭环和证据回写后立即停止。
|
||||
|
||||
@@ -159,6 +172,6 @@ synchronized_at: 2026-08-24T08:21:11Z
|
||||
|
||||
每个单元工单必须二选一:说明“无长期文档影响”的原因;或列出要更新的 Wiki 页面。
|
||||
|
||||
启动、测试、部署、排错命令,模块入口、目录职责、主要调用路径,配置、API、数据结构、状态、业务规则、安全边界或日志位置变化时必须更新长期 Wiki。普通内部重构只有在入口、行为、配置和验证方式都不变时才可记为无影响。
|
||||
启动、测试、部署、排错命令,模块入口、目录职责、主要调用路径,配置、API、数据结构、状态、业务规则、安全边界或日志位置变化时必须更新长期 Wiki。部署命令或常驻服务运维方式变化时,更新项目自己的 `Deployment-and-Operations` 页面;当前真实部署拓扑尚未确认时不得用模板占位值冒充事实。普通内部重构只有在入口、行为、配置和验证方式都不变时才可记为无影响。
|
||||
|
||||
Wiki 同步由长期事实变化触发,不由任务完成触发。有影响时只执行一轮:修改 Wiki → 在线回读 revision → `sync` → `sync --check` → 提交镜像;验收时内容未变化不重复执行。不得直接修改映射镜像后反向覆盖 Wiki。
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
|
||||
wiki_page: Local-Development-and-Verification
|
||||
wiki_url: https://git.ilapage.cn/OPC/goauto/wiki/Local-Development-and-Verification.-
|
||||
wiki_revision: 6362cbe25f4a0a1826b903ee4342c1a69ee87a42
|
||||
synchronized_at: 2026-08-27T07:26:49Z
|
||||
wiki_revision: 2fe9eeb9f4ac985423e02701108d2fac07377503
|
||||
synchronized_at: 2026-08-27T09:38:25Z
|
||||
<!-- gitea-wiki-mirror:end -->
|
||||
|
||||
# 本地开发与验证
|
||||
@@ -16,6 +16,47 @@ T01 已建立可执行的三端骨架。建议从仓库根目录运行统一脚
|
||||
|
||||
`Component` 也可以是 `server`、`web` 或 `android`。
|
||||
|
||||
## Windows PowerShell 与 UTF-8
|
||||
|
||||
### Shell 选择
|
||||
|
||||
- 优先使用当前已配置的 PowerShell;可选择时优先 PowerShell 7 `pwsh.exe`。只有命令明确依赖 Windows PowerShell 5.1 时才使用 `powershell.exe`。
|
||||
- 不得仅为设置编码重复启动一层 PowerShell;嵌套进程会增加启动时间、转义复杂度和错误定位成本。
|
||||
- 代码发现优先使用项目配置的代码图工具;检索字符串、配置和非代码文件,或图工具不足时使用 `rg`。
|
||||
|
||||
### 文件编码与控制台输出
|
||||
|
||||
文件解码和控制台输出是两个边界。读取 UTF-8 文本时,在命令支持的情况下显式指定字面路径与编码:
|
||||
|
||||
```powershell
|
||||
Get-Content -LiteralPath "path\to\file.md" -Encoding utf8
|
||||
```
|
||||
|
||||
仓库文件仍使用项目规定的编辑工具修改,不为指定编码改用 shell 拼接、重定向或临时文件。PowerShell 5.1 与 PowerShell 7 对无 BOM UTF-8 的默认处理不同,不能只凭控制台显示判断文件编码。
|
||||
|
||||
只有出现真实乱码,或已知宿主/外部程序不是 UTF-8 时,才在当前进程设置:
|
||||
|
||||
```powershell
|
||||
$OutputEncoding = [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new($false)
|
||||
```
|
||||
|
||||
Python 中文输出已经出现乱码时,可只对当前进程设置:
|
||||
|
||||
```powershell
|
||||
$env:PYTHONUTF8 = "1"
|
||||
$env:PYTHONIOENCODING = "utf-8"
|
||||
python dev_scripts/harness.py check --strict
|
||||
```
|
||||
|
||||
同一会话已经生效且环境未变化时不重复设置;乱码仍存在时先区分文件解码、控制台、管道和外部程序,处理首个真实原因。
|
||||
|
||||
### ExecutionPolicy 边界
|
||||
|
||||
- `Get-Content`、`rg`、Git、Python 和普通 PowerShell cmdlet 不需要 `-ExecutionPolicy Bypass`。
|
||||
- 不得默认添加 Bypass,也不得把它写入统一命令包装。
|
||||
- 只有可信 `.ps1` 确实被执行策略阻止、任务范围允许且没有更小替代方案时,才对该次进程使用,并在工单记录脚本、阻止信息和原因。
|
||||
- Bypass 只解决执行策略阻止,不解决编码、权限或脚本自身错误。
|
||||
|
||||
## 通用检查
|
||||
|
||||
```powershell
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
|
||||
wiki_page: Common-Changes
|
||||
wiki_url: https://git.ilapage.cn/OPC/goauto/wiki/Common-Changes.-
|
||||
wiki_revision: 19a6ae116ed3d90e4206f9a0af7c45b6c9a50590
|
||||
synchronized_at: 2026-08-24T08:21:59Z
|
||||
wiki_revision: b7d5520da954c544248e979c4ababb86d2784a43
|
||||
synchronized_at: 2026-08-27T09:38:36Z
|
||||
<!-- gitea-wiki-mirror:end -->
|
||||
|
||||
# 常见修改指南
|
||||
@@ -68,8 +68,9 @@ synchronized_at: 2026-08-24T08:21:59Z
|
||||
1. 先判断是否只是纯显示文案;不确定时建单。
|
||||
2. 小范围布局使用标注截图或低保真图。
|
||||
3. 新组件记录正常、空、加载、错误、禁用和权限状态。
|
||||
4. 新页面或重大流程使用 QuantUX 原型,记录 App ID、草稿/确认状态和覆盖范围。
|
||||
5. 用户确认原型后才实施生产页面,并用浏览器验证主流程和异常状态。
|
||||
4. 新页面或重大流程使用 QuantUX 或其他可审阅原型,记录可访问链接、App ID、版本/revision 或确认日期、审核版本识别方式、草稿/确认状态和覆盖范围。
|
||||
5. 完整原型默认在线审核;只有用户明确要求或项目规则要求时才导出版本化本地 HTML,且不得覆盖已确认快照。
|
||||
6. 用户确认原型后才实施生产页面,并用浏览器验证主流程和异常状态。
|
||||
|
||||
停止条件:原型未确认,或界面文字涉及支付、安全、权限、金额和不可逆操作。
|
||||
|
||||
@@ -85,6 +86,8 @@ GoAuto 的长期文档采用 Wiki-first,但同步由长期事实变化触发
|
||||
|
||||
完成第 5 步后,本任务的文档闭环结束;验收时内容未变化不重复同步。标准任务不创建 Wiki 任务归档;既有 `archive` / `export` 只在用户明确要求专项历史快照时使用。
|
||||
|
||||
部署命令或常驻服务运维方式变化时,更新项目自己的 `Deployment-and-Operations` Wiki 页面;可从 `Deployment-Template` 复制章节结构,但必须按已验证的 GoAuto 环境改写,不得保留占位生产参数。当前真实部署拓扑未确认时,在工单记录限制,不创建虚假的部署说明。
|
||||
|
||||
停止条件:需要删除/重命名 Wiki 页面、修改映射、改变事实来源边界,或映射镜像存在未提交修改;这些必须在工单中单独确认,不得强制覆盖。
|
||||
|
||||
## 验收 Agent 修改
|
||||
|
||||
Vendored
+116
@@ -0,0 +1,116 @@
|
||||
<!-- gitea-wiki-mirror:start -->
|
||||
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
|
||||
wiki_page: Deployment-Template
|
||||
wiki_url: https://git.ilapage.cn/OPC/goauto/wiki/Deployment-Template.-
|
||||
wiki_revision: 389f09d292b0aa408f26f1967e33eec82d37cedf
|
||||
synchronized_at: 2026-08-27T09:39:50Z
|
||||
<!-- gitea-wiki-mirror:end -->
|
||||
|
||||
# 部署文档模板
|
||||
|
||||
> 本页是内部维护模板,不描述 GoAuto 当前真实生产部署。真实部署拓扑、域名、运行账号、目录、端口、凭据来源和回滚方式经过确认后,复制本页建立 `Deployment-and-Operations`;删除说明文字和占位值后再交付。不得把本地 Windows Supervisor 配置或 `server/docker-compose.yml` 直接宣称为生产方案。
|
||||
|
||||
## 本页用途
|
||||
|
||||
让维护者能够从已确认的干净环境完成首次部署、日常运维、健康检查、升级和回滚。每条命令必须写明执行位置、权限前提和预期结果。
|
||||
|
||||
## 安全边界
|
||||
|
||||
- 只记录配置项名称和安全来源,不记录密码、Token、Cookie、私钥、证书内容、PDD 账号、生产数据库地址、个人数据或生产数据。
|
||||
- 发布、权限、数据库迁移、删除数据和不可逆操作必须有独立工单、备份与人工确认。
|
||||
- GoAuto 永不执行付款;部署步骤不得引入支付能力或绕过现有高风险门禁。
|
||||
- 对外服务必须使用 HTTPS;内部监听、反向代理、证书与防火墙边界按真实环境填写。
|
||||
|
||||
## 服务概览
|
||||
|
||||
| 项目 | 已确认内容 |
|
||||
|---|---|
|
||||
| 环境名称与用途 | `<填写>` |
|
||||
| 目标提交或版本 | `<填写>` |
|
||||
| 代码部署目录 | `<填写>` |
|
||||
| 运行账号 | `<填写>` |
|
||||
| Admin API 托管方式 | `<填写>` |
|
||||
| Admin UI 托管方式 | `<填写>` |
|
||||
| 内部监听地址 | `<填写>` |
|
||||
| 对外域名与路径 | `<填写>` |
|
||||
| MySQL/外部依赖 | `<填写名称与来源,不写敏感值>` |
|
||||
| 日志位置 | `<填写>` |
|
||||
|
||||
## 环境要求
|
||||
|
||||
逐项写明操作系统、Go、Node/pnpm、MySQL、反向代理、进程托管工具和 Android 构建环境的版本要求、检查命令与预期结果。只保留部署端实际需要的组件。
|
||||
|
||||
## 首次部署
|
||||
|
||||
### 1. 准备账号与目录
|
||||
|
||||
记录最小权限运行账号、代码/配置/日志目录、属主和权限检查。服务账号不得复用个人高权限账号。
|
||||
|
||||
### 2. 取得代码并绑定版本
|
||||
|
||||
记录仓库来源、目标分支/标签/完整提交哈希及校验命令。部署记录必须保存实际提交哈希,不使用“最新版”。
|
||||
|
||||
### 3. 安装依赖与构建
|
||||
|
||||
分别记录服务端、管理端和需要交付的 Android 构建命令;每一步写明预期产物与失败停止条件。
|
||||
|
||||
### 4. 落位配置
|
||||
|
||||
列出 `GOAUTO_CONFIG`、数据库 DSN、端口、HTTPS、对象存储、SYB、AI Provider 等实际启用配置的安全来源和文件权限。不得把敏感值写入 Git、Wiki、工单或日志。
|
||||
|
||||
### 5. 数据库备份与迁移
|
||||
|
||||
> 数据库迁移属于高风险操作。必须先确认备份可恢复、迁移版本、影响范围和回退条件,再由独立授权执行。
|
||||
|
||||
记录迁移前检查、备份、迁移命令、表结构/版本验证和失败停止方式;不得通过修改已执行迁移版本号强制重跑。
|
||||
|
||||
## 进程托管与反向代理
|
||||
|
||||
按已确认的 Windows Supervisor、Linux supervisor/systemd、容器或其他真实方式填写:
|
||||
|
||||
- 进程名称、工作目录、启动/停止/重启命令;
|
||||
- 自动重启、优雅停止、日志轮转和依赖启动顺序;
|
||||
- nginx 或其他接入层配置、WebSocket/超时/静态资源规则;
|
||||
- 配置语法检查和无中断重载命令;
|
||||
- HTTPS 证书来源与续期检查,不记录证书内容或私钥。
|
||||
|
||||
## 配置与凭据来源
|
||||
|
||||
| 配置项 | 用途 | 安全来源 | 是否敏感 | 更新后动作 |
|
||||
|---|---|---|---|---|
|
||||
| `<名称>` | `<用途>` | `<密码库条目或受控配置路径>` | 是 / 否 | `<重启/重载/无需动作>` |
|
||||
|
||||
## 日常运维
|
||||
|
||||
用表格记录状态、启动、停止、重启、日志、配置重载、磁盘/数据库检查的命令与预期结果。不得把高风险动作包装成无确认的一键命令。
|
||||
|
||||
## 健康检查
|
||||
|
||||
每次部署、重启和回滚后至少验证:
|
||||
|
||||
- 进程状态稳定;
|
||||
- Admin API 健康检查返回预期状态;
|
||||
- Admin UI 能加载且 API 地址正确;
|
||||
- WebSocket/Agent 连接按授权环境验证;
|
||||
- 日志没有新增异常堆栈或敏感信息;
|
||||
- 数据库迁移版本与目标提交相符。
|
||||
|
||||
任何一项不符合都不视为部署成功。
|
||||
|
||||
## 升级与回滚
|
||||
|
||||
### 升级
|
||||
|
||||
记录升级前提交、备份、目标提交、依赖安装、构建、迁移、进程重启和全量健康检查顺序。
|
||||
|
||||
### 回滚
|
||||
|
||||
记录可安全回滚的代码版本、产物、配置和数据条件。已执行的数据迁移不能假定可由切回代码自动撤销;不向后兼容时停止并使用已验证的备份恢复流程。
|
||||
|
||||
### 备份与恢复
|
||||
|
||||
记录备份对象、频率、位置、保留期、加密/访问权限、恢复步骤和最近一次恢复演练结果。
|
||||
|
||||
## 已知限制
|
||||
|
||||
明确记录尚未验证的真实回滚、多机部署、故障转移、容量、高并发、证书续期和灾难恢复能力;不得留空或用模板占位值宣称已经支持。
|
||||
Reference in New Issue
Block a user