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
| Type | What It Does |
|---|---|
archive | Move files to Azure Blob Storage (typically Cool or Archive tier) |
migrate_files | Copy files from a source location to Azure Blob or M365 storage |
migrate_mailbox | Migrate mailboxes between Microsoft tenants |
sync | Continuously sync files from source to destination (incremental) |
rockrms_import | Import 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 Type | Description |
|---|---|
local | Files on the agent machine's local filesystem or network share |
onedrive | Files in a user's or team's OneDrive for Business |
sharepoint | Files in a SharePoint document library |
google_drive | Files in a Google Drive account |
dropbox | Files in a Dropbox account |
rockrms | RockRMS SQL Server database (people, contributions, etc.) |
Destination Types
| Destination Type | Description |
|---|---|
azure_blob | Azure Blob Storage container (most common) |
onedrive | OneDrive for Business (target M365 tenant) |
sharepoint | SharePoint document library (target M365 tenant) |
Creating a Job
-
Navigate to a Project → click New Job.
-
Enter a Job Name — be descriptive (client, source, date scope).
-
Select the Agent to run this job. Only online agents are shown.
-
Select the Job Type.
-
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:
onedriveorsharepoint - 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)
- Source type:
-
Configure the Destination (defaults to the project's Azure connection):
- Storage account, container, blob prefix
-
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,~*)
-
Set Transfer Config:
Setting Default Notes Concurrency 4 Parallel upload streams (1–32) Chunk size 8 MB Upload chunk size (1–256 MB) Bandwidth limit None Mbps cap; overrides project schedule Verify integrity On SHA-256 checksum after upload Delete after upload Off Removes source files after successful upload — use carefully -
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:
| Command | When to Use |
|---|---|
| Pause | Temporarily stop the job (e.g., during business hours). Files in flight complete; progress is preserved. |
| Resume | Continue a paused job from where it left off. |
| Cancel | Permanently 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
runningorfailedjobs) - 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.