Welcome! Use gatsby-source-sharepoint-online to access site data from a SharePoint Online tenant.
- Create an Azure App Registration and grant admin consent to the Microsoft Graph: Sites.Read.All application permission. You must use an application permission type for this plugin.
- Create a secret in your App Registration for use with the plugin.
- Use a package manager like
yarnornpmto install the plugin.
yarn
yarn add gatsby-source-sharepoint-online
npm
npm i gatsby-source-sharepoint-online --save
- Add the plugin config to
gatsby-config.mjs
module.exports = {
plugins: [
{
resolve: "gatsby-source-sharepoint-online",
options: {
host: "<domain>.sharepoint.com",
appId: <ApplicationId>,
appSecret: <ApplicationSecret>
tenantId: <TenantId>,
sites: [
{
name: "CoolSharepointSite",
relativePath: "sites/CoolSharepointSite",
lists: [
{
title: "Heroes",
fields: ["Name", "Power"],
},
],
},
],
},
},
],
};
NOTE! Do not put your secrets directly into this file if you intend to source control your application. In this repository we use dotenv to load config values from a .env file that is excluded from source control.
| Name | Type | Description |
|---|---|---|
| host | string | required The SharePoint Online host where the sites to access are hosted. |
| appId | string | required The App Registration Application (client) ID. |
| appSecret | string | required The secret associated with the App Registration identified by appId. |
| tenantId | string | required The Azure Directory (tenant) ID that SharePoint and the App Registration belong to. |
| sites | site[] | The sites to source data from. |
| Name | Type | Description |
|---|---|---|
| name | string | required The name of the SharePoint site. This is used for the node type. |
| relativePath | string | required The relative url of the site. |
| lists | list[] | The SharePoint lists to load data from. |
| Name | Type | Description |
|---|---|---|
| title | string | required The title of the SharePoint list. |
| fields | string[] | The names of the fields to expand. |
Chat with members of the community via Slack!