openedx/credentials

VC fields and mapping to Credentials IDA stored data

GlugovGrGlib opened this issue · 10 comments

Before starting an implementation for Verifiable Credentials sharing based on the design created in #1728, It is necessary to validate the required fields that should be included into VC/OBv3 claim.

Draft mapping of the Program and Course certificates data stored in the Credentials IDA to VC fields, that are used by MITxPRO and DCC: https://openedx.atlassian.net/wiki/spaces/OEPM/pages/3490840577/Verifiable+Credentials+design#Forming-verifiable-credentials-or-digital-credentials-using-the-learners'-data

@GlugovGrGlib / @e0d do you guys want us to review this?

e0d commented

Yes.

FYI, @e0d / @GlugovGrGlib I am planning to get this queued up for next sprint. We should probably work out some way for you to have insight into when things are planned on our side.

e0d commented

Yes, please and more visibility would be great.

In the mapping for

credentialSubject.hasCredential.awardedOnCompletionOf.description
to unknown ("?") for Course Certificate and
program_details for Program Cert

Is that not provided for a Course Cert because it is not available from the Credentials service? In the data model, the non-normative example seems to have a generated description. and the schema is incredibly vague about what goes in there.

Is there a different meaning to mappings blocked out with "?" vs "-"? is "?" not available, and "-" not applicable?

credentialSubject.hasCredential.awardedOnCompletionOf.numberOfCredits is mapped to program.total_hours_of_effort for a program. Is that in line with the general concept of a "credit" for a course? We have CreditPathways for programs, but don't track that actual number of credits for that institution for that pathway. Is that data that we might need to collect somehow?

Is that not provided for a Course Cert because it is not available from the Credentials service?

Correct, the question mark was put in cells, that couldn't be mapped to any column in Credentials service database.
I haven't found in the Credentials service information about course or course run that can be used for description field of the verifiable credential.

In the mitodl/mitxpro#1969 the non-normative example seems to have a generated description. and the schema is incredibly vague about what goes in there.

The description could be anything to represent the content and meaning of the credential. As I understood, credentialSubject.hasCredential.description can be generic, and include the hard-coded description value, but credentialSubject.hasCredential.awardedOnCompletionOf.description should be about a specific Program or Program Certificate. Schema explanation: https://schema.org/EducationalOccupationalProgram

For the OpenBadgesV3 (that based on VC) description field has the following explanation: "The short description of the credential for display purposes in wallets."
https://purl.imsglobal.org/spec/ob/v3p0/schema/json/ob_v3p0_achievementcredential_schema.json#/properties/description/description

Is there a different meaning to mappings blocked out with "?" vs "-"? is "?" not available, and "-" not applicable?

Correct, I used the "?" sign to mark rows that should be mapped to the VC type, but I haven't found the correspondent value in Credentials service. "-" is set in case field can be skipped for the particular type of VC.
This means that different types of credentials, like program or course VC, might have a different set of fields.

Is that in line with the general concept of a "credit" for a course?

In the EducationalOccupationalProgram schema, numberOfCredits corresponds to credit in education based on Carnegie Unit or similar.
I think we either can skip this field from the schema for MVP, consider integration with CreditPathways as you proposed, or get the value from the field set by Course/Program Creators.

Thanks.
So the only two changes to make to the document would be to add a small key explaining the special characters, and a comment about the unresolved nature of the numberOfCredits.

Thank you for the changes. I am closing this PR as the means of "accepting" it, since there is no related Github source.