Skip to content

隐私账户注销与数据保留治理 #241

Description

@web-ppanel

目标仓库: perfect-panel/backend
目标分支: next
规划基线: origin/main@ea28a7685f4c89f91895c4d789a5726e806aa3f0

目标

建立账户注销、隐私删除/匿名化、数据导出、保留期和 legal hold 治理流程,使用户和管理员能按明确状态处理隐私请求。该项作为 P1 治理能力;会话撤销、订阅失效、token 日志脱敏等上线红线应由对应 P0 安全/订阅项优先完成。

源码已有

  • 已有隐私政策静态配置、管理员软删、登录/鉴权阻断软删/禁用、Redis session 校验、部分会话撤销、订阅访问日志和全局日志清理。
  • 当前缺少用户自助注销、删除请求/审批、匿名化、retain/hold、全端 session revoke-all 和隐私导出。

范围

  • 定义隐私请求类型:账户注销、数据导出、删除/匿名化、撤回请求、legal hold。
  • 建立状态机:requested、verification_required、pending_cooling_off、approved、processing、completed、rejected、cancelled、held。
  • 注销流程联动认证、会话、订阅、订单、工单、文件引用、通知偏好和日志保留。
  • 数据保留策略按数据域配置:财务/订单、审计、流量、工单、文件、通知、运行日志。
  • 匿名化策略保存必要审计和财务一致性,同时移除或脱敏可识别个人信息。

明确不做

  • 不提供法律意见或替代合规评估;仅提供产品/工程治理能力。
  • 不删除必须保留的财务、审计或风控记录;通过匿名化和 legal hold 明确边界。
  • 不在本 Issue 内修复所有日志泄露缺陷;敏感信息不得入日志属于横切 P0 安全基线。

数据 / API / 流程

  • 数据:privacy_requests、retention_policies、privacy_exports、anonymization_jobs、legal_holds、data_domain_inventory。
  • API:
    • Public:发起注销/导出、验证身份、取消冷静期内请求、查看进度。
    • Admin:审批/拒绝、设置 hold、查看处理日志、配置保留策略、触发匿名化任务。
  • 流程:请求 → 身份验证 → 冷静期 → 审批/hold 检查 → 任务执行 → 结果校验 → 通知用户 → 保留审计。

RBAC / 审计

  • 隐私请求查看、审批、拒绝、设置 legal hold、导出、触发匿名化分别登记权限点。
  • 所有审批、拒绝、hold、导出、匿名化和策略修改写不可篡改管理员审计。
  • 审计记录只保存脱敏标识和处理结果;隐私导出文件有过期时间、访问限制和下载审计。

验收

  • 用户可发起注销和数据导出请求,并可查询状态。
  • 管理员可按 RBAC 审批/拒绝/hold,所有动作可追溯。
  • 注销完成后登录、订阅分发和用户端访问均不可继续使用该账户。
  • 匿名化后后台列表、审计和财务记录仍可读,但不暴露应删除的个人标识。
  • 保留期清理任务对不同数据域分别生效,legal hold 会阻止清理。
  • OpenAPI 声明状态机、错误码、权限和导出过期语义。

依赖

开发与测试门禁

  • MySQL/PostgreSQL 迁移、OpenAPI 契约、RBAC API 权限点、管理员审计和敏感信息脱敏测试必须同步提交。
  • 复用现有源码能力和 P0 底座,不重复实现支付、订阅、流量、修复命令或发布门禁执行层。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:identityIdentity, authentication, sessions and privacyenhancementNew feature or requestpriority:P1Important planned workroadmapPlanned roadmap workv2.0PPanel 2.0 roadmap

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions