❔
Sunbird inQuiry
  • LEARN
    • Overview
    • Capabilities
    • Components
    • Technical Architecture
    • Product & Developer Guide
      • Quick Starter Guide
        • inQuiry Components
          • Editor
          • Player
          • inQuiry Service
      • Question & Question Set Editor
        • Architecture
        • Features
        • Configuration
        • Source Code
        • APIs
        • FAQ's
      • Question & Question Set Service
        • Architecture
        • Features
        • Schema
          • Question Schema
          • QuestionSet Schema
        • APIs
          • V1
            • Question API's
              • Create Question
              • Read Question
              • Read Private Question
              • Update Question
              • Submit for Review Question
              • Publish Question
              • Retire Question
              • Question List
              • Import Question
              • Copy Question
              • Reject Question
            • QuestionSet API's
              • Create QuestionSet
              • Update QuestionSet
              • Read QuestionSet
              • Read Private QuestionSet
              • Review QuestionSet
              • Reject QuestionSet
              • Publish QuestionSet
              • Retire QuestionSet
              • Update Hierarchy QuestionSet
              • Read QuestionSet Hierarchy
              • Import QuestionSet
              • Copy QuestionSet
          • V2
            • Question API's
              • Create Question
              • Read Question
              • Read Private Question
              • Update Question
              • Submit for Review Question
              • Reject Question
              • Publish Question
              • Copy Question
              • Import Question
              • Question List
              • Retire Question
            • QuestionSet API's
              • Create QuestionSet
              • Read QuestionSet
              • Read Private QuestionSet
              • Update QuestionSet
              • Review QuestionSet
              • Reject QuestionSet
              • Publish QuestionSet
              • Update Hierarchy QuestionSet
              • Read QuestionSet Hierarchy
              • Import QuestionSet
              • Copy QuestionSet
              • Retire QuestionSet
        • Configuration
        • Source Code
        • FAQs
      • Question Set Player
        • Architecture
        • Configuration
        • Source Code
        • APIs
        • FAQ's
      • Analytics
      • Code Coverage Stats
    • 🚀Product Roadmap
  • ENGAGE
    • Discuss
  • Use
    • Overview
    • Developer Installation
      • Question & Question Set Service
        • Installation
        • Configuration
      • Question Set Editor
        • Installation
          • Object Category Definition
          • Sample Form Configuration
      • Question set Player
        • Installation
    • Release Plan & Calendar
      • Release calendar 5.2.0, 5.3.0, 5.4.0, 5.5.0, 5.6.0
      • Release calendar 5.7.0, 6.0.0,6.1.0 and 6.2.0
    • Release notes
      • inQuiry - Release v8.0.0 (Ongoing)
      • inQuiry - Release v7.0.0 (Latest)
      • inQuiry - Release v6.2.0
      • inQuiry - Release v6.1.0
      • inQuiry - Release v6.0.0
      • inQuiry - Release v5.7.0
      • inQuiry - Release v5.6.0
      • inQuiry - Release v5.5.0
      • inQuiry - Release v5.4.0
      • inQuiry - Release v5.3.0
      • inQuiry - Release v5.2.0
      • inQuiry - Release v5.1.0
      • inQuiry - Release v5.0.0
      • inQuiry - Release V 4.10.0
      • inQuiry - Release V 4.9.0
      • inQuiry - Release V 4.8.0
      • inQuiry - Release V 4.7.0
    • Deprecations
      • Release-5.6.0 (upcoming)
      • Release-5.5.0
    • Learn More
      • Dependencies
      • Delete User Functionality
        • User PII Cleanup
        • Asset Ownership Transfer
  • Guidelines or Best practices
    • Testing QA guidelines
    • Developer coding guidelines
  • Archived
    • Use Cases
    • Components
    • Server Installation
    • Capabilities
Powered by GitBook
On this page
  • Document Release Version
  • Release Tags:
  • Question Set Editor:
  • Question Set Editor Web Component:
  • QuML Player:
  • QuML Player Web Component:
  • Resource Library:
  • Question & Question Set Service:
  • Configuration Changes For Assessment Service:
  • V2 API Onboarding Script:
  • DB Model Changes For V2 API:
  • Jenkins Job Changes:
  • Note:

Was this helpful?

Edit on GitHub
  1. Use
  2. Release notes

inQuiry - Release v6.0.0

PreviousinQuiry - Release v6.1.0NextinQuiry - Release v5.7.0

Last updated 1 year ago

Was this helpful?

Document Release Version

Project
Release Version
Date

Sunbird Inquiry

R 6.0.0

7 July 2023

Important note to the adopters

This release includes upgrades to inQuiry building block to function with the QuML 1.1 format. The changes are detailed out in the link . The V2 version of the components as it is known from release 6.0.0 will start working with QuML 1.1 format and hence the questions that previously exist in the system has to be migrated from QuML 1.0 to QuML 1.1 format. A one time migration activity needs to be done on the existing question / questionsets.

Following are the Planned Tickets of R 6.0.0

Sl.no
JIRA Id
Issue Type
Description

1

IQ-480

Minor-Enhancement

Integrate V2 player and Editor in the inQuiry Portal

2

IQ-469

Bug

User is able to see all the fields editable in review mode

3

IQ-468

Minor-Enhancement

Remove hard coding in the QuML Player

4

IQ-443

Minor-Enhancement

inQuiry Documentation

5

IQ-442

Minor-Enhancement

Integrate latest common form library in editor

6

IQ-421

Minor-Enhancement

Remove hard coding of content organisation and target frameworks to point to a specific framework

7

IQ-414

Minor-Enhancement

Editor/Player: Update the Node version from 14 to 16

8

IQ-413

Minor-Enhancement

Mark it video, PDF, and EPUB player as optional in the resource library

9

IQ-412

Minor-Enhancement

Integration of Editor and Player web component into inQuiry portal

10

IQ-411

Minor-Enhancement

Integration of QuML player web component into the sunbird resource library

11

IQ-410

Minor-Enhancement

Integration of QuML player web component into the editor

12

IQ-393

Minor-Enhancement

Error standardisation

13

IQ-385

Minor-Enhancement

inQuiry V2 API Implementation

14

IQ-378

Bug

Zoom icon and show answer button are overlapping for the subjective question with image

15

IQ-337

Bug

User is not able to send for review when reset the set max and warning timer for question set

16

IQ-297

Minor-Enhancement

Player changes to ensure QuML compliance

17

IQ-296

Minor-Enhancement

Editor changes to ensure QuML compliance

18

IQ-272

Minor-Enhancement

Inquiry - QuML Design Changes to ensure QuML complaince

19

IQ-148

Bug

Footer is not aligned Properly when console is open.

Release Tags:

Question Set Editor:

Tag: v6.0.0

Install: npm i @project-sunbird/sunbird-questionset-editor@6.0.0

Question Set Editor Web Component:

Tag: v2.0.0

Install: npm i @project-sunbird/sunbird-questionset-editor-web-component@2.0.0

Form field Config Change as per QuML spec 1.1

Form Field
Sample Config as per QuML 1.1
Comments

showTimer

{ "code": "showTimer", "name": "show Timer", "label": "show Timer", "placeholder": "show Timer", "description": "show Timer", "default": false, "dataType": "boolean", "inputType": "checkbox", "editable": true, "required": false, "visible": true, "renderingHints": { "class": "sb-g-col-lg-1" } }

Data type of showTimer is changes from string to boolean so form Config change is required for this field.

showFeedback

{ "code": "showFeedback", "name": "Show Feedback", "label": "Show Question Feedback", "placeholder": "Select Option", "description": "If feedback is selected, users are informed whether they have correctly answered question or not", "dataType": "boolean", "inputType": "checkbox", "editable": true, "required": false, "visible": true, "renderingHints": { "class": "sb-g-col-lg-1" } }

Data type of showFeedback is changes from string to boolean, so form Config change is required for this field.

showSolutions

{ "code": "showSolutions", "name": "Show Solution", "label": "Show Solution", "placeholder": "Select Option", "description": "If show solution is selected then solutions for each question will be shown to the user", "dataType": "boolean", "inputType": "checkbox", "editable": true, "required": false, "visible": true, "renderingHints": { "class": "sb-g-col-lg-1" } }

Data type of showSolutions is changed from string to boolean, so form Config change is required for this field.

warningTime

No Config for warning time.

This field is not needed in QuML 1.1 .Warning time will be handled by playerConfig.

bloomsLevel

{ "code": "complexityLevel", "dataType": "list", "description": "Learning level", "editable": true, "inputType": "nestedselect", "label": "Learning level", "name": "Learning level", "placeholder": "Select Learning level", "renderingHints": { "class": "sb-g-col-lg-1" }, "required": false, "visible": true, "range": [ "remember", "understand", "apply", "analyse", "evaluate", "create" ], "validations": [] }

bloomsLevel property is changed to complexityLevel and it's datatype is also changed from string to array so the config change is required for this field

QuML Player:

Tag: v6.0.0

Install: npm i @project-sunbird/sunbird-quml-player@6.0.0

QuML Player Web Component:

Tag: v2.0.0

Install: npm i @project-sunbird/sunbird-quml-player-web-component@2.0.0

Resource Library:

Tag: v6.0.0

Install: npm i @project-sunbird/sunbird-resource-library@6.0.0

Question & Question Set Service:

Component
Service To Build
Build Tag
Core Release Tag
Service To Deploy
Deploy Tag
Comment

Assessment

Build/job/Core/job/Assessment/

Deploy/job/dev/job/Kubernetes/job/Assessment/

InquiryUploadSchema

NA

NA

NA

Deploy/job/dev/job/Kubernetes/job/InquiryUploadSchema/

NA

InQuiryFlink Job

Build/job/KnowledgePlatform/job/InquiryFlinkJob

Not Applicable

Deploy/job/dev/job/KnowledgePlatform/job/InquiryFlinkJob/

No Configuration Changes

Configuration Changes For Assessment Service:

File Name: ansible/roles/stack-sunbird/templates/assessment-service_application.conf

actor {
    deployment {
      /healthActor
        {
          router = smallest-mailbox-pool
          nr-of-instances = 5
          dispatcher = actors-dispatcher
        }
      /itemSetActor
        {
          router = smallest-mailbox-pool
          nr-of-instances = 2
          dispatcher = actors-dispatcher
        }
      /questionActor
        {
          router = smallest-mailbox-pool
          nr-of-instances = 5
          dispatcher = actors-dispatcher
        }
      /questionSetActor
        {
          router = smallest-mailbox-pool
          nr-of-instances = 5
          dispatcher = actors-dispatcher
        }
      /questionV5Actor
        {
          router = smallest-mailbox-pool
          nr-of-instances = 5
          dispatcher = actors-dispatcher
        }
      /questionSetV5Actor
        {
          router = smallest-mailbox-pool
          nr-of-instances = 5
          dispatcher = actors-dispatcher
        }
    }
  }


assessment.copy.props_to_remove=["downloadUrl", "artifactUrl", "variants",
  "createdOn", "collections", "children", "lastUpdatedOn", "SYS_INTERNAL_LAST_UPDATED_ON",
  "versionKey", "s3Key", "status", "pkgVersion", "toc_url", "mimeTypesCount",
  "contentTypesCount", "leafNodesCount", "childNodes", "prevState", "lastPublishedOn",
  "flagReasons", "compatibilityLevel", "size", "publishChecklist", "publishComment",
  "LastPublishedBy", "rejectReasons", "rejectComment", "gradeLevel", "subject",
  "medium", "board", "topic", "purpose", "subtopic", "contentCredits",
  "owner", "collaborators", "creators", "contributors", "badgeAssertions", "dialcodes",
  "concepts", "keywords", "reservedDialcodes", "dialcodeRequired", "leafNodes", "sYS_INTERNAL_LAST_UPDATED_ON", "prevStatus", "lastPublishedBy", "streamingUrl", "publish_type", "migrationVersion"]
  
# V5 API Configurations
v5_supported_qumlVersions=[1.1]
v5_default_qumlVersion=1.1   

V2 API Onboarding Script:

File Name: ansible/roles/kong-api/defaults/main.yml

- name: questionCreateV2
  uris: "{{ question_prefix }}/v2/create"
  upstream_url: "{{ assessment_service_url }}/question/v5/create"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentCreate
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionReadV2
  uris: "{{ question_prefix }}/v2/read"
  upstream_url: "{{ assessment_service_url }}/question/v5/read"
  strip_uri: true
  plugins:
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: ip
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionPrivateReadV2
  uris: "{{ question_prefix }}/v2/private/read"
  upstream_url: "{{ assessment_service_url }}/question/v5/private/read"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentAccess
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionUpdateV2
  uris: "{{ question_prefix }}/v2/update"
  upstream_url: "{{ assessment_service_url }}/question/v5/update"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentUpdate
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionRetireV2
  uris: "{{ question_prefix }}/v2/retire"
  upstream_url: "{{ assessment_service_url }}/question/v5/retire"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentAdmin
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionReviewV2
  uris: "{{ question_prefix }}/v2/review"
  upstream_url: "{{ assessment_service_url }}/question/v5/review"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentAdmin
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionPublishV2
  uris: "{{ question_prefix }}/v2/publish"
  upstream_url: "{{ assessment_service_url }}/question/v5/publish"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentCreate
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionListV2
  uris: "{{ question_prefix }}/v2/list"
  upstream_url: "{{ assessment_service_url }}/question/v5/list"
  strip_uri: true
  plugins:
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: ip
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionRejectV2
  uris: "{{ question_prefix }}/v2/reject"
  upstream_url: "{{ assessment_service_url }}/question/v5/reject"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentAdmin
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: copyQuestionV2
  uris: "{{ question_prefix }}/v2/copy"
  upstream_url: "{{ assessment_service_url }}/question/v5/copy"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentCreate
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionSetCreateV2
  uris: "{{ questionset_prefix }}/v2/create"
  upstream_url: "{{ assessment_service_url }}/questionset/v5/create"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentCreate
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionSetReadV2
  uris: "{{ questionset_prefix }}/v2/read"
  upstream_url: "{{ assessment_service_url }}/questionset/v5/read"
  strip_uri: true
  plugins:
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: ip
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionSetPrivateReadV2
  uris: "{{ questionset_prefix }}/v2/private/read"
  upstream_url: "{{ assessment_service_url }}/questionset/v5/private/read"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentAccess
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionSetUpdateV2
  uris: "{{ questionset_prefix }}/v2/update"
  upstream_url: "{{ assessment_service_url }}/questionset/v5/update"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentUpdate
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionSetAddQuestionV2
  uris: "{{ questionset_prefix }}/v2/add"
  upstream_url: "{{ assessment_service_url }}/questionset/v5/add"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - 'contentUpdate'
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionSetRemoveQuestionV2
  uris: "{{ questionset_prefix }}/v2/remove"
  upstream_url: "{{ assessment_service_url }}/questionset/v5/remove"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - 'contentUpdate'
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionSetRetireV2
  uris: "{{ questionset_prefix }}/v2/retire"
  upstream_url: "{{ assessment_service_url }}/questionset/v5/retire"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentAdmin
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionSetReviewV2
  uris: "{{ questionset_prefix }}/v2/review"
  upstream_url: "{{ assessment_service_url }}/questionset/v5/review"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentAdmin
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionSetPublishV2
  uris: "{{ questionset_prefix }}/v2/publish"
  upstream_url: "{{ assessment_service_url }}/questionset/v5/publish"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentAdmin
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionSetUpdateHierarchyV2
  uris: "{{ questionset_prefix }}/v2/hierarchy/update"
  upstream_url: "{{ assessment_service_url }}/questionset/v5/hierarchy/update"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentUpdate
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionSetReadHierarchyV2
  uris: "{{ questionset_prefix }}/v2/hierarchy"
  upstream_url: "{{ assessment_service_url }}/questionset/v5/hierarchy"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - anonymousContentAccess
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionSetRejectV2
  uris: "{{ questionset_prefix }}/v2/reject"
  upstream_url: "{{ assessment_service_url }}/questionset/v5/reject"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentAdmin
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionImportAPIV2
  uris: "{{ question_prefix }}/v2/import"
  upstream_url: "{{ assessment_service_url }}/question/v5/import"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentCreate
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: questionsetImportAPIV2
  uris: "{{ questionset_prefix }}/v2/import"
  upstream_url: "{{ assessment_service_url }}/questionset/v5/import"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentCreate
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

- name: copyQuestionSetV2
  uris: "{{ questionset_prefix }}/v2/copy"
  upstream_url: "{{ assessment_service_url }}/questionset/v5/copy"
  strip_uri: true
  plugins:
  - name: jwt
  - name: cors
  - "{{ statsd_pulgin }}"
  - name: acl
    config.whitelist:
    - contentCreate
  - name: rate-limiting
    config.policy: local
    config.hour: "{{ medium_rate_limit_per_hour }}"
    config.limit_by: credential
  - name: request-size-limiting
    config.allowed_payload_size: "{{ medium_request_size_limit }}"
  - name: opa-checks
    config.required: false
    config.enabled: false

DB Model Changes For V2 API:

ALTER TABLE {{ question_keyspace_name }}.question_data ADD (outcomeDeclaration text, feedback text);
 

Jenkins Job Changes:

Note:

1. For V2 API's, compatibilityLevel increased by 1. So for Question object, value is 5 and for Questionset object, value is 6. If any application consume data based on compatibilityLevel, it should make the the changes accordingly.

URL:

URL:

URL:

URL:

URL:

New Configuration Added: Please Refer to Note: V2 API need to be onboarded. Ref:

Schema Should be Uploaded For Question & QuestionSet using

A New Jenkins Job Created For Kafka Topic Management. The job can be imported using For Build, Upload, and Deploy operation of data-pipeline jobs, jenkins jobs are available for import

here
https://www.npmjs.com/package/@project-sunbird/sunbird-questionset-editor/v/6.0.0
https://www.npmjs.com/package/@project-sunbird/sunbird-questionset-editor-web-component/v/2.0.0
https://www.npmjs.com/package/@project-sunbird/sunbird-quml-player/v/6.0.0
https://www.npmjs.com/package/@project-sunbird/sunbird-quml-player-web-component/v/2.0.0
https://www.npmjs.com/package/@project-sunbird/sunbird-resource-library/v/6.0.0
https://github.com/Sunbird-inQuiry/data-pipeline/blob/release-6.0.0_RC2/scripts/jenkins-jobs/Deploy/KnowledgePlatform/InquiryKafkaSetup/config.xml
here
release-6.0.0_RC2
release-5.6.0_RC1
release-6.0.0-inquiry_RC1
Configuration Section
https://github.com/project-sunbird/sunbird-devops/compare/release-5.6.0-inquiry...release-6.0.0-inquiry
release-6.0.0-inquiry_RC1
release-6.0.0_RC2
release-6.0.0_RC2