跳转至

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 用户发起

xq unregister
# 或
xq unregister --confirm  # 跳过交互确认

或邮件申请:yarnb@qq.com,提供手机号 + 简短陈述理由。

2.2 服务端处理步骤

  1. 验证身份:要求用户输入当前 session token + 手机号(防他人冒名注销)
  2. 显示影响清单(交互式):
    注销后:
    - 您的个人资料立即下线(其他用户不再搜到您)
    - 您收到的未读信件仍对发件方显示为"已送达",但您将无法读取
    - 您已购买的未使用信封 **不退款**(视为放弃)
    - 30 天冷静期内您可邮件申请撤回注销,30 天后数据永久删除
    
  3. 标记注销 users.unregistered_at = now()
  4. 立即隐藏:其他用户搜索 / 查询时不再返回该账号
  5. 禁用所有写操作:该账号不能登录 / 发信 / 改资料 / 购买

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)

用户可获取自己的全部数据副本:

xq profile export > my-xiangqin-data.json

导出 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)