Files
vps-commander/docs/ACCEPTANCE_CRITERIA.md
kory cc99022215
Release / Build & Release (push) Canceled after 0s
docs: restore established documentation format
2026-10-02 14:01:14 +08:00

132 lines
2.9 KiB
Markdown

# VPS-Commander 阶段验收标准与发布门禁用例矩阵
本文档定义当前 v2.0 生产架构的发布门禁,并为 v2.1 安全加固预留验收项。
---
## 一、构建与版本一致性
### 1.1 基础测试
```bash
go test ./...
go test -race ./...
git diff --check
```
### 1.2 生产构建
- Git 工作树必须 clean。
- `vcs.modified=false`。
- `vcs.revision` 必须等于 release commit。
- AMD64 / ARM64 编译成功。
---
## 二、Hub / Agent 集群验收
| 项目 | 验收标准 |
| :--- | :--- |
| Hub | 监听 `127.0.0.1:9521` |
| Agent | 5 个远程节点可正常回连 |
| Restart | Hub 重启后 Agent 自动恢复 |
| Identity | Credential 与设备身份一致 |
| Unknown | 未知设备必须 fail-closed |
---
## 三、认证与授权验收
- Bearer API Key 正常。
- URL token (`?token` / `?key` / `?api_key`) 必须拒绝。
- 每设备 Credential 独立。
- Shared Secret fallback 关闭。
- Panel Admin Token 不进入浏览器。
- Tool Registry 风险等级一致。
- Policy version 不允许回退。
---
## 四、MCP 验收矩阵
| Tool | Risk | 基础用例 |
| :--- | :--- | :--- |
| `list_devices` | Low | 返回设备列表 |
| `exec_command` | High | `echo/true` |
| `read_file` | Low | 读取 `/etc/hostname` |
| `read_multiple_files` | Low | 批量读取临时文件 |
| `create_directory` | Medium | 创建临时目录 |
| `move_file` | Medium | 移动临时文件 |
| `list_processes` | Low | 返回进程 |
| `edit_block` | Medium | 唯一匹配修改 |
| `write_file` | Medium | 写入临时文件 |
| `list_agent_mcp` | Low | 查询 Agent MCP |
| `call_agent_mcp` | Medium | 调用无害 Agent MCP |
必须同时验证:
- Medium 策略可以阻断 Medium 工具。
- Medium 策略可以阻断 High 工具。
- MCP 与 HTTP 使用同一授权逻辑。
- `call_agent_mcp` 无旁路。
---
## 五、文件与 Session 验收
### 5.1 edit_block
- old_text 唯一匹配。
- generation check。
- atomic write。
- fsync。
- 失败不破坏原文件。
### 5.2 Session
- Hard TTL。
- Idle TTL。
- Ring Buffer 上限。
- 总 buffer 上限。
- 并发访问安全。
- kill 只能作用于 Session 内部 process handle。
---
## 六、API Regression
必须覆盖:
- `/api/v1/devices`
- `/api/v1/exec`
- file read/list/info/search/write
- edit_block
- process/session
- MCP services/list/call/test
- security settings
- webhook
- Panel
- Agent WebSocket
---
## 七、发布停止条件
出现以下任一情况立即停止发布:
- Agent 断联。
- 未授权请求成功。
- unknown device 获得 High。
- MCP 存在旁路。
- Token 出现在 argv。
- 审计丢失。
- dirty binary。
- Policy version 回退。
- Session 资源无限增长。
---
## 八、v2.1 验收预留
### P0
- EffectiveRisk 完全 fail-closed。
- Agent Credential 不进入 argv / cmdline。
### P1
- Principal / Operator。
- Session Owner 强隔离。
- principal → credential → session → device → operation 审计链。