...
- ElasticSearch (ES) for storing notes, the same instance that powers forums
edx-notes additional django app in edx-platform LMS
implements new views: student notes and search results
responsible for loading of annotator JS and CSS assets for pages that need them
use decorator to make components annotatable
- edx-notes-api a standalone service
supports CRUD operations on notes, serving as an interface to ES
accepts authorized LMS users, passing username to ES
Django app that reuses parts of annotator-store and authenticates users with OAuth2
(annotator-store authentication is not Oauth, just similar, so we need to make it work with edx oauth)
OpenID connect ID tokenin the future, having standalone Notes API service will let students build their own mashups, pull archives etc.
protocol details
- unit id is used as URI
- django username is userd as user identifier
...
- edx-notes-api accepts HTTP requests accompanied valid Oauth2 token
- LMS backend gets the token from edx-oauth2-provider as Trusted Client creates OpenID connect ID token and passes it to the frontend
- user's browser sends requests to edx-notes-api with token in headers
- edx-notes-api validates the token signature
...