Skip to content

EDU-17349: document PII masking and unmasked retrieval#1637

Open
PedroAntunesCosta wants to merge 7 commits intomasterfrom
feat/edu-17349-master-data-pii-masking
Open

EDU-17349: document PII masking and unmasked retrieval#1637
PedroAntunesCosta wants to merge 7 commits intomasterfrom
feat/edu-17349-master-data-pii-masking

Conversation

@PedroAntunesCosta
Copy link
Copy Markdown
Contributor

@PedroAntunesCosta PedroAntunesCosta commented Apr 8, 2026

Summary

Documents secure personal data in Master Data v2.

API contract (OpenAPI)

Personal data configuration

Path: /api/dataentities/{dataEntityName}/personalData

  • New GET Get personal data configuration — returns the current configuration. Permissions match Get schemas.

  • New PUT Configure personal data fields — replaces the configuration. Permissions match Save schema by name (Master Data administrator).

  • Fields (array of strings) — fields that contain personal data. Stored separately with encryption and special data residency.

  • SubjectIdField (string) — the field whose value identifies the data subject (owner of the personal data) in each document. Required for compliance with data subject requests (e.g., right to be forgotten).

Saving a new configuration triggers a background re-tokenization of all existing documents. While this runs, the PUT is locked for the affected entity for up to 12 hours and returns 423 Locked.

Document reads (masked by default)

Get document, Search documents, and Scroll documents accept:

  • _unmasked (boolean, optional, default false) — when true, returns original values for personal data fields. Only takes effect if the entity has personal data configured; otherwise ignored. Underscore prefix follows the convention of other reserved params (_fields, _where, etc.).

Document writes

No new query parameter on create/update. The data subject is identified via the SubjectIdField value present in each document body.

Search

Search documents description notes that personal data fields only support exact match when used as filters (when indexed via v-indexed).

Index / tags

API overview index includes a Personal Data section (GET + PUT); new Personal Data tag for both endpoints.

@PedroAntunesCosta PedroAntunesCosta added the documentation Improvements or additions to documentation label Apr 8, 2026
@PedroAntunesCosta PedroAntunesCosta self-assigned this Apr 8, 2026
@PedroAntunesCosta PedroAntunesCosta added the documentation Improvements or additions to documentation label Apr 8, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 8, 2026

Thanks for your contribution. The .json file will be checked now with Spectral.

PedroAntunesCosta and others added 3 commits April 8, 2026 21:32
Add new POST /personalData endpoint for configuring which entity fields
contain personal data, with data subject ownership support. Add openData
query param to read endpoints for unmasking, and dataSubject query param
to write endpoints for GDPR compliance. Remove previous v-pii schema
approach per the updated technical proposal.
Rename openData to unmasked, add audited reason parameter for reads,
remove legacy dataSubject query param from writes, and require
data_subject_field in personal data configuration schema.
Rename unmasked query param to _unmasked to match the leading-underscore
convention of other reserved params, drop the reason param, switch the
configuration endpoint to PUT with PascalCase Fields/SubjectIdField body,
add a GET endpoint to retrieve the current configuration, and document
the 12h reprocessing lock with a 423 response.
Allow Read only documents, Insert or update document, and Full access
to all documents resources on Get personal data configuration, matching
Get schemas. Configure personal data fields already matches Save schema
by name (Master Data administrator only).
@PedroAntunesCosta PedroAntunesCosta requested review from Isabella-Veloso and removed request for AndersonSM and filipewerneck-vtex May 4, 2026 18:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant