The production UsersRepository reads and writes username + passwordHash via the Payload local API, but the users collection never declared them, so production sign-up/sign-in was broken (audit finding B1). passwordHash uses access.read: () => false so credential material never serializes through any Payload API surface; the repository still reads it with overrideAccess: true. A contract-shaped test pins every repo-used field (USERS_REPOSITORY_FIELDS) against the collection config so drift fails at test time without a database. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
43 lines
1.0 KiB
YAML
43 lines
1.0 KiB
YAML
# compliance/data-map.yml — PII field inventory
|
|
# Generated by scripts/compliance/emit-data-map.mjs — do not edit manually.
|
|
# Run `pnpm compliance:data-map` to regenerate.
|
|
collections:
|
|
articles:
|
|
auth: false
|
|
piiFields: []
|
|
slug: articles
|
|
media:
|
|
auth: false
|
|
piiFields: []
|
|
slug: media
|
|
pages:
|
|
auth: false
|
|
piiFields: []
|
|
slug: pages
|
|
users:
|
|
auth: true
|
|
piiFields:
|
|
- category: identification-username
|
|
exportable: true
|
|
field: displayName
|
|
purpose:
|
|
- service-delivery
|
|
restrictable: true
|
|
source: field-tag
|
|
- category: contact-email
|
|
exportable: true
|
|
field: email
|
|
purpose:
|
|
- account-authentication
|
|
- transactional-notifications
|
|
restrictable: true
|
|
source: auth-default
|
|
- category: identification-username
|
|
exportable: true
|
|
field: username
|
|
purpose:
|
|
- service-delivery
|
|
restrictable: true
|
|
source: field-tag
|
|
slug: users
|