As many plans as you need
Every few hours, every day, some days of the week, once a month or any cron expression, each in its own time zone. The dialog says the next five moments as you write the schedule.
API Maker
The backend engine for the AI era
Operations
Every database backed up on your schedule into S3, and back in one click, table by table.
Plans back up a whole instance or a database of MongoDB, PostgreSQL, MySQL, MariaDB, SQL Server or Oracle into Amazon S3 or any store which speaks S3, at the moments you choose. The database's own program makes each backup at the least priority of the server, it is encrypted before it leaves, and your rules remove the old ones. A restore compares the backup with the database of now, and you choose what goes back.
Step through it, slow it down, or open the full canvas.
A plan says what, when and where. Shop nightly backs up the database shop every day at 02:00, Europe/Berlin, into a bucket of S3. Of all the servers, the first one which takes the moment runs it: one backup per moment.
Shop nightly backs up the database shop every day at 02:00, Europe/Berlin, into a bucket of S3. Of all the servers, the first one which takes the moment runs it: one backup per moment.
mongodump writes the dump (pg_dump, mysqldump, SqlPackage or Data Pump for the other databases) at nice 19 and the idle class of I/O. The APIs of the server go first and keep their speed.
The archive is encrypted with the password of the plan, 1 MB at a time, then sent in parts of 8 MB, two at a time. A part which fails is sent again; nothing is held in memory.
This plan keeps every backup of the last 30 days, so the one of 30 Sep goes (others keep the newest 7, one a day, a week, a month). The run is written in the log, and the driver of S3 is let go once nothing uses it.
The backup comes back, is decrypted and checked, then compared with the database of now. You replace only the orders: the other tables stay as they are, and every table is counted after.
Every few hours, every day, some days of the week, once a month or any cron expression, each in its own time zone. The dialog says the next five moments as you write the schedule.
The program of the backup runs at nice 19 and the idle class of I/O, and the upload can be capped: your APIs go first. The archive streams from the disk in parts of 8 MB, never whole in memory.
Every server looks at the plans, and the first one which takes a moment runs it. A moment no server was there for is noted missed, never backed up late at an hour nobody chose.
The newest few, every backup of some days, one a day, a week and a month: a year of backups in about 25 files. The newest backup always stays.
Back into its database, a new one beside it, or another instance. See what changed in each table, replace, merge, keep or remove it, and every table is counted after.
Every backup and restore with its size, its time and its parts, kept where Analytics keeps its numbers, cleared when you like, and never part of git. A webhook can tell Slack, Teams or Discord when a backup fails.
A script of a release clears the orders of production by mistake. The admin opens the backup of 02:00, sees that only orders changed, merges the orders back and keeps every other table as it is: the orders of the morning stay, the ones of the night come back.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::my-backups" }, { "Effect": "Allow", "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:AbortMultipartUpload"], "Resource": "arn:aws:s3:::my-backups/apimaker/production/*" } ]}List the bucket, and write, read and remove the objects of its folder: what a backup, its rules and a restore do.
{ "text": "❌ Backup 'Shop nightly' of shop_db failed on server1 : …", "event": "backup.failed", "plan": "Shop nightly", "instance": "shop_db", "database": "shop", "status": "FAILED", "key": "", "bytes": 0, "error": "…", "startedAt": 1793412000000, "finishedAt": 1793412065000, "server": "server1"}Amazon S3, Cloudflare R2, Backblaze B2, Wasabi, DigitalOcean Spaces, Akamai (Linode) Object Storage, Scaleway, Google Cloud Storage with HMAC keys, MinIO, and any other store which speaks S3.
Yes. The restore compares the backup with the database of now and you choose what each table becomes: replace it, merge the rows it lacks, keep it, or remove a table the backup does not have.
The program of the backup runs at the least priority of the server and the upload can be capped, so the APIs go first. The backup takes a little longer on a busy server.
A backup which is not encrypted is the .zip of an export, with the file of the database's own program and a README which says how to restore it by hand. An encrypted one opens with API Maker, on any installation, with its password.
Documentation