TOM.NET 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 User and AccessToken classes, a bitmap indicating which system-wide privileges a user had, was the same by definition.

As of SDL Web 8.5, the AccessToken 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 User class does not necessarily reflect this value anymore.

In practice, the User.Privileges property is deprecated and should no longer be used, and neither should the now outdated AccessToken.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 PublishTransaction.Undo() method is no longer present. In the TOM.NET Event System, UndoPublishTransactionEventArgs is also gone.

New API items introduced to support system privileges
The new system privileges introduced in SDL Web 8.5 result in the following new TOM.NET API items:
API item.NET AssemblyDescription
Tridion.ContentManager.Security.SystemPrivilege Tridion.ContentManager.Common.dllRepresents System Privilege assigned to a group or inherited by user.
Tridion.ContentManager.Security.TcmSystemPrivileges Tridion.ContentManager.Common.dllContains list of constants for built-in Content Manager System Privileges.
AccessToken.InheritedSystemPrivileges Tridion.ContentManager.dllRepresents a dictionary of system privileges current user inherits from groups user is in.
AccessToken.HasSystemPrivilege() Tridion.ContentManager.dllChecks if the current user's Access Token has demanded system privilege.
Group.SystemPrivilege Tridion.ContentManager.dllA collection of system privileges assigned for this group.
Group.InheritedSystemPrivileges Tridion.ContentManager.dllRepresents a dictionary of system privileges this group inherits parent groups.
Session.SystemManager.GetSystemPrivileges() Tridion.ContentManager.dllGets all registered system-wide privileges.
Session.SystemManager.GetSystemAdministratorGroup() Tridion.ContentManager.dllGets the system administrator group.
TcmExtension.RegisterSystemPrivilege() Tridion.ContentManager.dllRegisters custom system-wide privileges.
New API items introduced to support notification broadcasting
The new notification broadcast feature introduced in SDL Web 8.5 result in the following new TOM.NET API items:
API item.NET AssemblyDescription
NotificationMessage Tridion.ContentManager.Common.dllRepresents a notification message
Session.NotificationsManager Tridion.ContentManager.dllProvides functionality to send notifications
New API items introduced to support the new binary content storage framework
The new binary content storage framework introduced in SDL Web 8.5 results in the following new TOM.NET API items:
API item.NET AssemblyDescription
Tridion.ContentManager.IPermanentStorageProvider Tridion.ContentManager.dllDefines the mechanism for storing binaries in the permanent content storage.
Tridion.ContentManager.PermanentStorageProvider Tridion.ContentManager.dllAbstract class representing storage for uploaded binaries.
Tridion.ContentManager.DatabaseBinaryContentStorage Tridion.ContentManager.dllDatabase storage for uploaded binaries.
FileSystemBinaryContentStorage Tridion.ContentManager.dllRepresents file system storage for uploaded binaries. It can be used both as temporary and as permanent storage.
AmazonS3BinaryContentStorage Tridion.ContentManager.Extensibility.AmazonStorage.dllUses Amazon S3 storage to implement the IBinaryContentStorage interface.
AzurePermanentBlobStorageProvider Tridion.ContentManager.Extensibility.AzureStorage.dllEncapsulates mechanism to store, retrieve and remove files from Microsoft Azure Storage.
Miscellaneous new API items
TOM.NET now also has the following new API items:
API item.NET AssemblyDescription
Tridion.ContentManager.LoadFlags.ExpandLinks Tridion.ContentManager.Common.dll
Load expandable links with fully loaded data objects:
  • ComponentData.Schema
  • RepositoryLocalObjectData.MetadataSchema
  • RepositoryData.MetadataSchema
  • TemplateData.ParameterSchema
  • PageTemplateData.PageSchema
Tridion.ContentManager.Security.Rights.PublicationAdministration Tridion.ContentManager.Common.dllRight 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.
Session.AccessToken Tridion.ContentManager.dllGets the access token for which this session was created.
Session.AllowReadDynamicContent Tridion.ContentManager.dllGets flag indicating whether allow to show content/changes of items that are checked out.
UsersFilter.ExcludeDisabledUsers Tridion.ContentManager.dllGets or sets a value indicating whether disabled users should be excluded from the list.
GroupMembersFilter.ContextRepository Tridion.ContentManager.dllGets or sets the RepositoryData to filter on. Only trustees which are in the scope of this repository will be returned.
GroupMembersFilter.ExcludeDisabledTrustees Tridion.ContentManager.dllGets or sets a value indicating whether disabled users should be excluded from the result list.
GroupMembersFilter.Recursive Tridion.ContentManager.dllGets or sets whether to include trustees from child groups (recursively).

ItemsFilter.ShowDynamicVersionIfReadableByUser

OrganizationalItemItemsFilter.ShowDynamicVersionIfReadableByUser

RepositoryItemsFilter.ShowDynamicVersionIfReadableByUser

Tridion.ContentManager.dllWhen set to true, show a dynamic version of an item if readable by user. Otherwise, always show latest major version of an item (if available).
BundleSchemasFilter Tridion.ContentManager.dllRepresents the Filter for retrieving the bundle schemas of a publication.
Repository.GetBundleSchemas() Tridion.ContentManager.dllGets a list of Bundle Schemas in this Repository.