From 05e9f1a216f091d412319f8ce2590d5183080e46 Mon Sep 17 00:00:00 2001 From: Jakub Sydor Date: Wed, 22 Jun 2022 13:07:04 +0200 Subject: [PATCH 01/11] fix: cache-client token refresh --- .../cache-client/cache-client.service.ts | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/modules/cache-client/cache-client.service.ts b/src/modules/cache-client/cache-client.service.ts index a0489645..3647bff5 100644 --- a/src/modules/cache-client/cache-client.service.ts +++ b/src/modules/cache-client/cache-client.service.ts @@ -76,12 +76,24 @@ export class CacheClient implements ICacheClient { async authenticate() { let tokens: AuthTokens | undefined = undefined; + const setTokens = () => { + if (!tokens) return; + if (!this.isBrowser) { + this._httpClient.defaults.headers.common[ + 'Authorization' + ] = `Bearer ${tokens.token}`; + } + this.refresh_token = tokens.refreshToken; + }; + // First try to refresh access token try { const refreshedTokens = await this.refreshToken(); + tokens = refreshedTokens; + setTokens(); - if (refreshedTokens && (await this.isAuthenticated())) { - tokens = refreshedTokens; + if (!(await this.isAuthenticated())) { + tokens = undefined; } } catch { getLogger().error('[CACHE CLIENT] Failed to refresh tokens'); @@ -97,16 +109,9 @@ export class CacheClient implements ICacheClient { }); this.pubKeyAndIdentityToken = pubKeyAndIdentityToken; tokens = data; + setTokens(); } - // Set new tokens - if (!this.isBrowser) { - this._httpClient.defaults.headers.common[ - 'Authorization' - ] = `Bearer ${tokens.token}`; - } - this.refresh_token = tokens.refreshToken; - // Run previously failed requests console.log( `[CACHE CLIENT] Running failed requests: ${this.failedRequests.length}` From 42e3973daa6a68b1095c439a2823be084038a6fd Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 22 Jun 2022 13:37:25 +0000 Subject: [PATCH 02/11] chore(release): 6.0.0-alpha.20 [skip ci] ## [6.0.0-alpha.20](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.19...v6.0.0-alpha.20) (2022-06-22) ### Bug Fixes * cache-client token refresh ([05e9f1a](https://github.com/energywebfoundation/iam-client-lib/commit/05e9f1a216f091d412319f8ce2590d5183080e46)) --- docs/CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index a9438c34..4c1c6411 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,10 @@ +## [6.0.0-alpha.20](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.19...v6.0.0-alpha.20) (2022-06-22) + + +### Bug Fixes + +* cache-client token refresh ([05e9f1a](https://github.com/energywebfoundation/iam-client-lib/commit/05e9f1a216f091d412319f8ce2590d5183080e46)) + ## [6.0.0-alpha.19](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.18...v6.0.0-alpha.19) (2022-06-20) diff --git a/package.json b/package.json index 4782eb55..b4a954c8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iam-client-lib", - "version": "6.0.0-alpha.19", + "version": "6.0.0-alpha.20", "description": "Library for Decentralized Identity and Access Management", "main": "dist/index.js", "module": "dist/index.esm.js", From e7c1ae9b892b9fbfafca6bdbe4c375d40317f1f8 Mon Sep 17 00:00:00 2001 From: Jakub Sydor Date: Thu, 23 Jun 2022 10:35:21 +0200 Subject: [PATCH 03/11] fix: throw an error when a did document update failed --- src/errors/error-messages.ts | 1 + src/modules/claims/claims.service.ts | 6 +++++- src/modules/did-registry/did-registry.service.ts | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/errors/error-messages.ts b/src/errors/error-messages.ts index 85eec9ef..206d269e 100644 --- a/src/errors/error-messages.ts +++ b/src/errors/error-messages.ts @@ -31,4 +31,5 @@ export enum ERROR_MESSAGES { ONCHAIN_ROLE_SUBJECT_AGREEMENT_NOT_SPECIFIED = 'On-chain role subject agreement not specified', REVOKE_CLAIM_MISSING_PARAMETERS = 'Revoke claim missing parameters. Required one of: claimId or claim', REVOKE_CLAIM_NOT_FOUND = 'Could not find claim to revoke', + DID_DOCUMENT_NOT_UPDATED = 'DID Document was not updated', } diff --git a/src/modules/claims/claims.service.ts b/src/modules/claims/claims.service.ts index 2217e071..de3f4db3 100644 --- a/src/modules/claims/claims.service.ts +++ b/src/modules/claims/claims.service.ts @@ -719,11 +719,15 @@ export class ClaimsService { hashAlg: 'SHA256', }, }; - await this._didRegistry.updateDocument({ + const isDocUpdated = await this._didRegistry.updateDocument({ didAttribute: DIDAttribute.ServicePoint, data, did: sub, }); + + if (!isDocUpdated) { + throw new Error(ERROR_MESSAGES.DID_DOCUMENT_NOT_UPDATED); + } } return url; } diff --git a/src/modules/did-registry/did-registry.service.ts b/src/modules/did-registry/did-registry.service.ts index 7aca4feb..0b0debfc 100644 --- a/src/modules/did-registry/did-registry.service.ts +++ b/src/modules/did-registry/did-registry.service.ts @@ -1,4 +1,4 @@ -import { Wallet, providers } from 'ethers'; +import { Wallet, providers, BigNumber } from 'ethers'; import { CID } from 'multiformats/cid'; import { KeyType } from '@ew-did-registry/keys'; import { JWT } from '@ew-did-registry/jwt'; @@ -341,7 +341,7 @@ export class DidRegistry { const update = await didDocument.update(didAttribute, updateData, validity); - return Boolean(update); + return update._hex !== BigNumber.from(0)._hex; } /** From 6230fc4eeecf2293f71977b60a4dd4c90d96e27e Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 23 Jun 2022 10:18:13 +0000 Subject: [PATCH 04/11] chore(release): 6.0.0-alpha.21 [skip ci] ## [6.0.0-alpha.21](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.20...v6.0.0-alpha.21) (2022-06-23) ### Bug Fixes * throw an error when a did document update failed ([e7c1ae9](https://github.com/energywebfoundation/iam-client-lib/commit/e7c1ae9b892b9fbfafca6bdbe4c375d40317f1f8)) --- docs/CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 4c1c6411..10690018 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,10 @@ +## [6.0.0-alpha.21](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.20...v6.0.0-alpha.21) (2022-06-23) + + +### Bug Fixes + +* throw an error when a did document update failed ([e7c1ae9](https://github.com/energywebfoundation/iam-client-lib/commit/e7c1ae9b892b9fbfafca6bdbe4c375d40317f1f8)) + ## [6.0.0-alpha.20](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.19...v6.0.0-alpha.20) (2022-06-22) diff --git a/package.json b/package.json index b4a954c8..519f755f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iam-client-lib", - "version": "6.0.0-alpha.20", + "version": "6.0.0-alpha.21", "description": "Library for Decentralized Identity and Access Management", "main": "dist/index.js", "module": "dist/index.esm.js", From 80cf93485d7f53460ab5df78b37f40fe5eedb4c7 Mon Sep 17 00:00:00 2001 From: whitneypurdum Date: Thu, 23 Jun 2022 14:10:47 +0100 Subject: [PATCH 05/11] feat(RevokeClaim): add endpoint to fetch claims by revoker (current user) --- .../modules_cache_client.CacheClient.md | 21 +++++++++++++++ .../classes/modules_claims.ClaimsService.md | 27 +++++++++++++++++++ .../modules_cache_client.ICacheClient.md | 17 ++++++++++++ ...odules_claims.GetClaimsByRevokerOptions.md | 17 ++++++++++++ docs/api/modules/modules_claims.md | 1 + package-lock.json | 4 +-- .../cache-client/cache-client.interface.ts | 2 +- .../cache-client/cache-client.service.ts | 9 +++++++ src/modules/claims/claims.service.ts | 19 +++++++++++++ src/modules/claims/claims.types.ts | 5 ++++ 10 files changed, 119 insertions(+), 3 deletions(-) create mode 100644 docs/api/interfaces/modules_claims.GetClaimsByRevokerOptions.md diff --git a/docs/api/classes/modules_cache_client.CacheClient.md b/docs/api/classes/modules_cache_client.CacheClient.md index 0355ef41..15cbe34a 100644 --- a/docs/api/classes/modules_cache_client.CacheClient.md +++ b/docs/api/classes/modules_cache_client.CacheClient.md @@ -36,6 +36,7 @@ - [getClaimById](modules_cache_client.CacheClient.md#getclaimbyid) - [getClaimsByIssuer](modules_cache_client.CacheClient.md#getclaimsbyissuer) - [getClaimsByRequester](modules_cache_client.CacheClient.md#getclaimsbyrequester) +- [getClaimsByRevoker](modules_cache_client.CacheClient.md#getclaimsbyrevoker) - [getClaimsBySubject](modules_cache_client.CacheClient.md#getclaimsbysubject) - [getClaimsBySubjects](modules_cache_client.CacheClient.md#getclaimsbysubjects) - [getDIDsForRole](modules_cache_client.CacheClient.md#getdidsforrole) @@ -371,6 +372,26 @@ ___ ___ +### getClaimsByRevoker + +▸ **getClaimsByRevoker**(`__namedParameters?`): `Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `__namedParameters` | [`ClaimsFilter`](../modules/modules_cache_client.md#claimsfilter) | + +#### Returns + +`Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\> + +#### Implementation of + +[ICacheClient](../interfaces/modules_cache_client.ICacheClient.md).[getClaimsByRevoker](../interfaces/modules_cache_client.ICacheClient.md#getclaimsbyrevoker) + +___ + ### getClaimsBySubject ▸ **getClaimsBySubject**(`subject`, `__namedParameters?`): `Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\> diff --git a/docs/api/classes/modules_claims.ClaimsService.md b/docs/api/classes/modules_claims.ClaimsService.md index a9bc40cc..e5ec982a 100644 --- a/docs/api/classes/modules_claims.ClaimsService.md +++ b/docs/api/classes/modules_claims.ClaimsService.md @@ -30,6 +30,7 @@ claimsService.getClaimById(claim.id); - [getClaimId](modules_claims.ClaimsService.md#getclaimid) - [getClaimsByIssuer](modules_claims.ClaimsService.md#getclaimsbyissuer) - [getClaimsByRequester](modules_claims.ClaimsService.md#getclaimsbyrequester) +- [getClaimsByRevoker](modules_claims.ClaimsService.md#getclaimsbyrevoker) - [getClaimsBySubject](modules_claims.ClaimsService.md#getclaimsbysubject) - [getClaimsBySubjects](modules_claims.ClaimsService.md#getclaimsbysubjects) - [getNamespaceFromClaimType](modules_claims.ClaimsService.md#getnamespacefromclaimtype) @@ -335,6 +336,32 @@ list of claims ___ +### getClaimsByRevoker + +▸ **getClaimsByRevoker**(`options?`): `Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\> + +Retrieve all claims that a user can revoke. Allow to filter by namespace + +```typescript +claimsService.getClaimsByRevoker({ + namespace?: 'energyweb.iam.ewc' +}); +``` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `options?` | [`GetClaimsByRevokerOptions`](../interfaces/modules_claims.GetClaimsByRevokerOptions.md) | + +#### Returns + +`Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\> + +list of claims + +___ + ### getClaimsBySubject ▸ **getClaimsBySubject**(`options`): `Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\> diff --git a/docs/api/interfaces/modules_cache_client.ICacheClient.md b/docs/api/interfaces/modules_cache_client.ICacheClient.md index db6f65f2..0fb2b7a8 100644 --- a/docs/api/interfaces/modules_cache_client.ICacheClient.md +++ b/docs/api/interfaces/modules_cache_client.ICacheClient.md @@ -25,6 +25,7 @@ - [getClaimById](modules_cache_client.ICacheClient.md#getclaimbyid) - [getClaimsByIssuer](modules_cache_client.ICacheClient.md#getclaimsbyissuer) - [getClaimsByRequester](modules_cache_client.ICacheClient.md#getclaimsbyrequester) +- [getClaimsByRevoker](modules_cache_client.ICacheClient.md#getclaimsbyrevoker) - [getClaimsBySubject](modules_cache_client.ICacheClient.md#getclaimsbysubject) - [getClaimsBySubjects](modules_cache_client.ICacheClient.md#getclaimsbysubjects) - [getDIDsForRole](modules_cache_client.ICacheClient.md#getdidsforrole) @@ -235,6 +236,22 @@ ___ ___ +### getClaimsByRevoker + +▸ **getClaimsByRevoker**(`filter?`): `Promise`<[`Claim`](modules_claims.Claim.md)[]\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `filter?` | [`ClaimsFilter`](../modules/modules_cache_client.md#claimsfilter) | + +#### Returns + +`Promise`<[`Claim`](modules_claims.Claim.md)[]\> + +___ + ### getClaimsBySubject ▸ **getClaimsBySubject**(`subject`, `filter?`): `Promise`<[`Claim`](modules_claims.Claim.md)[]\> diff --git a/docs/api/interfaces/modules_claims.GetClaimsByRevokerOptions.md b/docs/api/interfaces/modules_claims.GetClaimsByRevokerOptions.md new file mode 100644 index 00000000..a0817ba4 --- /dev/null +++ b/docs/api/interfaces/modules_claims.GetClaimsByRevokerOptions.md @@ -0,0 +1,17 @@ +# Interface: GetClaimsByRevokerOptions + +[modules/claims](../modules/modules_claims.md).GetClaimsByRevokerOptions + +## Table of contents + +### Properties + +- [namespace](modules_claims.GetClaimsByRevokerOptions.md#namespace) + +## Properties + +### namespace + +• `Optional` **namespace**: `string` + +Indicates what namespace `Claims` should be in diff --git a/docs/api/modules/modules_claims.md b/docs/api/modules/modules_claims.md index b49d191f..dfd6fe7a 100644 --- a/docs/api/modules/modules_claims.md +++ b/docs/api/modules/modules_claims.md @@ -22,6 +22,7 @@ - [DeleteClaimOptions](../interfaces/modules_claims.DeleteClaimOptions.md) - [GetClaimsByIssuerOptions](../interfaces/modules_claims.GetClaimsByIssuerOptions.md) - [GetClaimsByRequesterOptions](../interfaces/modules_claims.GetClaimsByRequesterOptions.md) +- [GetClaimsByRevokerOptions](../interfaces/modules_claims.GetClaimsByRevokerOptions.md) - [GetClaimsBySubjectOptions](../interfaces/modules_claims.GetClaimsBySubjectOptions.md) - [GetRevocationClaimDetailsOptions](../interfaces/modules_claims.GetRevocationClaimDetailsOptions.md) - [GetRevocationClaimDetailsResult](../interfaces/modules_claims.GetRevocationClaimDetailsResult.md) diff --git a/package-lock.json b/package-lock.json index 558db8d7..9f5ed8ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "iam-client-lib", - "version": "6.0.0-alpha.18", + "version": "6.0.0-alpha.20", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "iam-client-lib", - "version": "6.0.0-alpha.18", + "version": "6.0.0-alpha.20", "license": "GPL-3.0-or-later", "dependencies": { "@energyweb/credential-governance": "^1.0.1-alpha.68.0", diff --git a/src/modules/cache-client/cache-client.interface.ts b/src/modules/cache-client/cache-client.interface.ts index 711df5b9..2b668369 100644 --- a/src/modules/cache-client/cache-client.interface.ts +++ b/src/modules/cache-client/cache-client.interface.ts @@ -20,7 +20,6 @@ export interface ICacheClient { pubKeyAndIdentityToken: IPubKeyAndIdentityToken | undefined; login: () => Promise; isAuthEnabled: () => boolean; - getRoleDefinition: (namespace: string) => Promise; getRolesDefinition: ( namespace: string[] @@ -61,6 +60,7 @@ export interface ICacheClient { filter?: ClaimsFilter ) => Promise; getClaimById: (claimId: string) => Promise; + getClaimsByRevoker: (filter?: ClaimsFilter) => Promise; requestClaim: (message: IClaimRequest) => Promise; issueClaim: (issuer: string, message: IClaimIssuance) => Promise; rejectClaim: (issuer: string, message: IClaimRejection) => Promise; diff --git a/src/modules/cache-client/cache-client.service.ts b/src/modules/cache-client/cache-client.service.ts index 3647bff5..1e6957a9 100644 --- a/src/modules/cache-client/cache-client.service.ts +++ b/src/modules/cache-client/cache-client.service.ts @@ -347,6 +347,15 @@ export class CacheClient implements ICacheClient { return data; } + async getClaimsByRevoker({ namespace }: ClaimsFilter = {}) { + const { data } = await this._httpClient.get(`/claim/revoker`, { + params: { + namespace, + }, + }); + return data; + } + async getClaimById(claimId: string): Promise { const { data } = await this._httpClient.get( `/claim/${claimId}` diff --git a/src/modules/claims/claims.service.ts b/src/modules/claims/claims.service.ts index 2217e071..18300889 100644 --- a/src/modules/claims/claims.service.ts +++ b/src/modules/claims/claims.service.ts @@ -57,6 +57,7 @@ import { GetRevocationClaimDetailsOptions, GetRevocationClaimDetailsResult, ClaimRevocationDetailsResult, + GetClaimsByRevokerOptions, } from './claims.types'; import { DidRegistry } from '../did-registry/did-registry.service'; import { ClaimData } from '../did-registry/did.types'; @@ -266,6 +267,24 @@ export class ClaimsService { return this._cacheClient.getClaimsBySubject(did, { isAccepted, namespace }); } + /** + * Retrieve all claims that a user can revoke. Allow to filter by namespace + * + * ```typescript + * claimsService.getClaimsByRevoker({ + * namespace?: 'energyweb.iam.ewc' + * }); + * ``` + * + * @param {GetClaimsByRevokerOptions} options + * @return list of claims + */ + async getClaimsByRevoker( + options?: GetClaimsByRevokerOptions + ): Promise { + return this._cacheClient.getClaimsByRevoker(options); + } + /** * Retrieve claim with given id. * diff --git a/src/modules/claims/claims.types.ts b/src/modules/claims/claims.types.ts index 52e2c215..405f013a 100644 --- a/src/modules/claims/claims.types.ts +++ b/src/modules/claims/claims.types.ts @@ -138,6 +138,11 @@ export interface GetClaimsBySubjectOptions { namespace?: string; } +export interface GetClaimsByRevokerOptions { + /** Indicates what namespace `Claims` should be in */ + namespace?: string; +} + export interface CreateClaimRequestOptions { /** Claim request params */ claim: { From b6648d6549b569fb6a74ccaba8b5c5b970ce7806 Mon Sep 17 00:00:00 2001 From: whitneypurdum Date: Fri, 24 Jun 2022 10:01:02 +0100 Subject: [PATCH 06/11] feat(revokeClaim): make did param required --- .../classes/modules_cache_client.CacheClient.md | 3 ++- docs/api/classes/modules_claims.ClaimsService.md | 7 ++++--- .../modules_cache_client.ICacheClient.md | 3 ++- .../modules_claims.GetClaimsByRevokerOptions.md | 9 +++++++++ .../cache-client/cache-client.interface.ts | 5 ++++- src/modules/cache-client/cache-client.service.ts | 15 +++++++++------ src/modules/claims/claims.service.ts | 12 +++++++----- src/modules/claims/claims.types.ts | 3 +++ 8 files changed, 40 insertions(+), 17 deletions(-) diff --git a/docs/api/classes/modules_cache_client.CacheClient.md b/docs/api/classes/modules_cache_client.CacheClient.md index 15cbe34a..32913c9d 100644 --- a/docs/api/classes/modules_cache_client.CacheClient.md +++ b/docs/api/classes/modules_cache_client.CacheClient.md @@ -374,12 +374,13 @@ ___ ### getClaimsByRevoker -▸ **getClaimsByRevoker**(`__namedParameters?`): `Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\> +▸ **getClaimsByRevoker**(`revoker`, `__namedParameters?`): `Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\> #### Parameters | Name | Type | | :------ | :------ | +| `revoker` | `string` | | `__namedParameters` | [`ClaimsFilter`](../modules/modules_cache_client.md#claimsfilter) | #### Returns diff --git a/docs/api/classes/modules_claims.ClaimsService.md b/docs/api/classes/modules_claims.ClaimsService.md index e5ec982a..63a6e906 100644 --- a/docs/api/classes/modules_claims.ClaimsService.md +++ b/docs/api/classes/modules_claims.ClaimsService.md @@ -338,13 +338,14 @@ ___ ### getClaimsByRevoker -▸ **getClaimsByRevoker**(`options?`): `Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\> +▸ **getClaimsByRevoker**(`options`): `Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\> Retrieve all claims that a user can revoke. Allow to filter by namespace ```typescript claimsService.getClaimsByRevoker({ - namespace?: 'energyweb.iam.ewc' + did: 'did:ethr:0x00...0', + namespace: 'energyweb.iam.ewc', }); ``` @@ -352,7 +353,7 @@ claimsService.getClaimsByRevoker({ | Name | Type | | :------ | :------ | -| `options?` | [`GetClaimsByRevokerOptions`](../interfaces/modules_claims.GetClaimsByRevokerOptions.md) | +| `options` | [`GetClaimsByRevokerOptions`](../interfaces/modules_claims.GetClaimsByRevokerOptions.md) | #### Returns diff --git a/docs/api/interfaces/modules_cache_client.ICacheClient.md b/docs/api/interfaces/modules_cache_client.ICacheClient.md index 0fb2b7a8..472ee542 100644 --- a/docs/api/interfaces/modules_cache_client.ICacheClient.md +++ b/docs/api/interfaces/modules_cache_client.ICacheClient.md @@ -238,12 +238,13 @@ ___ ### getClaimsByRevoker -▸ **getClaimsByRevoker**(`filter?`): `Promise`<[`Claim`](modules_claims.Claim.md)[]\> +▸ **getClaimsByRevoker**(`revoker`, `filter?`): `Promise`<[`Claim`](modules_claims.Claim.md)[]\> #### Parameters | Name | Type | | :------ | :------ | +| `revoker` | `string` | | `filter?` | [`ClaimsFilter`](../modules/modules_cache_client.md#claimsfilter) | #### Returns diff --git a/docs/api/interfaces/modules_claims.GetClaimsByRevokerOptions.md b/docs/api/interfaces/modules_claims.GetClaimsByRevokerOptions.md index a0817ba4..7d70706b 100644 --- a/docs/api/interfaces/modules_claims.GetClaimsByRevokerOptions.md +++ b/docs/api/interfaces/modules_claims.GetClaimsByRevokerOptions.md @@ -6,10 +6,19 @@ ### Properties +- [did](modules_claims.GetClaimsByRevokerOptions.md#did) - [namespace](modules_claims.GetClaimsByRevokerOptions.md#namespace) ## Properties +### did + +• **did**: `string` + +DID of the subject + +___ + ### namespace • `Optional` **namespace**: `string` diff --git a/src/modules/cache-client/cache-client.interface.ts b/src/modules/cache-client/cache-client.interface.ts index 2b668369..54216f4f 100644 --- a/src/modules/cache-client/cache-client.interface.ts +++ b/src/modules/cache-client/cache-client.interface.ts @@ -60,7 +60,10 @@ export interface ICacheClient { filter?: ClaimsFilter ) => Promise; getClaimById: (claimId: string) => Promise; - getClaimsByRevoker: (filter?: ClaimsFilter) => Promise; + getClaimsByRevoker: ( + revoker: string, + filter?: ClaimsFilter + ) => Promise; requestClaim: (message: IClaimRequest) => Promise; issueClaim: (issuer: string, message: IClaimIssuance) => Promise; rejectClaim: (issuer: string, message: IClaimRejection) => Promise; diff --git a/src/modules/cache-client/cache-client.service.ts b/src/modules/cache-client/cache-client.service.ts index 1e6957a9..55381631 100644 --- a/src/modules/cache-client/cache-client.service.ts +++ b/src/modules/cache-client/cache-client.service.ts @@ -347,12 +347,15 @@ export class CacheClient implements ICacheClient { return data; } - async getClaimsByRevoker({ namespace }: ClaimsFilter = {}) { - const { data } = await this._httpClient.get(`/claim/revoker`, { - params: { - namespace, - }, - }); + async getClaimsByRevoker(revoker: string, { namespace }: ClaimsFilter = {}) { + const { data } = await this._httpClient.get( + `/claim/revoker/${revoker}`, + { + params: { + namespace, + }, + } + ); return data; } diff --git a/src/modules/claims/claims.service.ts b/src/modules/claims/claims.service.ts index 18300889..a124a9be 100644 --- a/src/modules/claims/claims.service.ts +++ b/src/modules/claims/claims.service.ts @@ -272,17 +272,19 @@ export class ClaimsService { * * ```typescript * claimsService.getClaimsByRevoker({ - * namespace?: 'energyweb.iam.ewc' + * did: 'did:ethr:0x00...0', + * namespace: 'energyweb.iam.ewc', * }); * ``` * * @param {GetClaimsByRevokerOptions} options * @return list of claims */ - async getClaimsByRevoker( - options?: GetClaimsByRevokerOptions - ): Promise { - return this._cacheClient.getClaimsByRevoker(options); + async getClaimsByRevoker({ + did, + namespace, + }: GetClaimsByRevokerOptions): Promise { + return this._cacheClient.getClaimsByRevoker(did, { namespace }); } /** diff --git a/src/modules/claims/claims.types.ts b/src/modules/claims/claims.types.ts index 405f013a..fd1a29ef 100644 --- a/src/modules/claims/claims.types.ts +++ b/src/modules/claims/claims.types.ts @@ -139,6 +139,9 @@ export interface GetClaimsBySubjectOptions { } export interface GetClaimsByRevokerOptions { + /** DID of the subject */ + did: string; + /** Indicates what namespace `Claims` should be in */ namespace?: string; } From c71344d24ba3f99373306ba56cdcd94ed713d59f Mon Sep 17 00:00:00 2001 From: dawidgil Date: Fri, 24 Jun 2022 22:00:09 +0200 Subject: [PATCH 07/11] feat: add createdAt property to Claim interface --- docs/api/interfaces/modules_claims.Claim.md | 7 +++++++ src/modules/claims/claims.types.ts | 1 + 2 files changed, 8 insertions(+) diff --git a/docs/api/interfaces/modules_claims.Claim.md b/docs/api/interfaces/modules_claims.Claim.md index 18ff696c..ba77f0a9 100644 --- a/docs/api/interfaces/modules_claims.Claim.md +++ b/docs/api/interfaces/modules_claims.Claim.md @@ -10,6 +10,7 @@ - [claimIssuer](modules_claims.Claim.md#claimissuer) - [claimType](modules_claims.Claim.md#claimtype) - [claimTypeVersion](modules_claims.Claim.md#claimtypeversion) +- [createdAt](modules_claims.Claim.md#createdat) - [id](modules_claims.Claim.md#id) - [isAccepted](modules_claims.Claim.md#isaccepted) - [isRejected](modules_claims.Claim.md#isrejected) @@ -50,6 +51,12 @@ ___ ___ +### createdAt + +• **createdAt**: `string` + +___ + ### id • **id**: `string` diff --git a/src/modules/claims/claims.types.ts b/src/modules/claims/claims.types.ts index 52e2c215..611cd739 100644 --- a/src/modules/claims/claims.types.ts +++ b/src/modules/claims/claims.types.ts @@ -57,6 +57,7 @@ export interface Claim { acceptedBy?: string; isRejected?: boolean; namespace: string; + createdAt: string; redirectUri?: string; vp?: VerifiablePresentation; } From 6224b1a9ea109c9532e4075f131cf0d5c3cce26b Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 27 Jun 2022 07:43:02 +0000 Subject: [PATCH 08/11] chore(release): 6.0.0-alpha.22 [skip ci] ## [6.0.0-alpha.22](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.21...v6.0.0-alpha.22) (2022-06-27) ### Features * add createdAt property to Claim interface ([c71344d](https://github.com/energywebfoundation/iam-client-lib/commit/c71344d24ba3f99373306ba56cdcd94ed713d59f)) --- docs/CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 10690018..cb9e29e6 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,10 @@ +## [6.0.0-alpha.22](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.21...v6.0.0-alpha.22) (2022-06-27) + + +### Features + +* add createdAt property to Claim interface ([c71344d](https://github.com/energywebfoundation/iam-client-lib/commit/c71344d24ba3f99373306ba56cdcd94ed713d59f)) + ## [6.0.0-alpha.21](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.20...v6.0.0-alpha.21) (2022-06-23) diff --git a/package.json b/package.json index 519f755f..e6d2fa0c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iam-client-lib", - "version": "6.0.0-alpha.21", + "version": "6.0.0-alpha.22", "description": "Library for Decentralized Identity and Access Management", "main": "dist/index.js", "module": "dist/index.esm.js", From 619845d320833e9adbc330bde5c35f15d735e57d Mon Sep 17 00:00:00 2001 From: Jakub Sydor Date: Tue, 28 Jun 2022 12:17:25 +0200 Subject: [PATCH 09/11] fix: cache client authentication --- src/modules/cache-client/cache-client.service.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/modules/cache-client/cache-client.service.ts b/src/modules/cache-client/cache-client.service.ts index 3647bff5..5a336a68 100644 --- a/src/modules/cache-client/cache-client.service.ts +++ b/src/modules/cache-client/cache-client.service.ts @@ -113,7 +113,7 @@ export class CacheClient implements ICacheClient { } // Run previously failed requests - console.log( + getLogger().info( `[CACHE CLIENT] Running failed requests: ${this.failedRequests.length}` ); this.failedRequests = this.failedRequests.filter((callback) => callback()); @@ -156,9 +156,14 @@ export class CacheClient implements ICacheClient { }); }); if (!this.isAuthenticating) { - this.isAuthenticating = true; - await this.authenticate(); - this.isAuthenticating = false; + try { + this.isAuthenticating = true; + await this.authenticate(); + } catch { + return Promise.reject(error); + } finally { + this.isAuthenticating = false; + } } return retryOriginalRequest; } From c614c0e4676346badb16233e70f52eb49a4fca9c Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 28 Jun 2022 11:00:17 +0000 Subject: [PATCH 10/11] chore(release): 6.0.0-alpha.23 [skip ci] ## [6.0.0-alpha.23](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.22...v6.0.0-alpha.23) (2022-06-28) ### Bug Fixes * cache client authentication ([619845d](https://github.com/energywebfoundation/iam-client-lib/commit/619845d320833e9adbc330bde5c35f15d735e57d)) --- docs/CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index cb9e29e6..dc13a0be 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,10 @@ +## [6.0.0-alpha.23](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.22...v6.0.0-alpha.23) (2022-06-28) + + +### Bug Fixes + +* cache client authentication ([619845d](https://github.com/energywebfoundation/iam-client-lib/commit/619845d320833e9adbc330bde5c35f15d735e57d)) + ## [6.0.0-alpha.22](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.21...v6.0.0-alpha.22) (2022-06-27) diff --git a/package.json b/package.json index e6d2fa0c..67d74252 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iam-client-lib", - "version": "6.0.0-alpha.22", + "version": "6.0.0-alpha.23", "description": "Library for Decentralized Identity and Access Management", "main": "dist/index.js", "module": "dist/index.esm.js", From 90b74b193217ee3b4d186774a182dd196a549e16 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 28 Jun 2022 11:37:11 +0000 Subject: [PATCH 11/11] chore(release): 6.0.0-alpha.24 [skip ci] ## [6.0.0-alpha.24](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.23...v6.0.0-alpha.24) (2022-06-28) ### Features * **RevokeClaim:** add endpoint to fetch claims by revoker (current user) ([80cf934](https://github.com/energywebfoundation/iam-client-lib/commit/80cf93485d7f53460ab5df78b37f40fe5eedb4c7)) * **revokeClaim:** make did param required ([b6648d6](https://github.com/energywebfoundation/iam-client-lib/commit/b6648d6549b569fb6a74ccaba8b5c5b970ce7806)) --- docs/CHANGELOG.md | 8 ++++++++ package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index dc13a0be..0dcfa4c6 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,11 @@ +## [6.0.0-alpha.24](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.23...v6.0.0-alpha.24) (2022-06-28) + + +### Features + +* **RevokeClaim:** add endpoint to fetch claims by revoker (current user) ([80cf934](https://github.com/energywebfoundation/iam-client-lib/commit/80cf93485d7f53460ab5df78b37f40fe5eedb4c7)) +* **revokeClaim:** make did param required ([b6648d6](https://github.com/energywebfoundation/iam-client-lib/commit/b6648d6549b569fb6a74ccaba8b5c5b970ce7806)) + ## [6.0.0-alpha.23](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.22...v6.0.0-alpha.23) (2022-06-28) diff --git a/package.json b/package.json index 67d74252..01d35de6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iam-client-lib", - "version": "6.0.0-alpha.23", + "version": "6.0.0-alpha.24", "description": "Library for Decentralized Identity and Access Management", "main": "dist/index.js", "module": "dist/index.esm.js",