-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FC-0004] API to manage certificate signatures #1837
Conversation
Thanks for the pull request, @NiedielnitsevIvan! Please note that it may take us up to several weeks or months to complete a review and merge your PR. Feel free to add as much of the following information to the ticket as you can:
All technical communication about the code itself will be done via the GitHub pull request interface. As a reminder, our process documentation is here. Please let us know once your PR is ready for our review and all tests are green. |
6c8913c
to
627d209
Compare
37f66b6
to
653e734
Compare
During development, we had a misunderstanding related to the current database architecture. |
@hurtstotouchfire I want to make sure this is on the radar for scheduling and prioritization. |
We can't take this PR at this time. We (Aperture) have discovered that we need to make some product decisions about how we need to modify the schema and system to work as the system of record, but we don't have that information right now. @hurtstotouchfire and @e0d should discuss. In the meantime, the short term solution is probably moving the Old-Mongo data into the new Mongo, so when we do migrate to Credentials, it can all come from one place. |
@cdeery: it can't really be moved into Split because the branching of "is this Old Mongo or is it Split Mongo" is the course key type, and those courses don't exist in Split (and can't exist in Split without a lot of work). As long as we allow this certificate information to be edited by Studio (and particularly the import/export process), it's going to have potentially messy data in it. The courses might have two John Smith professors or two signature images for the same instructor, middle names, and all sorts of other gremlins. No matter what the long term decision around canonical representation is, there's going to have to be some reconciliation process between Studio OLX/Modulestore and Credentials. So if there are difficult decisions ahead about the structure of the Credentials schema as a system of record, can we for now copy data into Credentials models in a way that represents, "this is the Studio record of what certs configuration is"? Whether Credentials uses that as one of multiple inputs or decides to override it entirely based on some course configuration is something that can still be hashed out later. Plus we'd start to get this data into Credentials in a saner, more queryable form that is consistent between Old and Split Mongo–making future data migrations/reconciliation something that happens between one set of Django models and another within the same service, instead of reaching back into Modulestore/MongoDB queries. Would that work as a path forward? |
Bringing back some side-bar conversatons. Moving Old Mongo signatures to another location is only a blocker for completing the Old Mongo deprecaton if we are required to support serving credentials earned in Old Mongo Courses after that module store has been deprecated. If another route like serializing to S3, asking learners to download the certificates, etc. is possible, this work is not required to finalize the Old Mongo deprecation. We believe that this is only a substantive issue for 2U. MIgrating Old Mongo courses to Split Mongo is, unfortunately, not supported, probably a lot of work, and was de-scoped during the initial implementation. |
@cdeery: Just wanted to ping on this, and check to see if my proposal sounded workable to you. |
Hi @cdeery - friendly follow-up on Dave's question above. |
I think I have a handle on the correct approach here. The tables would be something like this (there are a couple of pending questions)
The API would then take the course ID, and return the Certificate info as a JSON blob. At this time, we only need the read API. The data from Old Mongo can be injected through a management command. How does this sound as an approach? |
@cdeery: I'm fine with loading data into new models, though I'm not sure exactly what they'd look like if they don't echo what's already in Mongo. Some notes:
In the modulestore, pretty much everything is stored by the full course run (which in a lot of LMS is called just a "course"), and would be stored with a CourseKeyField.
We must be able to move the assets out of Mongo. One of the root motivations for this work was that we're removing the Old Mongo Modulestore's ability to serve static assets, which includes images used for certificates. @NiedielnitsevIvan: Could you please take a look at @cdeery's proposed model and give feedback? If it seems reasonable to you, please go ahead and start implementing it. FWIW, I'm on PTO this week, so it may take me a while to respond. |
hi @NiedielnitsevIvan! Friendly check-in on this! |
Hi @NiedielnitsevIvan! Friendly ping on this :) |
9b9ac0e
to
800a07d
Compare
…natories and title
It's decided to close this PR as for now because the decision regarding moving certificate signatures from LMS into Credentials IDA requires more discussions. When the decision is made, parts of this PR can be reused for the further work on transitioning OeX certificates into Credentials IDA. |
@NiedielnitsevIvan Even though your pull request wasn’t merged, please take a moment to answer a two question survey so we can improve your experience in the future. |
1 similar comment
@NiedielnitsevIvan Even though your pull request wasn’t merged, please take a moment to answer a two question survey so we can improve your experience in the future. |
Description: This PR implements the CourseCertificateViewSet extension feature to save certificate signatories along with the configuration.
The "get" method has been added to get data about the configuration of certificates and their signatories.
Added a method to "delete" deleting the configuration of certificates and their signatories.
Ticket: #1765