All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
0.2.4 (2022-09-10)
- avoid crash when an unexpected message arrives (#1019) (2cfadd9)
- ledger: check taa version instad of aml version (#1013) (4ca56f6)
- ledger: remove poolConnected on pool close (#1011) (f0ca8b6)
- question-answer: question answer protocol state/role check (#1001) (4b90e87)
- Action Menu protocol (Aries RFC 0509) implementation (#974) (60a8091)
- routing: add settings to control back off strategy on mediator reconnection (#1017) (543437c)
0.2.3 (2022-08-30)
- export the KeyDerivationMethod (#958) (04ab1cc)
- expose oob domain (#990) (dad975d)
- generic-records: support custom id property (#964) (0f690a0)
- always initialize mediator (#985) (b699977)
- delete by record id (#983) (d8a30d9)
- ledger: handle REQNACK response for write request (#967) (6468a93)
- OOB public did (#930) (c99f3c9)
- proofs: present proof as nested protocol (#972) (52247d9)
- routing: manual mediator pickup lifecycle management (#989) (69d4906)
- routing: pickup v2 mediator role basic implementation (#975) (a989556)
- routing: support promise in message repo (#959) (79c5d8d)
0.2.2 (2022-07-15)
- oob: support fetching shortened invitation urls (#840) (60ee0e5)
- routing: support did:key in RFC0211 (#950) (dc45c01)
0.2.1 (2022-07-08)
- clone record before emitting event (#938) (f907fe9)
- missing module exports (#927) (95f90a5)
- oob: support legacy prefix in attachments (#931) (82863f3)
- credentials: added credential sendProblemReport method (#906) (90dc7bb)
- initial plugin api (#907) (6d88aa4)
- oob: allow to append attachments to invitations (#926) (4800700)
- routing: add routing service (#909) (6e51e90)
0.2.0 (2022-06-24)
- add BBS context to DidDoc (#789) (c8ca091)
- add oob state and role check (#777) (1c74618)
- agent isinitialized on shutdown (#665) (d1049e0)
- allow agent without inbound endpoint to connect when using multi-use invitation (#712) (01c5bb3), closes #483
- basic-message: assert connection is ready (#657) (9f9156c)
- check for "REQNACK" response from indy ledger (#626) (ce66f07)
- check proof request group names do not overlap (#638) (0731ccd)
- clone record before emitting event (#833) (8192861)
- close session early if no return route (#715) (2e65408)
- connections: allow ; to convert legacy did (#882) (448a29d)
- connections: didexchange to connection state (#823) (dda1bd3)
- connections: fix log of object in string (#904) (95d893e)
- connections: set image url in create request (#896) (8396965)
- core: allow JSON as input for indy attributes (#813) (478fda3)
- core: error if unpacked message does not match JWE structure (#639) (c43cfaa)
- core: expose CredentialPreviewAttribute (#796) (65d7f15)
- core: set tags in MediationRecord constructor (#686) (1b01bce)
- credential preview attributes mismatch schema attributes (#625) (c0095b8)
- credentials: add missing issue credential v1 proposal attributes (#798) (966cc3d)
- credentials: default for credentials in exchange record (#816) (df1a00b)
- credentials: do not store offer attributes (#892) (39c4c0d)
- credentials: indy cred attachment format (#862) (16935e2)
- credentials: miscellaneous typing issues (#880) (ad35b08)
- credentials: parse and validate preview @type (#861) (1cc8f46)
- credentials: proposal preview attribute (#855) (3022bd2)
- credentials: store revocation identifiers (#864) (7374799)
- credentials: use interface in module api (#856) (58e6603)
- delete credentials (#766) (cbdff28)
- delete credentials (#770) (f1e0412)
- did sov service type resolving (#689) (dbcd8c4)
- disallow floating promises (#704) (549647d)
- disallow usage of global buffer (#601) (87ecd8c)
- do not import from src dir (#748) (1dfa32e)
- do not import test logger in src (#746) (5c80004)
- do not use basic message id as record id (#677) (3713398)
- extract indy did from peer did in indy credential request (#790) (09e5557)
- incorrect encoding of services for did:peer (#610) (28b1715)
- indy: async ledger connection issues on iOS (#803) (8055652)
- issue where attributes and predicates match (#640) (15a5e6b)
- leading zeros in credential value encoding (#632) (0d478a7)
- mediation record checks for pickup v2 (#736) (2ad600c)
- miscellaneous issue credential v2 fixes (#769) (537b51e)
- node: allow to import node package without postgres (#757) (59e1058)
- node: only send 500 if no headers sent yet (#857) (4be8f82)
- oob: allow legacy did sov prefix (#889) (c7766d0)
- oob: check service is string instance (#814) (bd1e677)
- oob: export messages to public (#828) (10cf74d)
- oob: expose oob record (#839) (c297dfd)
- oob: expose parseInvitation publicly (#834) (5767500)
- oob: legacy invitation with multiple endpoint (#825) (8dd7f80)
- optional fields in did document (#726) (2da845d)
- process ws return route messages serially (#826) (2831a8e)
- proofs: allow duplicates in proof attributes (#848) (ca6c1ce)
- propose payload attachment in in snake_case JSON format (#775) (6c2dfdb)
- relax validation of thread id in revocation notification (#768) (020e6ef)
- remove deprecated multibase and multihash (#674) (3411f1d)
- remove unqualified did from out of band record (#782) (0c1423d)
- remove usage of const enum (#888) (a7754bd)
- routing: also use pickup strategy from config (#808) (fd08ae3)
- routing: mediation recipient role for recipient (#661) (88ad790)
- routing: remove sentTime from request message (#670) (1e9715b)
- routing: sending of trustping in pickup v2 (#787) (45b024d)
- send message to service (#838) (270c347)
- support pre-aip2 please ack decorator (#835) (a4bc215)
- update inbound message validation (#678) (e383343)
- verify jws contains at least 1 signature (#600) (9c96518)
-
delete credentials by default when deleting exchange (#767) (656ed73)
-
do not add ~service in createOOBOffer method (#772) (a541949)
-
chore!: update indy-sdk-react-native version to 0.2.0 (#754) (4146778), closes #754
- 0.2.0 migration script for connections (#773) (0831b9b)
- ability to add generic records (#702) (e617496), closes #688
- add didcomm message record (#593) (e547fb1)
- add find and save/update methods to DidCommMessageRepository (#620) (beff6b0)
- add generic did resolver (#554) (8e03f35)
- add issue credential v2 (#745) (245223a)
- add out-of-band and did exchange (#717) (16c6d60)
- add question answer protocol (#557) (b5a2536)
- add role and method to did record tags (#692) (3b6504b)
- add support for did:peer (#608) (c5c4172)
- add support for signed attachments (#595) (eb49374)
- add update assistant for storage migrations (#690) (c9bff93)
- add validation to JSON transformer (#830) (5b9efe3)
- add wallet key derivation method option (#650) (8386506)
- add wallet module with import export (#652) (6cf5a7b)
- core: add support for postgres wallet type (#699) (83ff0f3)
- core: added timeOut to the module level (#603) (09950c7)
- core: allow to set auto accept connetion exchange when accepting invitation (#589) (2d95dce)
- core: generic repository events (#842) (74dd289)
- credentials: add get format data method (#877) (521d489)
- credentials: delete associated didCommMessages (#870) (1f8b6ab)
- credentials: find didcomm message methods (#887) (dc12427)
- delete credential from wallet (#691) (abec3a2)
- extension module creation (#688) (2b6441a)
- filter retrieved credential by revocation state (#641) (5912c0c)
- indy revocation (prover & verifier) (#592) (fb19ff5)
- indy: add choice for taa mechanism (#849) (ba03fa0)
- ledger connections happen on agent init in background (#580) (61695ce)
- pickup v2 protocol (#711) (b281673)
- regex for schemaVersion, issuerDid, credDefId, schemaId, schemaIssuerDid (#679) (36b9d46)
- routing: allow to discover mediator pickup strategy (#669) (5966da1)
- support advanced wallet query (#831) (28e0ffa)
- support handling messages with different minor version (#714) (ad12360)
- support new did document in didcomm message exchange (#609) (a1a3b7d)
- support revocation notification messages (#579) (9f04375)
- support wallet key rotation (#672) (5cd1598)
- update recursive backoff & trust ping record updates (#631) (f64a9da)
- indy: the transaction author agreement acceptance mechanism was previously automatically the first acceptance mechanism from the acceptance mechanism list. With this addition, the framework never automatically selects the acceptance mechanism anymore and it needs to be specified in the transactionAuthorAgreement in the indyLedgers agent config array.
- the credentials associated with a credential exchange record are now deleted by default when deleting a credential exchange record. If you only want to delete the credential exchange record and not the associated credentials, you can pass the deleteAssociatedCredentials to the deleteById method:
await agent.credentials.deleteById('credentialExchangeId', {
deleteAssociatedCredentials: false,
})
- with the addition of the out of band module
credentials.createOutOfBandOffer
is renamed tocredentials.createOffer
and no longer adds the~service
decorator to the message. You need to calloob.createLegacyConnectionlessInvitation
afterwards to use it for AIP-1 style connectionless exchanges. See Migrating from AFJ 0.1.0 to 0.2.x for detailed migration instructions. - the connections module has been extended with an out of band module and support for the DID Exchange protocol. Some methods have been moved to the out of band module, see Migrating from AFJ 0.1.0 to 0.2.x for detailed migration instructions.
- indy-sdk-react-native has been updated to 0.2.0. The new version now depends on libindy version 1.16 and requires you to update the binaries in your react-native application. See the indy-sdk-react-native repository for instructions on how to get the latest binaries for both iOS and Android.
- The mediator pickup strategy enum value
MediatorPickupStrategy.Explicit
has been renamed toMediatorPickupStrategy.PickUpV1
to better align with the naming of the newMediatorPickupStrategy.PickUpV2
- attachment method
getDataAsJson
is now located one level up. So instead ofattachment.data.getDataAsJson()
you should now callattachment.getDataAsJson()
- add details to connection signing error (#484) (e24eafd)
- add error message to log (#342) (a79e4f4)
- add option check to attribute constructor (#450) (8aad3e9)
- Add samples folder as test root (#215) (b6a3c1c)
- added ariesframeworkerror to httpoutboundtransport (#438) (ee1a229)
- alter mediation recipient websocket transport priority (#434) (52c7897)
- check instance types of record properties (#163) (cc61c80)
- connection record type was BaseRecord (#278) (515395d)
- convert from buffer now also accepts uint8Array (#283) (dae123b)
- core: convert legacy prefix for inner msgs (#479) (a2b655a)
- core: do not throw error on timeout in http (#512) (4e73a7b)
- core: do not use did-communication service (#402) (cdf2edd)
- core: export AgentMessage (#480) (af39ad5)
- core: expose record metadata types (#556) (68995d7)
- core: fix empty error log in console logger (#524) (7d9c541)
- core: improve wallet not initialized error (#513) (b948d4c)
- core: improved present-proof tests (#482) (41d9282)
- core: log errors if message is undeliverable (#528) (20b586d)
- core: remove isPositive validation decorators (#477) (e316e04)
- core: remove unused url import (#466) (0f1323f)
- core: requested predicates transform type (#393) (69684bc)
- core: send messages now takes a connection id (#491) (ed9db11)
- core: using query-string to parse URLs (#457) (78e5057)
- Correctly persist createdAt attribute (#119) (797a112), closes #118
- date parsing (#426) (2d31b87)
- export indy pool config (#504) (b1e2b8c)
- export module classes from framework root (#315) (a41cc75)
- export ProofsModule to public API (#325) (f2e3a06)
- handle receive message promise rejection (#318) (ca6fb13)
- include error when message cannot be handled (#533) (febfb05)
- incorrect recip key with multi routing keys (#446) (db76823)
- legacy did:sov prefix on invitation (#216) (dce3081)
- make presentation proposal optional (#197) (1c5bfbd)
- make records serializable (#448) (7e2946e)
- mediator transports (#419) (87bc589)
- mediator updates (#432) (163cda1)
- monorepo release issues (#386) (89a628f)
- node: node v12 support for is-indy-installed (#542) (17e9157)
- proof configurable on proofRecord (#397) (8e83c03)
- redux-store: add reducers to initializeStore (#413) (d9aeabf)
- redux-store: credential and proof selector by id (#407) (fd8933d)
- Remove apostrophe from connection request message type (#364) (ee81d01)
- remove dependency on global types (#327) (fb28935)
- removed check for senderkey for connectionless exchange (#555) (ba3f17e)
- return valid schema in create schema method (#193) (4ca020b)
- revert target back to es2017 (#319) (9859db1)
- revert to ES2017 to fix function generator issues in react native (#226) (6078324)
- support mediation for connectionless exchange (#577) (3dadfc7)
- test failing because of moved import (#282) (e5efce0)
- their did doc not ours (#436) (0226609)
- use both thread id and connection id (#299) (3366a55)
- Use custom make-error with cause that works in RN (#285) (799b6c8)
- websocket and fetch fix for browser (#291) (84e570d)
- make a connection with mediator asynchronously (#231) (bafa839)
- fix(core)!: Improved typing on metadata api (#585) (4ab8d73), closes #585
- fix(core)!: update class transformer library (#547) (dee03e3), closes #547
- fix(core)!: prefixed internal metadata with _internal/ (#535) (aa1b320), closes #535
- feat(core)!: metadata on records (#505) (c92393a), closes #505
- fix(core)!: do not request ping res for connection (#527) (3db5519), closes #527
- refactor(core)!: simplify get creds for proof api (#523) (ba9698d), closes #523
- fix(core)!: improve proof request validation (#525) (1b4d8d6), closes #525
- feat(core)!: added basic message sent event (#507) (d2c04c3), closes #507
- Add assertions for credential state transitions (#130) (00d2b1f), closes #123
- add credential info to access attributes (#254) (2fef3aa)
- add delete methods to services and modules (#447) (e7ed602)
- add dependency injection (#257) (1965bfe)
- add from record method to cred preview (#428) (895f7d0)
- add inbound message queue (#339) (93893b7)
- add internal http outbound transporter (#255) (4dd950e)
- add internal polling inbound transporter (#323) (6dd273b)
- add internal ws outbound transporter (#267) (2933207)
- add isInitialized agent property (#293) (deb5554)
- add multiple inbound transports (#433) (56cb9f2)
- add problem report protocol (#560) (baee5db)
- add support for Multibase, Multihash and Hashlinks (#263) (36ceaea)
- add support for RFC 0211 mediator coordination (2465d4d)
- Add support for WebSocket transports (#256) (07b479f)
- add toJson method to BaseRecord (#455) (f3790c9)
- Added attachment extension (#266) (e8ab5fa)
- added decline credential offer method (#416) (d9ac141)
- added declined proof state and decline method for presentations (e5aedd0)
- added their label to the connection record (#370) (353e1d8)
- adds support for linked attachments (#320) (ea91559)
- allow for lazy wallet initialization (#331) (46918a1)
- allow to use legacy did sov prefix (#442) (c41526f)
- auto accept proofs (#367) (735d578)
- automatic transformation of record classes (#253) (e07b90e)
- break out indy wallet, better indy handling (#396) (9f1a4a7)
- core: add discover features protocol (#390) (3347424)
- core: add support for multi use inviations (#460) (540ad7b)
- core: connection-less issuance and verification (#359) (fb46ade)
- core: d_m invitation parameter and invitation image (#456) (f92c322)
- core: ledger module registerPublicDid implementation (#398) (5f2d512)
- core: store mediator id in connection record (#503) (da51f2e)
- core: support image url in invitations (#463) (9fda24e)
- core: support multiple indy ledgers (#474) (47149bc)
- core: update agent label and imageUrl plus per connection label and imageUrl (#516) (5e9a641)
- core: validate outbound messages (#526) (9c3910f)
- expose wallet API (#566) (4027fc9)
- generic attachment handler (#578) (4d7d3c1)
- method to retrieve credentials for proof request (#329) (012afa6)
- negotiation and auto accept credentials (#336) (55e8697)
- node: add http and ws inbound transport (#392) (34a6ff2)
- node: add is-indy-installed command (#510) (e50b821)
- only connect to ledger when needed (#273) (a9c261e)
- Pack and send a message based on DidDoc services (#304) (6a26337)
- redux-store: add mediation store (#424) (03e4341)
- redux-store: move from mobile agent repo (#388) (d84acc7)
- redux: delete credentialRecord and proofRecord (#421) (9fa6c6d)
- support newer did-communication service type (#233) (cf29d8f)
- support node v12+ (#294) (6ec201b)
- use computed tags for records (#313) (4e9a48b)
- Use session to send outbound message (#362) (7366ca7)
- removed the getAll() function.
- The agent’s
shutdown
method does not delete the wallet anymore. If you want to delete the wallet, you can do it via exposed wallet API. - class-transformer released a breaking change in a patch version, causing AFJ to break. I updated to the newer version and pinned the version exactly as this is the second time this has happened now.
- internal metadata is now prefixed with _internal to avoid clashing and accidental overwriting of internal data.
- fix(core): added _internal/ prefix on metadata
- credentialRecord.credentialMetadata has been replaced by credentialRecord.metadata.
- a trust ping response will not be requested anymore after completing a connection. This is not required, and also non-standard behaviour. It was also causing some tests to be flaky as response messages were stil being sent after one of the agents had already shut down.
- The
ProofsModule.getRequestedCredentialsForProofRequest
expected some low level message objects as input. This is not in line with the public API of the rest of the framework and has been simplified to only require a proof record id and optionally a boolean whether the retrieved credentials should be filtered based on the proof proposal (if available). - Proof request requestedAttributes and requestedPredicates are now a map instead of record. This is needed to have proper validation using class-validator.
BasicMessageReceivedEvent
has been replaced by the more generalBasicMessageStateChanged
event which triggers when a basic message is received or sent.- Tags on a record can now be accessed using the
getTags()
method. Records should be updated with this method and return the properties from the record to include in the tags. - extracts outbound transporter from Agent's constructor.