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

2.9 KiB

VPS-Commander 阶段验收标准与发布门禁用例矩阵

本文档定义当前 v2.0 生产架构的发布门禁,并为 v2.1 安全加固预留验收项。


一、构建与版本一致性

1.1 基础测试

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 审计链。