Microsoft Graph SharePoint


Authentication Connection

This connector requires a standard Microsoft Graph Authentication Connection.

Caution:  Its recommended that OAuth be used for Migration only. And Client / Secret Auth be used for Content Service
MS Graph OAuth usually requires human interaction to refresh the token and isn't suitable for content services, because content services is usually meant to act as a background process. TCS with SharePoint for example. You don't want your entire system to stop working because you need to manually re-authenticate the content service connection that handles all the downloads/deletes.

Caution:  If users are encountering job fails they should check their SharePoint permissions as the authorised account may not be limiting what 3Sixty can do.

The application will require the following permissions:

  • Repository: Sites.Read.All

  • Output: Sites.Manage.All


Discovery Connector

Discovery Connection Configuration

  • Tenant Name: The name of the tenant. All O365 SharePoint instances use the structure [tenant].sharepoint.com. We use this to construct urls and gather siteIds.

  • Sites to Crawl: The base sites to crawl. Root will crawl your Team site.

  • Crawl Subsites: If the site has any subsites, crawl them as well. For example, if you leave the list above as root, but there is a subsite ([tenant].sharepoint.com/mySite), it will not be crawled unless this box is checked.


Integration Connector

Important:  RUNNING ERRORS
As of the 3.1.1 release, MSGraph connectors cannot rerun errored documents. We are aware of the issue, and it will be addressed in the next release.

Important:  WARNING
The Microsoft Graph APIs throttle connections that make what it considers excessive api calls. They have not shared these metrics, and they are determined dynamically based on previous usage and presumably account type. See this link for more details

Due to how SharePoint handles metadata, the document and its metadata will be uploaded separately.

Documents with Metadata: This process is done by batching the document with its metadata, with the metadata write contingent on the success of the upload. In this case a document is complete if both the metadata and document successfully upload. If either fails due to a 429 (throttling) response, the missing piece will be attempted a number of times after waiting.

Documents without Metadata: If a document has no metadata (no mappings), a non- batch upload will be performed. The same retry logic will take place but only for the file content.

Recommended Settings to avoid Throttling: Details Tab Advanced Options Max Queue Size = 500 Output Threads = 5 Output Specification Number of retries = 10


Job Configuration

Mapping

If you want to map the document version comments, please add below mapping (mapping is shown from graph share point to CMIS connector).

Configuration

  • Site List: Comma delimited list of tenants sites to crawl for content types. Use 'root' for main site.

  • Library List: Libraries to Crawl. List names do not require their parent sites (ex. 'Documents' not 'sites/Test/Documents')

  • Crawl Subsites: If the site has any subsites, crawl them as well. For example, if you leave the list above as root, but there is a subsite ([tenant].sharepoint.com/mySite), it will not be crawled unless this box is checked.

  • Process Folders: Process folders as well as documents.

  • Get Versions: Retrieve document versions.

    • When retrieving versions, calculated fields for version information will not work if there are no additional versions of a document. If you wish to map the version label of a document that may or may not have more than one version, use the Field Document._UIVersionString in the mapping tab.

Caution:  CASE SENSITIVITY
Site and Library names are case-sensitive. If the case is wrong, the job will complete successfully, but no documents will be picked up

Output Specification

  • Tenant Name: The name of the tenant. All O365 SharePoint instances use the structure [tenant].sharepoint.com. We use this to construct urls and gather site IDs.

  • Output Folder Path: The folder where the files will be stored. Do not include the library root folder in this path. If left blank, documents will be written to the library root (ex. Documents will write directly to the Shared Documents folder)

  • Output Site: The tenant (sites/mySite) or subsite (/mySite) where the documents will be written. Defaults to root

  • Output List: The name of the library within the site. Defaults to Documents

  • Check documents for a value to override destination site: Each document will have its metadata checked for a new subsite or tenant site.

  • Field to check for site override value: If checking for site overrides, this field will be checked for the new site path. If present, the document will be uploaded to that site. The default is 'site'. If this value is set and no list override is present, the files will upload to 'Documents' on the new site.

  • Check documents for a value to override destination list: Each document will have its metadata checked for a new list name.

  • Field to check for list override value: If checking for list overrides, this field will be checked for the new list name. If present, the document will be uploaded to that list. The default is 'list'. This can be combined with a site override.

  • Retry Attempts: The number of times to try completing a document upload before failing.

  • Roll Back files: There are instances where a document may be uploaded but its metadata will exceed the allowed number of upload attempts. If this flag is checked, that document will be deleted (and will be noted in the Removed column in the job status screen).

  • Set Permissions: Set ACLs for documents when available. Expected format is "(email)=writer" or "(email)=reader"


Content Service Connector

Configuration

  • Tenant Name: The name of the tenant. All O365 SharePoint instances use the structure [tenant].sharepoint.com. We use this to construct urls and gather site IDs.

  • Site Name: The path to the target site as it would appear in the SharePoint url.

  • List Name: The name of the library, as seen on the sites' sidebar.

  • SiteId: After configuring the connection the first time this can be populated using the REST APIs. See the Root Folder example below.

Examples

Document and folder ids will look like this.

01WNAC6ZYYYWDZOWH2DFH3LRHT7MWF5L2R

As SharePoint is actually backed by OneDrive, all the ids are actually OneDrive Ids as well.

Supported Methods

  • checkIn

  • checkOut

  • createFile

  • createFolder

  • deleteACL

  • deleteFolder

  • deleteObjectByID

  • findTypeDefinition

  • getACLs

  • getFileContent

  • getObjectProperties

  • getTypes

  • listFolderItems

  • listVersions

  • lockDocument

  • setACLs

  • unlockDocument

  • updateFile

  • updateProperties

Routing document

Following are simple examples of routing documents of different file types to different locations within your tenant.

These examples assume you are using the default override field names.

Content Service Examples

Assume the connector ID in these examples will be graph


API Keys

Microsoft Graph SharePoint Connector: Read=true: Write=true: MIP=false

Repo (Read) Specs

Key

Description

Data Type

sitelist List of Sites to Crawl. Use 'root' for root site String

listlist

Libraries to Crawl.

String

allLists

Crawl all libraries (will ignore library list).

Boolean

subsites

Crawl subsites.

Boolean

processFolders

Process Folders

Boolean

getVersions

Get Versions

Boolean

getPermissions

Get Permissions

Boolean

Output (Write) Specs

Key

Description

Data Type

outtenant Tenant Name String

outputfolderpath

Output Folder Path

String

outsite

Default site for output. Use 'root' for your the root site

String

checkSiteOverride

Check documents for a value to override destination site

Boolean

siteOverrideField

Field to check for site override value

String

outlist

Default library for output. Use Documents for the default list

String

checkListOverride

Check documents for a value to override destination list

Boolean

listOverrideField

Field to check for list override value

String

createList

Create list if it does not exist

Boolean

failList

Fail documents routed to the list if list creation fails.

Boolean

maxRetries

The number of retry attempts per document before the document fails

Long

rollback

Roll back files that fail to have their metadata or permissions set due to errors or throttling.

Boolean

setACLs

Set ACLs for documents when available.

Boolean