mcpField
L
lgpd-data-mapping

lgpd-data-mapping

github.com/goul4rtSecurity16451 installsUpdated 23w ago
Repository

About lgpd-data-mapping

A skill for building a canonical inventory of personal data processing activities under Brazil's LGPD, for both new projects and legacy-system reviews. It captures purposes, legal bases, data categories, systems, sharing, retention, security measures, and owners to support ROPA, RIPD, retention, and DSAR work.

Key features

  1. 01Inventory processing by product feature
  2. 02Reverse-map databases and APIs
  3. 03Record purposes and legal bases
  4. 04Map data sources, systems, and sharing
  5. 05Document retention, security, and owners
  6. 06Flag high-risk and minors' data

Use cases

  1. 01Create a data inventory before building a product
  2. 02Review personal data processing in legacy systems
  3. 03Prepare activity details for ROPA or RIPD
  4. 04Check third-party sharing and retention

Install

Copy the command and run it in a terminal.

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

After installing, type/lgpd-data-mappingin Claude Code to confirm it loaded.

Bundled filesassets/extract-prisma-annotations.sh

Details

From the project README

Data Mapping LGPD

Inventário canônico de todas as atividades de tratamento de dados pessoais no projeto. É o pré-requisito para ROPA (Art. 37), RIPD (Art. 38), retenção e DSAR.

Workflow

Para greenfield

Liste atividades por feature/módulo do produto antes de codar. Cada feature que toca dado pessoal = uma atividade.

Para legacy (reverse-engineering)
  1. Schemas de banco: leia prisma/schema.prisma (ou equivalente). Toda tabela com referência a usuário = candidato.
  2. APIs: leia rotas REST/tRPC/GraphQL. Endpoints recebendo PII = atividade.
  3. SDKs de terceiros: grep por nomes (Sentry, Datadog, Mixpanel, Amplitude, Segment, Stripe, Discord SDK, Firebase, OneSignal). Cada um é compartilhamento.
  4. Logs: cuidado — logs podem vazar PII inadvertidamente (audit também).
  5. Cookies e localStorage em frontends.
  6. Coletas mobile: device ID, geolocation, push tokens, biometria, contatos, fotos.

Por atividade, capture:

  • Nome curto (slug)
  • Descrição (1 linha)
  • Finalidade específica (Art. 6º, I)
  • Base legal (link para .lgpd/legal-basis.md)
  • Categorias de titulares: usuários, prospects, funcionários, dependentes, terceiros. Flag: contém crianças? adolescentes? idosos?
  • Categorias de dados:
    • Comuns: nome, e-mail, CPF (atenção — alguns tratam como sensível operacional), telefone, endereço, IP, device ID
    • Sensíveis (Art. 5º, II): saúde, biometria, raça, religião, política, sindicato, sexualidade, genético
  • Fonte/origem: coletado do titular? observado? inferido? terceiro?
  • Sistemas que armazenam: tabelas, caches, S3 buckets, BigQuery, planilhas
  • Compartilhamentos:
    • Internos: outros times/empresas do grupo
    • Externos operadores: lista
    • Transferência internacional: lista (link para .lgpd/transfers/)
  • Retenção: prazo + critério
  • Medidas de segurança: criptografia, RBAC, audit log
  • Alto risco?: Aplicar teste Res. 2/2022 Art. 4 → se sim, marca para RIPD
  • Owner: pessoa/time responsável

Template — .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 — ...

Annotations no schema (greenfield)

Sugira ao usuário anotações em comentários do 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
  // ...
}

Script auxiliar para extrair anotações: assets/extract-prisma-annotations.sh.

Checklist de qualidade

  • Toda tabela com FK para User está coberta
  • Toda integração de terceiro está listada como compartilhamento
  • Toda atividade tem base legal explícita
  • Atividades de alto risco estão flagadas
  • Atividades com menores estão flagadas (ECA Digital aplicável)
  • Retenção definida (sem "indefinido")

Ao terminar, atualize .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)

Comments

Markdown supported