tutors-sdk / tutors

The core Tutors Reader application.
https://tutors.dev
MIT License
109 stars 43 forks source link

Encrypt tutors.json course file #689

Open edeleastar opened 8 months ago

edeleastar commented 8 months ago

When tutors reader launches, it will use the url to read the json control file for the course:

This is currently sent in plain text. Propose a mechanism to encrypt (and perhaps compress) this content.

The generator project will also have to be changed:

Specifically this component:

lgriffin commented 3 months ago

I have opened a PR for this as this is a multi stage implementation. The first is to agree on a common approach for encryption and compression. The PR put forward is one approach where we create a CLI to enable users to encrypt / compress using our tool that way we can control the formatting e.g. some of the tools are really sensitive to encoding and content types. The approach put forward is using simple text based keys but the design is extensible enough to plug in public/private key or any other approach. That might be overkill but the option is there.

Once the PR is merged, we can use the functions within it to simply plug into the course.ts. The proposed structure of the encrypted (and / or compressed) JSON file is to have two elements that can quickly show us if the course is either encrypted or compressed and take appropriate action. This was more for my local testing but I left it in the PR as it might simplify the course.ts logic. A simple refactor may be necessary