Migration

Source Database Connection
API Root URLs
Shared Services Database Connection
Clinical Portal Database Connection
Integration Engine Database Connection
Biometrics Engine Database Connection
Survey Engine Database Connection
Reporting Engine Database Connection
One-time bootstrap: ensure the AMC Health master org + migration user exist so APIs can be called and downstream migrations have FK targets. Run only once on a newly built environment after 'Refresh Environment Configuration' and the databases have been built. Clicking this button more than once will not break anything.
Migration Options
Customers, Organizations, Programs, Config, Persons, SystemUsers (no passwords)
Lineage backfill + password hashing for all users missing legacy_password_enc
If set, bcrypt this password for ALL null rows (fast). If blank, decrypt each user's legacy password individually (slow).
Decrypt + bcrypt one user by legacy PersonId or username
Bulk-upsert seed system users via PUT /identity/system-users with permanentPassword (M2M *-service accounts retired — SS-21 SigV4)
Bulk-upsert 2 survey-engine system users (roleCode 200/201) via PUT /identity/system-users with permanentPassword
Bulk-upsert 5 cel-* system users (cel-operator/manager/admin/finance/clinical) via PUT /identity/system-users, read_write at org_node 1. roleCode resolved from the seeded roles catalog by display_name. Re-runnable: creates only missing users, and restores an org.assignments row wiped by step 7.
Phones, Emails, Addresses, Roles, Settings, NotificationGroups, Patients through Schedule
ReferralProfile, UploadedFiles (deferred), Conversations (deferred), Messages (deferred)
StaffNotifications, EmailNotifications, NotificationSchedules, MobileQueue
Cases.Cases -> clinical.cases, builds caseMap
Cases.AdditionalEMailNotifications -> notification.additional_email_notifications (shared_services). Runs here, not with 11-12, because it needs the caseMap step 16 builds. Cleared by checkbox 11.
Cases.MobileNotificationQueue -> notification.mobile_notification_queue (shared_services). Runs here, not with 11-12, because it needs the caseMap step 16 builds. Cleared by checkbox 11.
StatusHistory, ExternalIDs, CareManagers, CPT
LogSentFaxes, Notes, NoteContacts, NoteContactMethods, NoteReasons, NoteInterventions, NoteResolutions, GroupNotes, NotesToGroupNotes
thresholds, target ranges, weight variances, compliance regiments
regiment groups, issue settings, alert thresholds, target ranges, weight/inhaler
Cases.ReadingsSchedules -> config.readings_schedules (~37M rows; per-date expected-reading schedule)
readings (Sessions + EAV -> JSON); runs independently of alerts
If set, seed the readings loop at this SessionId (aligned down to the 250,000 stride) instead of MIN(SessionId). Blank = start from the beginning.
alerts (SessionAlerts); runs independently of readings
Reference.Announcements -> clinical.announcements (direct 1:1 copy, all rows)
Console Log (1 entries)
[3:34:56 PM] Switching VPC peering route to shared-services (pcx-00fd61dde5d307ba0)...

An unhandled error has occurred. Reload 🗙