-
Notifications
You must be signed in to change notification settings - Fork 253
0.6 Release #1861
A discussion to talk about the features we'd like to include in the 0.6.0 release.
Breaking Changes
- Move DIDComm out of core to separate
@credo-ts/didcommmodule #1796 (@genaris) - Move didcomm specific config options to DIDComm module #1762 (@genaris)
- Removing several deprecated and legacy features? #2259
- Remaining work on DIDComm module #2160
- message respository should take agent context as param #2219
- Move revocation data to the credential record rather than the DIDComm exchange record #2262
- Smaller tickets
- Extract out of band invitation to DidCommMessageRecord (with addition of OOB v2 and DidComm v2)
- Use did:peer:4 by default in DID Exchange
- Wallet/Storage changes/fixes: (@TimoGlastra HSM)
Non-breaking changes
Mark legacy protocols / unqualified DIDs as deprecated (e.g. connections, issue credential V1, present proof V1)
TBD
For 0.7
Remove legacy protocols / unqualified DID support
- Askar does not sanitize wallet path based on wallet id #1670
- Migrate from
.afjdata folder to.credo#1715 - DIDComm v2 #1539
- Better support for serverless architectures #1212
- Make transport sessions and transport session service aware of multi-instance deployments #2169
- Move revocation data to the credential record rather than the DIDComm exchange record #2262
- Extract out of band invitation to DidCommMessageRecord (with addition of OOB v2 and DidComm v2)
- Update wrappers to stop using old FFI libraries which are not compatible with node 24
All reactions
Replies: 7 comments 12 replies
Another one we'd like to work on: support disabling protocols/messages.
For e.g. Paradym we don't want to support credential proposals atm, we also don't want to allow receiving credential offers currently, only sending.
For the paradym wallet we want to disable basic messaging as they are now received but completely hidden.
All reactions
That seems to be very useful! I think that removing didcomm from core (and making any protocol such as basic-messages, proofs, etc, a separate module) can help, but of course it does not add granularity in terms of messages. Maybe this could be a protocol module-specific setting? (e.g. in didcomm-credentials module we use a config parameter to determine the roles we want to support.
Another somehow related thing is about selective feature disclosure based on each connection setting: e.g. suppose I don't want to support basic-messages for a certain connection, so I don't return this feature when they ask me for it. This would be good to be done in a way that we also reject any incoming message for a given connection if we don't support it, but I imagine it can be complex to handle.
All reactions
There's also a lot of OpenID4VC/HAIP/ARR stuff we're working on, but no strict timelines yet:
- hardware key support
- mDL
- High assurance interop profile
- openid4vc authorized flow
- x509 certificate support
- Toip trust registry v2
- SD-JWT toke status list
- wallet attestations
And probably a few more 😄
All reactions
Nice! Lots of good stuff, we can think on prioritizing them and also classify them in terms of complexity
All reactions
One more we'd like to work on (and is probably a good one to combine with the extraction of DIDComm out of core) is dynamic messaging. So send / receive messages for which no protocol handler is registered.
Could be solved by middleware, or we can have a dedicated API for it
All reactions
The middleware concept, already mentioned in the early days of AFJ, is something I would like to revisit, since it can be useful for things like this and many others. For instance we can easily hook into it to add some specific metadata to both inbound and outbound messages (e.g. creation date or a flow_id or any custom field we want depending on our specific needs), and also we can use to prevent duplicated messages (by inspecting message id and returning in such a way that agent will stop processing).
All reactions
Finally, this has been addressed in #1896 and part of 0.5.5 release.
All reactions
I see the main post has not been updated for a while, so I am wondering, what is current state of 0.6.x alpha versions?
All reactions
@Patrik-Stas We've been trying to get everything in a state for the 0.6 release. I think we're nearly there, pending the following PRs to be merged:
- chore: remove modules, deprecate modules, mark modules as stable #2517
- chore: update openid4vc to latest version #2516 (and one more update to stable oid4vc)
- chore: update cheqd #2514
- chore: allow two storage versions #2466
- Ideally, but can push this to later: chore: update new major version of mdoc lib #2329
Then I think the only outstanding ticket is #2262, correct @genaris ?
I think we might be able to push both #2466 and #2329, and maybe even #2262, so we can trigger the 0.6 this or next week. I'm fine with that, as we then also don't have any storage migrations, and that makes migration easier (we can do a storage migration heavier update in 0.7 then).
WDYT @genaris?
All reactions
I agree. I'll submit the PR for #2262 today, so if you're able to push #2466 will be great. Also we have #1819 which can be merged alongisde these.
For the rest of the outstanding work, we can leave for a 0.6.1 (e.g. W3C revocation status list) or a 0.7.0 that hopefully will not take so long as usual.
All reactions
With push I was actually meaning to not include them. If we skip #1819, we won't have any breaking storage changes and thus we also don't need #2466 in this release (but can include it in next release).
This may make the already very large 0.6 release only breaking in code, not breaking in storage.
But now I'm thinking whether #2262 will require a migration, and we will need #2466 anyway?
All reactions
Sorry, after I wrote my message I was suddenly starting to feel sick and was out 🤒 . But I think you have a good point that feels safer to do this big release without any storage changes, especially considering that these PRs are not so critical right now.
For #2262 I think the most annoying part is on the issuer, since usually we don't want to keep the Credential Exchange record to prevent PII to be stored permanently. So I took the branch I was working on, and just left the API changes on sendRevocationNotification to accept a connectionId instead the credentialExchangeRecordId. Holder still needs to keep the Credential Exchange to process notifications, but since the PII is already on the credential record, it wouldn't be that bad. I think this can be enough for now. The PR is at #2525
All reactions
Hope you feel better now!
The PR is now merged, so I think we're ready to see the latest alpha release as a "release candidate" for 0.6.x.
We have already updated our wallet to almost the most recent versions of Credo, and we're currently updating the Paradym platform as well, to ensure everything works as intended and the APIs/exports are correct. Since we now use package.json exports, we can' import from subpaths, and we've also noticed some issues with ESM, so we'll check if these are working correctly.
All reactions
We'll do the same with Hologram app and our backends this week. Let's see if there is anything unexpected.
All reactions
Suggest that you get the AnonCreds 0.2.3 upgrade in place for 0.6.0. The main repo/release has been completed and the wrapper needs to be released. There is a pending PR there to be merged and then I think the release should be easy. I think the needed NPM publishing upgrades have been done already.
All reactions
-
👍 1
I'll see if i can get it added over the weekend. It seems the release is non-breaking, so it won't be an issue if we don't get it in for 0.6.0
All reactions
Yes -- non-breaking. A Rust update and some internal tweaks -- nothing changes with the API.
All reactions
This has been resolved!
All reactions
Wanted to check in where we're at for the 0.6 release this week.
We have finally migrated Paradym fully to 0.6 alpha and everything seems to work. We have made several fixes based on this integration to Credo over the past week
How is the integration going on your end @genaris? Are you feeling optimistic about the 0.6 stable release?