Client Offboarding
Client Offboarding & Data Extraction Runbook
1. Purpose & Data Ownership Principle
Clients retain full ownership of their business content, inquiry records, and uploaded media assets. When a client offboards from SiteSwarm, this runbook governs how their data is extracted cleanly across each storage pattern defined in DATA_STORAGE_PATTERN.md and how their custom domain is disconnected without disrupting their email or DNS zone.
2. Step-by-Step Offboarding Checklist
Step 1 — Export Client Data & Media Assets
- App-Hosted Storage (
app-hostedDedicated D1 & R2):- Export the client’s dedicated Cloudflare D1 database to a portable SQLite
.sqldump (wrangler d1 export <client-db-name> --remote --output=<client>-export.sql). - Download all objects from the client’s dedicated R2 bucket or tenant prefix into a portable media archive.
- Export the client’s dedicated Cloudflare D1 database to a portable SQLite
- Platform-Hosted Shared Storage (
platform-hostedServices):- Query and export all records scoped to the client’s
tenant_id(WHERE tenant_id = ?) into portable JSON or CSV files.
- Query and export all records scoped to the client’s
- External Database (If Using Anticipated Hyperdrive Pattern):
- The client already owns the external database instance; verify no pending writes remain and remove the Hyperdrive binding.
Step 2 — Coordinate Custom Domain Cutover
- Coordinate with the client’s technical contact to point their
CNAME(or flattened apex) record at their registrar to their new hosting provider. - Once DNS propagation away from SiteSwarm is confirmed, delete the client’s Custom Hostname entry and Worker Routes (
<client>-ingress.<platform-domain>/*andwww.<client-domain>.com/*) from the SiteSwarm Cloudflare zone (CLOUDFLARE_FOR_PLATFORMS_AND_DOMAIN_INGRESS.md).
Step 3 — Decommission Workers & Archive Workspace
- Delete the client’s production and staging Cloudflare Worker scripts (
apps/<client>and anyapp-hostedbacking service workers). - Retain the exported SQLite and media archive for the agreed post-offboarding retention window before deleting the Cloudflare D1 database and R2 bucket.