Skip to main content

Document Service — Service Risk Register

Status: populated Owner: TBD Last updated: 2026-04-18 Companion: Service Template


1. Risk Register

IDRiskProbabilityImpactSeverityOwnerMitigation
RISK-DOC-01PHI exposure via object storage misconfiguration — public bucket ACL or broken presigned URL grants unauthorized access to patient documentsLowCriticalCriticalSecurity teamBucket ACL enforced as private-only; presigned URL TTL 15 min; automated ACL audit in CI/CD; pen test before launch
RISK-DOC-02Virus scan bypass — ClamAV unavailable; uploads accepted without scanLowHighHighPlatform SREHealth check gates uploads on ClamAV readiness; upload endpoint returns 503 if ClamAV not connected; never skip scan
RISK-DOC-03PDF generation timeout degrading clinical workflow — complex templates or slow FHIR resolution causes p95 > 5 sMediumMediumMediumPlatform teamAsync render job fallback; circuit breaker on FHIR calls; template complexity limits enforced at publish time
RISK-DOC-04FHIR binding resolution exposes wrong patient data — binding path error generates PDF with incorrect or mixed patient dataLowCriticalCriticalClinical informaticsBinding validation at template publish time; required context IDs validated at generation time; golden test per reference form
RISK-DOC-05Platform reference template divergence — platform package upgrade breaks existing generated documents or tenant forksLowMediumMediumProduct teamSemantic versioning on reference-forms package; tenants may pin version; golden PDF hash tests in CI block breaking changes
RISK-DOC-06Render worker queue backlog — high volume of async jobs starves queue; jobs sit for > 30 sMediumMediumMediumPlatform SREAuto-scale workers on queue depth; alert at 500 queued; bulk generation license gates high-volume scenarios
RISK-DOC-07Object storage data loss — accidental bucket deletion or replication failureVery LowCriticalHighSRES3 versioning + replication; weekly restore drills; legal hold prevents deletion during retention period
RISK-DOC-08AI-assisted wording accepted without clinical review — AI suggestion contains inaccurate clinical text accepted by a non-clinical authorLowHighHighClinical governanceAI output is advisory; HITL acceptance required; AI-assisted fields flagged in template version metadata; clinical governance review before publish
RISK-DOC-09RTL/LTR PDF rendering defects — Pashto/Dari scripts render incorrectly in generated PDFsMediumHighHighEngineeringEmbedded fonts (Noto Nastaliq Urdu) required; locale test suite per reference form; golden PDF comparison tests
RISK-DOC-10clientMutationId collision — two different render requests share same idempotency key; wrong document returnedVery LowMediumLowEngineeringIdempotency key scoped to (tenantId, clientMutationId); collision probability negligible with UUIDv4; documented in API contracts

2. Accepted Risks

IDAccepted riskRationale
RISK-DOC-03Async fallback means sync SLO is best-effort for complex templatesAsync path always available; clinician UX acceptable
RISK-DOC-10Theoretical idempotency key collisionUUIDv4 collision probability negligible in practice