mcpField
L
lgpd-data-mapping

lgpd-data-mapping

github.com/goul4rt安全16451 次安装23 周前更新
代码仓库

关于 lgpd-data-mapping

用于为项目建立个人数据处理活动清单的 LGPD 技能,适用于新项目规划和遗留系统反向梳理。它要求记录目的、法律依据、数据类别、系统、共享、保留期限、安全措施和负责人,为 ROPA、RIPD、保留及 DSAR 工作提供基础。

主要功能

  1. 01按产品功能盘点处理活动
  2. 02从数据库和 API 反向梳理
  3. 03记录目的与法律依据
  4. 04梳理数据来源、系统及共享
  5. 05登记保留、安全和责任人
  6. 06标记高风险及未成年人数据

适用场景

  1. 01在新项目编码前建立数据清单
  2. 02审查既有系统中的个人数据处理
  3. 03为 ROPA 或 RIPD 准备活动信息
  4. 04检查第三方共享和数据保留情况

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/goul4rt/lgpd-skills --skill lgpd-data-mapping

安装后在 Claude Code 中输入/lgpd-data-mapping确认已加载。

附带文件assets/extract-prisma-annotations.sh

详细介绍

Data Mapping LGPD

项目中所有个人数据处理活动的规范清单。这是 ROPA(第 37 条)、RIPD(第 38 条)、数据保留和 DSAR 的前提。

工作流

对于 greenfield

在编写代码之前,按产品功能/模块列出活动。每个涉及个人数据的功能 = 一项活动。

对于 legacy(反向工程)
  1. 数据库 Schema:读取 prisma/schema.prisma(或等效文件)。所有引用用户的表都是候选项。
  2. API:读取 REST/tRPC/GraphQL 路由。接收 PII 的端点 = 一项活动。
  3. 第三方 SDK:搜索相关名称(Sentry、Datadog、Mixpanel、Amplitude、Segment、Stripe、Discord SDK、Firebase、OneSignal)。每个 SDK 都代表一项共享。
  4. 日志:注意——日志可能会意外泄露 PII(审计日志也一样)。
  5. 前端中的 Cookies 和 localStorage。
  6. 移动端数据收集:设备 ID、地理位置、推送令牌、生物识别信息、联系人、照片。

每项活动需要记录:

  • 简短名称(slug)
  • 描述(1 行)
  • 具体目的(第 6 条第 I 款)
  • 法律依据(链接到 .lgpd/legal-basis.md)
  • 数据主体类别:用户、潜在客户、员工、受抚养人、第三方。标记:是否包含儿童、青少年、老年人?
  • 数据类别:
    • 普通数据:姓名、电子邮件、CPF(注意——有些人会将其视为运营层面的敏感信息)、电话、地址、IP、设备 ID
    • 敏感数据(第 5 条第 II 款):健康、生物识别信息、种族、宗教、政治观点、工会成员身份、性取向、基因信息
  • 来源/出处:由数据主体提供?观察所得?推断所得?来自第三方?
  • 存储系统:表、缓存、S3 存储桶、BigQuery、电子表格
  • 共享情况:
    • 内部:其他团队/集团公司
    • 外部处理方:列表
    • 国际传输:列表(链接到 .lgpd/transfers/)
  • 保留期限:期限 + 标准
  • 安全措施:加密、RBAC、审计日志
  • 高风险?:应用 Res. 2/2022 第 4 条测试 → 如是,标记为需要 RIPD
  • 负责人:责任人/团队

模板 — .lgpd/data-map.md

# Mapa de Dados — {projeto}

**Versão**: v{N}
**Data**: {data}
**Owner global**: Encarregado / DPO

## Atividades de Tratamento

### A001 — {nome}

| Campo | Valor |
|---|---|
| Slug | a001-{slug} |
| Finalidade | {específica} |
| Base legal | Art. {N}, {inciso} ([detalhes](./legal-basis.md#a001)) |
| Categorias de titulares | usuários adultos + adolescentes |
| Sensíveis? | Não / Sim ({quais}) |
| Dados | nome, e-mail, IP, user-agent |
| Fonte | coletado do titular no signup |
| Sistemas | `users` (Postgres), `auth_sessions` (Redis), Datadog logs |
| Operadores | AWS RDS (US-East-1), Datadog (US), Better Auth (lib local) |
| Transferência intl. | Sim — AWS US, Datadog US (ver `.lgpd/transfers/`) |
| Retenção | 5 anos após inatividade (obrig. legal — prescrição CDC) |
| Segurança | TLS 1.3, TDE, RBAC, audit log |
| Alto risco? | Não |
| RIPD | N/A |
| Owner | @aroldo |

### A002 — ...

Schema 注释(greenfield)

建议用户在 Prisma schema 注释中添加标注:

/// @lgpd:activity=a001
/// @lgpd:purpose="autenticação e gestão de conta"
/// @lgpd:legal_basis="art_7_v"  // execução de contrato
/// @lgpd:retention="5y_after_inactivity"
/// @lgpd:sensitive=false
model User {
  id        String   @id
  email     String   @unique  /// @lgpd:pii=high
  cpf       String?  /// @lgpd:pii=high @lgpd:masked=true
  // ...
}

用于提取标注的辅助脚本:assets/extract-prisma-annotations.sh。

质量检查清单

  • 已涵盖所有具有指向 User 的 FK 的表
  • 已将所有第三方集成列为共享
  • 每项活动都有明确的法律依据
  • 已标记高风险活动
  • 已标记涉及未成年人的活动(ECA Digital 适用)
  • 已定义保留期限(不能是“无限期”)

完成后,更新 .lgpd/STATUS.md:

## F2 — Data mapping ✓
- {N} atividades inventariadas
- {N} envolvem dados sensíveis
- {N} envolvem menores
- {N} marcadas como alto risco → RIPD pendente: {lista}
- Próximo: lgpd-consent-schema (greenfield) ou lgpd-legal-basis (legacy)

评论

支持 Markdown