SaaS products Ledgerly Backups
Backups · Ledgerly
Backup history and on-demand snapshots for this app's databases.
| Type | Destination | Status | When | |
|---|---|---|---|---|
| Manual | S3 · ledgerly-backups | Completed | Today 06:00 | |
| Nightly | S3 · ledgerly-backups | Completed | Yesterday 02:00 | |
| Nightly | S3 · ledgerly-backups | Running | in progress | |
| Nightly | S3 · ledgerly-backups | Failed | Jul 28 02:00 |
Retention: 30 days · destination configured in Backup destinations.
About this page
Scheduled copies of this product’s data, on a cadence you set. Every run is listed with its outcome, and restores are their own confirmed, logged operation — a backup existing never means data can change silently.
Behind this page/apps/:saasAppId/backups · CanManageBackups
Retrieve
sp_Builder_ListBackups returns history with type, destination, size, status, and timestamps.Save
Create →sp_Builder_RequestBackup (queues an async worker). sp_Builder_RequestRestore queues a Pending row in SaaSAppRestores (one in-flight restore per app; only Completed backups qualify); sp_Builder_CancelBackup cancels Pending jobs only — a leased job is past the point of cancellation.Success
- Requests create a Pending job for workers.
- Status is polled to completion.
- Restores are their own job records — backup history stays immutable.
CLI handoff
Implement this scaffold from the structured contract, then remove hard-coded preview rows. The source of truth is CLI Handoff and admin-cli-manifest.json.
Page IDapp-backups
Route/apps/:saasAppId/backups
AccessCanManageBackups
Statusexternal-integration-required
Server-inject identity and scope values; never trust browser-supplied account, app, tenant, user, entitlement, price, or permission identifiers. Preserve the loading, empty, forbidden, failed, retrying, and completed states shown by the preview.