Export operation allows to take a snapshot of the entire project to a zip archive file, this will have a tree like structure of content and meta information.
The site pages and page modules content will be exported in text files inside the archive, the site files content will be exported in binary files inside the archive.
Each resource (site page, site url, page module, site file, …) will have a meta.xml file where most of the resource fields will be stored. Inside the archive, each resource is identified by the resource External Key.
Without doing any modification to the project resources two backup operations should produce the same archive (the backup operation is idempotent).
The project archive content can be uploaded in a source control system and then changes between various backup archives can be tracked easy. This is an easy way to create build numbers with the CMS project content.
Import is the reverse operation of the Export, it allow to restore a project backup archive.
During import the following operations are performed
- the current project content is cleared completely
- The resources found in the imported archive are created one by one
The import operation of the same backup file is idempotent, it produces the same project content.
The import and export operations are not influenced by the data or the file storage type used by the CMS. For example a development team can test and modify the project on a local CMS deployment (based on H2 database and directory based file storage), export the project in an archive file and then upload the archive in a cloud CMS deployment (i.e. based on Amazon Simple DB database and Amazon S3 file storage).