xiangqin 数据生命周期¶
⚠️ 草稿状态:本文档为 AI 起草初稿,尚未经律师 review,不代表当前正式生效条款。
本文档明确 xiangqin 各类数据的保留期、删除时机、导出流程、注销流程。对应 PIPL 第 47 条 + 第 45 条用户权利。
1. 数据分类 + 保留期总表¶
| 数据类型 | 位置 | 保留期 | 到期动作 |
|---|---|---|---|
| 手机号 hash(HMAC-SHA256) | SQLite users.phone_hash |
账号存续 + 3 年 | 3 年后覆盖为 "DELETED" 占位(保留唯一约束避免复注) |
| 身份证号 hash(HMAC-SHA256) | SQLite users.cert_id_hash |
账号存续 + 3 年 | 同上 |
| 真实姓名 | 不存储(仅核验瞬间持有) | 立即销毁 | N/A |
| 个人资料(年龄 / 城市 / 简介等) | SQLite users.* 公开字段 |
账号存续 | 注销后 30 天删除 |
| 用户上传照片 | 阿里云 OSS | 账号存续 | 注销后 30 天删除 |
| 信件内容 | SQLite mails.* |
30 天 TTL | 到期 cron job 物理删除 |
| 支付订单 | SQLite orders.* |
5 年(会计法) | 5 年后脱敏归档到 OSS(金额+订单号+日期,去除关联用户 ID) |
| 日志(/var/log) | epsilon 本地 | 7 天滚动 | logrotate daily,保留 7 份 |
| 审计日志(admin 操作) | SQLite audit.* |
6 个月 | cron job 月末清理过期 |
| 备份(全量 DB) | 阿里云 OSS | 30 天 | OSS lifecycle rule 自动删除 |
| agent_gateway_url / hooks_token(如有) | SQLite users.* |
账号存续 | 注销立即删除 |
2. 账号注销流程¶
2.1 用户发起¶
或邮件申请:yarnb@qq.com,提供手机号 + 简短陈述理由。
2.2 服务端处理步骤¶
- 验证身份:要求用户输入当前 session token + 手机号(防他人冒名注销)
- 显示影响清单(交互式):
- 标记注销
users.unregistered_at = now() - 立即隐藏:其他用户搜索 / 查询时不再返回该账号
- 禁用所有写操作:该账号不能登录 / 发信 / 改资料 / 购买
2.3 30 天冷静期¶
- 账号标记注销后 30 天内,用户可发邮件 yarnb@qq.com 申请恢复
- 恢复成功率:资料还在(未被 30 天后的清理 cron 删除),可完整恢复
- 冷静期过后不可恢复
2.4 30 天后永久删除¶
cron job 每天扫描 unregistered_at < now() - 30 days 的用户,执行:
-- 资料全部删除
DELETE FROM profiles WHERE user_id = ?;
DELETE FROM photos WHERE user_id = ?;
DELETE FROM mails WHERE sender_id = ? OR receiver_id = ?;
-- users 表保留但字段清空(保留 phone_hash / cert_id_hash 做唯一约束防复注)
UPDATE users SET
nickname = NULL, bio = NULL, age = NULL, city = NULL, ...,
phone_hash = 'DELETED:' || id, -- 破坏原哈希,保留唯一性
cert_id_hash = 'DELETED:' || id
WHERE user_id = ?;
- 唯一例外:支付订单(orders) 保留 5 年(会计法),但
user_id替换为 NULL,金额 / 订单号 / 支付时间保留供税务审计
3. 数据导出(可携带权 / PIPL §45)¶
用户可获取自己的全部数据副本:
导出 JSON 包含: - 个人资料完整字段 - 历史信件记录(仅未超 30 天 TTL 的) - 支付订单记录 - 不包含:其他用户发给您的信件的原文(仅保留您是否读过的元数据,原文以您阅读时的快照保留)
若 CLI 命令暂未实现,可发邮件 yarnb@qq.com 申请,3 个工作日内我们邮件发送 JSON。
4. 发生数据泄露时的通告¶
若发生安全事件(数据被未授权访问 / 泄露):
- 72 小时内:
- 本文档站公告说明影响范围
- 邮件 / 短信通知所有受影响用户
- 上报监管机关(网信办 / 当地公安网安)
- 14 天内:
- 发布事故分析报告 + 补救措施
- 个人可通过 yarnb@qq.com 查询自己的受影响状态
5. 第三方服务的数据生命周期¶
我们调用的第三方服务各自的数据处理由其自身政策约束,但我们选型上已确认:
| 第三方 | 数据类型 | 在第三方的保留期(截至 2026-04 核实) |
|---|---|---|
| 阿里云 Cloudauth | 实名核验日志 | 6 个月 |
| 阿里云短信 | 短信发送记录 | 6 个月 |
| 支付宝 | 订单记录 | 按银行业规定 10 年+ |
| 阿里云 OSS(照片) | 我们的 OSS 桶内容 | 由我们控制(用户注销 30 天后删除) |
6. 企业内部访问控制(数据最小可见原则)¶
只有以下角色能在内部访问用户数据,且访问被审计:
| 角色 | 访问范围 | 审计 |
|---|---|---|
| Admin(老板本人) | 全部数据(运维必要) | 所有 admin CLI 操作写 audit log |
| Moderator | 被举报账号的公开资料 + 涉案信件(非全部) | audit log |
| 普通员工 / 合作伙伴 | ❌ 没有 | N/A |
| 我(Claude,作为 AI 助手) | 仅对 vault 中明确声明的 credential 有访问,不访问生产 DB 用户数据 | N/A |
7. 本文档变更¶
- 重大变更(保留期调整 / 新增数据类型 / 第三方):提前 14 天文档站公告
- 非重大变更:发布即生效
本文档最后更新:2026-04-24 文档状态:草稿(待律师 review)