CourseIds/UsageIds are case-sensitive in some places and not in others

Description

We should pick either case-sensitivity or insensitivity, and make all data storage act the same way. This may require changes to OpaqueKeys (to make the keys compare insensitively), and to database query patterns, so that reads are also insensitive.

There's also a potential product concern about "correct" casing showing up in urls.


Note:
LMS database right now is case-insensitive
courses.edx.org LMS URL is case-sensitive
Studio / Course Structure API is case-sensitive, but should not allow course authors to create courses that differ only by case ( This should be verified )

Question:
What should we treat as a 'unique identifier' for course IDs?


FYI: , ,

Steps to Reproduce

None

Current Behavior

None

Expected Behavior

None

Reason for Variance

None

Release Notes

None

User Impact Summary

None

Assignee

Unassigned

Reporter

Calen Pennington

Labels

Reach

None

Impact

None

Platform Area

None

Customer

None

Partner Manager

None

URL

None

Contributor Name

None

Groups with Read-Only Access

None

Actual Points

None

Category of Work

None

Platform Map Area (Levels 1 & 2)

None

Platform Map Area (Levels 3 & 4)

None

Priority

Unset
Configure