Skip to content

stackbit/sourcebit-source-contentful

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sourcebit-source-contentful

npm version

A Contentful source plugin for Sourcebit

👩‍🏫 Introduction

With this plugin, you can add Contentful as a data source for Sourcebit. To connect your Contentful account, you need a Personal Access Token.

🏗 Installation

To install the plugin and add it to your project, run:

npm install sourcebit-source-contentful --save

💡 You don't need to run this command if you start Sourcebit using the interactive setup process, as the CLI will install the plugin for you and add it as a dependency to your project.

⚙️ Configuration

The plugin accepts the following configuration parameters. They can be supplied in any of the following ways:

  • In the options object of the plugin configuration block inside sourcebit.js, with the value of the Property column as a key;
  • As an environment variable named after the Env variable column, when running the sourcebit fetch command;
  • As part of a .env file, with the value of the Env variable column separated by the value with an equals sign (e.g. MY_VARIABLE=my-value);
  • As a CLI parameter, when running the sourcebit fetch command, using the value of the Parameter column as the name of the parameter (e.g. sourcebit fetch --my-parameter).
Property Type Visibility Default value Env variable Parameter Description
accessToken String Private CONTENTFUL_ACCESS_TOKEN The Contentful Personal Access Token.
deliveryToken String Private Created automatically via management API CONTENTFUL_DELIVERY_TOKEN The Contentful Content Delivery API Token.
previewToken String Private Created automatically via management API CONTENTFUL_PREVIEW_TOKEN The Contentful Content Preview API Token.
environment String Public The name of the Contentful space environment.
host String Public The default value defined by the Contentful SDK CONTENTFUL_HOST The value of the host option of the Contentful SDK.
preview Boolean Public true if {watch: true}, false otherwise. Whether to use the Contentful Preview API as opposed to the Content Delivery API.
pollingInterval Number Public 5000 The interval of time (in milliseconds) between API calls to Contentful to poll for content changes. Only applicable when watch is enabled.
projectId String Public The ID of the Contentful space.
richTextOutputFormat String Public html The format to convert rich-text fields to. Accepted values: html and none.
watch Boolean Public watch Whether to poll Contentful for content changes.

👀 Example configuration

sourcebit.js

module.exports = {
    plugins: [
        {
            module: require('sourcebit-source-contentful'),
            options: {
                accessToken: process.env['CONTENTFUL_ACCESS_TOKEN'],
                environment: 'master',
                spaceId: '1abcdefgh2ij'
            }
        }
    ]
};

.env

CONTENTFUL_ACCESS_TOKEN=CFPAT-123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ

🧞‍♂️ Interactive setup process

This plugin offers an interactive setup process via the npx create-sourcebit command. It asks users for their Contentful Personal Access Token and allows them to select their Contentful space and environment.

📥 Input

N/A

📤 Output

This plugin adds normalized entries and assets to the objects data bucket and normalized model objects to the models data bucket.