Releases: openwallet-foundation/acapy
0.6.0
This is a significant release of ACA-Py with several new features, as well as changes to the internal architecture in order to set the groundwork for using the new shared component libraries: indy-vdr, indy-credx, and aries-askar.
Mediator support
While ACA-Py had previous support for a basic routing protocol, this was never fully developed or used in practice. Starting with this release, inbound and outbound connections can be established through a mediator agent using the Aries (Mediator Coordination Protocol)[https://github.com/hyperledger/aries-rfcs/tree/master/features/0211-route-coordination]. This work was initially contributed by Adam Burdett and Daniel Bluhm of Indicio on behalf of SICPA. Read more about mediation support.
Multi-Tenancy support
Started by BMW and completed by Animo Solutions and Anon Solutions on behalf of SICPA, this feature allows for a single ACA-Py instance to host multiple wallet instances. This can greatly reduce the resources required when many identities are being handled. Read more about multi-tenancy support.
New connection protocol(s)
In addition to the Aries 0160 Connections RFC, ACA-Py now supports the Aries DID Exchange Protocol for connection establishment and reuse, as well as the Aries Out-of-Band Protocol for representing connection invitations and other pre-connection requests.
Issue-Credential v2
This release includes an initial implementation of the Aries Issue Credential v2 protocol.
Notable changes for administrators
-
There are several new endpoints available for controllers as well as new startup parameters related to the multi-tenancy and mediator features, see the feature description pages above in order to make use of these features. Additional admin endpoints are introduced for the DID Exchange, Issue Credential v2, and Out-of-Band protocols.
-
When running
aca-py start
, a new wallet will no longer be created unless the--auto-provision
argument is provided. It is recommended to always useaca-py provision
to initialize the wallet rather than relying on automatic behaviour, as this removes the need for repeatedly providing the wallet seed value (if any). This is a breaking change from previous versions. -
When running
aca-py provision
, an existing wallet will not be removed and re-created unless the--recreate-wallet
argument is provided. This is a breaking change from previous versions. -
The logic around revocation intervals has been tightened up in accordance with Present Proof Best Practices.
Notable changes for plugin writers
The following are breaking changes to the internal APIs which may impact Python code extensions.
-
Manager classes generally accept a
Profile
instance, where previously they accepted aRequestContext
. -
Admin request handlers now receive an
AdminRequestContext
asapp["context"]
. The current profile is available asapp["context"].profile
. The admin server now generates a unique context instance per request in order to facilitate multi-tenancy, rather than reusing the same instance for each handler. -
In order to inject the
BaseStorage
orBaseWallet
interfaces, aProfileSession
must be used. Other interfaces can be injected at theProfile
orProfileSession
level. This is obtained by awaitingprofile.session()
for the currentProfile
instance, or (preferably) using it as an async context manager:
async with profile.session() as session:
storage = session.inject(BaseStorage)
- The
inject
method of a context is no longerasync
.
0.6.0-rc1
Merge pull request #989 from andrewwhitehead/pre-release-0.6rc1 Update version to 0.6.0-rc1
0.6.0-rc0
Merge pull request #960 from andrewwhitehead/0.6-rc0 Adjust version to 0.6.0-rc0
0.5.6
0.5.5
- Support interactions using the new
https://didcomm.org
message type prefix (currently opt-in via the--emit-new-didcomm-prefix
flag) #705, #713 - Updates to application startup arguments, adding support for YAML configuration #739, #746, #748
- Add a new endpoint to check the revocation status of a stored credential #735
- Clean up API documentation and OpenAPI definition, minor API adjustments #712, #726, #732, #734, #738, #741, #747
- Add configurable support for unencrypted record tags #723
- Retain more limited records on issued credentials #718
- Fix handling of custom endpoint in connections
accept-request
API method #715,
#716 - Add restrictions around revocation registry sizes #727
- Allow the state for revocation registry records to be set manually #708
- Handle multiple matching credentials when satisfying a presentation request using
names
#706 - Additional handling for a missing local tails file, tails file rollover process #702, #717
- Handle unknown credential ID in
create-proof
API method #700 - Improvements to revocation interval handling in presentation requests #699, #703
- Clean up warnings on API redirects #692
- Extensions to DID publicity status #691
- Support Unicode text in JSON-LD credential handling #687
0.5.4
- Improvements to schema, cred def registration procedure #682, #683
- Updates to align admin API output with documented interface #674, #681
- Fix provisioning issue when ledger is configured as read-only #673
- Add
get-nym-role
action #671 - Basic support for w3c profile endpoint #667, #669
- Improve handling of non-revocation interval #648, #680
- Update revocation demo after changes to tails file handling #644
- Improve handling of fatal ledger errors #643, #659
- Improve
did:key:
handling in out-of-band protocol support #639 - Fix crash when no public DID is configured #637
- Fix high CPU usage when only messages pending retry are in the outbound queue #636
- Additional unit tests for config, messaging, revocation, startup, transports #633, #641, #658, #661, #666
- Allow forwarded messages to use existing connections and the outbound queue #631
0.5.3
- Store endpoint on provisioned DID records #610
- More reliable delivery of outbound messages and webhooks #615
- Improvements for OpenShift pod handling #614
- Remove support for 'on-demand' revocation registries #605
- Sort tags in generated swagger JSON for better consistency #602
- Improve support for multi-credential proofs #601
- Adjust default settings for tracing and add documentation #598, #597
- Fix reliance on local copy of revocation tails file #590
- Improved handling of problem reports #595
- Remove credential preview parameter from credential issue endpoint #596
- Looser format restrictions on dates #586
- Support
names
and attribute-value specifications in present-proof protocol #587 - Misc documentation updates and unit test coverage
0.5.2
- Initial out-of-band protocol support #576
- Support provisioning a new local-only DID in the wallet, updating a DID endpoint #559, #573
- Support pagination for holder search operation #558
- Add raw JSON credential signing and verification admin endpoints #540
- Catch fatal errors in admin and protocol request handlers #527, #533, #534, #539, #543, #554, #555
- Add wallet and DID key rotation operations #525
- Admin API documentation and usability improvements #504, #516, #570
- Adjust the maximum number of attempts for outbound messages #501
- Add demo support for tails server #499
- Various credential and presentation protocol fixes and improvements #491, #494, #498, #526, #561, #563, #564, #577, #579
- Fixes for multiple agent endpoints #495, #497
- Additional test coverage #482, #485, #486, #487, #490, #493, #509, #553
- Update marshmallow dependency #479
0.5.1
0.5.0
- Add support for credential revocation and revocation registry handling, with thanks to Medici Ventures #306, #417, #425, #429, #432, #435, #441, #455
- Breaking change Remove previous credential and presentation protocols (0.1 versions) #416
- Add support for major/minor protocol version routing #443
- Event tracing and trace reports for message exchanges #440
- Support additional Indy restriction operators (
>
,<
,<=
in addition to>=
) #457 - Support signed attachments according to the updated Aries RFC 0017 #456
- Increased test coverage #442, #453
- Updates to demo agents and documentation #402, #403, #411, #415, #422, #423, #449, #450, #452
- Use Indy generate_nonce method to create proof request nonces #431
- Make request context available in the outbound transport handler #408
- Contain indy-anoncreds usage in IndyIssuer, IndyHolder, IndyProver classes #406, #463
- Fix issue with validation of proof with predicates and revocation support #400