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
yarn
ornpm
to 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!