Skip to main content

EP-MEL-09 — Lock & Key Integration with Offline Issuance

Companion: Backlog README · EPICS.md · canonical: 07-epics-and-user-stories.md §11

Summary

WaveR1 (+ Salto, Assa Abloy production in R2)
PriorityP0
Primary ownerlock-integration-service
Participating servicesreservation-service, notification-service, ai-orchestrator-service (anomaly detection)
Journeys realisedJ-06 (Lock issuance), J-09 (Lost-key revoke), J-10 (Offline encoder)
WorkflowsWF-04, WF-08
Frontend surfacesElectron Desktop (Front-Desk + offline encoder) · Mobile (mobile-key invite)
Story count9

Outcome

Keys are issued, updated, and revoked through a single vendor-abstracted port with adapters for TTLock, Salto, Assa Abloy, and generic Wiegand. Mobile keys, RFID encoding, and PIN-based budget keys all supported. Offline encoder fallback works during 12+ hour outages. Lock-event anomalies surface via ai-orchestrator-service.

Cross-cutting AC for this epic

  • Vendor secrets in Secret Manager + KMS-encrypted; rotation documented.
  • Every issuance/update/revoke emits lock.key.{issued|updated|revoked}.v1 with key_id, room_id, reservation_id, tenant_id.
  • Offline issuance uses time-bounded device-bound credentials; sync reconciles on reconnect.
  • PCI-grade handling for any payment-coupled credentials; PII minimised in events.

Stories

IDTitle
US-MEL-0073Issue mobile-key invite at check-in
US-MEL-0074Encode RFID card at front desk
US-MEL-0075PIN-based key for budget rooms
US-MEL-0076Update key on date or room change
US-MEL-0077Revoke key on early checkout / cancel / lost-key
US-MEL-0078Offline encoder fallback
US-MEL-0079Lock event anomaly detection
US-MEL-0080Vendor adapter abstraction (TTLock, Salto, Assa Abloy, Wiegand)
US-MEL-0081Lock vendor secret rotation

Full AC in ../07-epics-and-user-stories.md §11.

Cross-references