Spec 00 — site-to-site migration

What arrives
is what left.

S2Stools moves SharePoint sites 1:1 — version history, authors, timestamps, permissions, attachments, even the notebook — metered to the byte and never billed twice.

Sign in with Entra ID · first site estimate is free

/sites/marketing · source

Shared Documents 12,480 files
contract-2024.docx v1–v12
Team Lists 34 lists
Site Pages 86 pages
Permissions 14 principals
Site Notebook OneNote

/sites/marketing-new · faithful copy

Shared Documents 12,480 ✓
contract-2024.docx v1–v12 ✓
Team Lists 34 ✓
Site Pages 86 ✓
Permissions mapped ✓
Site Notebook renamed ✓
versions ✓ authors ✓ timestamps ✓ permissions ✓

Spec 01 — process

Three steps. No surprises at either end.

01

Estimate

Tell us the size of the source, get the price before anything moves. The estimate uses the same rate card the meter bills from.

2,000,000 items · 500 GB → $126.96 (~80.3 compute-hours)

02

Dry run

The engine walks the whole site and reports the plan — lists, pages, permissions, versions — and writes nothing.

"DryRun": true — plan only, write nothing

03

Migrate & verify

Runs are resume-safe: a restart continues where it stopped, skips what's done, and never copies an item twice. Cancel is one click, cooperative.

resume=true → completed steps skipped · cost unchanged

Spec 02 — fidelity

Every version. Every author.
Every permission.

Most tools move files. S2Stools moves the record — the metadata trail your compliance team actually cares about.

Version history

Full version chains are replayed oldest-to-newest, each stamped with its original editor and date.

File.Versions → replayed v1…vN

Authors & timestamps

Created/Modified and Created by/Modified by survive the move — not replaced by the migration account.

system fields stamped · no version bump

Item-level permissions

Broken-inheritance items keep their own grants; site groups and M365 group claims are remapped to the target.

principals mapped source → target

Attachments

List-item attachments travel with their items, added before the final metadata stamp so dates stay true.

AttachmentFiles copied per item

Navigation & notebook

Quick launch arrives without duplicate or dead links, and the site notebook is renamed for its new home.

system links stripped · notebook retitled

Managed metadata

Taxonomy columns, content types, and term groups are extracted together so nothing is silently dropped.

Fields + ContentTypes + TermGroups

Spec 03 — metering

Priced from the meter,
not the sales call.

Every run is metered per GB moved, per compute-hour, per 1,000 items. Resumed runs are deduplicated at two layers — you are never billed twice for the same work.

Free / Trial

$0/mo

  • 5 GB included
  • 2 compute-hours
  • 1 concurrent run
  • 50,000 items
Start free

Business

$199/mo

  • 500 GB included
  • 120 compute-hours
  • 5 concurrent runs
  • Priority queue
Choose Business

Enterprise

$999/mo

  • 2,000 GB included
  • 600 compute-hours
  • 20 concurrent runs
  • CMK encryption · BYO certificate
Talk to us

On paid plans, overage beyond the included allowance is metered per GB, per compute-hour, and per 1,000 items at the plan's rate — Free is hard-capped instead. Set a per-run budget and the run pauses before it passes it.

Spec 04 — isolation

Your tenant is a wall,
not a row filter.

  • One storage container per tenant. Run artifacts never share a container; isolation is enforced at the storage boundary, not just in queries.
  • Secrets never travel inline. The API rejects any spec carrying a raw secret — credentials live in Key Vault and are referenced, never pasted.
  • Entra ID sign-in. Your directory is the front door: first user provisions the tenant, roles map to scopes, API keys are scoped and revocable.

// the API, refusing a pasted secret

POST /v1/migrations
→ 422 Unprocessable Entity

"Source.Auth.ClientSecret.ClientSecret:
 inline secrets are not accepted —
 use a Key Vault reference."

Move your first site today.

Estimate is free. Dry run writes nothing. The meter only counts what actually moves.