diff --git a/docs/decisions/0009-courseware-url-shortening.md b/docs/decisions/0009-courseware-url-shortening.md index ac21641d..5134daa6 100644 --- a/docs/decisions/0009-courseware-url-shortening.md +++ b/docs/decisions/0009-courseware-url-shortening.md @@ -27,6 +27,15 @@ The courseware URL will format to the following structure: ``` https://learning.edx.org/c/:courseId/:sequenceHash/:unitHash/:sectionSlug/:sequenceSlug/:unitSlug/ + +``` + +Example URL: + +``` + +https://learning.edx.org/c/course-v1:edX+DemoX.1+2T2019/YmxvY2/njuRCq/Optional_Example_Problem_Types/STEM_Problems/Code_Grader + ``` The fields definition and requirements ar as follows: @@ -38,7 +47,7 @@ The fields definition and requirements ar as follows: * :sequenceSlug (optional) - `display_name` of the current sequence. * :unitSlug (optional) - `display_name` of the current unit -The slugs based on `display_name` are optional because not all blocks have an associated `display_name` attributes, most likely to occur in OLX imports. +The slugs based on `display_name` are optional because not all blocks have an associated `display_name` attributes, most likely to occur in OLX imports. The `sequenceHash` and `unitHash` will shorten their respective ids using `hashlib.blake2b`. `Blake2b` will reduce the length of the id so the encoded version can also be short. Hashing will be handled by `blake2b` because it is the fastest hashing function in the `hashlib` library. The hash will be generated and mapped in LMS. ## Consequences