Skip to main content
Version: Latest (4.54.0)

SharePoint Online (OneDrive, Teams) System Information

SharePoint Online, part of Microsoft 365, is a cloud-based collaboration platform that allows organizations to store, share, and manage documents and other content.

System Specifications and Terminology

Here are some key SharePoint Online terminology and concepts.

Tenant

A SharePoint Online tenant, often referred to simply as a tenant, is essentially a dedicated instance of SharePoint Online within Microsoft 365. It's a virtual environment that is provisioned for an organization when they subscribe to SharePoint Online and other Microsoft 365 services.

Site Collection

A group of SharePoint sites that share common settings, features, and permissions. Site collections can contain one or more sub-sites.

Site

A specific location within SharePoint Online where you can create, organize, and manage content. Each site has its own unique permissions, settings, and content.

List

A structured collection of data, such as tasks, contacts, or events. SharePoint Online supports various list types, including custom lists, task lists, and calendars.

Document Library

A repository for storing and managing folders, documents, and other content. Document libraries can be customized to suit the needs of the site or organization. A document library is actually a type of list.

List Item

A list item refers to an individual entry or record within a SharePoint list. Examples of list items are folders and documents. Based on the content type given to the list item, it has a set of fields or columns associated with it. These fields store specific types of information, like text, numbers, dates, and more.

Term Store

The Term Store is a feature that allows organizations to manage and store metadata in a structured and standardized manner. It is a centralized repository for managing and organizing key terms, also known as managed metadata, that can be used consistently across sites, libraries, and lists in SharePoint. The Term Store is particularly useful for ensuring consistent categorization, tagging, and navigation of content within SharePoint.

Key components and concepts related to the Term Store include:

Term Set

A term set is a group of related terms or keywords organized hierarchically. It represents a specific category of information. For example, a term set for products might include terms like "Electronics", "Appliances", and "Clothing".

Term

A term is a single word or phrase that is part of a term set. Terms are used for tagging and categorizing content in SharePoint. For example, within the "Electronics" term set, you might have terms like "Smartphones", "Laptops", and "Tablets". Terms can be nested.

Managed Metadata Column

In SharePoint, you can create columns in lists or libraries that are associated with a term set from the Term Store. Users can then select terms from the term set to tag or categorize content.

Enterprise Keywords

Enterprise Keywords is a special column in SharePoint that allows users to add their own keywords or tags to content. These keywords can also be stored in the Term Store to ensure consistency.

Versioning

SharePoint Online supports version history for documents, enabling users to track changes and revert to previous versions of a file.

Permission Levels

Specific sets of permissions that define what actions users or groups can perform within a site or library. Common permission levels include Full Control, Edit, Read, and View Only.

SharePoint Online APIs

Microsoft provides many APIs to interact with SharePoint Online. The following APIs are used by the Xill4 application.

Graph API

The Microsoft Graph API is a comprehensive REST API provided by Microsoft for interacting with various Microsoft 365 services and resources, such as Azure Active Directory and SharePoint Online. It offers a unified and consistent way to access and manipulate data and resources across the Microsoft 365 ecosystem.

REST API

The SharePoint Online REST API can be used to perform CRUD operations in SharePoint Online.

Migration API

Performance and throttling were always an issue when migration lots of data to SharePoint Online. For this reason the Migration API was created. It utilizes Azure storage containers where packages containing the content are uploaded. Migration jobs are then started to get the data into SharePoint Online.

System limitations

Maximum Path Length

The maximum path length for files and folders in SharePoint Online is 400 characters. This means that the entire path to a file or folder, including the site name, library name, folder names, and file name, cannot exceed 400 characters. For example, when the URL is https://www.contoso.com/sites/marketing/documents/Shared%20Documents/Promotion/Some%20File.xlsx the limit applies to sites/marketing/documents/Shared%20Documents/Promotion/Some%20File.xls.

Case Sensitivity

SharePoint Online, by default, is case-insensitive when it comes to document libraries, file names, and URLs. This means that SharePoint Online treats uppercase and lowercase characters as the same. For example, "Document.docx" and "document.docx" would be considered the same file.

Invalid Characters and Reserved Names

The following characters are considered invalid and cannot be used in file or folder names in SharePoint Online:

  • \ (backslash)
  • / (forward slash)
  • : (colon)
  • * (asterisk)
  • ? (question mark)
  • " (double quotation marks)
  • < (less than)
  • > (greater than)
  • | (pipe)

Furthermore, file and folder names cannot end with a dot (.) and should not have leading or trailing spaces.

SharePoint Online also has a list of reserved names (e.g., "CON," "PRN," "AUX," "NUL," "COM1," "COM2," "LPT1," "LPT2," etc.) that cannot be used for file or folder names because they are reserved for system use.

Extensions of Versions

Each version within a set of file versions has the same extension.

Dates

Sharepoint Online only accepts values between 1/1/1900 and 12/31/8900.

Permissions

In SharePoint Online, it is possible break inheritance and manage permissions at the item (or list item) level. However, it's important to understand the limitations associated with it. The maximum number of list items for which you can break inheritance and manage unique permissions in a single list or library is approximately 50,000 items. This limitation exists to ensure that SharePoint performance is not significantly impacted.

Throttling

In order to maintain high performance of SharePoint Online, Microsoft throttles most APIs. This can result in the 429 too many requests error. Reducing the amount of API requests will lower the risk of being throttled.

Migration Pitfalls

The migration pitfalls are mostly related to the system limitations.

Invalid and Duplicate File or Folder Names

Use the Remove Invalid Characters and Deduplicate accelerator to clean up the folder and file names of characters that are not allowed. Furthermore, deduplicate folder and file names within the same folder.

Versions with Different Extensions

Technically file versions with different extensions can be migrated. However, when downloading a file version with a different extension it will be stored on the disc with the extension of the current version. This can either be resolved by setting the version comments with the old extension or splitting up the versions in a separate folder.

Version Numbers

In SharePoint Online the current version always has the highest version number. In some systems the current version can also be have a lower version number the the non-current versions. SharePoint Online will fix this automatically during the import. For example, when the current version is 1.0 and the non-current version is 2.0, version 1.0 will become version 3.0 in SharePoint Online. If this behavior is unwanted, please address the version numbers in your transformation.

Setting Permissions

Besides the system limitation for breaking permission inheritance, setting permissions slows down the performance of the migration. Furthermore, Microsoft also recommends to break permission inheritance as little as possible because it makes managing the content harder. Use separate sites or libraries if certain content needs its own permissions.

Files Larger Than 250GB

SharePoint Online does not support files larger than 250GB.

Document Metadata Parsing

By default, SharePoint tries to map metadata in the document to columns in the library. This will overwrite any metadata provided during the migration.

In order to prevent this from causing issues with the migration, a library setting that parses document metadata can be disabled by using the following script:

#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

#Config Parameters
$SiteURL= "https://<tenant>.sharepoint.com/sites/"
$ListTitle="Documents"

$Username=""
$Password=""

$securePassword = ConvertTo-SecureString $Password -AsPlainText -Force
$Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $securePassword)

$sites = @('abc','def')
$sites.foreach({
Try {
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL + $PSItem)
$Ctx.Credentials = $Cred

#get list sharepoint online powershell
$List=$Ctx.Web.Lists.GetByTitle($ListTitle)
$Ctx.Load($List)
$Ctx.ExecuteQuery()

Write-host "Current parserDisabled value " $List.ParserDisabled

$List.ParserDisabled = $true
$List.Update()
$ctx.ExecuteQuery()

Write-host "New parserDisabled value " $List.ParserDisabled
}
Catch {
write-host -f Red "Error:" $_.Exception.Message
Start-Sleep -Seconds 60
}
})

Make sure you have the full ISAPI folder, just having those 2 DLLs is not good enough. Usually these are already installed. If not please download those here: SharePoint Online Client Components SDK

When legacy authentication is disabled (setting in SharePoint Online Admin centre), PnP PowerShell is required to do the authentication. Use below script instead:

#Config Parameters
$SiteURL= "https://<tenant>.sharepoint.com/sites/"
$ListTitle="Documents"

$clientId = ""
$clientSecret = ""

$sites = @('abc','def')
$sites.foreach({
Try {
#Setup the context
$fullUrl = $SiteURL + $PSItem
$connection = Connect-PnPOnline -Url $fullUrl -ClientId $clientId -ClientSecret $clientSecret -ReturnConnection -WarningAction Ignore
$ctx = Get-PnPContext

#get list sharepoint online powershell
$List=$Ctx.Web.Lists.GetByTitle($ListTitle)
$Ctx.Load($List)
$Ctx.ExecuteQuery()

Write-host "Current parserDisabled value " $List.ParserDisabled

$List.ParserDisabled = $true
$List.Update()
$ctx.ExecuteQuery()

Write-host "New parserDisabled value " $List.ParserDisabled
}
Catch {
write-host -f Red "Error:" $_.Exception.Message
Start-Sleep -Seconds 60
}
})

For the client id and secret, a registered Azure application has to be used. This can be the same application that is used for the SharePoint Online source connector. The application then needs to be granted access to the tenant or site(s) with Manage rights. For instructions on how to grant the application access, please read the section under REST API here: SharePoint Online source connector

After the migration, change $List.ParserDisabled to $false and run the script again.

Tips & Tricks

Access

The SharePoint Online source and target connectors require different kinds of access to the SharePoint Online environment. It is highly recommended to check and test all the required access as soon as possible to avoid delays during the migration project.

Access checklist

  • Graph API access
  • REST API access
  • Azure storage account when not using the automatic provisioning
  • SharePoint Online account with site administrator access. Please note that when MFA is enabled an app password needs to be used.

For further information, please reference the SPO target connector documentation