Skip to content

Latest commit

 

History

History
106 lines (72 loc) · 4.47 KB

README.md

File metadata and controls

106 lines (72 loc) · 4.47 KB

Contentful export tool

npm Build Status Coverage Status Dependency Status devDependency Status

semantic-release js-standard-style

Contentful 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 allows you to 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 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                              
  --space-id          ID of Space with source data           
                      [string] [required]
  --management-token  Management API token for the space to be exported.
                      [string] [required]
  --export-dir        Defines the path for storing the export json file
                      (defaultpath is the current directory) [string]
  --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 would look 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 data exported.

{
  "contentTypes": [],
  "entries": [],
  "locales": [],
  "assets": [],
  "webhooks": [],
  "editorInterfaces": []
}

Usage as a library

While this tool is intended to be used 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