-
Notifications
You must be signed in to change notification settings - Fork 515
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
Add anoncreds issuance and presentation format #3331
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. The duplication is indeed a bit of a bummer but I agree that it's probably better than trying to get everything to line up cleanly and makes popping the indy implementation out of ACA-Py into a plugin in the future easier.
I approved but we have test failures that should be resolved before merging. |
bb4441a
to
7eacdfa
Compare
Added support for the demo but still need to fix the integration tests. Not sure why the scenario test is failing with github actions and the BDD tests need to be updated. The OATH tests should be updated with an askar-anoncreds wallet. These should be testable against a credo holder, and should work with a credo issuer and acapy holder as well if the objects are consistent with the indy format. |
e9a0785
to
e922f06
Compare
I removed the BDD tests for issuance and presentation after the anoncreds upgrade because the anoncreds check uses the agent context object which hasn't been updated. I'm going to try and figure out how to do that and add them back. The classes I moved and renamed from the indy module to the anoncreds module aren't unit tested. I don't think this is much of an issue because they are pretty much the same as the ones in the indy module that are unit tested. I might try and copy some tests as well as they would be good to have if they indy module gets pulled out. Don't think this should be required to get this merged though. |
Question regarding interoperability - should an agent using an "askar" wallet be able to send/receive a presentation request/presentation from a holder that has received an anoncreds credential? (And the other way - an "askar-anoncreds" agent asking an agent with an "askar" wallet for a proof?) Also what should happen if an "askar-anoncreds" agent issues to an "askar" holder and the other way around? |
Issuer (askar) --> Holder (askar-anoncreds): This issuer won't be able to issue or request a presentation using the Issuer (askar-anoncreds) --> Holder (askar): This works and is tested. The holder falls back to the Both issuer and holder need to be on the lastest version (have this code) for the anoncreds format to work regardless of wallet type. |
I just looked at Issuer (askar) --> Holder (askar-anoncreds) and it looks like there's a problem here with issuance. There was a test but it was only running on release. I'll try and fix this scenario. |
FYI @jamshale the "1a" was added to the demo to support this kind of interoperability testing. (Available to an I did a quick test and when I sent the Indy presentation request I got an error: We should probably setup a table with the various options to define what is supported or not (and also we need to confirm that other Aries wallets support the same scenarios.)
Maybe this is already defined somewhere? @swcurran ? Also I recall that we also assume that all Indy credentials are updated to Anoncreds format when the wallet is upgraded? (At least I think the Javascript framework does this, I don't recall if we implemented this for Aca-Py or not.) PS Regarding the |
That error was expected. I don't think it's possible for an askar-anoncreds agent to use the The original plan was to completely remove the Also, I don't believe the credentials need to be changed for an anoncreds upgrade. I'll take a closer look at the wallets, but I'm pretty sure they are consistent. |
I'll create a table with the compatibility matrix after I fix this issue of issuer (askar) --> holder (askar-anoncreds) |
Added an ugly commit. Will be working on further testing and refactoring still. Issuer (anoncreds) --> use |
Tested using the alice/faber demo, everything is looking good ... Question - is this a "breaking" change? (i.e. will the controller need to be updated if they are currently using the "old" indy format? |
It is a breaking change for anoncreds (wallet type askar-anoncreds) issuers. They will need to change their formats to Any other type of agent is unaffected. Although holders will need to be upgraded to the latest version to handle the |
Scenario test has been expanded. It won't pass currently because of a bug with tails upload. See #3346. |
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Quality Gate failedFailed conditions |
@jamshale is this PR ready to go or are you still working on it? |
@ianco It should be good to go. It has pretty thorough testing now. I'll add some more documentation at some point but that can be a separate PR. |
Some of the stuff I had to do for compatibility is a bit ugly. But one day it can be removed. |
I agree we should make it easy to pull out the "indy" specific code. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
* ⬆️ Upgrade python-dateutil Resolves calling deprecated `datetime.utcfromtimestamp` method Signed-off-by: ff137 <ff137@proton.me> * 🎨 Rename class to resolve PytestCollectionWarning Signed-off-by: ff137 <ff137@proton.me> * 🎨 Replace deprecated `open_binary` method with `files` Signed-off-by: ff137 <ff137@proton.me> * 🎨 Replace deprecated `scope` keyword with `loop_scope` Signed-off-by: ff137 <ff137@proton.me> * 🎨 Filter Aries RFC 0160 DeprecationWarning in tests Signed-off-by: ff137 <ff137@proton.me> * 🎨 Filter Pydantic UserWarning in test Signed-off-by: ff137 <ff137@proton.me> * ⬆️ Upgrade aiohttp to latest release and update lock file Signed-off-by: ff137 <ff137@proton.me> * 🎨 Remove unnecessary asyncio pytest markers Resolves unclosed event loop warnings. Signed-off-by: ff137 <ff137@proton.me> * chore(deps-dev): Bump ruff from 0.7.3 to 0.7.4 (openwallet-foundation#3341) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.3 to 0.7.4. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.7.3...0.7.4) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): Bump aiohttp from 3.11.0 to 3.11.2 (openwallet-foundation#3340) Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.11.0 to 3.11.2. - [Release notes](https://github.com/aio-libs/aiohttp/releases) - [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst) - [Commits](aio-libs/aiohttp@v3.11.0...v3.11.2) --- updated-dependencies: - dependency-name: aiohttp dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): Bump pyjwt from 2.9.0 to 2.10.0 (openwallet-foundation#3339) Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.9.0 to 2.10.0. - [Release notes](https://github.com/jpadilla/pyjwt/releases) - [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst) - [Commits](jpadilla/pyjwt@2.9.0...2.10.0) --- updated-dependencies: - dependency-name: pyjwt dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * did:tdw resolver (openwallet-foundation#3237) * did:tdw resolver Signed-off-by: jamshale <jamiehalebc@gmail.com> * Update unit tests Signed-off-by: jamshale <jamiehalebc@gmail.com> * Update poetry.lock Signed-off-by: jamshale <jamiehalebc@gmail.com> --------- Signed-off-by: jamshale <jamiehalebc@gmail.com> * chore(deps): Bump aiohttp (openwallet-foundation#3342) Bumps the pip group with 1 update in the /scenarios directory: [aiohttp](https://github.com/aio-libs/aiohttp). Updates `aiohttp` from 3.10.5 to 3.10.11 - [Release notes](https://github.com/aio-libs/aiohttp/releases) - [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst) - [Commits](aio-libs/aiohttp@v3.10.5...v3.10.11) --- updated-dependencies: - dependency-name: aiohttp dependency-type: indirect dependency-group: pip ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: jamshale <31809382+jamshale@users.noreply.github.com> * 🎨 Refactor `register_plugin` steps for maintainability Signed-off-by: ff137 <ff137@proton.me> * 🎨 improve logging in register_package Signed-off-by: ff137 <ff137@proton.me> * 🎨 Rename method and remove redundant main call Signed-off-by: ff137 <ff137@proton.me> * 🎨 Signed-off-by: ff137 <ff137@proton.me> * 🔊 Add debug logging to Context Builder Signed-off-by: ff137 <ff137@proton.me> * 🎨 Deduplicate registering list of plugins Signed-off-by: ff137 <ff137@proton.me> * 🎨 Signed-off-by: ff137 <ff137@proton.me> * 🔊 Add debug logging to init_context Signed-off-by: ff137 <ff137@proton.me> * 🔊 Add debug logging to load_protocol_version Signed-off-by: ff137 <ff137@proton.me> * 🔊 Add debug logging to load_protocols Signed-off-by: ff137 <ff137@proton.me> * 🔊 Add debug logging to register_admin_routes Signed-off-by: ff137 <ff137@proton.me> * 🔊 Add debug logging to register_protocol_events Signed-off-by: ff137 <ff137@proton.me> * 🔊 Add debug logging to post_process_routes Signed-off-by: ff137 <ff137@proton.me> * 🎨 Replace print statements with info logs Signed-off-by: ff137 <ff137@proton.me> * 🎨 Replace almost all print statements with info logs Signed-off-by: ff137 <ff137@proton.me> * 🔊 Expand logging for Conductor setup Signed-off-by: ff137 <ff137@proton.me> * 🎨 Correct to uphold previous "Module doesn't exist" log behaviour Signed-off-by: ff137 <ff137@proton.me> * ✅ Fix test by using assertLogs instead of capturing stdout Signed-off-by: ff137 <ff137@proton.me> * Revert "🎨 Rename method and remove redundant main call" This reverts commit 2f6526d. Signed-off-by: ff137 <ff137@proton.me> * 🎨 Signed-off-by: ff137 <ff137@proton.me> * ✅ Fix test by adding __name__ to mock object Signed-off-by: ff137 <ff137@proton.me> * 🎨 Signed-off-by: ff137 <ff137@proton.me> * ✨ Add custom trace log level Signed-off-by: ff137 <ff137@proton.me> * 🎨 Ensure trace level can only be added once Signed-off-by: ff137 <ff137@proton.me> * 🎨 Add Logger Signed-off-by: ff137 <ff137@proton.me> * 🎨 Update newly added logs to be trace level instead of debug Signed-off-by: ff137 <ff137@proton.me> * 🎨 Update newly added logs to be trace level instead of debug Signed-off-by: ff137 <ff137@proton.me> * 🔊 Expand logging for Conductor start and stop Signed-off-by: ff137 <ff137@proton.me> * ✅ Add unit tests for adding trace level functionality Signed-off-by: ff137 <ff137@proton.me> * ✅ Reset the logging states before and after TestLoggingUtils is run Signed-off-by: ff137 <ff137@proton.me> * 🎨 Signed-off-by: ff137 <ff137@proton.me> * 🧪 Debug log assertion test failing sporadically Filter the logs being read by module name, and add short sleep to allow log handlers to flush Signed-off-by: ff137 <ff137@proton.me> * ✅ Modify log assertion to be more robust Signed-off-by: ff137 <ff137@proton.me> * 🎨 Signed-off-by: ff137 <ff137@proton.me> * 🐛 Handle case that load_module return type is Optional Signed-off-by: ff137 <ff137@proton.me> * 🔊 Expand logging for ClassLoader Signed-off-by: ff137 <ff137@proton.me> * 🔊 Log a warning if resource not found, instead of passing Signed-off-by: ff137 <ff137@proton.me> * 🎨 Signed-off-by: ff137 <ff137@proton.me> * 🎨 Enable trace logs for remaining modules Signed-off-by: ff137 <ff137@proton.me> * 🐛 Fix registering and loading of modules Signed-off-by: ff137 <ff137@proton.me> * 🔊 Expand logging for Ledger Configuration Signed-off-by: ff137 <ff137@proton.me> * Fix tails upload for anoncreds multitenancy Signed-off-by: jamshale <jamiehalebc@gmail.com> * Update unit test Signed-off-by: jamshale <jamiehalebc@gmail.com> * Make sonarcloud happy with https in test Signed-off-by: jamshale <jamiehalebc@gmail.com> * Add anoncreds issuance and presentation format (openwallet-foundation#3331) * Add anoncreds issuance and presentation formats Signed-off-by: jamshale <jamiehalebc@gmail.com> * Fix unit tests Signed-off-by: jamshale <jamiehalebc@gmail.com> * Fix error in _formats_attach Signed-off-by: jamshale <jamiehalebc@gmail.com> * Fix AnoncredsDID validation pattern Signed-off-by: jamshale <jamiehalebc@gmail.com> * Fix name Signed-off-by: jamshale <jamiehalebc@gmail.com> * Fix scenario test Signed-off-by: jamshale <jamiehalebc@gmail.com> * Update demo with anoncreds format Signed-off-by: jamshale <jamiehalebc@gmail.com> * Fix the scenario test and add better description Signed-off-by: jamshale <jamiehalebc@gmail.com> * Add service_healthy check for indy agent Signed-off-by: jamshale <jamiehalebc@gmail.com> * Fix/update BDD tests Signed-off-by: jamshale <jamiehalebc@gmail.com> * Add issuer askar to holder anoncreds support Signed-off-by: jamshale <jamiehalebc@gmail.com> * Update BDD tests Signed-off-by: jamshale <jamiehalebc@gmail.com> * Remove commented code Signed-off-by: jamshale <jamiehalebc@gmail.com> * Expand scenario test Signed-off-by: jamshale <jamiehalebc@gmail.com> * Add better comments for format compatibilty imports Signed-off-by: jamshale <jamiehalebc@gmail.com> * Add anocnreds compatibilty bdd test to PR workflow Signed-off-by: jamshale <jamiehalebc@gmail.com> --------- Signed-off-by: jamshale <jamiehalebc@gmail.com> * Fix handling of base_wallet_routes startup parameter in auth decorator Signed-off-by: Emiliano Suñé <emiliano.sune@gmail.com> * Restore --base-wallet-extra-routes argument functionality Signed-off-by: Emiliano Suñé <emiliano.sune@gmail.com> * Correctly handle null value for --base-wallet-routes Signed-off-by: Emiliano Suñé <emiliano.sune@gmail.com> * Fix typo Signed-off-by: Emiliano Suñé <emiliano.sune@gmail.com> * Fix subwallet anoncreds upgrade check (openwallet-foundation#3345) Signed-off-by: jamshale <jamiehalebc@gmail.com> * Fix/universal resolver (openwallet-foundation#3354) * Update universal resolver response handling Signed-off-by: jamshale <jamiehalebc@gmail.com> * Update universal resolver unit test Signed-off-by: jamshale <jamiehalebc@gmail.com> * Add reverse compatibility handling Signed-off-by: jamshale <jamiehalebc@gmail.com> --------- Signed-off-by: jamshale <jamiehalebc@gmail.com> * chore(deps-dev): Bump ruff from 0.7.4 to 0.8.0 (openwallet-foundation#3348) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.4 to 0.8.0. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.7.4...0.8.0) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: jamshale <31809382+jamshale@users.noreply.github.com> * chore(deps): Bump mkdocs-material from 9.5.44 to 9.5.46 (openwallet-foundation#3352) Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.44 to 9.5.46. - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](squidfunk/mkdocs-material@9.5.44...9.5.46) --- updated-dependencies: - dependency-name: mkdocs-material dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): Bump uuid-utils from 0.9.0 to 0.10.0 (openwallet-foundation#3351) Bumps [uuid-utils](https://github.com/aminalaee/uuid-utils) from 0.9.0 to 0.10.0. - [Release notes](https://github.com/aminalaee/uuid-utils/releases) - [Commits](aminalaee/uuid-utils@0.9.0...0.10.0) --- updated-dependencies: - dependency-name: uuid-utils dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): Bump debugpy from 1.8.8 to 1.8.9 (openwallet-foundation#3350) Bumps [debugpy](https://github.com/microsoft/debugpy) from 1.8.8 to 1.8.9. - [Release notes](https://github.com/microsoft/debugpy/releases) - [Commits](microsoft/debugpy@v1.8.8...v1.8.9) --- updated-dependencies: - dependency-name: debugpy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): Bump aiohttp from 3.11.2 to 3.11.7 (openwallet-foundation#3349) Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.11.2 to 3.11.7. - [Release notes](https://github.com/aio-libs/aiohttp/releases) - [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst) - [Commits](aio-libs/aiohttp@v3.11.2...v3.11.7) --- updated-dependencies: - dependency-name: aiohttp dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * ⏪ Revert `trace` log changes, and move to debug level Signed-off-by: ff137 <ff137@proton.me> * ✨ Add caching to ClassLoader.load_module Signed-off-by: ff137 <ff137@proton.me> * 🎨 Improve log Signed-off-by: ff137 <ff137@proton.me> * 🎨 Sync Ruff version in configs and apply formatting (openwallet-foundation#3358) * ⬆️ Upgrade ruff version in pre-commit config and lint workflow Signed-off-by: ff137 <ff137@proton.me> * 🎨 Apply ruff formatting Signed-off-by: ff137 <ff137@proton.me> * ⬆️ Upgrade pre-commit hook version Signed-off-by: ff137 <ff137@proton.me> --------- Signed-off-by: ff137 <ff137@proton.me> * 🎨 Replace deprecated ABC decorators (openwallet-foundation#3357) Signed-off-by: ff137 <ff137@proton.me> Co-authored-by: jamshale <31809382+jamshale@users.noreply.github.com> * 🎨 Reduce log verbosity Signed-off-by: ff137 <ff137@proton.me> * ✨ Add `lru_cache` to load_class and set maxsize Signed-off-by: ff137 <ff137@proton.me> * ⚡ Add class caching to DeferLoad Resolves openwallet-foundation#3360 Signed-off-by: ff137 <ff137@proton.me> * ⏪ Revert addition of lru caching Signed-off-by: ff137 <ff137@proton.me> * 🎨 Update logs / reduce verbosity Signed-off-by: ff137 <ff137@proton.me> * Revert "Don't pass rekey to sub_wallet_profile" This reverts commit e59d275. * Fixes openwallet-foundation#3202: new suppress banner and replace print by logging statements Signed-off-by: Ricky Ng-Adam <ricky.ng-adam-ext@mcn.gouv.qc.ca> * 🎨 Print agent label and version even if banner suppressed Signed-off-by: ff137 <ff137@proton.me> * ✅ Fix pagination assertions Signed-off-by: ff137 <ff137@proton.me> * 👷 Upload Python Package to TestPyPI (#4) * 👷 Upload Python Package to TestPyPI Signed-off-by: ff137 <ff137@proton.me> * 👷 Update project name and version for testpypi Signed-off-by: ff137 <ff137@proton.me> * 🎨 Signed-off-by: ff137 <ff137@proton.me> --------- Signed-off-by: ff137 <ff137@proton.me> * Version 1.1.1-20241115 Signed-off-by: ff137 <ff137@proton.me> * 🎨 Deprecate count/start query params and implement limit/offset (#6) * art: Modify count/start query params to be Integers, not Strings Signed-off-by: ff137 <ff137@proton.me> * memo: Update openapi spec Signed-off-by: ff137 <ff137@proton.me> * rewind: Revert start/count field to remain String type; mark as deprecated Signed-off-by: ff137 <ff137@proton.me> * sparkles: Implement limit/offset alongside deprecated count/start Signed-off-by: ff137 <ff137@proton.me> * art: Standardise naming convention from count/start to limit/offset Signed-off-by: ff137 <ff137@proton.me> * rewind: Revert start/count field to remain String type; mark as deprecated Signed-off-by: ff137 <ff137@proton.me> * sparkles: Implement limit/offset alongside deprecated count/start Signed-off-by: ff137 <ff137@proton.me> * art: Remove unused query string schema from `w3c_creds_list` Signed-off-by: ff137 <ff137@proton.me> * art: Rename args Signed-off-by: ff137 <ff137@proton.me> * memo: Update openapi specs Signed-off-by: ff137 <ff137@proton.me> * white_check_mark: Signed-off-by: ff137 <ff137@proton.me> --------- Signed-off-by: ff137 <ff137@proton.me> * sparkles: add `order_by` and `descending` options to query / scan and fetch_all methods Signed-off-by: ff137 <ff137@proton.me> * sparkles: add `order_by` and `descending` options to PaginatedQuerySchema Signed-off-by: ff137 <ff137@proton.me> * sparkles: modify `get_limit_offset` to `get_paginated_query_params` Signed-off-by: ff137 <ff137@proton.me> * construction: test in-progress aries-askar PR: openwallet-foundation/askar#291 Signed-off-by: ff137 <ff137@proton.me> * arrow_up: Update lock file Signed-off-by: ff137 <ff137@proton.me> * art: fix ruff warning Signed-off-by: ff137 <ff137@proton.me> * white_check_mark: fix assertions Signed-off-by: ff137 <ff137@proton.me> * construction: test aries-askar with TestPyPI package Signed-off-by: ff137 <ff137@proton.me> * construction: test latest askar testpypi package Signed-off-by: ff137 <ff137@proton.me> * art: Update order_by description and default value. Include in schema Signed-off-by: ff137 <ff137@proton.me> * bug: fix deserialisation of descending: bool parameter Signed-off-by: ff137 <ff137@proton.me> * rewind: revert to testing 0.3.3b0 askar test package Signed-off-by: ff137 <ff137@proton.me> * fire: remove unnecessary record sorts (now that askar sorts by id == sorting by created_at) Signed-off-by: ff137 <ff137@proton.me> * white_check_mark: fix test assertions -- wallet_list and connections_list no longer does additional sorting Signed-off-by: ff137 <ff137@proton.me> * arrow_up: Update lock file Signed-off-by: ff137 <ff137@proton.me> * art: Modify count/start query params to be Integers, not Strings Signed-off-by: ff137 <ff137@proton.me> * memo: Update openapi spec Signed-off-by: ff137 <ff137@proton.me> * rewind: Revert start/count field to remain String type; mark as deprecated Signed-off-by: ff137 <ff137@proton.me> * sparkles: Implement limit/offset alongside deprecated count/start Signed-off-by: ff137 <ff137@proton.me> * art: Standardise naming convention from count/start to limit/offset Signed-off-by: ff137 <ff137@proton.me> * rewind: Revert start/count field to remain String type; mark as deprecated Signed-off-by: ff137 <ff137@proton.me> * sparkles: Implement limit/offset alongside deprecated count/start Signed-off-by: ff137 <ff137@proton.me> * art: Remove unused query string schema from `w3c_creds_list` Signed-off-by: ff137 <ff137@proton.me> * art: Rename args Signed-off-by: ff137 <ff137@proton.me> * memo: Update openapi specs Signed-off-by: ff137 <ff137@proton.me> * white_check_mark: Signed-off-by: ff137 <ff137@proton.me> * art: Update start/count keywords to offset/limit Signed-off-by: ff137 <ff137@proton.me> * 🐛 Fix IndyVdrLedgerPool RuntimeWarning Resolves openwallet-foundation#3328 Signed-off-by: ff137 <ff137@proton.me> * 🧪 Update tests Signed-off-by: ff137 <ff137@proton.me> * Revert "did:tdw resolver (openwallet-foundation#3237)" This reverts commit f5c49b0. Signed-off-by: ff137 <ff137@proton.me> * 1.1.1b5 Signed-off-by: ff137 <ff137@proton.me> * 🎨 Propagate the async changes Signed-off-by: ff137 <ff137@proton.me> * 🎨 Propagate the async changes Signed-off-by: ff137 <ff137@proton.me> * Add test wallet config option (openwallet-foundation#3355) * Add test wallet config option Signed-off-by: jamshale <jamiehalebc@gmail.com> * Change wallet test arg to store true / Fix tests Signed-off-by: jamshale <jamiehalebc@gmail.com> * Add unit test with test wallet config Signed-off-by: jamshale <jamiehalebc@gmail.com> --------- Signed-off-by: jamshale <jamiehalebc@gmail.com> * Week 49 Library upgrades (openwallet-foundation#3368) Signed-off-by: jamshale <jamiehalebc@gmail.com> * ⚡ Add class caching to DeferLoad (openwallet-foundation#3361) Resolves openwallet-foundation#3360 Signed-off-by: ff137 <ff137@proton.me> Co-authored-by: jamshale <31809382+jamshale@users.noreply.github.com> * fix: check routing keys on endpoint refresh Previously we were only checking if the endpoint value had changed but it is possible for the routing keys to update and not the endpoint. This resulted in new attrib txns not getting published when there were new routing keys. Signed-off-by: Daniel Bluhm <dbluhm@pm.me> * 1.1.1rc0 Signed-off-by: Stephen Curran <swcurran@gmail.com> * Make vc libraries mandatory (openwallet-foundation#3356) * Make vc libraries mandatory Signed-off-by: jamshale <jamiehalebc@gmail.com> * Make indy-vdr library required Signed-off-by: jamshale <jamiehalebc@gmail.com> * Update dockerfiles after removed extras Signed-off-by: jamshale <jamiehalebc@gmail.com> --------- Signed-off-by: jamshale <jamiehalebc@gmail.com> * Update the PR for release Signed-off-by: Stephen Curran <swcurran@gmail.com> * Repair release bdd tests Signed-off-by: jamshale <jamiehalebc@gmail.com> * Add in PR to Changelog Signed-off-by: Stephen Curran <swcurran@gmail.com> * 🎨 Reduce repetition Signed-off-by: ff137 <ff137@proton.me> * Fix for demo initial cred_type override (openwallet-foundation#3378) Signed-off-by: Ian Costanzo <ian@anon-solutions.ca> * chore(deps): Bump dawidd6/action-download-artifact (openwallet-foundation#3370) Bumps the all-actions group with 1 update: [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact). Updates `dawidd6/action-download-artifact` from 6 to 7 - [Release notes](https://github.com/dawidd6/action-download-artifact/releases) - [Commits](dawidd6/action-download-artifact@v6...v7) --- updated-dependencies: - dependency-name: dawidd6/action-download-artifact dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: jamshale <31809382+jamshale@users.noreply.github.com> * 🎨 Log warning when StorageNotFoundError encountered, instead of exception stacktrace Signed-off-by: ff137 <ff137@proton.me> * 🎨 Set Shutdown log level to fatal, with exc_info Signed-off-by: ff137 <ff137@proton.me> * 🎨 Log warning for bad credential format, instead of always exception stacktrace Signed-off-by: ff137 <ff137@proton.me> * 🚧 Add exc_info to error log for debugging Signed-off-by: ff137 <ff137@proton.me> * 🎨 Make `ensure_supported_did` method public Signed-off-by: ff137 <ff137@proton.me> * 🐛 Ensure supported DID before calling Rotate Resolves: openwallet-foundation#3379 Signed-off-by: ff137 <ff137@proton.me> * ✅ Fix existing tests Signed-off-by: ff137 <ff137@proton.me> * ✅ Test coverage for new DID validation Signed-off-by: ff137 <ff137@proton.me> * 🎨 Shorten config key * 🎨 Fix lying method return type Signed-off-by: ff137 <ff137@proton.me> * 🎨 Replace AskarError with ProfileError Signed-off-by: ff137 <ff137@proton.me> * 🚧 Skip exception log for ProfileError Signed-off-by: ff137 <ff137@proton.me> * 🐛 Fix message type class mapping Signed-off-by: ff137 <ff137@proton.me> * 🚧 Debug message parse error Signed-off-by: ff137 <ff137@proton.me> * 🚧 Log warning instead of error for MessageParseError Signed-off-by: ff137 <ff137@proton.me> * ⬆️ Bump version Signed-off-by: ff137 <ff137@proton.me> * ⬆️ Update lock file Signed-off-by: ff137 <ff137@proton.me> * 🎨 Fix model name for consistency From Anoncred to Anoncreds Signed-off-by: ff137 <ff137@proton.me> * 🎨 Set wallet upgrade exception log to warning Signed-off-by: ff137 <ff137@proton.me> * Update anoncreds format names (openwallet-foundation#3374) * Update anoncreds format names Signed-off-by: jamshale <jamiehalebc@gmail.com> * Add a unit test Signed-off-by: jamshale <jamiehalebc@gmail.com> --------- Signed-off-by: jamshale <jamiehalebc@gmail.com> * 🎨 Fix model name for consistency (openwallet-foundation#3382) From Anoncred to Anoncreds Signed-off-by: ff137 <ff137@proton.me> Co-authored-by: jamshale <31809382+jamshale@users.noreply.github.com> --------- Signed-off-by: ff137 <ff137@proton.me> Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: jamshale <jamiehalebc@gmail.com> Signed-off-by: Emiliano Suñé <emiliano.sune@gmail.com> Signed-off-by: Ricky Ng-Adam <ricky.ng-adam-ext@mcn.gouv.qc.ca> Signed-off-by: Daniel Bluhm <dbluhm@pm.me> Signed-off-by: Stephen Curran <swcurran@gmail.com> Signed-off-by: Ian Costanzo <ian@anon-solutions.ca> Co-authored-by: Daniel Bluhm <dbluhm@pm.me> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: jamshale <31809382+jamshale@users.noreply.github.com> Co-authored-by: jamshale <jamiehalebc@gmail.com> Co-authored-by: Stephen Curran <swcurran@gmail.com> Co-authored-by: Emiliano Suñé <emiliano.sune@gmail.com> Co-authored-by: Ricky Ng-Adam <ricky.ng-adam-ext@mcn.gouv.qc.ca> Co-authored-by: Ian Costanzo <ian@anon-solutions.ca>
This adds issuance and presentation anoncreds formats which use the anoncreds registry.
Any anoncreds issuer must use this format as the anoncreds objects the format uses are saved in the wallet in the anoncreds way.
There is some backwards compatibility for a holder which isn't anoncreds capable. It will fall back to the indy handlers. Any holder that needs to use anoncreds objects which are not indy will need to use the askar-anoncreds profile. Any holder that uses the anoncreds format will need to be updated to a version of acapy which includes this PR.
There is a lot of duplication because I copied the Indy objects and added them to the anoncreds module and removed any indy references. I think this is better than trying to rename them and share them amongst indy and anoncreds modules. The indy module should be able to be pulled out as a plugin once depreciated.
The object examples have anoncreds examples now. They have there own validation, but it's not actually validating anoncreds objects. I'm not sure if there is validation patterns we can use for anoncreds schemas, cred defs and revocation objects or not.
There is a scenario test for anoncreds issuer doing issuance and presentation with a anoncreds and a non-anoncreds holder.
These will need to get interop OWL-ATH tests.