fix(auth): declare users email/username/displayName in DSR pii map
The DSR walkers read the COLLECTION-level custom.pii map, which the users collection never declared — Art. 15 export returned bare ids and Art. 17 soft delete redacted nothing; the auth-injected email field in particular was invisible (audit finding A5). Declares email (auto-added by Payload auth: true), username and displayName as exportable + restrictable; walker tests pin a users-shaped collection end to end. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -16,6 +16,31 @@ export const users: CollectionConfig = {
|
||||
},
|
||||
},
|
||||
subject: { kind: "self", field: "id" },
|
||||
// Collection-level PII map consumed by the DSR walkers (audit finding
|
||||
// A5): export includes fields marked exportable; the soft-delete path
|
||||
// redacts them. `email` is auto-added by Payload's `auth: true` and has
|
||||
// no explicit field entry below, so it MUST be declared here or Art. 15
|
||||
// export misses it and Art. 17 soft delete leaves it behind.
|
||||
pii: {
|
||||
email: {
|
||||
category: "contact-email",
|
||||
purpose: ["account-authentication", "transactional-notifications"],
|
||||
exportable: true,
|
||||
restrictable: true,
|
||||
},
|
||||
username: {
|
||||
category: "identification-username",
|
||||
purpose: ["service-delivery"],
|
||||
exportable: true,
|
||||
restrictable: true,
|
||||
},
|
||||
displayName: {
|
||||
category: "identification-username",
|
||||
purpose: ["service-delivery"],
|
||||
exportable: true,
|
||||
restrictable: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user