Core Service API delta compared to SDL Web 8

Compared to SDL Web 8, the API has changed slightly. Some API changes cause compatibility breaks.

User privileges no longer identical to Access Token privileges

The Privileges property of the UserData and AccessTokenData classes, a bitmap indicating which system-wide privileges a user had, was the same by definition.

As of SDL Web 8.5, the AccessTokenData class calculates its value dynamically based on Group memberships and based on having or not having the SystemAdministration system privilege. It now stores this value in a data structure for system privileges. The Privileges property of the UserData class does not necessarily reflect this value anymore.

In practice, the UserData.Privileges property is deprecated and should no longer be used, and neither should the now outdated AccessTokenData.Privileges property.

Work Items contains dynamic versions, not versionless items

As of SDL Web 8.5, any API call that returns a ProcessInstance or ActivityInstance object no longer contains versionless items in its Subjects property, but rather versioned items with version v0. The same goes for API calls that return WorkItem objects.

Undo publish feature dropped

Because the "undo publish" feature is no longer supported as of SDL Web 8.5, the UndoPublishTransaction() method and UndoState class are no longer present.

New API items introduced to support system privileges
The new system privileges introduced in SDL Web 8.5 result in the following new Core Service API items:
API itemDescription
AccessTokenData.InheritedSystemPrivilegesRepresents a dictionary of system privileges current user inherits from groups user is in.
GroupData.SystemPrivilegeA collection of system privileges assigned for this group.
GroupData.InheritedSystemPrivilegesRepresents a dictionary of system privileges this group inherits from parent groups.
TcmSystemPrivilegesContains list of constants for built-in Content Manager System Privileges.
ICoreService201603.GetSystemPrivileges()Returns a collection of all system privileges that are registered in the system.
AccessTokenData.IsSystemAdministrator()Extension method that checks if current user has system administrative privilege, taking into account the tcm:SystemAdministration system privilege.
AccessTokenData.HasSystemPrivilege()Extension method that checks if current user has a specific system privilege.
New API items introduced to support notification broadcasting
The new notification broadcast feature introduced in SDL Web 8.5 result in the following new Core Service API items:
API itemDescription
NotificationMessageRepresents a notification message
ICoreService201603.BroadcastNotification()Broadcasts notification
Miscellaneous new API items
The Core Service now also has the following new API items:
API itemDescription
LoadFlags.ExpandLinks
Load expandable links with fully loaded data objects:
  • ComponentData.Schema
  • RepositoryLocalObjectData.MetadataSchema
  • RepositoryData.MetadataSchema
  • TemplateData.ParameterSchema
  • PageTemplateData.PageSchema
Rights.PublicationAdministrationRight that gives a user or group of users administrative privileges in the scope of a particular Publication. Such users can read and edit any item in publication, perform a check-in or an undo check-out of items owned by other users, force finish workflow process and so on.
UsersFilterData.ExcludeDisabledUsersGets or sets a value indicating whether disabled users should be excluded from the list.
GroupMembersFilterData.ContextRepositoryGets or sets the RepositoryData to filter on. Only trustees which are in the scope of this repository will be returned.
GroupMembersFilterData.ExcludeDisabledTrusteesGets or sets a value indicating whether disabled users should be excluded from the result list.
GroupMembersFilterData.RecursiveGets or sets whether to include trustees from child groups (recursively).

ItemsFilterData.ShowDynamicVersionIfReadableByUser

OrganizationalItemItemsFilterData.ShowDynamicVersionIfReadableByUser

RepositoryItemsFilterData.ShowDynamicVersionIfReadableByUser

When set to true, shows a dynamic version of an item if readable by the user. Otherwise, it always shows the latest major version of an item (if available).
BundleSchemasFilterDataRepresents the data class of a Filter for a list of bundle schemas for the given repository.