The timeline of the import_shims removal has evolved
over time; notably, we are keeping the import_shims
in Lilac in order to make any lingering old-style
import paths obvious to operators.
Update the ADR to reflect this. Also, add a table
mapping old import paths to new ones.
* doc: Add a decision around rate-limiting in edx-platform
While looking into whether a change to how we handle RateLimitExceptions
would impact logins, I learned the following about the current state of
how rate limiting works in our login flows. Based on what I learned, I captured
the current state as well as decisions on how we should rate limit in the future.
Add an ADR about secret key usage.
Don't use secret keys for use cases which would result in breakage upon
rotation and which might slow down the act of rotation.
The old folder name is somewhat confusing, because the
folder contains shims to _compensate for the removal
of sys.path hacks_, but does not contain the sys.path
hacks themselves.
Furthermore, this import_shims/ system could also be
used for other import path changes, such as turning
the locally-installed packages in common/lib/
into regular, importable modules
(e.g. `from common.lib.xmodule import abc` instead of
`from xmodule import abc`). So, a name that is not
specific to the sys.path hacks may be better
in the medium-to-long term.
Along the same lines, we also rename SysPathHackWarning
to DeprecatedEdxPlatformImportWarning.
Introduce an Architectural Decision Record about the boundaries
and responsibilities of Studio (Content Authoring) and the LMS
(Learning Experience). These are not new ideas. This is just
explicitly writing down the many local decisions that have been
made for years (Block Transformers, edx-when, grading, etc.), and
showing how they add together to a set of high level principles.
I hope to eventually have docs describing Studio/LMS's relation
to other subdomains in Open edX.