Why hotels care
EU (and many brand) hotels get DSAR / right-to-erasure requests. If the guest profile is anonymized but reservation notes still say "Alice Müller, passport C8…, allergic, company Amex on file", the hotel is still holding personal data — and the GM is the one facing the DPA.
HAIP already tombstones the guests row (Bug 4). Operators need a complete erasure map for everything that can hold guest PII.
Current state (code anchors)
apps/api/src/modules/guest/guest.service.ts delete() — anonymizes guest columns, sets isDeleted, writes gdpr_erasure audit without previous PII
- Stay history kept intentionally (FK + operational retention)
- Likely residual PII surfaces (verify, don’t assume completeness):
reservations.specialRequests, bookings.notes
reservation_notes table
reservation_guests names / ID fields for accompanying guests
- Folio / payment display names, house-account notes
- Staff notifications / webhook payloads already delivered (out of band)
- Search indexes / Connect content caches if any
What we need
- Erasure inventory — markdown table in the PR: column/table → keep / scrub / already-safe, with legal retention rationale (no invented law — cite hotel retention practice or mark
NEEDS_DOMAIN)
- Property-scoped erasure job that scrubs confirmed PII fields while preserving non-PII operational history needed for audit/tax
- Idempotent re-run; audit event summarizing what was scrubbed (counts, not values)
- Tests proving a post-erasure
GET / search / folio print cannot resurrect PII
- Dashboard: clear "Erase guest (GDPR)" confirmation copy listing what is kept vs removed
Open questions (hoteliers / counsel — comment)
Do not invent the legal answer. If ambiguous, keep the field and flag NEEDS_DOMAIN in the inventory.
Acceptance criteria
How to contribute
Ideal for privacy engineers, GDPR-savvy hoteliers, or contributors who have shipped DSAR tooling.
Search keywords: GDPR, right to erasure, DSAR, anonymize guest, PII, hotel PMS privacy, data retention
Why hotels care
EU (and many brand) hotels get DSAR / right-to-erasure requests. If the guest profile is anonymized but reservation notes still say "Alice Müller, passport C8…, allergic, company Amex on file", the hotel is still holding personal data — and the GM is the one facing the DPA.
HAIP already tombstones the
guestsrow (Bug 4). Operators need a complete erasure map for everything that can hold guest PII.Current state (code anchors)
apps/api/src/modules/guest/guest.service.tsdelete()— anonymizes guest columns, setsisDeleted, writesgdpr_erasureaudit without previous PIIreservations.specialRequests,bookings.notesreservation_notestablereservation_guestsnames / ID fields for accompanying guestsWhat we need
NEEDS_DOMAIN)GET/ search / folio print cannot resurrect PIIOpen questions (hoteliers / counsel — comment)
Do not invent the legal answer. If ambiguous, keep the field and flag
NEEDS_DOMAINin the inventory.Acceptance criteria
How to contribute
Ideal for privacy engineers, GDPR-savvy hoteliers, or contributors who have shipped DSAR tooling.
Search keywords: GDPR, right to erasure, DSAR, anonymize guest, PII, hotel PMS privacy, data retention