platform
platform copied to clipboard
refactor: Deprecate Indy credentials and add support for Anoncreds
Currently, we have Indy based credentials that are made default for issuance and verification.
To do:
-
[x] Improve DTO level formating by leveraging APIExtraModels
-
[̶ ]̶ C̶h̶e̶c̶k̶ i̶f̶ w̶e̶ c̶a̶n̶ m̶i̶g̶r̶a̶t̶e̶ f̶r̶o̶m̶ I̶n̶d̶y̶ c̶r̶e̶d̶e̶n̶t̶i̶a̶l̶s̶ t̶o̶ A̶n̶o̶n̶c̶r̶e̶d̶s̶
-
[x] Issuance
- [x] Add Anoncreds as an additional type
- [x] Remove credentialType from Query param and make it required in Body
- [x] Update credentialFormats in Interface
- [x] Update the default credential type from Indy to Anoncreds
- [x] Issuance with connection
- [x] OOB Issuance
- [x] OOB Issuance with email
- [x] Bulk issuance change, if any
- [x] Change in IssuanceDTO to accept a universal 'credentialFormats' instead of previous components required for issuing different types of credentials
- [x] Issuance with connection
- [x] OOB Issuance
- [x] OOB Issuance with email
- [x] Bulk issuance change, if any
-
[x] Verification
- [x] Add Anoncreds as an additional type.
- [x] Add Indy 'CredentialFormats' type
- [x] Remove presentationType from Query param and make it required in Body
- [x] Update credentialFormats in Interface
- [x] Update the default presentation type from Indy to Anoncreds
- [x] Verification with connection
- [x] Verification OOB
- [x] Change in VerificationDTO to accept a universal 'credentialFormats' instead of previous components required for issuing different types of credentials.
- [x] Verification with connection
- [x] Verification OOB
Breaking change
- Can have an impact on required attributes for issuance and verification. The impact will be on backend considering the change in credentialFormats.
Solution
- Have validations on attributes on DTO level for credentialFormats to not allow issuance in case of no attributes.
- Can pass an optional array of required attributes, to validate.
Check if we can migrate from Indy credentials to Anoncreds
The task is done, but was not merged as it breaked other flows.
We need to create a separate task for integrating this