Repository navigation
Releases: epanipinto/MongoMigrationWebBasedUtility
Release list
v0.9.27 - v0.9.27 - self-heal when the change stream start point reaches pre-4.0 oplog entries
Deploy this build by setting these on the Terraform migration VM:
migration_vm_utility_release_zip_uri = "https://github.com/epanipinto/MongoMigrationWebBasedUtility/releases/download/v0.9.27/MongoMigrationWebUtility-internal-v0.9.27.zip"
migration_vm_utility_release_zip_sha256 = "ADEB1C87C066DAF2B6740BD5E13798284424F24E9F784EBB2B500795D275AFE3"What's Changed
- fix(changestream): self-heal when the start point reaches pre-4.0 oplog entries by @epanipinto in #17
Full Changelog: v0.9.26...v0.9.27
v0.9.26 - v0.9.26 - log and recover when the change stream start point predates the oplog
Deploy this build by setting these on the Terraform migration VM:
migration_vm_utility_release_zip_uri = "https://github.com/epanipinto/MongoMigrationWebBasedUtility/releases/download/v0.9.26/MongoMigrationWebUtility-internal-v0.9.26.zip"
migration_vm_utility_release_zip_sha256 = "FAABDBB03D28F005524C7F2DA75FA77C0403E5576B8E0C8C3A37CDD665038900"What's Changed
- fix(changestream): log and recover when the start point predates the oplog by @epanipinto in #16
Full Changelog: v0.9.25...v0.9.26
v0.9.25 - Release v0.9.25 - progress cadence fix for sub-threshold collections
Deploy this build by setting these on the Terraform migration VM:
migration_vm_utility_release_zip_uri = "https://github.com/epanipinto/MongoMigrationWebBasedUtility/releases/download/v0.9.25/MongoMigrationWebUtility-internal-v0.9.25.zip"
migration_vm_utility_release_zip_sha256 = "E79990E8EF3FF9C02512BFBC72FEFB7C6086526E0E7F7CDA9AEA07FA2B655FCD"What's Changed
- fix(copy): report progress for collections below the checkpoint threshold by @epanipinto in #15
Full Changelog: v0.9.24...v0.9.25
v0.9.24 - v0.9.24 - cutover and pause endpoints
Deploy this build by setting these on the Terraform migration VM:
migration_vm_utility_release_zip_uri = "https://github.com/epanipinto/MongoMigrationWebBasedUtility/releases/download/v0.9.24/MongoMigrationWebUtility-internal-v0.9.24.zip"
migration_vm_utility_release_zip_sha256 = "75F20E0447ACF5664EBBFB55B8B55E8BA47C4FCFD5A4D2C5908DE9F21FEC8681"What's Changed
- feat: add cutover and pause endpoints to the migration job API by @epanipinto in #14
Full Changelog: v0.9.23...v0.9.24
v0.9.23 - v0.9.23 - mark a job as started when it is started over the API
Deploy this build by setting these on the Terraform migration VM:
migration_vm_utility_release_zip_uri = "https://github.com/epanipinto/MongoMigrationWebBasedUtility/releases/download/v0.9.23/MongoMigrationWebUtility-internal-v0.9.23.zip"
migration_vm_utility_release_zip_sha256 = "2D1F6CD5F06EABF7529ACEB2134264933BC078361E4DAD6907F52223FBEC13D2"What's Changed
- fix: mark a job as started when it is started over the API by @epanipinto in #13
Full Changelog: v0.9.22...v0.9.23
v0.9.22 - v0.9.22: resolve navigation against the application base URI
Deploy this build by setting these on the Terraform migration VM:
migration_vm_utility_release_zip_uri = "https://github.com/epanipinto/MongoMigrationWebBasedUtility/releases/download/v0.9.22/MongoMigrationWebUtility-internal-v0.9.22.zip"
migration_vm_utility_release_zip_sha256 = "70CC869414F8E7D876FE4CAC200A3880529A97746FCEF49664E6BE6F8E379326"What's Changed
- fix: resolve navigation against the application base URI by @epanipinto in #12
Full Changelog: v0.9.21...v0.9.22
v0.9.21 - v0.9.21: delete a single migration job over the API
Deploy this build by setting these on the Terraform migration VM:
migration_vm_utility_release_zip_uri = "https://github.com/epanipinto/MongoMigrationWebBasedUtility/releases/download/v0.9.21/MongoMigrationWebUtility-internal-v0.9.21.zip"
migration_vm_utility_release_zip_sha256 = "3047AFFA90EF77756663890FD3139916D29E5E5DA4D01F8738F30F4647C88982"What's Changed
- feat: delete a single migration job over the API by @epanipinto in #11
Full Changelog: v0.9.20...v0.9.21
v0.9.20 - v0.9.20: persist imported connection strings so a job can resume with existing ones
Deploy this build by setting these on the Terraform migration VM:
migration_vm_utility_release_zip_uri = "https://github.com/epanipinto/MongoMigrationWebBasedUtility/releases/download/v0.9.20/MongoMigrationWebUtility-internal-v0.9.20.zip"
migration_vm_utility_release_zip_sha256 = "4734CE0129BE7F4E4CD0A301594B7A68CC588F82737C7BD02AFC25EB90A990F3"What's Changed
- fix: persist imported connection strings so a job can resume with existing ones by @epanipinto in #10
Full Changelog: v0.9.19...v0.9.20
v0.9.19 - feat: seedable per-collection copy options + CI and release automation
Deploy this build by setting these on the Terraform migration VM:
migration_vm_utility_release_zip_uri = "https://github.com/epanipinto/MongoMigrationWebBasedUtility/releases/download/v0.9.19/MongoMigrationWebUtility-internal-v0.9.19.zip"
migration_vm_utility_release_zip_sha256 = "B074A2EBA1B296E8EF623905EA23F0C4D5332F63DDF0138B866234A3EAE56EDE"What's Changed
- ci: add a build, test and package workflow for the fork changes by @epanipinto in #6
- ci: publish a GitHub Release with the utility zip on a version tag by @epanipinto in #7
- feat: make per-collection Overwrite and IndexingStrategy seedable by @epanipinto in #8
- chore(release): bump to 0.9.19 by @epanipinto in #9
Full Changelog: v0.9.18...v0.9.19
v0.9.18 - start endpoint + connection strings survive a recycle
Internal fork release.
Added
-
POST /api/migration-jobs/{jobId}/start— start or resume a job without the UI. The body is optional; omit it to reuse the job's stored connection strings, or supplysourceConnectionString/targetConnectionStringto rotate a credential. Mirrors the UI start path including the sync-back branch, reuses the existing loopback +X-Migration-App-Passwordguard, and returns404for an unknown job,409if a migration is already running or the job is complete, and400if the supplied connection strings resolve to different endpoints than the job recorded. -
Connection strings now survive a recycle. They previously lived only in static in-memory dictionaries, so an app-pool recycle,
iisresetor redeploy dropped them and a started job could not be resumed without re-entering them by hand. They are now encrypted with ASP.NET Core Data Protection to<state-store>/connections/<jobId>.dat. The key ring lives under the state store rather than the app directory, which a redeploy replaces; on Windows the key ring is itself encrypted with machine-scoped DPAPI. Entries are removed when their job is deleted.
Fixed
-
Auto-resume could never fire on a host with more than one job.
ActiveMigrationJobIdis a plain static that is never rehydrated from disk, and the recovery path was additionally gated on there being exactly one job. It now resumes the single job that is started, not completed and not cancelled. -
The version shown in the page header was hardcoded and had been left at
v0.9.15through two releases. It is now set once in the csproj and read from the assembly, so it cannot drift again.
Verification
Built from the merged commit; the assembly informational version embeds that SHA. An 11-check harness compiled against the real ConnectionStringVault confirmed a fresh instance loads what a prior instance saved, that payloads on disk carry no plaintext credentials, and that corrupted payloads degrade to a miss rather than throwing.