Proposed Versioning and Status Behaviour for Credential Schemas #382
Unanswered
KDwevedi
asked this question in
Ideas & Enhancements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Description
This post is a followup to this discussion on credential APIs and references these schema api specifications as context.
CC - @tejash-jl @rahul101001000 @suresh12
There is a need to define versioning and status behaviour for credential schemas in order to define valid functioning behaviour for APIs.
Proposed Versioning and Status Behaviour for Credential Schemas
This proposal will attempt to define the versioning behaviour for credential schemas in case of two possible events:
In addition, it will attempt to define how versioning affects what responses one should expect on GET requests along with the impact on dependent templates and credentials as dependent on schema status and versioning.
Identifying a Schema: A schema is uniquely identified by the combination of its DID and Version.
Status and Versioning
A description of Schema Statuses and corresponding Versioning Behaviour:
Version number as specified by Issuer.
No change in version number occurs on updates.
REVOKED via PUT request
Updates in core attributes change major version number, older version is DEPRECATED and both versions persist.
Updates in metadata (tags) changes minor version number, only newer version persists.
Impact on Templates and Credentials:
HTTP Status 403.
HTTP Status 403.
HTTP Status 403.
HTTP Status 403.
HTTP Status 201.
HTTP Status 200.
HTTP Status 201.
HTTP Status 200.
HTTP Status 200.
HTTP Status 201.
HTTP Status 200.
HTTP Status 201.
HTTP Status 200.
HTTP Status 200.
Relevant HTTP Status Codes and Usecases:
Experience for End User:
Holder of the Credential:
Since credentials can only be issued by published and deprecated schemas and both statuses allow for continued issuance and validaion, the holder of the credential remains unaffected by either status. The effect of revoking a credential schema on complying credentials is undefined and needs to be clarified (see questions).
.
Issuer of Credenial:
GET requests via tags always return the latest version of schemas so that newly compliant issuers onboard on the latest version.
Deprecated versions can only be accessed by a combination of their did and specific version number. This means that systems using deprecated schemas can still access them, insuring backward compatibility. The warnings to upgrade to newer versions should create a soft push to align the system to the latest standards.
Draft and Revoked schemas while issuing credentials are not relevant to issuers since credentials cannot be issued against them. The effect of revoking a credential schema on complying credentials is undefined and needs to be clarified (see
questions).
Issuer of Schemas:
Allowing credentials to be validated against deprecated schemas allows the freedom to make changes to schemas without disruption.
The draft functionality allows a lowstakes environment to finalise schemas while they are finalised for publishing (see suggestions).
Questions:
My current understanding of the REVOKED status is that it declares the schema to be invalid, presumably invalidating complying credentials as well. If that understanding is correct,
Suggestions:
Beta Was this translation helpful? Give feedback.
All reactions