Export your application data.
Through the export feature, you can export your application data to a provided S3 endpoint. We support not only AWS S3, but all S3-compatible object storage services. More storage backends may be added in the future.
The exported data is copied from live data and not backups. The application will continue to run during the export, so the data is not guaranteed to be consistent.
For security reasons, we recommend creating a unique access key for your bucket. Here is a sample policy document with minimum permissions:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::USER_SID:user/USER_NAME"
},
"Action": ["s3:ListBucket", "s3:DeleteObject", "s3:GetObject", "s3:PutObject"],
"Resource": ["arn:aws:s3:::BUCKET_NAME/*", "arn:aws:s3:::BUCKET_NAME"]
},
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
}
]
}
If exports are always written to empty paths, s3:DeleteObject
may be omitted.
Exports can be scheduled to automatically run daily, weekly or monthly. It will perform an update of the data at the given path/prefix. Previous exports can be persisted using versioning.
This feature is in preview, the properties listed below are subject to change.
Export paths can be templated using Go template syntax. The following properties are available:
Property | Description |
---|---|
Id | Application ID |
Name | Application name |
Domain | Primary domain |
Time | Time in RFC3339 format |
TimeUnix | Time in Unix timestamp format |
RotateDaily(int) | Return daily slot number based on given total slots |
RotateWeekly(int) | Return weekly slot number based on given total slots |
RotateMonthly(int) | Return monthly slot number based on given total slots |
Examples:
Path | Result |
---|---|
/{{.Id}}-{{.Time}} | /mastodon-c27059f9-2023-08-14T14:47:29Z |
/{{.Domain}}-{{.RotateDaily 3}} | /foo.com-1 |
Exports can be rotated using one of the Rotate
functions. They take the maximum number of slots as an argument, and
return a slot number for the current day, week or month. To create a weekly backup with 3 rotation slots, use
{{.RotateWeekly 3}}
.
We aim to always keep your data safe and protected.
All data is either stored in or backed up to object storage. Object storage is considered reliable, but nothing is perfect and mistakes happen. Therefore, we give you the option to export your data to a location you have full control over.