NSIO 测试

权限与升级

当前测试场景 · cross

← 全部文档

权限与升级

1. 当前权限边界(X-01/X-02/X-03)

准备 A(资源所有者)、B(接收授权)以及一个未授权账号。每条都同时验证“列表不可见”和“直接访问不可达”;只隐藏 UI 不算通过。

  1. 未授权:节点、私网服务、公开应用、网关出网与互联网出口均不可见/不可达。
  2. node 与 private_service 范围对比:Node Grant 放行指定节点 L3;Private Service Grant 只放行服务协议端口,二者不能互相扩大。
  3. 跨账号:A 给 B 一个 Node Grant,B 通过 Node IP/DNS/Ping 访问;禁用/删除后现有与新连接都收敛为拒绝。B 切回自己的 Network 后不得残留 A 的资源。
  4. Subnet Access Grant 当前不做正向授权:按 ACL-06 验证选择禁用、提交 Not Ready 与 fail closed。

2. 滚动升级(X-04)

按生产可能顺序验证:

  1. 新 NSD + 上一发布版 App/ns/NSGW;
  2. NSGW 与 ns 分批升级;
  3. App 使用新 libns,服务端仍在滚动;
  4. 最后升级剩余客户端。

混跑期间可以显式提示功能暂不可用,但不能崩溃、启动失败、越权或静默降低三 pin 信任。

3. 普通 App 升级(X-05)

适用边界:桌面 build 22 及以上,以及 iOS/Android 正常覆盖升级。用真实上一发布版登录并连接后覆盖安装候选包,不清数据。

通过标准:能启动;账号、设备身份、Profile、Organization/Network、设置与出口偏好保留;保持产品定义的连接状态;更新失败可回到旧版本。全新安装不能替代升级证据。

4. 已验证桌面 build 1~21 一次性迁移(X-06/X-07)

这不是普通升级保留路径,只适用于已验证的 macOS/桌面历史 build 1~21;build 22+、iOS、Android 不得进入此迁移。

  1. 用真实 build 1~21 状态启动候选版:迁移必须先完成一次性 claim,再执行规定的 legacy reset;App 静默启动、保持断开并禁用旧 auto-connect,用户随后重新登录。
  2. 第二次启动:不能再次 claim、reset 或重复提示。
  3. 在 durable claim 前注入失败:不得触碰 Core/App 数据,App 仅记录诊断并静默继续启动,pending evidence 允许下次启动重试。
  4. 在 claim 已成功后的 reset、App artifacts 清理或完成标记阶段分别注入失败:本次 attempt 必须进入终态且不再自动重试;App 继续静默启动、保持断开并禁用旧 auto-connect,不能使用半迁移身份/Profile 建立连接。
  5. 用 build 22+、iOS、Android 状态做反例:不得清除身份/Profile 或走 legacy desktop migration。

5. 旧 ns 状态迁移(NS-26/NS-27)