Skip to content

feat/audit(dsar): DSAR busca-por-titular — localizar dado de UM titular por busca exata (não entity-resolution); metadata-first privacy-safe vs value-level opt-in #1084

Description

@FabioLeitao

Tipo: audit-first · enhancement P2 no-code-yet
Verificado por Claude Code (RO, gh vivo).

Estado atual (confirmado RO)

main.py --export-dsar <session_id> exporta findings de uma SESSÃO como JSON DSAR-ready (LGPD Art.18 / GDPR Art.15), metadata-first (core/dsar_export.py:build_dsar_payload; samples só com --dsar-include-samples, opt-in). Não há busca por valor de identificador específico (ex.: "onde aparece o CPF X em todos os targets escaneados").

Proposta (melhoria de roadmap — DSAR mais cirúrgico)

Localizar onde o dado de UM titular aparece, por busca EXATA sobre o índice já populado — NÃO entity-resolution probabilístico (sem fuzzy-match de nomes, sem ML caro/FP), NÃO "ownership linking" automático. Determinístico, alinhado ao moat.

⚠️ Caveat privacy-by-design (RO — o ponto que importa)

O Boar não armazena valores crus de PII por padrão (metadata-first — não acumula os CPFs que existe pra proteger). Logo:

  • Versão privacy-safe (default): DSAR-aid metadata-first — apontar ONDE o tipo de dado do titular vive (coluna/tabela/pasta), sem precisar do valor.
  • Versão value-level (busca pelo CPF exato): só funciona sobre samples opt-in; construir um índice de valores pra habilitar = risco de privacidade (vira um banco pesquisável de CPFs de todo mundo — o oposto do que vendemos). → opt-in explícito, bounded, nunca default.

Escopo (auditoria-primeiro)

  • Audit: --export-dsar é session-scoped, sem filtro de identificador (confirmado)
  • Propor escopo: metadata-first DSAR-aid (privacy-safe) vs value-level (opt-in/sample-bounded) — NÃO implementar
  • Zero diff; nenhuma mudança que faça o Boar hoardar valor de PII por default

Activity

  1. self-assigned this
    on Jun 30, 2026
  2. added
    enhancementNew feature or request
    P2Medium — important, next sprint
    domain:LGPDFinding or feature maps to LGPD
    no-code-yetIssue tracked but no implementation started — audit finding, doc, or ops backlog
    on Jun 30, 2026
  3. FabioLeitao commented on Jun 30, 2026

    @FabioLeitao
    CollaboratorAuthor

    🤖 Cursor — audit-first

    --export-dsar é session-scoped (confirmado), metadata-first. DSAR-by-identifier = localizar por busca EXATA (não entity-resolution). ⚠️ Boar NÃO armazena valor cru de PII por default — value-search só sobre samples opt-in; índice-de-valores = risco privacy (oposto do moat). Propor escopo (metadata-first privacy-safe), NÃO implementar.

  4. FabioLeitao commented on Aug 27, 2026

    @FabioLeitao
    CollaboratorAuthor

    Recomendação de re-target (auditor read-only).

    Doutrina do operador (2026-08-27): quando o repo/bestial de destino já existe, o trabalho nasce lá. Incubar dentro do data-boar e fazer spinout depois (Maestro, Licensing Studio) foi contorno para a ausência de casa — não é preferência nem padrão.

    Esta issue descreve DSAR — busca por titular, que é domínio da sweeping-squirrel (mesma decisão já registrada para a #1061 em 2026-08-26: "DSAR e tombstone são do Squirrel e da Tortoise, não do data-boar").

    A distinção que importa:

    o Boar não é DSAR — ele exporta PARA o DSAR.

    O data-boar produz o artefato (o mapa de onde o dado sensível está); a Squirrel usa esse artefato para atender o pedido do titular. Localizar o dado de um titular é operação de DSAR, não de descoberta.

    Recomendação: transferir para DataBoar/sweeping-squirrel, mantendo referência cruzada daqui. Esta issue provavelmente ficou órfã por ter nascido antes de a Squirrel existir.

    Decisão do operador.

  5. added this to the v1.8.4 milestone on Aug 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P2Medium — important, next sprintdomain:LGPDFinding or feature maps to LGPDenhancementNew feature or requestno-code-yetIssue tracked but no implementation started — audit finding, doc, or ops backlog

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions