From 145fb555416ab6d2ef9251d281eff8cf363f7627 Mon Sep 17 00:00:00 2001 From: alkalinecoffee Date: Fri, 1 Aug 2025 09:24:41 -0400 Subject: [PATCH 1/3] feat: Remove viewing restrictions spec --- .../profile/parental-controls.md | 102 ---------------- src/openrpc/profile.json | 112 +----------------- src/sdks/core/sdk.config.json | 3 +- 3 files changed, 2 insertions(+), 215 deletions(-) delete mode 100644 requirements/specifications/profile/parental-controls.md diff --git a/requirements/specifications/profile/parental-controls.md b/requirements/specifications/profile/parental-controls.md deleted file mode 100644 index b40b46f01..000000000 --- a/requirements/specifications/profile/parental-controls.md +++ /dev/null @@ -1,102 +0,0 @@ -# Parental Controls Requirements - -Document Status: Proposed Specification - -See [Firebolt Requirements Governance](../../governance.md) for more info. - -| Contributor | Organization | -| -------------- | ------------ | -| Andrew Bennett | Sky | -| Joe Martin | Comcast | - -## 1. Overview - -Content partners need access to the user's parental control preferences in order to tailor the user experience in accordance to those preferences. - -To support this, Firebolt shall provide content partners with access to the user's parental control preferences, allowing them to provide a safe and controlled user experience. Content partners are expected to honor the parental control preferences as set by the user, gating or outright preventing access to unwanted or sensitive content. - -### 1.1. User Stories - -As an app, I want to... - -- Get whether the user has enabled viewing restrictions -- Get a list of content ratings (and sub-ratings, if applicable) the user has chosen to restrict from viewing -- Get whether the user should be able to view unrated content -- Be notified when the user's viewing restriction preferences have changed - -## 2. Table of Contents - -- [1. Overview](#1-overview) - - [1.1. User Stories](#11-user-stories) -- [2. Table of Contents](#2-table-of-contents) -- [3. Constants, Types, and Schemas](#3-constants-types-and-schemas) - - [3.1. Viewing Restriction](#31-viewing-restriction) - - [3.2. Content Rating](#32-content-rating) -- [4. Restrictions](#4-restrictions) - - [4.1. Viewing Restrictions](#41-viewing-restrictions) - -## 3. Constants, Types, and Schemas - -### 3.1. Viewing Restriction - -The Firebolt `Profile` module **MUST** have a `ViewingRestriction` object of the following schema: - -| Property | Type | Required | Description | -| --------- | ---------- | -------- | ------------------------------------------------------------------------------------ | -| `scheme` | `string` | Yes | A rating scheme (e.g. MPAA for US movies). This may be operator or region dependant. | -| `ratings` | `[]Rating` | Yes | A list of ratings the user wishes to restrict. | - -### 3.2. Content Rating - -The Firebolt `Profile` module **MUST** have a `ContentRating` object of the following schema: - -| Property | Type | Required | Description | -| ------------ | ---------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| `rating` | `string` | Yes | A content rating (e.g. PG-13 for an MPAA rated movie). This may be operator or region dependant. | -| `subRatings` | `[]string` | Yes | A list of sub-ratings/content descriptors (e.g. ['V'] for violent content for a US TV based rating scheme). This may be operator or region dependant. | - -## 4. Restrictions - -Apps need to know which parental control restrictions are in place for the current profile so they can curate the user experience in accordance to those restrictions. - -To facilitate this, the `Profile` module will provide convenience methods that allow access to the user's preferred restrictions. - -### 4.1. Viewing Restrictions - -The `Profile` module **MUST** include a `viewingRestrictions` method that returns an object describing the user's preferred viewing restrictions. - -This method's response **MUST** support the following properties: - -| Property | Type | Required | Description | -| ------------------------ | ---------------------- | -------- | --------------------------------------------------------- | -| `enabled` | `boolean` | Yes | Whether or not viewing restrictions are currently enabled | -| `restrictions` | `[]ViewingRestriction` | Yes | | -| `restrictUnratedContent` | `boolean` | Yes | Whether or not unrated content should be viewable | - -This method **MUST** have a corresponding `onViewingRestrictionsChanged` event to notify listeners after a change to any properties have been made and that change has taken effect. - -Access to these methods **MUST** require the `use` role of the `xrn:firebolt:capability:profile:viewingrestrictions` capability. - -```javascript -Profile.viewingRestrictions() -//> { -//> enabled: true, -//> restrictions: [ -//> { -//> scheme: 'MPAA', -//> ratings: [ -//> {rating: 'R'}, -//> {rating: 'NC-17'} -//> ] -//> }, -//> { -//> scheme: 'US_TV', -//> ratings: [ -//> {rating: 'TV-14', subRatings: ['V']}, -//> {rating: 'TV-MA'}, -//> ] -//> } -//> ], -//> restrictUnratedContent: true -//> } -``` diff --git a/src/openrpc/profile.json b/src/openrpc/profile.json index 2186d6f90..e07986f5b 100644 --- a/src/openrpc/profile.json +++ b/src/openrpc/profile.json @@ -97,116 +97,6 @@ } } ] - }, - { - "name": "viewingRestrictions", - "summary": "The profile's preferred viewing restrictions.", - "params": [], - "tags": [ - { - "name": "property:readonly" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:profile:viewingrestrictions" - ] - } - ], - "result": { - "name": "viewingRestrictions", - "summary": "The current viewing restrictions", - "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "restrictions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ViewingRestriction" - } - } - }, - "required": [ - "enabled", - "restrictions" - ] - } - }, - "errors": [], - "examples": [ - { - "name": "Viewing restrictions that disallow content with an MPAA R or US TV-14-V rating", - "params": [], - "result": { - "name": "Default Result", - "value": { - "enabled": true, - "restrictions": [ - { - "scheme": "MPAA", - "ratings": [ - { - "rating": "R" - } - ] - }, - { - "scheme": "US_TV", - "ratings": [ - { - "rating": "TV-14", - "subRatings": [ - "V" - ] - } - ] - } - ] - } - } - } - ] - } - ], - "components": { - "schemas": { - "ContentRating": { - "description": "The rating and subrating for content.", - "type": "object", - "properties": { - "rating": { - "description": "The rating to be restricted. Refer to operator documentation for supported values.", - "type": "string" - }, - "subRatings": { - "description": "A list of sub-ratings to be restricted. Refer to operator documentation for supported values.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "ViewingRestriction": { - "description": "The content viewing restriction.", - "type": "object", - "properties": { - "scheme": { - "description": "The scheme for the restriction (e.g. MPAA for US movies). Scheme values may be region or operator dependant; refer to operator documentation for the scheme values supported on your targeted platform.", - "type": "string" - }, - "ratings": { - "description": "A list of content ratings to be restricted.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ContentRating" - } - } - } - } } - } + ] } diff --git a/src/sdks/core/sdk.config.json b/src/sdks/core/sdk.config.json index 04aabeeac..a4fda7b04 100644 --- a/src/sdks/core/sdk.config.json +++ b/src/sdks/core/sdk.config.json @@ -123,8 +123,7 @@ "use": [ "xrn:firebolt:capability:approve:content", "xrn:firebolt:capability:approve:purchase", - "xrn:firebolt:capability:profile:flags", - "xrn:firebolt:capability:profile:viewingrestrictions" + "xrn:firebolt:capability:profile:flags" ] }, { From 7815bf1b83f7b042cbcf9cab9bbf306448e44887 Mon Sep 17 00:00:00 2001 From: alkalinecoffee Date: Fri, 1 Aug 2025 09:40:58 -0400 Subject: [PATCH 2/3] fix: Remove viewing restrictions from changelog --- CHANGELOG.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2935f7119..5146ae335 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,13 +22,6 @@ # [1.5.0-next.19](https://github.com/rdkcentral/firebolt-apis/compare/v1.5.0-next.18...v1.5.0-next.19) (2025-05-16) -### Features - -* Add Profile.viewingRestrictions method and documentation ([#363](https://github.com/rdkcentral/firebolt-apis/issues/363)) ([2f11672](https://github.com/rdkcentral/firebolt-apis/commit/2f116720b48420813719144404736f36f61ae48d)) - -# [1.5.0-next.18](https://github.com/rdkcentral/firebolt-apis/compare/v1.5.0-next.17...v1.5.0-next.18) (2025-03-03) - - ### Bug Fixes * Updated CPP voiceGuidanceSettings test ([#374](https://github.com/rdkcentral/firebolt-apis/issues/374)) ([49708c5](https://github.com/rdkcentral/firebolt-apis/commit/49708c584610a9932e8b2fbbeee6882689b66a13)) From e8eb92c41c16065e5dbea8bab6da8d35b407762d Mon Sep 17 00:00:00 2001 From: alkalinecoffee Date: Fri, 22 Aug 2025 10:06:00 -0400 Subject: [PATCH 3/3] fix: Revert changelog change --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5146ae335..2935f7119 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,13 @@ # [1.5.0-next.19](https://github.com/rdkcentral/firebolt-apis/compare/v1.5.0-next.18...v1.5.0-next.19) (2025-05-16) +### Features + +* Add Profile.viewingRestrictions method and documentation ([#363](https://github.com/rdkcentral/firebolt-apis/issues/363)) ([2f11672](https://github.com/rdkcentral/firebolt-apis/commit/2f116720b48420813719144404736f36f61ae48d)) + +# [1.5.0-next.18](https://github.com/rdkcentral/firebolt-apis/compare/v1.5.0-next.17...v1.5.0-next.18) (2025-03-03) + + ### Bug Fixes * Updated CPP voiceGuidanceSettings test ([#374](https://github.com/rdkcentral/firebolt-apis/issues/374)) ([49708c5](https://github.com/rdkcentral/firebolt-apis/commit/49708c584610a9932e8b2fbbeee6882689b66a13))