Skip to main content

cbc-bridge-service — Migration Plan

Version: 1.0 Status: Draft Owner: Government / Emergency + MNO Partnerships + Regulator Liaison Last Updated: 2026-04-21 References: SERVICE_OVERVIEW.md, _report.md, SERVICE_READINESS.md, SERVICE_RISK_REGISTER.md

The service is greenfield. Migration is primarily a partner-engagement exercise (MNO + Government + Regulator) rather than a data or behavioural migration. Engineering is a smaller fraction of the work.


1. What Is Migrating

InputSourceVolumeNotes
National-PKI trust anchorsAfghan government (or Ghasi Government Trust Anchor as interim per CBC-RISK-01)~5 CA certsHSM-loaded
Authorised caller registryGovernment agencies (NDMA, Police, MoPH, Civil Defence) via MoU~10-20 callers at launchcbc.authorised_callers
MNO CBE credentials (per MNO)MNO MoU5 MNOs × credentialsVault paths
MNO cell-tower databasePer-MNO export~50,000 cells nationwidecbc.mno_cell_database
Restricted broadcast templatesContent team + NDMA~30 templates (Pashto/Dari/Arabic/English variants)compliance.approved_templates (via EP-CE-13)
Monthly drill schedulePlatform + NDMA1 cron rulecbc.drill_schedule

No existing data migrates — this is a net-new capability for Afghanistan.


2. Migration Phases

Phase 0 — Pre-migration engagement (3 months)

Critical engagement phase before any code reaches production:

StepOwnerOutputGate
Regulator-Liaison engagement with ATRA on cell-broadcast service MoURegulator Liaison + LegalATRA MoUGA blocker
Government-agency MoUs (NDMA, Police, MoPH, Civil Defence)Government / Emergency + Legal1 MoU per agencyCallers onboarded
MNO MoUs (per operator: CBE protocol, endpoints, credentials, SLAs, incident contacts)MNO Partnerships + SRE5 MoUsService can dispatch
National-PKI authority engagement (where available)Regulator Liaison + LegalFormal CA cert; or interim Ghasi Trust Anchor sign-offPKI trust chain
Content + translation review for emergency templatesTrust & Safety + Content + NDMA~30 approved templatesPhase 2 blocker
Per-MNO CBE adapter development + testing against MNO stagingSRE + Engineering5 adapters passing against stagingPhase 1 blocker
HSM provisioning + trust-anchor loadSecurity + SREHSM operationalGA blocker
Per-MNO egress IP pool exchange (whitelisted at MNO)SRE + MNO PartnershipsFirewalled egress pathsService can connect
Drill procedure + after-action template agreed with NDMA + ATRAGovernment / EmergencyProcedure documentPhase 1 blocker
Out-of-band communication bridge (phone + Slack) establishedSRE + Government LiaisonRunbookGA blocker

Phase 1 — Drill-only (60 days)

Service live in production but operates in drill-only mode.

StepOwnerOutput
Service deployed to ghasi-prod (Kabul primary; Mazar standby)SREProduction health
Authorised-caller registry populated with government + test callersGovernment / EmergencyCallers in DB
Monthly drill schedule active; first drill fires on scheduleServiceDrill telemetry
ATRA observer granted audit visibility via regulator-portalRegulator LiaisonATRA acknowledgement
Weekly cell-DB refresh from MNOs activeSRECoverage % per MNO
Engineering-only access to production broadcast endpoint (emergency severity blocked by feature flag)SREFeature flag CBC_ACCEPT_SEVERITY_MAX=NONE
Chaos drill (HSM, MNO, region) executed and passedSRE + SecurityGameDay report

Exit criteria. 2 consecutive monthly drills 100% delivered; 0 PKI verification false-failures; 0 audit chain breaks; ATRA satisfaction; no critical incidents.

Phase 2 — Non-life-critical emergencies (30 days)

Enable P2 (advisory) and P1 (major) severity for public-health and security advisories.

StepOwnerOutput
CBC_ACCEPT_SEVERITY_MAX=P1SRESeverity-gated
First real advisory broadcasts (e.g., MoPH public-health alerts)Government / EmergencyReal-world traffic
SIEM forwarding of cbc.audit.v1 live to ATRARegulator PortalAudit visibility
Daily audit-chain verification activeServiceVerifier status
Per-MNO capacity monitoring activeSRECapacity data

Exit criteria. ≥ 5 successful real broadcasts; no complaint or regulator escalation; PARTIAL rate < 5%; no unauthorised broadcasts; ATRA + NDMA sign-off.

Phase 3 — Full emergency (ongoing)

Enable P0 for life-critical emergencies.

StepOwnerOutput
CBC_ACCEPT_SEVERITY_MAX=P0SREFull service
Citizen-facing trust campaign (PR + MedComms)Marketing + Government / EmergencyPublic awareness
Quarterly GameDay with MNO staging endpointsSRE + MNO PartnershipsOngoing validation
Annual CEO-chaired risk reviewLeadershipStability

Rollback via feature flags:

  • CBC_ACCEPT_SEVERITY_MAX = NONE | P2 | P1 | P0 — gate severity acceptance.
  • CBC_DRILL_ENABLED = true | false — independent of broadcasts.
  • CBC_REGION = kbl | mzr | both — region routing.

3. MNO Onboarding (per operator, Phase 0)

A per-MNO playbook executed during Phase 0:

  1. Commercial: MoU signed; SLA + incident contacts + 30-d advance notice on protocol changes documented.
  2. Technical handshake:
    • Ghasi provides egress IP pool (per-region dedicated IPs).
    • MNO provides CBE endpoint URLs + protocol version.
    • MNO provides CBE credentials (delivered via secure channel; stored in Vault).
    • MNO provides cell-tower database export (or API).
  3. Adapter development: Engineering builds adapter (Standard3gpp / Ericsson / Huawei) matching MNO's stack.
  4. Staging integration:
    • Test broadcast from Ghasi staging → MNO staging CBE.
    • MNO confirms receipt + handset display.
    • Ghasi confirms ack back.
  5. Production cutover:
    • Production endpoint swapped from MNO staging to production CBE.
    • First drill reaching real handsets (limited area).
    • MNO confirmation.

Per-MNO onboarding takes 4-8 weeks. Phase 0 runs 5 MNO onboardings in parallel.


4. Content / Template Bootstrap

Pre-approved emergency templates are required before Phase 2:

Template categoryLanguagesOwner
Earthquake warningen, fa, ps, arNDMA
Flood warningen, fa, ps, arNDMA
Civil defence alerten, fa, ps, arPolice / Civil Defence
Public-health emergencyen, fa, ps, arMoPH
Infrastructure alert (power, water)en, fa, ps, arRelevant ministries
Security advisoryen, fa, ps, arPolice

Each template:

  • Reviewed by native-speaker translator from Trust & Safety.
  • Approved via compliance-engine EP-CE-13 workflow.
  • Linked to specific authorised-caller (only NDMA can trigger earthquake templates, etc.).
  • Re-attested annually.

5. Cross-Region Bootstrap (ADR-0004 §5, §14)

ConcernPhase 0 bootstrap
Kabul primary regionFull service deployed first
Mazar standby regionDeployed in Phase 1 (drill-only) to test region-local operation
Dubai DRAudit mirror + escrow trust anchor — deployed Phase 2
Cross-region reconciliation cronActive from Phase 1
Manual-gated region fail-overRunbook drafted Phase 0; drilled in Phase 1 GameDay

6. Regulator Engagement

StepPhaseOwner
ATRA MoU for CBC servicePhase 0Regulator Liaison + Legal
ATRA observer access to regulator-portal-service for audit visibilityPhase 1Regulator Portal + Regulator Liaison
SIEM forwarding of cbc.audit.v1 to ATRAPhase 2Regulator Portal
Monthly drill after-action report to ATRAPhase 1Government / Emergency
Quarterly compliance attestationPhase 2+Compliance
Annual audit by ATRA or its delegatePost-GACompliance + Legal

7. Success Metrics for Migration

MetricTargetMeasurement
Phase 0 MoUs signed5 MNOs + 4 government agencies + ATRABefore Phase 1 entry
Phase 1 drills delivered on schedule100%Monthly
Phase 1 drills reaching ≥ 4 of 5 MNOs100%Monthly
Phase 2 broadcasts with PARTIAL rate< 5%Ongoing
Phase 2 unauthorised broadcasts0Ongoing
Phase 3 mean-time-to-dispatch (P0 emergency)≤ 60 sPer broadcast
Citizen trust (survey)≥ 80% "aware + trusting"Annual
ATRA compliance-audit finding0 critical findingsAnnual audit

8. Rollback Plan

PhaseRollback action
Phase 0N/A (not live)
Phase 1 (Drill)CBC_DRILL_ENABLED=false disables drill; service remains online for future drill scheduling
Phase 2CBC_ACCEPT_SEVERITY_MAX=NONE reverts to Phase 1 (drill-only)
Phase 3CBC_ACCEPT_SEVERITY_MAX=P1 reverts to Phase 2 (non-life-critical)

Catastrophic rollback (e.g., compromised caller cert used for unauthorised broadcast):

  1. CBC_ACCEPT_SEVERITY_MAX=NONE immediately — all new submissions rejected.
  2. Revoke compromised cert in cbc.authorised_callers.
  3. Notify ATRA + MNO NOCs + CEO + Board Secretary.
  4. Public clarification via citizen-portal + press release.
  5. Incident review + reporting to regulator within 72 h.

9. Dependencies

  • ATRA MoU for CBC service (blocker).
  • Government-agency MoUs (blocker for each authorised caller).
  • MNO MoUs (blocker for each target MNO).
  • HSM provisioned with regional quorum (ADR-0004 §11).
  • Service mesh with SPIRE SVIDs (ADR-0004 §12).
  • compliance-engine EP-CE-13 trusted-template workflow live.
  • regulator-portal-service EP-REG-01 live (for ATRA observer access).
  • admin-dashboard EP-ADMDASH-10 (for NDMA / government client workbench).
  • notification-service EP-NOTIF-07 (for internal incident broadcasts when CBC system itself is in incident).
  • Translation-reviewed template library per Trust & Safety.
  • National-PKI (or interim Ghasi Government Trust Anchor) operational.

Any missing dependency blocks progression to the phase in which it is first required.


10. Post-Launch Runbook Refinement

Within 90 days of Phase 3 go-live:

  • Review actual emergency broadcast performance vs. plan.
  • Refine drill playbook based on live experience.
  • Review MNO CBE incident-contact responsiveness; renegotiate SLAs if needed.
  • Update translation templates based on real-world effectiveness.
  • Cross-reference CBC audit events with citizen feedback / complaints.
  • Share anonymised lessons with regional partners (GSMA, neighbouring regulators).