Config

Credentials

For details on how to populate the credentials, please see Azure OAuth App and SharePoint

Specifying which users to synchronise External Identities

Content that is synchronised will only ever at most be accessible to those users whose External Identities have been synchronised.

You can synchronise All Users or Specific Users.

To synchronise all users, the config should look like this:

{
  ...
  "UsersOptions": {
    "UsersListingMode": "AllUsers",
    "AllUsersListingOptions": {
      "DisallowedUsers": []
    }
  },
  ...
}

The AllUsers mode can be customised further by populating the AllUsersListingOptions. The DisallowedUsers array can be populated with a list of Emails, UserPrincipalNames or Ids.

You can choose to synchronise only specific users. To use this mode, set the UsersListingMode to be "Specific", and then populate the SpecificUsersListingOptions AllowedUsers array with a list of the users that you want to be synchronised. The AllowedUsers array can be populated with UserPrincipalNames or Ids.

Specifying which content to synchronise

For any SharePoint Online native connector there are a lot of configuration options which allow you to fine tune which content you want to synchronise (or not).

At the highest level within the config, its possible to define

  • SitesListingMode
    • AllSites or SpecificSites and corresponding options
  • Global Drive Filters (Document Libraries)
    • Which drives to include or exclude by default for all sites
    • All or Specific and corresponding options
  • Global List Filters
    • Which lists to include or exclude by default for all sites
    • All or Specific and corresponding options
  • Specific Site Options
    • Override the drive filters from the global drive filters
    • Override the list filters from the global list filters
    • Specific options for a drive within the site
      • Force resync (of the drive within the site)
    • Specific options for a list within the site
      • Map columns to taxonomy values
      • Force resync (of the list within the site)
    • Force resync (of the whole site)

For sites, you can choose to synchronise All sites, or a list of Specific sites only. If you choose the All sites mode, then you can also explicitly exclude specific sites as well.

For any synchronised site, it is also possible to choose which Drives (Document Library) or Lists you want to synchronise. Just like sites, you can choose to synchronise All (and a specific set to exclude) or Specific Drives and/or Lists. It is also

It is possible to configure the Drive (Document Library) filters and the List filters at a global level, so that they automatically apply to all sites. Or, you can do a combination of global filters and then also override these global filters for specific sites.

It is not possible to currently apply a filter of which files from a Drive (Document Library) or list items from lists are synchronised. I.e. if a drive or list is configured to be synchronised, then all of the items within them will be synchronised. It is planned in a future release to support this additional level of filtering.

Advanced Config

Rename default content types

I want to customise what name is given to the synchronised content types to change how they appear in the general search Content Types filter

You want to customise what the content type is synchronised as for each different SharePoint entity type. For example, by default, the name "Site" is used for both intranet sites and SharePoint sites.

Within the SharePoint Online Connector config, you can specify within the options the custom FacetTypeNameMappings, which allow you to change the name of each content type as you wish.

The below example is overriding all of the available types with the same default values. The "Type" is the key used for the custom name mapping and must match one of the supported FacetTypes.

"FacetTypeNameMappings": [
  {
    "Type": "SiteCollection",
    "Name": "Site Collection"
  },
  {
    "Type": "Site",
    "Name": "Site"
  },
  {
    "Type": "SiteDrive",
    "Name": "Site Drive"
  },
  {
    "Type": "SiteDriveFile",
    "Name": "Site Drive File"
  },
  {
    "Type": "SiteDriveFolder",
    "Name": "Site Drive Folder"
  },
  {
    "Type": "SiteList",
    "Name": "Site List"
  },
  {
    "Type": "SiteListItem",
    "Name": "Site List Item"
  },
  {
    "Type": "SiteListItemAttachment",
    "Name": "Site List Item Attachment"
  },
  {
    "Type": "SitePage",
    "Name": "Site Page"
  }
],

So, within a config, these settings would be under "Options" and would look like:

The "Type" is the key used for the custom name mapping and must match one of the supported FacetTypes.

The "Name" can be customised as you like. For example, you can change the default content type for sites, from "Site" to be "SharePoint Site"

Which results in the following:

Documents will only be updated after a synchronisation is done again (forced), as the name of the content type is part of the synchronised document.

In the above example, only 1 site was force resynced, resulting in a single "SharePoint Site" record existing and the previous number of "Site" records has decreased from 8 to 7. Synchronising the whole site collection again would result in all "Site" records being renamed as "SharePoint Site".

Rename default filters applied to synchronised content

I want to customise the names of the standard taxonomy values that appear in general search results

The following Standard and Custom (from list columns) taxonomy values are being synchronised:

The Standard taxonomy labels can be customised in a similar way to the Content Types using the "TaxonomyTypeNameMappings" option.

"TaxonomyTypeNameMappings": [
  {
    "Type": "SiteCollection",
    "Name": "Site Collection"
  },
  {
    "Type": "Site",
    "Name": "SharePoint Site"
  },
  {
    "Type": "SiteDrive",
    "Name": "Site Drive"
  },
  {
    "Type": "SiteList",
    "Name": "Site List"
  },
  {
    "Type": "FileExtension",
    "Name": "File Extension"
  },
  {
    "Type": "Directory",
    "Name": "Directory"
  }
],

If wanting to display these taxonomy values in the General Search Filters, then you would need to update the Taxonomy Aggregations (JSON) application variable to include them. The Taxonomy Aggregations (JSON) application variable should list the Name value (not the Type) from the TaxonomyTypeNameMappings as the Facet.