Introduction
Backstage allows you to restrict which users have access to certain content based on their entitlements. We do this through objects in Backstage called "products".
These products are thin objects and serve mainly to reference external values, which link to the actual entitlement references in 3rd party systems (like Cleeng).
Product objects can be assigned to both assets & edition object (if set on edition they will override the asset level ones) but in our API's their restrictions are only ever applied on the edition. and stream calls.
As of writing this guide asset level product assignment is not yet available.
Flow
From a high level perspective this is how Backtage treats it's entitlements when retrieving a stream for example:
Blocked
When a user is blocked from performing playout you will receive a "blocked" array (similar to how blocked reasons work on asset level) on the edition call which will signify that the user needs to perform an action in order to be able to watch the content.
For example when a user doesn't have the necessary entitlements you will receive a blocked reason called PRODUCTS_MISMATCH_BLOCKED
with the resolvement action entitle_product
and a list of products for the user to purchase.
Streams
If an edition is blocked but you still request a stream for that edition object you will receive a forbidden response.
Product types
Currently supported product types are:
- Subscriptions
- Pass (for example day passes)
- Purchase (indefinite purchases)
- Rental
- Ads