Acyclic Graph Traversal & Zero-Leakage Migration

Move One SaaS Tenant.
With Mathematical Isolation Proof.

Stop writing brittle hand-crafted SQL export scripts. TenantPorter parses your schema DAG, enforces write-freezes, packages records & files into encrypted .tpbundle archives, and verifies zero foreign tenant records leaked.

✓ PostgreSQL Relational Foreign Keys
✓ S3 / Blob Storage File Bundler
✓ Tarjan Cycle & Kahn Topological Sort
✓ Mathematical Zero Foreign Leakage Proof

1-Minute DataOps Setup

Extract & Move Tenants in Seconds

TenantPorter operates directly inside your infrastructure. Multi-tenant database credentials and raw records never leave your VPC.

npx tenantporter init # Configure tenant-map & AES-256 key
npx tenantporter dry-run --map ./tenant-map.json --tenant tenant_acme_42 # Preview records

Generates tenantporter.config.json, validates foreign-key dependency DAG, and applies column redaction policies.

Interactive Portability Engine Simulator

Simulate moving a VIP tenant (Acme Corp, ID: tenant_acme_42) out of a shared multi-tenant database to a dedicated private cluster.

tenantporter // dag-engine
STANDBY
// Source DB: multi_tenant_production (12,400 total tenants, 4.2M rows)
// Target Tenant: tenant_acme_42 (Acme Corp Enterprise Plan)
// Destination: dedicated_rds_cluster_us_east_1 (Clean empty target)
// Ready. Click "Execute Tenant Migration" to run extraction & verification.

Topological DAG Order 0 tables

No DAG compiled yet.

Isolation Audit Proof

Bundle: None
Digest (SHA-256): Unsigned
Foreign Records: --

Public Verification & Trust Badges

Embed Real-Time Tenant Isolation Proofs

Prove strict zero cross-tenant row leakage to customers, enterprise prospects, and compliance auditors.

Live Badge Preview
Markdown Embed
HTML Embed

Declarative Portability Architecture

The Tenant Map DSL

Define ownership predicates once. TenantPorter compiles the DAG, verifies foreign keys, and redacts credentials automatically.

1. DIRECT POLICY

Tables containing direct tenant_id column.

tenants:
  policy: root
  key: id

organizations:
  policy: direct
  tenantKey: tenant_id
2. RELATED POLICY

Child tables joined through parent foreign keys without tenant_id.

invoices:
  policy: related
  foreignKey: org_id
  parentTable: organizations
3. SHARED CATALOG

Global reference tables safely copied or referenced at target.

plans:
  policy: shared
  action: copy_catalog
  allowlist: [id, name, tier]

Predictable Portability Economics

Tenant Portability for Every Scale

Customer-operated runners execute inside your VPC. Zero raw customer data leaves your boundary.

Community Core
$0 forever

Open-source CLI for manual tenant export investigation.

  • ✓ 1 tenant migration / month
  • ✓ Single database schema
  • ✓ Local AES-256 bundle export
  • ✓ Open-source CLI
View on GitHub
SaaS Starter
$149 / mo

Continuous tenant portability for growing multi-tenant applications.

  • ✓ Up to 10 tenant migrations / mo
  • ✓ Automated boundary mapper & DAG
  • ✓ Slack & Discord webhooks
  • ✓ Signed SHA-256 certificates
Recommended
Growth Pro
$399 / mo

Automated isolation verification and GDPR / SOC 2 compliance bundles.

  • ✓ Up to 50 tenant migrations / mo
  • ✓ Cross-tenant leak scanner
  • ✓ SOC 2 CC6.6 & GDPR Art. 20 Pack
  • ✓ S3 attachment archive bundler
  • ✓ Priority SLA support
Enterprise Fleet
$899 / mo

High-concurrency multi-region tenant sharding with zero-knowledge keys.

  • ✓ Unlimited tenant migrations
  • ✓ Multi-region DB & file sharding
  • ✓ Custom tenant anonymizers & KMS
  • ✓ Dedicated compliance auditor portal
  • ✓ 24/7 dedicated incident SLA

Frequently Asked Questions

How do you prevent circular foreign key deadlocks?

TenantPorter runs Tarjan's strongly connected components algorithm during schema compilation. If circular dependencies exist, it raises a diagnostic error showing the cycle path, allowing engineers to declare nullable deferred foreign key boundaries.

How does TenantPorter guarantee no foreign tenant records leak?

After importing into the destination database, the Portability Verifier executes an exhaustive isolation audit. It scans all imported rows across every table and asserts that 100% of rows contain either the target tenant_id or are approved catalog reference records. If a single foreign ID is found, the transaction is immediately aborted.

Does the source database experience downtime during export?

No. Only the specific tenant being migrated is placed in maintenance mode via the Write Freeze Adapter. All other 12,000+ tenants continue writing and reading without interruption.