Content Filtering
Contribution Guidelines Edit | Report
Overview
In Sunbird, a tenant is a root organization, that shares common access to the content repository with specific privileges to the software instance. Sunbird allows you to set up a hierarchy of organizations for every instance installed. After sucessfully installing Sunbird, the first step is to create the first root organization also called as the tenant organization, followed by creating a heirarchy of organizations under each of it. Root organizations can define their own framework and set preferences like default language and search categories. The content is categorized in Sunbird is using:
Channel Framework Resource Type Mime Type Content Type
The adopters can choose to mark the search categories as:
-
Whitelisted: Those channels whose content is best suited for their user’s needs and demands. Users can use and explore content across whitelisted channels.
-
Blacklisted: Those channels whose content cannot be accessed. Users cannot access any content from blacklisted channels.
For example, if an adopter whitelists channels X and Y, their users receive content only from channel X and Y. If an adopter blacklists channels X and Y, their users receive content from channels other than from channels X and Y. If an adopter whitelists channels X and Y and blacklists channels Y and Z, their users receive content from (X+Y) minus (Y+Z) = X channel
Once this is configured, Sunbird applies a filter for the content that is made available to users of that organization. Users can only search or navigate to content from the chosen channels.
If an adopter set the $.instance.all keyword inside the whitelisting variable (X,Y, $instance.all), in that case, all the available channels in the instance along with X and Y will be whitelisted.
Let us consider an example of an organization which works in the domain of water conservation and works with multiple NGOs, village panchayats, and district administration authorities in multiple states of India. The organization would like to allow all their stakeholders to have access to the common knowledge repository, and at the same time also allow each stakeholder to independently access content that is specific to the stakeholders. For example, village A in state B is plagued with a problem of industrial effluents depleting the water table at a very rapid pace. The village panchayat needs content with specific solutions. Other states do not require such content. In such a scenario, Sunbird allows content to be filtered for display to a specific group of users for the vilage A of state B.
Version Applicable
This feature is applicable from Sunbird 1.9.0 onwards
Intended Audience
The Sunbird instance administrator
Prerequisites
-
An instance of Sunbird that is successfully installed and configured
-
The instance should have access to the shared EkStep content repository
Taskflow
To enable fitering content according to the various categories set the following environment variables at the time of deployment.
Channel Based Filtering
Sunbird maps each root organization to a concept called a channel. Sunbird allows the instance owner to change the default behavior to channel-based content filtering. Sunbird adopters can access a global, shared content repository (possibly the EkStep content repository). Sunbird does not limit content discovery to a single channel. However, given the diversity of content across channels, content published in one channel may not always be helpful to the users of other channels. To enable filtering of content for a channel,
S No. | Variable Name | Description | Purpose | Default Value | Path | Example |
---|---|---|---|---|---|---|
1 | sunbird_content_service_whitelisted_channels | Configures the channels whose content can be displayed in the Sunbird instance. This is a comma-separated string ex:”A,B,C”where A,B,C are different channels | Variable is used to whitelist the Channel whose content should be displayed | Content Service | Whitelist channels in Sunbird are ekstep.in and 0124758418460180480 | |
2 | sunbird_content_service_blacklisted_channels | Configures the channels whose content should not be displayed in the Sunbird instance this is a comma-separated string ex:”X,Y,Z”where X,Y,Z are channels | Variable is used to blacklist the channel whose content should not be displayed | Content Service | Blacklist channels in Sunbird 0124758449502453761 |
Framework
S No. | Variable Name | Description | Purpose | Default Value | Path | Example |
---|---|---|---|---|---|---|
1 | sunbird_content_filter_framework_whitelist | Configures the framework whose content can be displayed in the portal. This is a comma-separated string ex:”A,B,C”where A,B,C are different framework ID | Variable is used to whitelist the framework whose content should be displayed | Content Service | NCF | |
2 | sunbird_content_filter_framework_blacklist | Configures the framework whose content should not be displayed in the portal this is a comma-separated string ex:”X,Y,Z”where X,Y,Z are framework ID | Variable is used to blacklist the framework whose content should not be displayed | Content Service | NCFCOPY |
Content Type
The content types defined in Sunbird are Resource, Asset, Collection, Course, and Lesson Plan
S No. | Variable Name | Description | Purpose | Default Value | Path | Example |
---|---|---|---|---|---|---|
1 | sunbird_content_filter_contenttype_whitelist | Configures the contentType whose content can be displayed in the portal. This is a comma-separated string ex:”A,B,C”where A,B,C are different contentType | Variable is used to whitelist the contentType whose content should be displayed | Content Service | ||
2 | sunbird_content_filter_contenttype_blacklist | Configures the contentType whose content should not be displayed in the portal this is a comma-separated string ex:”X,Y,Z”where X,Y,Z are contentType | Variable is used to blacklist the contentType whose content should not be displayed | Content Service |
Resource Type The resource type defined in Sunbird are Collection, Lesson Plan, Course, Book, Story, Read
S No. | Variable Name | Description | Purpose | Default Value | Path | Example |
---|---|---|---|---|---|---|
1 | sunbird_content_filter_resourcetype_whitelist | Configures the resourceType whose content can be displayed in the portal. This is a comma-separated string ex:”A,B,C”where A,B,C are different resourceType | Variable is used to whitelist the resourceType whose content should be displayed | Content Service | ||
2 | sunbird_content_filter_resourcetype_blacklist | Configures the resourceType whose content should not be displayed in the portal. This is a comma-separated string ex:”X,Y,Z”where X,Y,Z are resourceType | Variable is used to blacklist the resourceType whose content should not be displayed | Content Service |
Mime Type
The file formats that are supported in Sunbird are application/pdf, video/mp4, video/x-youtube, video/youtube, application/vnd.ekstep.html-archive, application/epub, application/vnd.ekstep.h5p-archive, video/webm, text/x-url
S No. | Variable Name | Description | Purpose | Default Value | Path | Example |
---|---|---|---|---|---|---|
1 | sunbird_content_filter_mimetype_whitelist | Configures the mimeType whose content can be displayed in the portal. This is a comma-separated string ex:”A,B,C”where A,B,C are different mimeType | Variable is used to whitelist the mimeType whose content should be displayed | Content Service | ||
2 | sunbird_content_filter_mimetype_blacklist | Configures the mimeType whose content should not be displayed in the portal this is a comma-separated string ex:”X,Y,Z”where X,Y,Z are mimeType | Variable is used to blacklist the mimeType whose content should not be displayed | Content Service |
Updating the Database
S No. | Variable Name | Description | Purpose | Default Value | Path | |
---|---|---|---|---|---|---|
1 | sunbird_content_service_channel_refresh_cron | Configures the cron job interval to update the channels regularly.E.g: “/5***” this value updates the channel every 5 minutes | Variable is used to set the cron scheduler | Content Service |
For details, refer to the Configuration Variables page
Concepts Covered
Tenant - A tenant is a root organization that shares common access with specific privileges to the software.
Multi-tenant - Multi-tenancy is an architecture in which a single instance of a software application serves multiple customers. Each customer is called a tenant.
Channel - A channel is a unique identifier that makes a tenant unique.
Framework- A structure designed to define the scope of something. On Sunbird, the framework is defined through a string of vocabularies
Resource Type- Resource is the smallest unit of content that can be created on Sunbird. Resource type refers to the different types of resources that can be created on Sunbird, namely, Learn, Play, Practice, Read, Teach, Test
Mime Type- Mime type refers to the different file formats that can be uploaded on Sunbird, for example, .mp4, ECML, EPUB etc.
Content Type- Content type refers to the different resources that can be created on Sunbird, namely, book, course, collection, lesson plan, resource