Sorry, no results found for "".
The Project Export feature allows Enterprise customers to export all content and assets from their DatoCMS project to their own AWS S3 bucket. This export provides a structured snapshot of your data in JSON format, along with all uploaded assets.
Our ISO 27001 certification ensures that our architecture incorporates internal backups, delivering a dependable safeguard against data loss. In other words, you can be confident that we adhere to best practices for keeping your data secure.
This Enterprise functionality serves as an additional layer of protection to ensure your safety and should be utilized as a last resort.
Enterprise Only: This feature is available exclusively to Enterprise customers.
Not a Backup Solution: The export does not offer a one-click restoration process.
Primary Environment Only: Only the primary project environment is included in the export.
Automated and Scheduled: Exports occur on a predefined schedule, with a minimum frequency of once per month and a maximum of once per day.
AWS S3 Storage Required: Customers must configure their own S3 bucket to receive the exported data.
The exported data includes:
Schema Models: Fields and fieldsets.
Schema Blocks: Block definitions and fields.
Records: Current and published versions, including block records.
Uploads: Metadata and references for uploaded assets.
Project Settings: Locales, SEO settings, workflows, and installed plugins.
Asset Files: All uploaded files from the media area.
While JSON snapshots are periodic and remain unchanged once created, assets are simply synced to their latest versions in the same directory every time. This is why bucket versioning is recommended—if an asset is removed from the project, it will also be deleted from the bucket. However, with versioning enabled, you can still retrieve previous versions of deleted assets.
The export does not include:
Record revision history
API tokens, webhooks, and build triggers
Collaborators, roles, and permissions
Audit logs and usage statistics
SSO settings and user accounts
Any additional metadata not explicitly listed
This feature cannot be enabled by customers directly. To set up an export, you must contact DatoCMS support and provide the following AWS S3 details:
S3 Bucket Name
AWS Region
S3 Access Key ID
S3 Secret Access Key
Additionally, you must configure your AWS S3 bucket with:
Public access blocked (mandatory for security)
Bucket versioning enabled (recommended for data recovery)
Lifecycle rules (optional, for automatic cleanup of old snapshots)
Our support team will give you detailed instructions on how to setup everything correctly.
Once configured, each export generates a timestamped snapshot in your S3 bucket. The structure is as follows:
assets/ project_<ID>/ file1.png file2.mp4
content/ project_<ID>/ snapshot_<TIMESTAMP>/ models/ records/ uploads/ workflows/ site.json
The presence of a canary.txt
file in a snapshot directory confirms that the export was completed successfully.
JSON files in the snapshots are similar to the JSON content you can fetch from our Content Management API, with some changes to reduce scattering across multiple files.
For each schema model/block model, a file following this path is present in the bucket:
content/project_<ID>/snapshot_<TIMESTAMP>/models/<api_key>.json
For instance:
content/project_999/snapshot_1721033044/models/article.json
The data
key contains the item_type
resource. Fields
and fieldsets
are referenced by their IDs, and their full payload is present in the included
key.
{ "data": { "id": "UVP2y5QPToWPXqJbMszyFg", "type": "item_type", "attributes": { "api_key": "article", "name": "Article", // ... the rest of item_type attributes }, "relationships": { "fields": { "data": [ { "id": "InMbgf7BSo2TDG4HYGb2Ug", "type": "field" } ] }, "fieldsets": { "data": [ { "id": "bwk17lanRYCOvXKztPp5PA", "type": "fieldset" } ] }, "workflow": { "data": { "id": "MQLtfJv4Q22nKUoHEQ3b9A", "type": "workflow" } } }, "meta": { "has_singleton_item": false } }, "included": [ { "id": "InMbgf7BSo2TDG4HYGb2Ug", "type": "field", "attributes": { "label": "Content", // ... the rest of field attributes }, "relationships": { "item_type": { "data": { "id": "UVP2y5QPToWPXqJbMszyFg", "type": "item_type" } }, "fieldset": { "data": { "id": "bwk17lanRYCOvXKztPp5PA", "type": "fieldset" } } } }, { "id": "bwk17lanRYCOvXKztPp5PA", "type": "fieldset", "attributes": { "title": "Group 1", // ... the rest of fieldset attributes }, "relationships": { "item_type": { "data": { "id": "UVP2y5QPToWPXqJbMszyFg", "type": "item_type" } } } } ]}
For each schema model, multiple files following this template are present in the bucket:
content/project_<ID>/snapshot_<TIMESTAMP>/records/<schema_model_api_key>/current/batch_<batch_increment_number>.jsoncontent/project_<ID>/snapshot_<TIMESTAMP>/records/<schema_model_api_key>/published/batch_<batch_increment_number>.json
For instance:
content/project_999/snapshot_1721033044/records/article/current/batch_000.jsoncontent/project_999/snapshot_1721033044/records/article/current/batch_001.jsoncontent/project_999/snapshot_1721033044/records/article/published/batch_000.jsoncontent/project_999/snapshot_1721033044/records/article/published/batch_001.json
The current
prefix contains the records' current versions (the latest version available, as seen in the admin interface). The published
prefix contains records' published versions.
The same record ID can be present in both trees (current
and published
) if it has both a current and a published version. The same version can be present in both trees if it's at the same time the current and published version of the record.
Versions include their block records, similar to using the nested=true
query parameter in our Content Management API.
Each batch_XXX.json
contains several versions under the data
key and their order is not predictable.
{ "data": [ { "id": "ZrKQnn5AQBiZ4CTX8eyu8Q", "type": "item", "attributes": { "title": "A trip to Florence!", "content": { "en": [ { "type": "item", "attributes": { "text": "Beautiful!" // ... the rest of block record attributes }, "relationships": { "item_type": { "data": { "id": "JfkKRx-FRJONbco_hHOS5Q", "type": "item_type" } } }, "id": "afzDcUT0RHOduJbr8L_ZmA" } ] } // ... the rest of record attributes }, "relationships": { "item_type": { "data": { "id": "UVP2y5QPToWPXqJbMszyFg", "type": "item_type" } }, "creator": { "data": { "id": "24527", "type": "account" } } }, "meta": { // ... } }, { // .. other current versions } ]}