Your databases. Your infrastructure. Your archive.
Moving historical production data into another vendor’s hosted database may introduce a new access boundary, retention contract and operational dependency. A self-hosted archival design keeps the export and retrieval path in infrastructure you operate, with archive storage you control.
Capability status. Local PostgreSQL, MySQL and MongoDB connectors, scheduling, verified deletion and Cloud metadata synchronization exist in development. S3/Azure export and a separate customer-hosted gateway with browser search and downloads are implemented.
- 01MySQL / MongoDBCustomer databases · installed connectors
- 02ColdCTL agentLocal selection, export and verification
- 03Your object storageParquet archives · S3 / Azure Blob
- 04Archive Gateway / DuckDBBrowser filtering and downloads
CUSTOMER ENVIRONMENT · Data path shown above. Optional Cloud synchronization carries lifecycle metadata separately.
Separate the data path from Cloud visibility
The current ColdCTL agent runs database operations locally. Database credentials and database contents are not part of the Cloud synchronization payload. Operators explicitly synchronize lifecycle metadata such as configured sources, policy metadata, job counters and verification timestamps.
Cloud visibility therefore has its own boundary. Metadata can still reveal source names, database structure and operational activity. Inspect the dry-run report before synchronization and decide whether it is appropriate for your environment. Self-hosted execution does not mean that every optional control-plane component runs without an external service.
coldctl agent sync --dry-runOwn the destination and its lifecycle
Choose your S3 bucket or Azure Blob container, prefix and access policy. Both providers are implemented in the agent and gateway, alongside local Parquet. MinIO and Azurite are used for local emulator tests; real-cloud identity and representative-scale qualification remain release gates.
Ownership also means operating encryption keys, access logs, retention policies, recovery copies and deletion controls. Storage lifecycle rules must not remove files that an archive catalog still considers available. Decide how archive expiration, holds and catalog changes will be coordinated.
Give each operation an explicit access boundary
Use source credentials scoped to the discovery and export work. Deletion requires separate explicit authorization and source permissions. Archive verification alone does not enable deletion; unchanged records are checked again in source transactions.
Separate archive writers from retrieval readers where practical. Avoid arbitrary bucket paths and unrestricted SQL in an exposed query endpoint. Authenticate callers, restrict datasets and columns, constrain resource use, and record access. Customer-controlled infrastructure still needs a defined application security model.
Plan for interrupts, upgrades and recovery
Place journal state and archive files on durable storage. Decide who monitors incomplete jobs, backs up local state and restores an installation after failure. Keep software versions and schema mapping versions with the archive evidence so upgrades do not silently change interpretation.
Test restart behavior and restore on a disposable database. Build a retrieval exercise into archive acceptance: knowing where files are stored is not the same as being able to answer a historical query. Keep recovery backups for the operational database; archival has a different purpose.
When this architecture fits
A customer-operated archive is a useful design when retained history must stay in approved infrastructure and infrequent queries can tolerate on-demand compute. It requires a team able to own storage, operational recovery and access controls. It does not eliminate those responsibilities or guarantee a particular cost saving.
ColdCTL’s aim is to make that lifecycle deliberate: discover, preview, export, verify and retrieve historical data without a second always-running database for every archive. Evaluate the current development scope before adopting it for production retention.
Archive cold database data with ColdCTL
Archive to your own S3 or Azure Blob storage, verify before authorized deletion, and retrieve retained history through your customer-hosted gateway.