Blog: Automated Data Exports — Your Data, On Demand
Automated Data Exports — Your Data, On Demand
v1.0.33 · Nightly Batch Workflow
Starting with release v1.0.33, the SaaS Factory platform fully automates the data export lifecycle. When a user requests an export of their data, the platform takes it from there — generating, packaging, and delivering a complete archive without any manual steps.
The Problem With Manual Export Pipelines
Data export is deceptively complex. A request comes in, someone (or something) has to pull records from multiple tables, serialize them into a usable format, store the file somewhere, generate a download link, notify the user, and then clean up stale files before they accumulate. Miss any step and users either get nothing, or worse — a link that silently returns an error.
The new Data Export Fulfillment Processor eliminates every one of those failure points.
What Happens Every Night at 01:00 UTC
The processor runs on a 0 1 * * * cron schedule. In each run it does two things:
1. Fulfill pending requests.
Every export request sitting in the pending state gets processed. The workflow pulls together a full snapshot of the user's data — their account, projects, features, pipeline runs, and release history — and packages it as both a JSON file and a CSV file. The archive is uploaded to object storage, a signed download URL is generated, and the request is marked ready with a 7-day expiry window.
2. Expire stale downloads.
Any ready request whose download window has passed gets flipped to failed. This isn't just housekeeping — it gives users a clear, unambiguous signal: your previous export has expired, please request a new one. No guessing whether a link will work.
What's Included in an Export
The archive covers the full breadth of a user's data on the platform:
- Users — account and profile information
- Projects — every project associated with the account
- Features — the feature backlog and history for those projects
- Pipeline runs — the full CI and automation execution history
- Releases — release records and metadata
Both JSON and CSV formats are included in every archive, so the data is immediately useful whether you're feeding it into another tool or opening it in a spreadsheet.
A Clean Status Model
Export requests move through a simple, predictable lifecycle:
pending → ready → (7 days later) → failed
At any point, the status field on a data_export_request record tells you exactly where things stand. No ambiguity, no silent failures.
Fully Autonomous
This is another step toward the platform's zero-human-ops model. Data export compliance — a requirement that touches GDPR, CCPA, and most other modern privacy frameworks — is now handled end-to-end by the platform, on a guaranteed daily cadence, without any operational overhead.