Back to CMS Configuration

Sharepoint Online

Example Configuration

<cms-type name="sharepointonlinegraph">
    <!-- Global Properties -->
    <cms-host ident="sharepoint.online.ident" name="https://your-company.sharepoint.com" displayName="SharePoint Online Example">
        <!-- Host Properties -->
        <cms-property name="client.id" value="xxxx-xxxx-xxxx-xxxx-xxxx" />
        <cms-property name="client.secret" value="xxxxxx" />
        <cms-property name="tenant.id" value="xxxx-xxxx-xxxx-xxxx-xxxx" />
        <cms-property name="state.attribute.name" value="_Status" />
        <cms-property name="link.content.type.name" value="Link to a Document" />
    </cms-host>
</cms-type>

Host Properties

These configuration properties affect the behavior of one SharePoint Online server.

* Required
Properties marked with * are required for the adapter to work.

# Required but can also be set in web-application
Properties marked with # are required but can also be set in the File Management section in the Stages web-application as well. The value entered in the web-application overrides the one from the config.xml.

+ Required but with default
Properties marked with + are required, but there is a default value. This values can be overridden by configuring it in the config.xml.

client.id *
  • Description: The client id of the stages application, which has to be registered at the Microsoft azure portal website.
client.secret *
  • Description: The client secret, which can be generated after registering the stages application at the Microsoft azure portal website.
tenant.id *
  • Description: The tenant id identifies your company when using Microsoft Services. You can get this id at the Microsoft azure portal website.
loginserver +
  • Default Value: https://login.microsoftonline.com/
  • Description: The URL to the login server used for OAuth2 authentication. Stages appends /oauth2/v2.0/authorize , to authorize the access. For receiving tokens, /oauth2/v2.0/token will be appended to the login server address.
scope +
state.attribute.name
  • Description: This property specifies a column name, which will be used by stages to store the file status.
document.content.type.name +
  • Default Value: Document
  • Description: Name of the document content type. Sharepoint supports multiple content types but stages only supports the default type for documents.
link.content.type.name +
  • Default Value: Link to a document
  • Description: The second content type which is supported by stages.
  • Known Issue: Typo in Default Value. Has to be Link to a Document
use.system.account.for.download +
  • Default Value: false
  • Description: When set to true, files will be downloaded using the system account.

Azure Portal

Authentication

Every application registered at the Microsoft azure portal can register Redirect URIs in the Authentication section of the applications registration page shown in the picture below.

For the authentication process to work, you have to add the following redirect to the list:

 <protocol>://<stages-hostname>:<port>/stages/app/files/oauth_callback
  • Protocol: Microsoft only accepts https expect for testing scenarios on localhost (then http is valid as well)
  • Stages-hostname: Hostname of the server, users can access the Stages application
  • Port: Port Stages is running on (80 for http, 443 for https) or any other custom port

API Permissions

In addition to the Redirect URIs, the application needs permissions for file handling in behalf of the user. The picture below shows, how this should look like:

Repository Configuration

Access to SharePoint Online projects can be configured in Stages processes via “Management > File Management > Repositories”.

Name:

The name of this SharePoint Online configuration. This name will be used by Stages to refer to this repository configuration (e.g. in repository plan)

Host:

This selection field contains an entry for each cms-host section in the Stages configuration file (config.xml). You can select the host for this repository configuration.

Site:

Define a site parameter for this repository configuration. The site is the path to the location, where your document libraries are located on the SharePoint server. The site is one piece for the complete connection string to the SharePoint server. The connection string is build like that: | host.url | : | port | | /site/ | | documentLibrary | .

This overwrites the path from the URL entered in the configuration file (config.xml).

Example:

  • config.xml: <cms-host name="http://mySharePoint.de:123/myPath/to/mySite" />
  • Value in Site: myPath/to/another/Repository
  • Resulting URL: http://mySharePoint.de:123/myPath/to/another/Repository
  • The path from the config.xml gets overwritten by the value from Repository Path.
Document Library:

Defines the name of the document library. The document library is one piece for the complete connection string to the SharePoint server. The connection string is build like that: | host.url | : | port | | /site/ | | documentLibrary | .

Root Folder:

Defines a root folder inside the given document library. Every file linked or uploaded to a repository, which defines a root folder in the configuration, will be inside this root folder.

Default Lifecycle

Select a lifecycle from the process metamodel as default for files from this repository.

Known Limitations

Commit comments for file versions

For each checkin of a file, the user can attach a comment for the version which gets created. The Microsoft Endpoint, which is used to read that information, delivers the same checkin comment for each version. This comment is simply the latest checkin comment. (Opened issue at Github)

Behavior of Lock/Unlock

Currently, the graph API only supports checkin/checkout and no Undo-Checkout. So for every lock/unlock a new version of that file is created in sharepoint online.

Initial commit

Creates two versions (one for the creation of a new file/ second for updating the properties)

Set State

After setting the state of a Sharepoint Online document, the assignment to the Stages user gets lost. The modifier will be the Sharepoint Online user instead of the Stages user.

Major / Minor Version

The Graph API, wich is used by the SharePoint Online Adapter, does currently not support setting major/minor versions when uploading a file.