Skip to main content

Migration Jobs

A Job is the core unit of work in The One Migrate. Each job is assigned to a specific agent, which executes the transfer and reports progress back to the cloud dashboard.

Job Types

TypeWhat It Does
archiveMove files to Azure Blob Storage (typically Cool or Archive tier)
migrate_filesCopy files from a source location to Azure Blob or M365 storage
migrate_mailboxMigrate mailboxes between Microsoft tenants
syncContinuously sync files from source to destination (incremental)
rockrms_importImport organizational data from RockRMS SQL Server to The One Mission

Job Lifecycle

Jobs move through a defined set of statuses:

created
└→ scanning Agent is enumerating source files/records
└→ ready Scan complete; total counts known
└→ running Transfer in progress
├→ paused Paused by dashboard command
├→ completed All items transferred successfully
├→ failed Unrecoverable error
└→ cancelled Cancelled by user

Status transitions happen automatically as the agent reports progress. You can force a pause or cancel at any time from the dashboard.

Source Types

Source TypeDescription
localFiles on the agent machine's local filesystem or network share
onedriveFiles in a user's or team's OneDrive for Business
sharepointFiles in a SharePoint document library
google_driveFiles in a Google Drive account
dropboxFiles in a Dropbox account
rockrmsRockRMS SQL Server database (people, contributions, etc.)

Destination Types

Destination TypeDescription
azure_blobAzure Blob Storage container (most common)
onedriveOneDrive for Business (target M365 tenant)
sharepointSharePoint document library (target M365 tenant)

Creating a Job

  1. Navigate to a Project → click New Job.

  2. Enter a Job Name — be descriptive (client, source, date scope).

  3. Select the Agent to run this job. Only online agents are shown.

  4. Select the Job Type.

  5. Configure the Source:

    For local/file sources:

    • Source type: local
    • Path: the directory to migrate (e.g., C:\Users\shared\ or /mnt/nas/data)

    For OneDrive/SharePoint:

    • Source type: onedrive or sharepoint
    • Source tenant ID: the Microsoft tenant that owns the source data

    For RockRMS:

    • Source type: rockrms
    • Connection string: SQL Server connection string (e.g., Server=sqlserver;Database=RockRMS;User Id=sa;Password=...)
    • Campus IDs (optional): limit migration to specific campuses
    • Date range start (optional): only migrate contributions and attendance from this date onward
    • Mission org slug: the target Mission organization slug
    • Mission API URL: the Mission API base URL
    • Entities: select which data types to migrate (people, families, groups, contributions, attendance, prayer_requests)
  6. Configure the Destination (defaults to the project's Azure connection):

    • Storage account, container, blob prefix
  7. Set optional Filters:

    • Older than — only include files/items created before this date
    • Include patterns — glob patterns for files to include (e.g., *.docx, *.pdf)
    • Exclude patterns — glob patterns for files to skip (e.g., *.tmp, ~*)
  8. Set Transfer Config:

    SettingDefaultNotes
    Concurrency4Parallel upload streams (1–32)
    Chunk size8 MBUpload chunk size (1–256 MB)
    Bandwidth limitNoneMbps cap; overrides project schedule
    Verify integrityOnSHA-256 checksum after upload
    Delete after uploadOffRemoves source files after successful upload — use carefully
  9. Click Create Job.

The job is immediately dispatched to the agent. The agent begins scanning within seconds.

Monitoring a Job

From the Jobs page or Dashboard → Active Jobs:

  • Click a job to open the detail page.
  • The detail page shows real-time progress: files and bytes completed, failed, and skipped; current transfer speed in Mbps; estimated time remaining.
  • Refresh rate: the dashboard polls the API every 10 seconds.

Controlling a Running Job

Three commands are available from the job detail page:

CommandWhen to Use
PauseTemporarily stop the job (e.g., during business hours). Files in flight complete; progress is preserved.
ResumeContinue a paused job from where it left off.
CancelPermanently stop the job. Partial uploads remain at the destination. The job cannot be restarted; create a new job if needed.

Commands are delivered to the agent within ~10 seconds via the command poll endpoint.

Filtering by Status or Agent

On the Jobs page, use the filter bar to narrow results:

  • Filter by status (e.g., show only running or failed jobs)
  • Filter by agent
  • Filter by client or project

Deleting a Job

Jobs can be deleted from the job detail page. Deleting a job removes the record from the dashboard but does not roll back any data already transferred. Do not delete a running job; cancel it first.

Cost Tracking

Jobs contribute to the project's Estimated Cost automatically:

  • Mailbox jobs: $12 per completed mailbox
  • All jobs: $0.40 per GB transferred

Costs are reported daily to Hub Billing for invoicing.