132 lines
2.9 KiB
Markdown
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 审计链。
|