54 lines
5.4 KiB
Markdown
54 lines
5.4 KiB
Markdown
# 免费公测数据清单
|
||
|
||
本文件是当前 NekoNest Cloud 控制平面的工程数据清单,不是最终隐私政策或合规结论。公开页面由 `app/privacy/data-inventory.ts` 的同一清单渲染,避免产品文案与代码边界分叉。
|
||
|
||
## 当前表级覆盖
|
||
|
||
| 数据组 | D1 表 | 公测状态 |
|
||
|---|---|---|
|
||
| 账户与登录身份 | `accounts` | 使用中 |
|
||
| 主机、设备与配对安全 | `hosts`, `pairing_requests`, `device_credentials`, `pairing_claim_rate_limits`, `pairing_claim_attempts` | 使用中 |
|
||
| 托管租户与 Relay 授权 | `tenant_instances`, `relay_regions`, `relay_nodes`, `tenant_placements`, `tenant_authorization_state`, `relay_migrations`, `relay_purge_jobs`, `relay_signing_keys`, `relay_node_credentials`, `phone_handoff_tickets`, `phone_route_handles`, `relay_phone_principals`, `device_registration_replays` | 封闭施工 |
|
||
| 免费公测资格 | `beta_programs`, `entitlement_grants`, `beta_access_requests` | 使用中 |
|
||
| 反馈与账户退出 | `beta_feedback`, `account_deletion_requests` | 使用中 |
|
||
| 状态、审计与幂等 | `launch_gates`, `service_incidents`, `audit_events`, `idempotency_records`, `maintenance_jobs`, `cloud_schema_migrations` | 使用中 |
|
||
| 收费结构 | `price_versions`, `orders`, `payment_attempts`, `invoices`, `refunds` | 休眠;写入入口关闭 |
|
||
|
||
回归测试会比较本清单使用的表集合与 `db/schema.ts` 中的全部 D1 表。新增表时必须先决定它属于哪个数据组、处理目的、保存边界和用户控制,再更新清单。
|
||
|
||
## 已明确的最小保存边界
|
||
|
||
- 明文配对码十分钟失效,只向用户显示,不写入 D1;成功认领会在同一原子写中烧毁原摘要,其他已过期摘要由维护动作替换为不可恢复 tombstone。
|
||
- 明文设备令牌只在签发时返回;D1 保存摘要,不进入账户导出。
|
||
- 成功的 Relay 设备授权只覆盖对应凭据的一条 `last_used_at`,控制台按主机派生最近控制面签到;不保存逐次请求内容,也不把该时间解释为 Relay 在线。凭据记录及其使用时间继续按安全边界排除在账户导出之外。
|
||
- Relay heartbeat 只保存节点最近状态、generation、容量与时间;不保存逐次签到历史、来源 IP、宿主日志、进程输出或 secret。授权快照只包含路由和凭据摘要,不包含会话、Prompt、路径或附件明文。
|
||
- 生产来源地址只用于生成带用途隔离密钥的 HMAC 限速摘要;来源窗口保留 24 小时,配对尝试保留 30 天并在后续请求中机会式清理。
|
||
- 幂等记录具有技术到期时间;Worker 每天北京时间 02:17 自动运行统一清理,管理员也可明确确认后手工回退。两条路径都只处理同一组已到期技术记录,成功动作与清理边界写入追加式审计。
|
||
- 自动任务只覆盖 `maintenance_jobs` 中一条最近状态、累计次数、连续失败数和最小错误码,不保存逐次执行历史、堆栈、请求内容或用户数据;超过 36 小时无成功、运行超过 30 分钟或最近失败都会在公测后台显式提示。
|
||
- 手机 handoff 完成后,凭据摘要先以 `pending` 保存且不进入授权快照。只有首次请求同时证明持有 phone token 与 route handle,控制面才用一次性激活栅栏把 principal/route 置为 `active` 并推进授权 revision;5 分钟内未证明持有的身份永远不能授权,保留任务会在删除 ticket 前先清除其 pending 摘要。
|
||
- 已确认注销申请可由管理员启动租户 Purge:先暂停授权并关闭 Engine,再删除实时 SQLite、附件和该租户全部备份,最后清除设备/手机凭据并保存最小摘要证据。只有这些后置状态和确定性完成审计均成立后,任务才以最后一条栅栏写入 `completed`;重试不会因旧的完成标记跳过未收口状态。该动作不可撤回;它是应用层逻辑删除,不宣称对 SSD 或云存储块做物理覆写。
|
||
- 免费公测期间报价、订单、付款、发票和退款写入由服务端拒绝。
|
||
- 闭测申请只保存用户主动填写的操作系统、1–3 台需求和使用场景;用户一次只能保留一条待处理申请,可以自行撤回。申请及审核结果当前随账户保留,最终保存期仍待公测数据决定。
|
||
|
||
## 用户当前可用的控制
|
||
|
||
- 下载账户范围的 Cloud 控制平面 JSON;
|
||
- 取消未认领配对;
|
||
- 撤销主机令牌并释放槽位;
|
||
- 提交或撤回免费闭测申请,并查看管理员处理说明;
|
||
- 提交或撤回账户注销申请;
|
||
- 从公开状态页和上线门禁查看服务与证据状态。
|
||
|
||
账户导出有意排除明文/摘要凭据、配对码、内部密钥、worker 签到与租约、内部审计和迁移账本。原生 coding-agent 会话、项目文件和 CLI 凭据属于用户主机,不在 Cloud 导出范围内。
|
||
|
||
## 仍未完成
|
||
|
||
- 除上述四类到期技术记录外,其余每类记录的最终保存期和清理路径;
|
||
- Purge 在真实托管卷、对象备份与故障重试中的演练证据,以及法定保留例外、最终账户身份清除和身份防重建;
|
||
- 受托服务方、部署位置、境内/跨境事实及相应告知;
|
||
- 最终公开登录、账户恢复和隐私联系人;
|
||
- 托管部署后对定时触发、运行失败传播和后台逾期提示的真实执行核对;
|
||
- sealed 命令与附件在真实 relay、日志、数据库和备份中的端到端实证。
|
||
|
||
以上项目完成前,`privacy-retention` P0 门禁继续保持阻止。
|