Files
agentic-dev/docs/compliance/data-map.example.yml
Danijel Martinek f77e6ea881 chore(template): clean-slate template snapshot from bb4a0c7
Curated, product-agnostic snapshot of the post-story-04 tree: demo
content deleted, auth-only reference feature, web-next shell, all gates
green. Product-specific docs, ADRs 027-029, PRDs/epics/archive, editor
library traces, and product naming are curated out; generic template
repairs (coverage provider devDeps, root test:coverage script, live
lint fixes, root-only release-please) are kept. See TEMPLATE.md for
provenance, curation list, and usage.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016j8z4VHjedXDTjEDNg7qHK
2026-07-12 20:40:54 +02:00

80 lines
4.1 KiB
YAML

# docs/compliance/data-map.example.yml — annotated reference for the data-map schema
#
# This file is NOT generated. It shows every possible field that can appear in
# compliance/data-map.yml and explains what each field means.
#
# Generated artifact : compliance/data-map.yml
# Generator : pnpm compliance:data-map
# Source of truth : packages/*/src/integrations/cms/collections/*.ts
# (custom.pii field tags + auth: true defaults)
# PII types : packages/core-shared/src/payload/pii-types.ts
collections:
# ── Non-auth collection with manually tagged PII fields ───────────────────────
profiles:
auth: false # true only for Payload auth-enabled collections (auth: true in collection config)
slug: profiles # matches the Payload collection slug; used as the map key
piiFields: # empty array ([]) when no PII fields are declared on the collection
# ── Minimal field tag (no retention override) ─────────────────────────────
- category:
identification-name # PiiCategory — see packages/core-shared/src/payload/pii-types.ts
# e.g. contact-email | identification-username | network-ip | …
exportable: true # GDPR Art. 15 — include in data-export responses
field: fullName # The Payload field name as declared in the collection
purpose: # DataProcessingPurpose[] — why we collect and process this value
- service-delivery # e.g. account-authentication | transactional-notifications |
# marketing-communications | analytics-aggregation |
# legal-compliance | service-delivery
restrictable: true # User can request restriction of processing under GDPR Art. 18
source: field-tag # Origin: "field-tag" — custom.pii tag on the collection field
# ── Field tag with a per-field retention override ─────────────────────────
# Use when a field needs a stricter retention window than the collection default.
- category: network-ip
exportable: false
field: lastIpAddress
purpose:
- legal-compliance
restrictable: false
retention: # Optional. Per-field retention window (overrides collection schedule).
action: hard-delete # RetentionAction: "hard-delete" | "pseudonymize"
duration: P6M # ISO 8601 duration (P6M = 6 months, P1Y = 1 year, P90D = 90 days)
trigger: from-last-access # RetentionTrigger: "from-creation" | "from-last-access" | "after-deletion"
source: field-tag
# ── Auth-enabled collection: defaults + overrides ─────────────────────────────
# When a collection sets auth: true, PAYLOAD_AUTH_PII_DEFAULTS are applied
# automatically. Each default can be overridden via custom.authPii in the
# collection config without adding custom.pii to every field individually.
members:
auth: true # Activates PAYLOAD_AUTH_PII_DEFAULTS (email injected, password/salt/hash excluded)
slug: members
piiFields:
# Injected automatically because auth: true — no field tag needed on the collection
- category: contact-email
exportable: true
field: email
purpose:
- account-authentication
- transactional-notifications
restrictable: true
source: auth-default # From PAYLOAD_AUTH_PII_DEFAULTS; not declared in collection fields
# The collection supplied custom.authPii.phone to extend or change the auth defaults
- category: contact-phone
exportable: true
field: phone
purpose:
- transactional-notifications
restrictable: true
source: auth-override # Collection explicitly overrode or extended the auth default
# Regular custom.pii tag on a field inside an auth collection
- category: identification-username
exportable: true
field: username
purpose:
- service-delivery
restrictable: true
source: field-tag