Connections
A connection is your database credentials. DataFerry uses read-only access to query data for exports.- You can have multiple connections (e.g., different regions, different customers)
- One connection is marked as default — used when none is specified
- Credentials are encrypted at rest
Schema
After connecting, DataFerry scans your database to discover tables and relationships. We read schema metadata only — table data is not accessed during scans. You then configure:- Labels — Human-readable names (“Conversations” not “tbl_conv_v2”)
- Included tables — What users can export
- Excluded columns — Hide sensitive fields (tokens, internal IDs)
- Scope column — How we filter data per user or account (multi-tenant only)
Tenancy Mode
Multi-tenant: One database, many users. Data is filtered by a scope column.user_id, organization_id, account_id).
Single-tenant: Each customer has their own database. No filtering needed — the whole database belongs to them.
Portal Sessions
A portal session is a secure, time-limited URL where your user can download their data.- What data is included
- Record counts
- Download button
returnUrl.
Exports
When a user clicks “Download my data”, an export job runs:- Queued — Job created, waiting for worker
- Processing — Querying database, generating CSVs
- Completed — ZIP file ready, download URL available
- Failed — Something went wrong (details in dashboard export log)
- Scoped to the provided scope (multi-tenant) or full database (single-tenant)
- Packaged as a ZIP of clean CSVs
- Stored temporarily, then automatically deleted
- Downloadable via signed URL (24-hour expiry)
Portal Branding
The portal can be customized to match your product:- Logo — Shown at the top
- Product name — “Export your data from ”
- Primary color — Button color (optional)
- Favicon — Browser tab icon
API Keys
API keys authenticate your server with DataFerry.- Create keys in Dashboard → Settings → API Keys
- Keys start with
sk_live_(production) orsk_test_(sandbox) - Store them in environment variables, never in code
- Rotate keys if compromised