Skip to main content

Risk Register

:::info Source Sourced from services/authoring-service/16-SERVICE_RISK_REGISTER.md in the documentation repo. :::

IDRiskSevImpactMitigationOwner
R-AU-01Publish saga half-failure → orphan CourseVersion / broken catalogS1Broken publishing; customer trustExplicit compensations; chaos per step; saga state machine; timeout 15 minAuthoring + Platform
R-AU-02Block registry rushed → shape churn + reworkS1Rework cost across player + bundlesRFC + freeze at M2 start (F17); new kinds additive; forward-compat testAuthoring + Content
R-AU-03AI block persisted without provenanceS1Regulatory (EU AI Act), trustDomain invariant throws; AIClient port always attaches provenance; test on every codepathAuthoring + AI Services
R-AU-04Yjs doc corruption → collab session lostS2Author frustration; data loss perception60s snapshots; replay from event log; repair tool; chaos testsAuthoring
R-AU-05Offline authoring conflict UX bad → data loss perceptionS1ChurnPre-merge backup; side-by-side diff; AI merge suggestion; 30-day retentionAuthoring + Sync
R-AU-06SCORM import RCE via malicious zipS1Platform compromiseSandbox import; manifest-driven validation; no eval; signed origin allowlistAuthoring + Security
R-AU-07AI hallucinated content published as factS2Wrong education; regulatoryHITL draft_ai → review required; RAG over authoritative sources; provenance visibleAuthoring + AI Services
R-AU-08AI budget exhaustion mid-authoringS3UX frictionBudget UI; fallback to local model with consent; per-tenant quotaAuthoring + AI + Platform
R-AU-09Cross-tenant block referenceS1Data leakDomain invariant DomainError.CrossTenant; two-tenant iso testsAuthoring
R-AU-10Media reference resolves outside tenantS1Data leakMedia service enforces tenant scope; author-side validation on publishAuthoring + Media
R-AU-11Draft edit race with publish sagaS2Inconsistent stateAggregate state publishing is immutable to direct edits; API returns 423 lockedAuthoring
R-AU-12Large draft (10k blocks) slow to saveS3Author UXIncremental save; virtualized tree; background compactionAuthoring
R-AU-13Embed provider XSSS2Learner compromiseAllowlist per tenant; iframe sandbox attributes; CSPAuthoring + Security
R-AU-14AI prompt injection via author inputS2Hijacked AI outputAI gateway prompt-injection shield; system prompt isolationAI Services + Authoring
R-AU-15Localization skew between blocksS3Incomplete content in some localesRequired-locales check in publish readiness; UI shows completion % per localeAuthoring

Governance

  • Weekly: Authoring Eng + Security review.
  • Block registry changes require ADR.
  • AI prompt changes require regression + safety eval pass.