Skip to main content

housekeeping-service — SERVICE_RISK_REGISTER

Living register of identified risks. Reviewed monthly by service owner + platform; quarterly with Security + Operations. Each risk has: ID, summary, likelihood, impact, current mitigation, residual risk, owner, target review date.

Likelihood / Impact: L (low) · M (medium) · H (high). Residual = post-mitigation.


R-HK-001 · Cross-tenant data leak via missing app.tenant_id set

LikelihoodL
ImpactH
Current mitigationRLS on every table; TenantContext middleware sets SET LOCAL app.tenant_id per UoW; tenant-isolation.spec.ts mandatory; integration suite asserts denies. DB user has no BYPASSRLS.
ResidualL
OwnerService owner + Security
Next reviewquarterly

R-HK-002 · Outbox backlog during checkout storm (peak hour)

LikelihoodM
ImpactM
Current mitigationCloud Run min=2; relay batches 100/tick; Pub/Sub publisher concurrency tuned; alert at 1k unpublished for 5 min; load test simulates 10 events/s sustained.
ResidualL
OwnerService owner
Next reviewafter each peak season

R-HK-003 · Sync conflict storm during shift change-over

LikelihoodM
ImpactM
Current mitigationPer-field conflict policies (server_authoritative for status, lww+diff for assignment, max-of for priority); audit row per conflict; renderer surfaces explicit toasts.
ResidualL
OwnerDesktop team
Next reviewsemi-annual

R-HK-004 · AI routing applies bad assignment after staff calls in sick

LikelihoodM
ImpactM
Current mitigationHITL gate default supervisor_approval; auto-apply path requires "no manual edits since generatedAt"; application layer rejects suggestion rows with STAFF_UNAVAILABLE; per-suggestion audit.
ResidualL
OwnerService owner + AI Orchestrator team
Next reviewquarterly

R-HK-005 · Lost-and-found PII (claimant phone) leaked via logs

LikelihoodL
ImpactM
Current mitigationAllowlist redaction; field never logged; Sentry breadcrumbs scrub; access to lost_and_found audited.
ResidualL
OwnerSecurity
Next reviewquarterly DPIA

R-HK-006 · Partition pruning degrades after a query rewrite

LikelihoodM
ImpactM
Current mitigationpartition-pruning.spec.ts baseline-tests EXPLAIN plans; CI gate; slow-query alerts.
ResidualL
OwnerService owner
Next reviewper release

R-HK-007 · Push subscription auth misconfiguration (OIDC)

LikelihoodL
ImpactH
Current mitigationOIDC verifier strict in prod; integration test (oidc-pubsub-push.spec.ts); IaC for subscription configuration; quarterly drill.
ResidualL
OwnerPlatform
Next reviewquarterly

R-HK-008 · Long offline desktop produces stale workflow state on resync

LikelihoodM
ImpactM
Current mitigationCursor expiration triggers full re-sync; renderer queues operations with backoff; conflict resolution surfaces unrecoverable mismatches as 3-way diff for human resolution.
ResidualM
OwnerDesktop team
Next reviewsemi-annual

R-HK-009 · Dependency on staff-service shift events for assignment validity

LikelihoodM
ImpactM
Current mitigationCached StaffShiftAssignment; live re-check on assignment via StaffShiftPort; on staff-service outage, board falls back to manual mode with warning banner.
ResidualL
OwnerService owner
Next reviewquarterly

R-HK-010 · Linen low-watermark misconfiguration → spammy alerts

LikelihoodM
ImpactL
Current mitigationDebounce: at most 1 alert per (tenant, property, line) per 60 min; tenant settings UI prevents lowWatermark > onHand * 5.
ResidualL
OwnerOperations
Next reviewsemi-annual

R-HK-011 · room.status_changed.v1 lost → front-desk arrivals board out of date

LikelihoodL
ImpactM
Current mitigationOutbox + at-least-once delivery; consumers idempotent; periodic reconciliation job between this DB and search-aggregation-service projection.
ResidualL
OwnerService owner + Search team
Next reviewquarterly

R-HK-012 · DPIA overdue for new lost-and-found photo retention

LikelihoodL
ImpactM
Current mitigationPhotos stored by media-service with 90-day warm + archive lifecycle; DPIA scheduled quarterly.
ResidualL
OwnerSecurity + Compliance
Next reviewquarterly

R-HK-013 · Cloud SQL HA failover skews now() clock vs application clocks

LikelihoodL
ImpactL
Current mitigationAll durations computed from application ClockPort (ntp-synced); Postgres now() only used for created_at defaults.
ResidualL
OwnerPlatform
Next reviewannual

R-HK-014 · Tenant misuse of manual room-status flip to bypass workflow

LikelihoodM
ImpactM
Current mitigationManual flips require elevated role + reason; audit-flagged; analytics surfaces tenants with > 10% manual flips for ops outreach.
ResidualM
OwnerOperations
Next reviewquarterly

Closed risks

IDResolution dateNotes
(none yet)