Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remote browsing API support #3808

Closed
rtibbles opened this issue Nov 9, 2022 · 2 comments
Closed

Remote browsing API support #3808

rtibbles opened this issue Nov 9, 2022 · 2 comments
Assignees
Labels
DEV: backend DEV: sysops P0 - critical Priority: Release blocker or regression

Comments

@rtibbles
Copy link
Member

rtibbles commented Nov 9, 2022

Desired behavior

learningequality/kolibri#9474 added several new public API endpoints to Kolibri pertaining to content.

These endpoints are aimed at allowing seamless browsing and navigation of resources on remote Kolibri devices. To give full parity of experience, it would be ideal to have the same endpoints exposed on Studio in order to, at a minimum, allow remote browsing and preview of the Kolibri Content Library.

These three updates from the above Kolibri work are relevant:

  • Adds a new v2 namespace for public content metadata endpoints
  • Expands the existing internal ChannelMetadataViewset to include all public data and uses it for the v2 endpoint
  • Adds public ContentNodeViewset and ContentNodeTreeViewset to allow remote browsing of public metadata

There are several possible approaches to achieve this outcome:

  1. Implement the full Kolibri content metadata in Studio, to allow full annotation of Kolibri fields in the Studio postgres database - when a channel is published, it is imported into the Studio database using the Kolibri content metadata, and then exposed via the API
  2. Have a separate BCK instance with all plugins disabled that is specially configured to stand in for Studio to handle the v2 content API responses - when a channel is published, import the channel into the BCK instance
  3. Reimplement the required fields in the Studio ContentNode metadata so that we can do the necessary annotation at publish in order to read from the current Studio DB, and then expose API endpoints from there.
@bjester
Copy link
Member

bjester commented Apr 11, 2023

From @rtibbles: we need to migrate some channel databases in order to import their metadata. Some channels have been updated since their last publish, so we need to work out the changes to the channels and if we can publish them.

@bjester
Copy link
Member

bjester commented May 9, 2023

Closing as the major components have been completed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DEV: backend DEV: sysops P0 - critical Priority: Release blocker or regression
Projects
None yet
Development

No branches or pull requests

2 participants