Device-type-sensitive licence checks
This page was never published on the Drupal site.
Overview
This feature optionally extends the SDP licence authorisation logic with an additional check using the device type:
- Devices are assigned device types.
- Products are assigned to these device types.
- A license is (optionally) authorised for a product only if the requesting device's device type is in the list of permitted device types for the product.
The functionality is achieved in two steps:
- When SDP ingests a CMS export file, it assigns products to the existing device types.
- When a license is requested, the authorisation logic can enforce the device-type-sensitive check.
Terms
- Device type: this is an arbitrary label, defined by the operator, that is used to categorise devices. It can be anything (for example, iOS, Android, smartphone, tablet, OTT, CableSTB, and so on).
DeviceProfile
: this is the entity in the SDP data model that represents a type of device. The actual "device type" label that is assigned to the device one of this entity's fields (DeviceProfile.deviceTypeList
).DeviceInformation
: this is a list of name-value pairs, reported by the client device to the back-end, which includes device characteristics like the OS name and version, screen size and resolution, manufacturer, and so on.DeviceClassifier
: this is the entity in the SDP data model that contains the rules that theDeviceInformation
must match for aDeviceProfile
to be assigned to a particular device.PolicyGroup
: the SDP data model name for products.Platform
: the CMS data model entity that contains a list of "features". This is used to assign one or moreDeviceProfile
s to products.
Mapping products to device types
(A product is actually mapped to a DeviceProfile
, of which the device type is a part.)
- This feature reuses the existing CMS capability to link Platforms to Products.
A Platform is a container of features, which effectively assigns a set of features to a Product. - A Product is then eligible for a device if the
DeviceProfile
contains all the features present in the Platform linked to that Product. - If a Product has no Platform assigned to it, it means the Product is eligible for all
DeviceProfile
s. - If a Product has a set of features that is not contained by any DeviceProfile, this product is not eligible for any license authorisation (if device-type-sensitive check is enabled).
The following figure shows a sample configuration that illustrates the relationship between Products and Devices:

Enabling the device-type-sensitive licence check
- This extra check can be enabled or disabled via the configuration.
The default value isfalse
(disabled) - When enabled, it is applied in both post-delivery (
isContentAuthorized
) and pre-delivery (getContentRights
).
Updating products when a new device type is added
When the operator adds, deletes, or updates a DeviceProfile
, existing products (PolicyGroup
instances) in SDP may need to be assigned to or removed from that DeviceProfile
.
This re-mapping can have a significant performance impact if the number of existing products is very large. On the other hand, changing the existing DeviceProfile
s only happens very infrequently.
Alternatively, the operator can trigger a full CMS export to force a full re-mapping of products to device types.
Since a full CMS export does not transmit any data deletions done since the last export, a successful delta export must have been performed just before the full export.
Use cases
Updating products in the CMS
Creating a Product with no features linked to it
- The CMS exports the Product downstream with no link to a Platform.
- The SDP ingests the Product and creates a
PolicyGroup
with no features. - The SDP assigns all existing
DeviceProfile
instances to thisPolicyGroup
.
Creating a Product with features via REST API
- The CMS exports the Product downstream and also the link to the Platform that contains the features.
- The SDP ingests the Product and creates a
PolicyGroup
with the associated features. - The SDP looks at the
DeviceProfile
table and assigns all theDeviceProfile
instances whose features contain the features in thePolicyGroup
to thisPolicyGroup
.
Editing a Product
- The CMS exports the Product downstream linked to the Platform with the new list of features.
- The SDP ingests the Product and updates the list of features assigned to the
PolicyGroup
. - The SDP looks at the
DeviceProfile
table and assigns/removesDeviceProfile
instances to/from thisPolicyGroup
according to thePolicyGroup
's new feature list.
Updating a Device Profile in SDP
Creating a new Device Profile
- The SDP creates the new
DeviceProfile
instance. - The SDP looks at the
PolicyGroup
table and assigns the newDeviceProfile
to thePolicyGroup
s whose features are contained by theDeviceProfile
's features.Note that
PolicyGroup
s with no features (PG2 in the example above) are also assigned to the newDeviceProfile
.
Removing a Device Profile
- The SDP deletes the
DeviceProfile
instance. - The SDP removes this
DeviceProfile
from allPolicyGroup
instances.
Editing a Device Profile
In this use case, the operator adds/removes features to/from a DeviceProfile
.
- The SDP updates the
DeviceProfile
instance as requested. - The SDP looks at the
PolicyGroup
table and assigns/removes theDeviceProfile
to/from thePolicyGroup
s according to the new list of features.
Requesting a licence (end user)
Device type licence check is not enabled
SDP's isContentAuthorized
and getContentRights
APIs either authorise the license or not, depending on whether the content is included in a PolicyGroup
that is linked by an ACL of the account (that is, if the user has purchased the content).
Device type licence check is enabled
In addition to what it does when this check is not enabled (above), the SDP:
- Looks up the
DeviceProfile
from the device identifier in the token. - Verifies that the
PolicyGroup
that is linked in the account's ACL points to the aboveDeviceProfile
.