Administration
Backup & restore
Download all of your company's data as one file, load it into an empty company, see the backup history, and get the spreadsheets for moving in.
Backup & restore is the moving-in and moving-out page. It shows whether your backups can be trusted, lets you download everything your company holds as one file, loads such a file into a new, empty company, and hands you blank spreadsheets for bringing your customers, carriers and loads over from another system.
- Where
- Administration → Backup & restore (/backup)
- Who can open it
- Company · view. By default: Owner and General Manager
- Who can export
- Company · export
- Who can import
- Company · edit, into a company that is still empty
- Import file size
- Up to 10 MB
- Saves to
- Your company data (on import) and the audit log
Backup health
The page leads with a verdict, as a colour and a sentence:
| Verdict | Colour |
|---|---|
| "No restore has been rehearsed. Until one has, this is a file, not a backup." | Red |
| "Last restore rehearsal was …. N runs failed in the last week — worth a look." | Amber |
| "Last restore rehearsal was …. Every run since has completed." | Green |
A backup nobody has tried restoring is a file somebody hopes is a backup, which is why the rehearsal date leads.
| Figure | Meaning |
|---|---|
| Last rehearsal | When a restore was last tried |
| Last good | The size of the last complete run |
| Tables · docs | How many tables and documents the last good run held. This is how you tell a real copy from a truncated one |
| Failed | Failed runs. Red when above zero |
A Run size chart shows each run's size in MB; failed runs show as gaps in red.
Runs
| Column | Meaning |
|---|---|
| When | The run's date and time |
| Kind | What kind of run it was |
| Size | In MB |
| Documents | How many documents it held |
| Result | Complete, Running or Failed, with "rehearsed …" when a restore was tried from it |
With no runs: "No backups yet. Export makes the first one."
Export your company's data
Click Export
In the page header.Save the file
A.jsonfile downloads with every table of your company's data.
What is in the file, and what is not:
| Included | Left out |
|---|---|
| Customers, carriers, loads, charges, invoices, payments, notes, documents' records, users (names and emails), custom roles, settings | Password hashes, two-factor seeds, sign-in links and stored integration keys. They never leave the server |
| The files in storage (uploaded documents, the logo). The JSON holds their records, not the files |
Only your company's data can be in the file: it is read through the same tenant lock that guards every screen. The export is recorded as backup.export. Exporting still works while the account is read-only.
Import into an empty company
Import is for moving a company's data into a fresh Harbor company, for example after signing up again.
Click Import
Only usable while your company has no customers, carriers, loads or invoices. Otherwise it explains: "Only into a company with no customers, carriers or loads yet".Choose the backup file
The.jsonfile the Export button made, up to 10 MB.Confirm
"Every customer, carrier, load and invoice in the file is added here, in one step. This only works while the company is still empty." Click Import.
How an import treats the file:
- It all happens in one step: everything loads, or nothing does.
- Nothing in the file is trusted. Every record gets a new ID from your database; company IDs, passwords, two-factor seeds and sessions are never taken from it.
- People are matched by email to the users already in your company. No user is ever created. Anyone not found is replaced by you, the person importing, and the result says how many were not matched.
- Custom roles in the file are added only if they are new, never overwrite an existing role, never touch the Owner role, and have their permissions cleaned. If your own role cannot edit roles, they are skipped and the result says so.
| Message | Why |
|---|---|
| "That file is not a Harbor backup. Choose the .json file the Export button made." | Wrong file |
| "That backup was made by a different version and cannot be read here." | Version mismatch |
| "That backup file is incomplete." | Parts are missing |
| "That file is larger than 10 MB." | Too big |
The import is recorded as backup.import.
Rehearse and Restore
The Rehearse and Restore buttons are shown but not usable from the browser. Each explains why when you hover it:
- Rehearse restores the nightly backup into a scratch database and compares row counts. It runs on the server.
- Restore writes a nightly backup over the live database. It is done on the server with the owner present.
The nightly whole-database backup is run on the server by whoever operates Harbor, not from this page.
Import sheets
Three blank spreadsheets (CSV) for moving in, each with a header row, an example row and its rules:
| Sheet | For |
|---|---|
| Customers | Your book of accounts: who you bill, on what terms, up to what limit |
| Carriers | The trucks you use, and the authority and insurance that let you dispatch them |
| Loads | Open containers you are already moving, so the board is not empty on day one |
Click Download beside a sheet. Dates in the sheets are written as YYYY-MM-DD, the one form that survives a spreadsheet in every country.