Skip to content

Harden online check-in pass 2: locks, tokens, pay, ID, France - #390

Merged
telivity-otaip merged 2 commits into
mainfrom
cursor/online-guest-check-in-259e
Oct 25, 2026
Merged

telivity-otaip merged 2 commits into
mainfrom
cursor/online-guest-check-in-259e

Conversation

@telivity-otaip

@telivity-otaip telivity-otaip commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Second security harden for online guest check-in (follows merged #389).

  • Locks — production fail-closed when vendor missing; no console PIN as smart-lock guest access
  • request-link — CheckInThrottleGuard, required propertyId, skip mint when online check-in disabled
  • Tokens — 48h default TTL (max 7d); query token only on GET; booking UI strips ?token= after bootstrap; block access after checkout
  • France — empty nationality requires fiche fields (desk parity)
  • Payments — reject mock outside mock mode; cap amount to folio; honor *Configured in UI
  • ID at rest — require ID_ENCRYPTION_KEY in prod; AES-GCM encrypt photos

Test plan

  • Targeted API + CheckIn payment unit tests
  • Full suite / README test-count sync (2599 / 302)
  • CI green on this branch
Open in Web Open in Cursor 

cursoragent and others added 2 commits October 25, 2026 05:08
Fail-closed door locks in production, throttle request-link with
property scope, shorten magic TTL and strip query tokens, require
France nationality, reject mock pay/overpay, and encrypt ID photos.

Co-authored-by: telivity-otaip <telivity-otaip@users.noreply.github.com>
Co-authored-by: telivity-otaip <telivity-otaip@users.noreply.github.com>
@telivity-otaip
telivity-otaip merged commit 31571c0 into main Oct 25, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants