Database Sync & Anonymization
Connect your production database and automatically generate privacy-safe synthetic copies for staging, development, and testing environments.
How It Works
┌─────────────────────────────────────────────────────────────────┐
│ SYNC & ANONYMIZATION │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Production Database Destination │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ │ Phony │ │ │
│ │ users: │ Agent │ users: │ │
│ │ • Real names │ ──────────▶ │ • Fake names │ │
│ │ • Real emails │ Anonymize │ • Fake emails │ │
│ │ • Real phones │ & Sync │ • Fake phones │ │
│ │ │ (in YOUR │ │ │
│ │ 100GB / PII │ network) │ 100GB / No PII│ │
│ └─────────────────┘ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘Key Features:
- Full sync / Incremental sync
- Smart subset (1% with FK integrity)
- Scheduled jobs (nightly refresh)
- Auto PII detection
- Referential integrity preserved
How It Runs
Sync is local-first: the phony agent runs inside your own infrastructure, next to your database. It introspects the schema, detects PII, anonymizes, and writes to the target — all within your network, using outbound-only connections to Phony Cloud. The cloud is the control plane: it schedules jobs and receives schemas, column classifications, job status, and compliance reports. Your production rows never reach Phony's servers. Details: Database Sync Architecture.
Supported Databases
| Phase | Databases | Trigger |
|---|---|---|
| Phase 1 (Launch) | MySQL, MariaDB, PostgreSQL, SQLite | Laravel ecosystem |
| Phase 2 (Enterprise) | SQL Server, Oracle, AWS RDS/Aurora | Customer demand |
| Phase 3 (Modern Stack) | MongoDB, Snowflake, BigQuery, S3/GCS, Kafka | Market trend |
Transformation Types
| Type | Description | Example |
|---|---|---|
| ANONYMIZE | Replace with Phony-generated data | john@email.com → mehmet@example.com |
| MASK | Partial hide | john@email.com → j***@e***.com |
| HASH | One-way hash (preserves FK consistency) | john@email.com → a7f3b2c1... |
| NULL | Set to null | john@email.com → null |
| KEEP | Leave unchanged (for non-PII) | status → status |
| CUSTOM | User-defined function | Custom logic |
Masking Strategies
Email Masking
- Standard:
john.doe@company.com→j***.d**@c******.com - Domain-keep:
john.doe@company.com→j***@company.com - Hash-local:
john.doe@company.com→a7f3b@company.com
Phone Masking (Locale-aware)
- TR:
+90 532 123 4567→+90 532 *** **67 - US:
(555) 123-4567→(555) ***-**67 - EU:
+49 30 12345678→+49 30 *****678
Credit Card Masking
- Standard:
4111 1111 1111 1111→**** **** **** 1111 - BIN-keep:
4111 1111 1111 1111→4111 **** **** ****
Name & Address
- Initial:
John Doe→J*** D** - Geo-preserve: Keep city/country, mask street
Custom Patterns
- SSN (US):
123-45-6789→***-**-6789 - TC Kimlik:
12345678901→*******8901 - IBAN:
TR12 0001 ...→TR12 **** ...
Tier Limits
Phony prices connected data sources (production databases) — never tables, rows, or sync volume. The sync data plane runs in your own infrastructure at every tier; the cloud is the control plane.
| Feature | FREE | STARTER | TEAM | BUSINESS |
|---|---|---|---|---|
| Data Sources | 1 (preview) | 1 | 3 | 10 (+$39/mo ea.) |
| Scheduled Sync | ✗ | Daily | Hourly / cron | Cron + chains |
| Incremental Sync | ✗ | ✓ (timestamp) | ✓ | ✓ (+ CDC) |
| Subset Sync | ✗ | ✓ | ✓ | ✓ |
| Parallel Workers | 1 | 2 | 4 | 16 |
| PII Inventory Report | ✗ | ✗ | ✓ | ✓ |
| KVKK/GDPR Report Pack | ✗ | ✗ | ✗ | ✓ |