SharePoint Online

SPSync's primary source, covering lists and document library metadata from any SharePoint Online site, via the Microsoft Graph API.

Before anyone grants access to a SharePoint site, the people asking and the people approving both want the same answer: what will the copy hold, and what stays behind? This page sets that out for SharePoint Online, the source SPSync reads today.

What does SPSync read from SharePoint Online?

SPSync reads lists and document library metadata through the Microsoft Graph API. Any list on a site you can reach counts, including the ones people built in Microsoft Lists, because those are SharePoint lists underneath. Each list becomes one table in your database, named after the site’s prefix and the list’s internal name.

The first run reads the whole list. Later runs ask Graph only for the items that changed since the last run, so a list well past the list view threshold of 5,000 items replicates the same way a small one does, with no indexed column or filtered view to set up first. By default, deleted items stay in the table with a timestamp in sp_deleted_at, so a report can still count them.

How column types map to SQL

Text, number, currency, yes/no, date and choice columns each become one typed column. A lookup arrives as two columns: {col}_id holds the target item’s id, which joins to the other list’s table, and {col}_value holds the display text. Person columns store a user id that joins to one shared sp_users table holding names and email addresses. A hyperlink gives you a URL column and a description column, and a calculated column is written as its formula’s result type.

Multi-select choices, multi-value lookups and multi-person columns each get a child table with one row per value, so counting the items that carry a tag is a join in SQL instead of string splitting. The child tables for multi-value lookups and multi-person columns, and the currency and hyperlink mappings, have not been confirmed against a live tenant, so check them before a report depends on them. The column type mapping lists the exact SQL Server and PostgreSQL type for every column with its verification status, and the schema reference covers naming, renames and type changes.

Document libraries arrive as metadata

A library is copied as a table like any list. Its custom columns, content type, created and modified dates are filled in, and folders and document sets appear as rows alongside the files. The file name, URL, size and folder path columns are in the schema but have not been confirmed against a live tenant since the library read changed, so check them before you rely on them.

What does SPSync leave in SharePoint?

File contents and list attachments are never downloaded. Item and folder permissions are not copied either, so the roles you grant on the database decide who can read the copy. Each row holds the current version of an item, with no version history. Managed metadata columns are skipped for now, with a warning in the run log naming each one, and so are workflow status and retention label columns. SPSync never writes to SharePoint, and SharePoint Server on-premises is not supported.

Permissions for reading a site

To start, you can sign in as yourself. SPSync then asks for Sites.Read.All on your behalf, which reaches only the sites you can already open. For runs with nobody signed in, an admin grants the app Lists.SelectedOperations.Selected on named lists or Sites.Selected on named sites. The admin permissions pack is written for the person who approves that request, and the admin permissions guide has the grant commands.

Book a call

Book a call to talk through your use case, see further walkthroughs or demos, and set up a trial in your own environment.