Skip to main content

SERVICE_RISK_REGISTER — staff-service

Sibling: SERVICE_READINESS · FAILURE_MODES · SECURITY_MODEL · AI_INTEGRATION

Living register of risks specific to staff-service. Each entry has a category, likelihood × impact heat, mitigation in place, residual risk, owner, and a review cadence. Reviewed quarterly by the service tech lead and platform architect.

Heat scale: L (low) / M (medium) / H (high) / C (critical) for each axis. Score = max(L, I).


1. Domain & Data Risks

R-01 Cross-tenant data leak

FieldValue
CategorySecurity · Multi-tenancy
LikelihoodL
ImpactC
ScoreC
DescriptionA bug or RLS bypass leaks staff records, PINs, or schedules across tenants
MitigationMandatory RLS on every table; CI sweep rls-isolation.spec.ts; service-account never bypasses RLS without audit; SQL reviews block raw queries
Residual riskL
OwnerService tech lead
Review cadenceQuarterly

R-02 PIN brute-force

FieldValue
CategorySecurity · Authentication
LikelihoodM
ImpactH
ScoreH
DescriptionAttacker on the front desk attempts to guess PINs to clock in/out as another staff
MitigationPer-staff lockout 15 min after 5 failures; per-device 1 attempt / 2 s; per-property 30 attempts/min; HMAC w/ KMS pepper
Residual riskL
OwnerSecurity architect
Review cadenceQuarterly

R-03 PII exposure (emergency_contact, languages, certifications)

FieldValue
CategoryPrivacy · Compliance
LikelihoodM
ImpactH
ScoreH
DescriptionOperators read PII without business need
MitigationField-level envelope encryption for emergency_contact; capability gate staff.read_pii; mandatory audit row on every read; quarterly access review
Residual riskM
OwnerSecurity architect
Review cadenceQuarterly

R-04 Audit log tampering

FieldValue
CategoryCompliance
LikelihoodL
ImpactH
ScoreH
DescriptionOperator or rogue process attempts to mutate or delete audit_events
MitigationAppend-only DB triggers; admin role required for legitimate updates (and audited); BigQuery cold copy beyond service reach
Residual riskL
OwnerSecurity architect
Review cadenceQuarterly

2. Operational Risks

R-05 IAM revoke cascade fails on termination

FieldValue
CategorySecurity · Operational
LikelihoodL
ImpactH
ScoreH
DescriptionTerminated staff retains active iam session and can still authenticate to other services
MitigationPer APPLICATION_LOGIC §3.5: saga-style retry; alert on iam.session.revoke.failure_count; runbook for manual intervention
Residual riskL
OwnerSRE
Review cadenceQuarterly

R-06 Outbox stalls causing assignment-service starvation

FieldValue
CategoryReliability
LikelihoodM
ImpactM
ScoreM
DescriptionCapacity events (clock.in/out) delayed; downstream auto-assignment stalls
MitigationOutbox depth alert P1; auto-scale workers; circuit breaker around publisher; idempotent re-publish
Residual riskL
OwnerSRE
Review cadenceQuarterly

R-07 Late-replay punches distorting attendance reports

FieldValue
CategoryData integrity
LikelihoodM
ImpactM
ScoreM
DescriptionElectron device offline > 24 h syncs old punches into the schedule grid; reports drift
Mitigationflagged_late_replay flag retained on entry; reports filter by default; UI surfaces a banner
Residual riskM
OwnerService tech lead
Review cadenceQuarterly

R-08 Schedule generation thrash on retries

FieldValue
CategoryReliability
LikelihoodL
ImpactL
ScoreL
DescriptionRetried GenerateShifts produces duplicate shifts
MitigationIdempotency-Key + EXCLUDE constraint
Residual riskL
OwnerService tech lead
Review cadenceAnnually

3. Domain & Product Risks

R-09 Informal staffing not modeled cleanly

FieldValue
CategoryDomain fit
LikelihoodM
ImpactM
ScoreM
DescriptionOwners hire relatives/temp staff during peak who lack ID papers; data model can't capture this without bloat
MitigationStaff.employmentType ∈ {temporary, casual}; staff_id_external optional; PIN-only allowed (no email)
Residual riskL
OwnerProduct owner
Review cadenceQuarterly

R-10 Multilingual staff names cause sort/search bugs

FieldValue
CategoryUX
LikelihoodM
ImpactL
ScoreM
DescriptionRTL (ps/fa/ar) names mixed with LTR; sort, search, and PDF export look wrong
MitigationLocalizedLabel with explicit script tag; collation-aware indexes (COLLATE und-x-icu)
Residual riskL
OwnerService tech lead
Review cadenceAnnually

R-11 Manager override abused

FieldValue
CategoryCompliance · Domain
LikelihoodM
ImpactM
ScoreM
DescriptionManagers retroactively punch staff in/out to inflate or deflate hours
MitigationMandatory reason; audit row per override; weekly per-actor anomaly alert; report visible to GM
Residual riskM
OwnerCompliance lead
Review cadenceQuarterly

R-12 Scope creep into payroll

FieldValue
CategoryArchitectural
LikelihoodM
ImpactH
ScoreH
DescriptionStakeholders push for tax brackets, payslips, statutory deductions inside staff-service
MitigationBounded context ratified; SERVICE_OVERVIEW §4 Out-of-Scope; ADR required to expand
Residual riskM
OwnerService tech lead
Review cadenceQuarterly

4. AI Risks

R-13 Edge anomaly model false positives causing operator backlash

FieldValue
CategoryAI · UX
LikelihoodM
ImpactM
ScoreM
DescriptionFront-desk Electron flags too many legit punches; operators bypass the warning routinely
MitigationFPR baseline < 8 %; alert > 12 %; channel-pin to last-known-good model; operator can dismiss without manager
Residual riskL
OwnerAI lead
Review cadenceQuarterly

R-14 Bias in shift-suggestion model

FieldValue
CategoryAI · Compliance
LikelihoodL
ImpactH
ScoreH
DescriptionSuggestions consistently disadvantage one demographic (gender, language, age proxy)
MitigationBias audit quarterly; advisory-only; manager confirms every suggestion; weekly fairness report
Residual riskL
OwnerAI lead
Review cadenceQuarterly

5. Compliance & Regulatory

R-15 Data residency violation

FieldValue
CategoryCompliance
LikelihoodL
ImpactC
ScoreC
DescriptionTenant data leaves the contractually-bound region
MitigationRegion-pinned Cloud SQL + KMS keyring; outbound to AI orchestrator stays in-region; DSAR exports respect region
Residual riskL
OwnerCompliance lead
Review cadenceQuarterly

R-16 DSAR export missed SLA

FieldValue
CategoryCompliance
LikelihoodL
ImpactM
ScoreM
DescriptionStaff DSAR not delivered within 30 days
MitigationDSAR ticket with auto-deadline; alert at 24 h before deadline; benchmarked job < 1 h
Residual riskL
OwnerPrivacy officer
Review cadenceQuarterly

6. Heat Map (current quarter)

Impact
L M H C
L R-15
M R-08
Likelihood
M R-10 R-07,R-09,R-11,R-13 R-03,R-12,R-14
H R-02,R-05,R-06
C

(R-01, R-04, R-16 plotted with their post-mitigation residual values; underlying inherent heat documented in their tables.)


7. Newly-Introduced Risks Process

When a new risk is identified (incident, code review, audit), the discoverer files a PR adding a row here. The service tech lead triages within 5 business days and either:

  1. Accepts (mitigation defined, owner assigned, review cadence set)
  2. Escalates to platform-level risk register
  3. Closes with rationale (not applicable, accepted as-is, mitigated by upstream change)

The register is part of the quarterly platform risk review and the basis of any production-incident postmortem's "could we have known?" section.