Release - 5.2.0

Hot-fix: 5.2.1 (20-01-2023)

Bugs:

  • For some content, when we access via dial code scanner, The play button does not play the content when click - KN-856 NOTE: Please deploy content-publish Flink job to apply the patch for the above fix.

  • csp-migrator Flink job enhancement to upload external URL artefacts and Google Drive artefacts to sunbird cloud container. NOTE: Please deploy csp-migrator Flink job to apply the patch for the above fix.

Component
Build Job
Build Tag
Deploy Job
Deployment
Comment

Knowledge-platform-jobs

Build/KnowledgePlatform/FlinkJobs

Deploy/KnowledgePlatform/FlinkJobs

Jobs to be deploy:

  1. csp-migrator

  2. content-publish

Hot-fix: 5.2.0 (16-01-2023)

Bugs:

Mobile:- Not getting the merit certificate, the scores are not updated on the TOC page. KN-731

Sunbird-Content-Player

Whitelist urls config fixes

Required configuration changes: The parent container(Portal & Mobile App’s) should have pass the CNAME or blob URLs as a whiteListUrl configuration. Previously it was hard-coded in player, from this release we are expecting this whiteListUrl as a configuration. The URLs that passed as configuration only will allow from player, other URLs will be blocked.

playerConfig = {
   context: ... //context config
   config: { whiteListUrl : ['https://obj.stage.sunbirded.org/**']} //whitelist URLs array config
   metadata: ... // metadata of the content
   data: ... // body of the content
}

hot-fix changes(release-5.2.0 itself)

Release-5.1.2 hot-fix changes are merged as part of the existing release-5.2.0 itself.

Bug

Course progress does not get updated correctly( End event summary fix). #KN-710 (It will go has hot fix)

Sunbird-Video-Player

End event summary fix

5.2.0 (06-12-2022)

Discussion thread: https://github.com/Sunbird-Knowlg/Community/discussions/76

Start date
End date

Planning phase

12 Sept 2022

23 Sept 2022

Sprint 1

26 Sept 2022

14 Oct 2022

Sprint 2

17 Oct 2022

4 Nov 2022

PPV

7 Nov 2022

18 Nov 2022

Prod

21 Nov 2022(06 Dec 2022)

Features

  • Angular version upgrade

    • PDF Player (12 to 14 with IVY) #KN-316

    • Video, Epub Players(9 to 12) #KN-523

  • One step installation of Knowledge-Platform #KN-585

  • Design: Separation of question-set & Collection-Editor #KN-8

  • CSP - Knowlg microservices should be cloud agnostic #KN-603

    As a part of CSP changes part 2, migration of DIAL service is completed and signing off.

  • CSP - GCP video streaming interface(Slipped - Pushing as hot-fix of release-5.2.0) #KN-549

(Adopter should integrate)

  • Player: Published as web-component for ease of integration which is framework agnostic

Bug

  • Properties with underscore are getting omitted from context data search#KN-546 (It will go has hot fix)

  • Unable to release dial codes from collection#KN-547

Known Issues

  • QR code is not getting updated on UI when updated through CSV#KN-730

Default values for config

default config for flink-jobs and services

cloudstorage_relative_path_prefix_content: "CONTENT_STORAGE_BASE_PATH"
cloudstorage_relative_path_prefix_dial: "DIAL_STORAGE_BASE_PATH"
cloudstorage_metadata_list: '["appIcon", "artifactUrl", "posterImage", "previewUrl", "thumbnail", "assetsMap", "certTemplate", "itemSetPreviewUrl", "grayScaleAppIcon", "sourceURL", "variants", "downloadUrl", "streamingUrl", "toc_url", "data", "question", "solutions", "editorState", "media", "pdfUrl", "transcripts"]'

Please define below variables

cloudstorage_replace_absolute_path: 'true'
cloudstorage_base_path: "https://sunbirddevbbpublic.blob.core.windows.net"
valid_cloudstorage_base_urls: '["https://sunbirddevbbpublic.blob.core.windows.net"]'

Deprecated variables

  • sunbird_cloud_storage_type

  • sunbird_public_storage_account_name

  • sunbird_public_storage_account_key

  • azure_public_container

  • sunbird_content_azure_storage_container

Component
Build Job
Build Tag
Deploy Job
Deployment Tag
Comment

Schema upload

NA

NA

Deploy/Kubernetes/UploadSchema

Deploy this before deploying the service and flink-jobs.

Kafka setup

NA

NA

Deploy/KnowledgePlatform/KafkaSetup

Deploy this before deploying flink-jobs.

Sync Tool

Build/KnowledgePlatform/SyncTool

NA

NA

migratecspdata - Add this command to the command list in the Deploy/KnowledgePlatform/Neo4jElasticSearchSyncTool Jenkins job.

Knowledge-platform

Build/Core/Content

Build/Core/Taxonomy

Deploy/Kubernetes/Content

Deploy/Kubernetes/Taxonomy

Build and deploy the content-service and taxonomy-service. Please find the configuration changes here.

Sunbird-learning-service

Build/KnowledgePlatform/Learning

Deploy/KnowledgePlatform/Learning

dial-service

Build/Core/Dial

Deploy/Kubernetes/Dial

Onboard APIs

NA

NA

Deploy/Kubernetes/OnboardAPIs

Knowledge-mw-service

Build/Core/KnowledgeMW

Deploy/Kubernetes/KnowledgeMW

Knowledge-platform-jobs

Build/KnowledgePlatform/FlinkJobs

Deploy/KnowledgePlatform/FlinkJobs

Add the below job list to the job_names_to_deploy list in the Deploy/KnowledgePlatform/FlinkJobs jenkins job

csp-migrator,

live-node-publisher,

live-video-stream-generator,

cassandra-data-migration

Deploy the

assessment-enrichment,

content-publish,

qrcode-image-generator, search-indexer,

csp-migrator,

live-node-publisher,

live-video-stream-generator,

cassandra-data-migration flink jobs.

Please find the configuration changes here.

Sunbird-Collection-Editor

NA

NA

NA

NA

Sunbird-Content-Editor

Build/Plugins/ContentEditor

Deploy/Plugins/ContentEditor

NA

Sunbird-Generic-Editor

Build/Plugins/GenericEditor

Deploy/Plugins/GenericEditor

NA

Sunbird-content-plugins

Build/Plugins/ContentPlugins

Deploy/Plugins/ContentPlugins

NA

Sunbird-pdf-player

NA

NA

NA

Upgraded to Angular 14 (from Angular 9)

Sunbird-video-player

NA

NA

NA

Upgraded to Angular 12 (from Angular 9)

Sunbird-epub-player

NA

NA

NA

Upgraded to Angular 12 (from Angular 9)

Configurations

Service/Jobs
Old Configuration
New Configuration

cloud_storage_type: "{{ sunbird_cloud_storage_type }}" azure_storage_key: "{{ sunbird_public_storage_account_name }}"

azure_storage_secret: "{{ sunbird_public_storage_account_key }}"

azure_storage_container: "{{ sunbird_content_azure_storage_container }}"

cloud_storage_type: "{{ cloud_service_provider }}" cloud_storage_key: "{{ cloud_public_storage_accountname }}" cloud_storage_secret: "{{ cloud_public_storage_secret }}" cloud_storage_endpoint: "{{ cloud_public_storage_endpoint }}" cloud_storage_container: "{{ cloud_storage_content_bucketname }}"

cloudstorage { metadata.replace_absolute_path={{ cloudstorage_replace_absolute_path | default('false') }} relative_path_prefix={{ cloudstorage_relative_path_prefix_content }}

metadata.list={{ cloudstorage_metadata_list }} read_base_path="{{ cloudstorage_base_path }}" write_base_path={{ valid_cloudstorage_base_urls }}

}

cloud_storage_type: "azure" azure_storage_key: "{{ sunbird_public_storage_account_name }}"

azure_storage_secret: "{{ sunbird_public_storage_account_key }}"

azure_storage_container: "{{ sunbird_content_azure_storage_container }}"

cloud_storage_type: "{{ cloud_service_provider }}" cloud_storage_key: "{{ cloud_public_storage_accountname }}"

cloud_storage_secret: "{{ cloud_public_storage_secret }}" cloud_storage_endpoint: "{{ cloud_public_storage_endpoint }}" cloud_storage_container: "{{ cloud_storage_content_bucketname }}"

cloudstorage { metadata.replace_absolute_path={{ cloudstorage_replace_absolute_path | default('false') }} relative_path_prefix={{ cloudstorage_relative_path_prefix_content }}

metadata.list={{ cloudstorage_metadata_list }} read_base_path="{{ cloudstorage_base_path }}" write_base_path={{ valid_cloudstorage_base_urls }}

}

cloud_storage_type="{{ cloud_store }}"

azure_storage_key="{{ sunbird_public_storage_account_name }}"

azure_storage_secret="{{ sunbird_public_storage_account_key }}"

azure_storage_container="{{ azure_public_container }}"

cloud_storage_type: "{{ cloud_service_provider }}" cloud_storage_key: "{{ cloud_public_storage_accountname }}" cloud_storage_secret: "{{ cloud_public_storage_secret }}" cloud_storage_endpoint: "{{ cloud_public_storage_endpoint }}" cloud_storage_container: "{{ cloud_storage_content_bucketname }}"

cloudstorage { metadata.replace_absolute_path={{ cloudstorage_replace_absolute_path | default('false') }} relative_path_prefix={{ cloudstorage_relative_path_prefix_content }}

metadata.list={{ cloudstorage_metadata_list }} read_base_path="{{ cloudstorage_base_path }}" write_base_path={{ valid_cloudstorage_base_urls }}

}

cloud_storage_type="{{ cloud_store }}"

azure_storage_key="{{ sunbird_public_storage_account_name }}"

azure_storage_secret="{{ sunbird_public_storage_account_key }}"

azure_storage_container="{{ azure_public_container }}"

cloud_storage_type: "{{ cloud_service_provider }}" cloud_storage_key: "{{ cloud_public_storage_accountname }}" cloud_storage_secret: "{{ cloud_public_storage_secret }}" cloud_storage_endpoint: "{{ cloud_public_storage_endpoint }}" cloud_storage_container: "{{ cloud_storage_content_bucketname }}"

cloudstorage { metadata.replace_absolute_path={{ cloudstorage_replace_absolute_path | default('false') }} relative_path_prefix={{ cloudstorage_relative_path_prefix_content }}

metadata.list={{ cloudstorage_metadata_list }} read_base_path="{{ cloudstorage_base_path }}" write_base_path={{ valid_cloudstorage_base_urls }}

}

cloud_storage_type="{{ cloud_store }}"

azure_storage_key="{{ sunbird_public_storage_account_name }}"

azure_storage_secret="{{ sunbird_public_storage_account_key }}"

azure_storage_container="{{ azure_public_container }}"

cloud_storage_type="{{ cloud_service_provider }}" cloud_storage_key="{{ cloud_public_storage_accountname }}"

cloud_storage_secret="{{ cloud_public_storage_secret }}" cloud_storage_container="{{ cloud_storage_dial_bucketname | default("dial") }}"

cloudstorage { metadata.replace_absolute_path={{ cloudstorage_replace_absolute_path | default('false') }} relative_path_prefix={{ cloudstorage_relative_path_prefix_dial }}

metadata.list={{ cloudstorage_metadata_list }} read_base_path="{{ cloudstorage_base_path }}" write_base_path={{ valid_cloudstorage_base_urls }}

}

cloudstorage { metadata.replace_absolute_path={{ cloudstorage_replace_absolute_path | default('false') }} relative_path_prefix={{ cloudstorage_relative_path_prefix_content }}

metadata.list={{ cloudstorage_metadata_list }} read_base_path="{{ cloudstorage_base_path }}"

}

New Flink Jobs:

Migration process:

refer Data Migration page for more details.

API Deprecation details:

refer Deprecations Release-5.2.0 page for more details

Schema Deprecation properties:

relName and relTrackable properties have been deprecated from the relational metadata schema.

Deprecated Properties
Alternate Properties

relName

name

relTrackable

optional

Last updated