Skip to content
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

Merged
merged 16 commits into from
Nov 22, 2024

Conversation

jamshale
Copy link
Contributor

@jamshale jamshale commented Nov 6, 2024

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.

@jamshale jamshale changed the title Feat/3316 Add anoncreds issuance and presentation format Nov 6, 2024
@jamshale jamshale marked this pull request as ready for review November 6, 2024 20:57
@swcurran swcurran requested review from a team November 12, 2024 14:30
dbluhm
dbluhm previously approved these changes Nov 12, 2024
Copy link
Contributor

@dbluhm dbluhm left a 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.

@dbluhm
Copy link
Contributor

dbluhm commented Nov 12, 2024

I approved but we have test failures that should be resolved before merging.

@jamshale
Copy link
Contributor Author

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.

@jamshale jamshale force-pushed the feat/3316 branch 2 times, most recently from e9a0785 to e922f06 Compare November 18, 2024 19:22
@jamshale
Copy link
Contributor Author

jamshale commented Nov 18, 2024

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.

@jamshale jamshale requested a review from ianco November 18, 2024 19:33
@jamshale jamshale linked an issue Nov 18, 2024 that may be closed by this pull request
@jamshale jamshale requested a review from dbluhm November 19, 2024 16:14
@ianco
Copy link
Contributor

ianco commented Nov 19, 2024

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?

@jamshale
Copy link
Contributor Author

jamshale commented Nov 19, 2024

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 anoncreds format because of the wrong wallet type (schema and cred def tables are different). However, the agent can use the indy format still and the credential will work. I think this is still tested but I should make sure.

Issuer (askar-anoncreds) --> Holder (askar): This works and is tested. The holder falls back to the indy handler in specific areas where it needs to, for both issuance and presentation flows.

Both issuer and holder need to be on the lastest version (have this code) for the anoncreds format to work regardless of wallet type.

@jamshale
Copy link
Contributor Author

@ianco

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.

@ianco
Copy link
Contributor

ianco commented Nov 19, 2024

FYI @jamshale the "1a" was added to the demo to support this kind of interoperability testing. (Available to an askar-anoncreds issuer only - this toggles between Anoncreds/Indy credentials and presentation requests. So as Faber I can issue an Anoncreds credential, select "1a" to switch to Indy, then issue an Indy presentation request. And vice versa.)

I did a quick test and when I sent the Indy presentation request I got an error: Problem report message: This issuer is anoncreds capable. Please use the anonreds format..

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.)

  • issuer wallet type
  • holder wallet type
  • credential type (Indy or Anoncreds)
  • verifier wallet type
  • presentation type (Indy or Anoncreds)

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 1a description above, I also recall adding this to a couple of integration tests ...

@jamshale
Copy link
Contributor Author

jamshale commented Nov 19, 2024

That error was expected. I don't think it's possible for an askar-anoncreds agent to use the indy format handler after it's been upgraded to anoncreds. Before the indy format was just re-routing it to the anoncreds handler. I thought forcing the anoncreds issuer to use the explicit format would be better than keeping the indy format switching over to the anoncreds handler.

The original plan was to completely remove the indy format according to the comments. I wanted to keep both for backwards compatibility. But having both and trying to force indy format to re-route to anoncreds handler caused problems.

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.

@jamshale
Copy link
Contributor Author

I'll create a table with the compatibility matrix after I fix this issue of issuer (askar) --> holder (askar-anoncreds)

@jamshale
Copy link
Contributor Author

Added an ugly commit. Will be working on further testing and refactoring still.

Issuer (anoncreds) --> use anoncreds format --> works with both (indy, askar wallet type) and anoncreds holder.
Issuer (indy, askar wallet type) --> use indy format --> works works with both (indy, askar wallet type) and anoncreds holder.

@ianco
Copy link
Contributor

ianco commented Nov 21, 2024

Added an ugly commit. Will be working on further testing and refactoring still.

Issuer (anoncreds) --> use anoncreds format --> works with both (indy, askar wallet type) and anoncreds holder. Issuer (indy, askar wallet type) --> use indy format --> works works with both (indy, askar wallet type) and anoncreds holder.

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?

@jamshale
Copy link
Contributor Author

It is a breaking change for anoncreds (wallet type askar-anoncreds) issuers. They will need to change their formats to anoncreds for issuance and presentations.

Any other type of agent is unaffected. Although holders will need to be upgraded to the latest version to handle the anoncreds format. I don't think there's any way to avoid this.

@jamshale
Copy link
Contributor Author

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>
Signed-off-by: jamshale <jamiehalebc@gmail.com>
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
3 Security Hotspots
8.5% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

@ianco
Copy link
Contributor

ianco commented Nov 22, 2024

@jamshale is this PR ready to go or are you still working on it?

@jamshale
Copy link
Contributor Author

@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.

@jamshale
Copy link
Contributor Author

Some of the stuff I had to do for compatibility is a bit ugly. But one day it can be removed.

@ianco
Copy link
Contributor

ianco commented Nov 22, 2024

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.

Copy link
Contributor

@ianco ianco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jamshale jamshale merged commit a00b5f5 into openwallet-foundation:main Nov 22, 2024
9 of 10 checks passed
ff137 added a commit to didx-xyz/acapy that referenced this pull request Dec 5, 2024
* ⬆️ 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement/Fix anoncreds issuance and presentation formats
3 participants