Contentful export tool


https://www.contentful.com is a content management platform for web applications, mobile apps and connected devices. It allows you to create, edit & manage content in the cloud and publish it anywhere via powerful API. Contentful offers tools for managing editorial teams and enabling cooperation between organizations.
This is a command line tool (CLI) that help you backup your published Content Model, Content and Assets or move them to a new Contentful space. It will support Editor Interfaces, Webhooks and Roles & Permissions in a future version.
To import your exported data, please refer to the contentful-import repository.
Installation
We recommend the installation of this CLI via npm:
npm install -g contentful-export
Usage and examples
Usage: contentful-export [options]
Options:
--version Show version number [boolean]
--space-id ID of Space with source data [string] [required]
--rate-limit How many requests to perform per period of time [number] [default: 6]
--rate-limit-period How much time to wait before retry in ms [number] [default: 1000]
--management-token Management API token for the space to be exported. [string] [required]
--export-dir Defines the path for storing the export json file (default path is the current directory) [string]
--include-drafts include drafts drafts in the exported entries [boolean] [default: false]
--skip-roles Define this flag ti skip exporting roles and permissions [boolean] [default: false]
--skip-content-model Define this flag to skip exporting content models [boolean] [default: false]
--skip-content Define this flag to skip exporting Assets and Entries [boolean] [default: false]
--skip-webhooks Define this flag ti skip exporting webhooks [boolean] [default: false]
--download-assets With this flags assets will also be downloaded [boolean]
--max-allowed-limit How many item per page per request [number] [default: 1000]
--config Configuration file with required values
The --management-token
parameter allows you to specify a token used for both spaces. If you request a token from here and your user account has access to both spaces, this should be enough.
Check the example-config.json file for an example of what a configuration file looks like. If you use the configuration file, you don't need to specify the other options for tokens and space ids.
Example
contentful-export \
--space-id spaceID \
--management-token managementToken
or
contentful-export --config example-config.json
You can create your own configuration file based on the example-config.json file.
Exported data
This is an overview of the exported data:
{
"contentTypes": [],
"entries": [],
"locales": [],
"assets": [],
"webhooks": [],
"editorInterfaces": [],
"roles": []
}
Usage as a library
While this tool is intended for use as a command line tool, you can also use it as a Node library:
var spaceExport = require('contentful-export')
spaceExport(options)
.then((output) => {
console.log('space data', output)
})
.catch((err) => {
console.log('oh no! errors occurred!', err)
})
The options
object can contain any of the CLI options, but written with a camelCase pattern instead, and no dashes. For example --space-id
would become spaceId
.
Another option is errorLogFile
, the location of a file to log errors to.
Limitations
- This tool exports only your published Content Model, Content and Assets. It will support Editor Interfaces, Webhooks and Roles & Permissions in a future version. Draft entries are not supported.
- You can only export the content exported by this tool into an empty space. We currently do not support merging content into pre-existing spaces.
- If you have custom widgets, you need to reinstall them manually in the new space.
Changelog
Read the releases page for more information.
License
This project is licensed under MIT license