Import pipeline
- Gated per-form, not end-to-end automated — each job verified before the next starts
- A16.0 (Livelihood) is greenfield: no V2 source needed, can start now
- A14 closed 2026-05-06 via direct MongoDB Atlas read — masters extracted, A16.1 + A16.4 unblocked
Pipeline jobs
Job detail
Resolved via direct MongoDB Atlas read on mformv2_swastihealthprod. Read-only credentials persisted to ~/Dhwani/keys/swasti-mform-v2-mongo.txt. Export script + venv at ~/Dhwani/swasti-mform-migration/scripts/export_masters.py; ~30s to refresh all masters.
Closes A14, A14b (masters: 185 schemes, 31 docs, full geography), A15 (probe). Unblocks A16.1, A16.4, A18. See note 09 for the architectural surprises.
No V2 source — Livelihood is a new program. Author the Frappe Doctype directly from the PM sheet (05-pm-design-doc.md, Livelihood tab). This is the only unblocked job that can start immediately. See action item A20.
Owner: Dev team · Related: A20
Build the lookup table mapping (formId, order) pairs to V3 Doctype fieldnames. This is the universal join key across all 13 V2 forms. Validated approach: PM already uses this pattern (e.g. Health Screening (1010) || Current Status (order 36)). All cross-form references use order, never field names.
Depends on: A14 · Owner: Dev team
Run the mform-to-frappe conversion skill on each V2 form JSON, one form at a time. Each run produces 4 files: Doctype JSON + .py + .js + .dart. Verify against PM design (A19 delta report) before proceeding to the next form.
Depends on: A16.1 · See: Conversion skill note · A19
mForm's follow-up pattern creates new response rows per follow-up (self-link via closedItself on form 1011, terminal codes 2/4/5/12/13/14 on order 22). Collapse these chains into Frappe-native audit log entries on the original record. Decoder is fully known from V2 JSON analysis — no additional mForm team input needed.
Depends on: A16.2 · Decision: D3 · See: V2 JSON — self-link section
Load reference data into Frappe: 107 schemes, document master, donor master, geography hierarchy (district → block → GP → village). Custom Fields catalog (Occupation/Marital/Religion/Caste) is already in the PM sheet and partially resolves A14b. The 107 schemes, doc master, donors, and geography values still need a V2 export endpoint.
Depends on: A14, A16.2 · Related: A14b
Import all existing members and their historical responses from V2 into Frappe V3. Geography link resolved by A16.4; self-links collapsed by A16.3; field names resolved by A16.1 registry.
Depends on: A16.3, A16.4 · Owner: Dev team
Run the full import end-to-end on a staging Frappe instance. Verify member counts, response counts, status transitions, master-data links. Sign off before production import.
Depends on: A16.5 · Owner: Dev team
Last updated 2026-06-05