Files

54 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 免费公测数据清单
本文件是当前 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 门禁继续保持阻止。