What the scan writes and a person signs: every field cites the schema line it was read from, every collection carries a structure digest and a named owner with a date and an expiry, and non-personal columns are kept as a compact list so nothing leaves the audit trail.
version: 0.1.0piece: privacy-datamapsource: slug: acme/payments commit_sha: 4f3c1a9e77b2d5c8a10e6b4f2d9c3a71e5b80d64 branch: main generated_by: privacy-datamap@0.9.0dataset: - fides_key: payments_postgres name: Payments database collections: - name: customers refs: ["db/schema/customers.ts:12"] structure_digest: 9c2f0a71d33e4b8fa10e6b4f2d9c3a71e5b80d644abfeae8e1bec7459d35fab5 interpretation: owner: Maja Lindqvist decided_at: "2026-08-20" expires_at: "2027-02-20" rationale: >- Walked the table with the payments team. national_id is KYC only and never leaves the EEA. refs: ["db/schema/customers.ts:12"] non_personal_fields: [id, created_at] fields: - name: email data_categories: [user.contact.email] refs: ["db/schema/customers.ts:14"] - name: card_number data_categories: [user.financial.account_number] refs: ["db/schema/customers.ts:19"] - name: national_id data_categories: [user.government_id] refs: ["db/schema/customers.ts:23"]system: - fides_key: payments_api name: Payments API system_type: Service dataset_references: [payments_postgres] privacy_declarations: - name: Process customer payments data_use: essential.service.payment data_categories: [user.financial.account_number] data_subjects: [customer] refs: ["src/payments/charge.ts:8"] interpretation: owner: Maja Lindqvist decided_at: "2026-08-20" expires_at: "2027-02-20" rationale: Charging is the only thing this service does with the card. - name: Marketing analytics data_use: marketing.advertising data_categories: [user.contact.email] data_subjects: [customer, prospect] refs: ["src/marketing/sync.ts:31"] interpretation: owner: Maja Lindqvist decided_at: "2026-08-20" expires_at: "2027-02-20" rationale: Email is shared with the US ad platform under SCCs.