AthenaPractice Data Center Migration
Status: Pending Created: 2026-03-03 Jira: HM-8461 Deadline: 2026-03-26 Trigger: AthenaPractice notified of data center migration — new IPs, URLs, and SSL certificates effective March 26, 2026.
Summary
AthenaPractice is migrating their data center. This affects any integration points where eSHARS connects to AthenaPractice services (SFTP, login URLs, API endpoints). A full code and infrastructure audit found no hardcoded references to AthenaPractice in any eSHARS repository. All connection details are either database-stored or managed in Azure Portal.
No code changes or deployments required. This is purely operational.
Pre-Migration Audit Results
Code Repositories Searched
| Repo | AthenaPractice References Found |
|---|---|
| HISD (main app) | None |
| eshars-devops | None |
| eshars-cli | None |
| eshars-mobile-api | None |
| eshars-mobile-ui | None |
| eshars-tmhp-ms | None |
| esharsinternalportal | None |
Search terms: athena, athenaPractice, athenahealth, cloudcent, 208.78
SFTP Integration
SFTP hostnames are database-stored, not hardcoded. They are retrieved at runtime via GetDistrictValue<string>() calls in these settings classes:
| Settings Class | DB Key |
|---|---|
DistrictFileProcessorSettings | SFTP Host Name (District File Processor) |
LogFileManagementSettings | SFTP Host Name |
SuccessEdSettings | SFTP Host Name (SuccessED) |
EdiCategorySettings | Billing Transaction SFtp HostName, TMHP Imported files SFTP Host Name |
The SFtpClient class (Eshars.Core/Helper/SFtpClient.cs) accepts hostname as a constructor parameter.
Infrastructure-as-Code
| IaC File | IP References |
|---|---|
Bicep: main.bicep | None — NSG created empty |
Bicep: virtual-machine.bicep | None — no security rules |
Bicep: vnet-subnet.bicep | None — CIDRs parameterized |
Terraform: sql-server/main.tf | None — no firewall rules |
Terraform: app-service-plan/main.tf | None — no IP restrictions |
Note: NSG rules, SQL firewall rules, App Service IP restrictions, and VPN config are managed directly in Azure Portal — not in IaC.
Migration Checklist
Phase 1: Pre-Migration (before March 26)
Azure Portal Checks
- Review NSG rules in all resource groups for any AthenaPractice IP references (
208.78.x.xrange)rg-eshars-prodrg-eshars-nonprod- Any other relevant resource groups
- Review SQL Server firewall rules for AthenaPractice IPs
- Review App Service IP restrictions / access restrictions
- Review Azure Firewall rules (if applicable)
Network / VPN
- Check VPN client configuration for AthenaPractice endpoints
- Update VPN config with new AthenaPractice IPs/URLs if needed
- Whitelist new AthenaPractice IP ranges in any relevant NSGs/firewalls
Database Updates
- Identify which districts use AthenaPractice SFTP
SELECT op.OrganizationId, o.Name, pi.Name AS SettingName, op.ValueFROM OrganizationPolicy opJOIN Organization o ON o.Id = op.OrganizationIdJOIN PolicyItem pi ON pi.Id = op.PolicyItemIdWHERE pi.Name LIKE '%SFTP Host%'AND op.Value LIKE '%athena%'
- Prepare UPDATE statements for new SFTP hostname (do NOT run until migration day)
Administrative
- Update login URL in documentation/bookmarks
- Notify affected vendors of the migration
- Complete attestation form from AthenaPractice
- Communicate timeline to team
Phase 2: Migration Day (March 26)
Pause BillTransactionJobs (2:00 PM Central / 12:00 PM Pacific)
Before the AthenaPractice update takes effect, pause all BillTransactionJobs to prevent visits from being sent to the wrong endpoint during the migration window. Follow the full procedure in Job Scheduler: Pause & Resume.
- Pause BillTransactionJob triggers via
QRTZ_TRIGGERSstate change - Verify triggers show
PAUSEDstate - Confirm with Kisha that jobs are paused
Apply Changes
- Execute SFTP hostname UPDATE in database (if needed)
- Update any remaining Azure Portal IP rules
- Update VPN configuration
Resume BillTransactionJobs (after Luis confirms AthenaPractice path is correct)
Luis will restart jobs one by one to verify visits are flowing to the correct AthenaPractice endpoint.
- Resume BillTransactionJob triggers via
QRTZ_TRIGGERSstate change (see runbook) - Monitor first execution of each job for errors
- Confirm with Luis that visits are arriving in AthenaPractice
Phase 3: Post-Migration Verification
- Verify SFTP connectivity to new AthenaPractice endpoints
- Verify login URL works
- Monitor scheduled jobs that use SFTP (check job logs):
DistrictFileProcessorRequestJobLogFileManagementRequestJobSuccessEdRequestJobBillTransactionJobCentricityVisitPaymentImportJobEligibilityRequestSubmissionJobEligibilityResponseProcessJob
- Confirm no errors in application logs related to AthenaPractice connectivity
- Close HM-8461
Estimate
3 story points — No code changes, no PRs, no deployments. Work is entirely operational: Azure Portal audits, DB updates, VPN config, vendor coordination, and attestation.
Related
- Previous similar migration: check linked tickets on HM-8461 (Sharad referenced prior work)
- SFTP client code:
Eshars.Core/Helper/SFtpClient.cs - Settings classes:
Eshars.ApplicationService/Helpers/