Skip to content

Commit 302dc42

Browse files
committed
Merge branch 'main' into release/openid4vc
2 parents 12052d6 + b4ff797 commit 302dc42

24 files changed

Lines changed: 135 additions & 107 deletions

.dev/compose.backbone.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ services:
8989
database:
9090
container_name: bkb-postgres
9191
hostname: postgres
92-
image: postgres@sha256:1ffc019dae94eca6b09a49ca67d37398951346de3c3d0cfe23d8d4ca33da83fb
92+
image: postgres@sha256:41fc5342eefba6cc2ccda736aaf034bbbb7c3df0fdb81516eba1ba33f360162c
9393
environment:
9494
- POSTGRES_PASSWORD=Passw0rd
9595
- POSTGRES_DB=enmeshed

package-lock.json

Lines changed: 20 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
"@types/libsodium-wrappers": "^0.7.14",
3535
"@types/node": "^24.10.0",
3636
"enhanced-publish": "^1.1.6",
37-
"eslint": "^9.39.0",
37+
"eslint": "^9.39.1",
3838
"jest": "^30.2.0",
3939
"jest-expect-message": "^1.1.3",
4040
"madge": "^8.0.0",

packages/consumption/src/modules/attributes/AttributesController.ts

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -809,6 +809,8 @@ export class AttributesController extends ConsumptionBaseController {
809809
if (!attribute) throw TransportCoreErrors.general.recordNotFound(LocalAttribute, attributeId.toString());
810810

811811
await this.deleteAttributeUnsafe(attributeId);
812+
await this._deleteForwardingDetails({ attributeId: attribute.id.toString() });
813+
812814
this.eventBus.publish(new AttributeDeletedEvent(this.identity.address.toString(), attribute));
813815
}
814816

@@ -826,25 +828,28 @@ export class AttributesController extends ConsumptionBaseController {
826828
"@type": { $in: ["OwnIdentityAttribute", "OwnRelationshipAttribute", "PeerRelationshipAttribute"] }
827829
})) as (OwnIdentityAttribute | OwnRelationshipAttribute | PeerRelationshipAttribute)[];
828830
for (const attribute of forwardedAttributes) {
829-
await this.removeForwardingDetailsFromAttribute(attribute, peer);
831+
await this.deleteForwardingDetailsForAttribute(attribute, peer);
830832
}
831833
}
832834

833-
public async removeForwardingDetailsFromAttribute<T extends OwnIdentityAttribute | OwnRelationshipAttribute | PeerRelationshipAttribute>(
834-
attribute: T,
835-
peer: CoreAddress
836-
): Promise<T> {
837-
const existingForwardingDetailsDocs = await this.forwardingDetails.find({ attributeId: attribute.id.toString(), peer: peer.toString() });
838-
const existingForwardingDetails = existingForwardingDetailsDocs.map((obj) => AttributeForwardingDetails.from(obj));
835+
public async deleteForwardingDetailsForAttribute(attribute: OwnIdentityAttribute | OwnRelationshipAttribute | PeerRelationshipAttribute, peer?: CoreAddress): Promise<void> {
836+
const query: any = { attributeId: attribute.id.toString() };
837+
if (peer) query["peer"] = peer.toString();
839838

840-
for (const entry of existingForwardingDetails) {
841-
await this.forwardingDetails.delete(entry);
842-
}
839+
await this._deleteForwardingDetails(query);
843840

844841
await this.updateNumberOfForwards(attribute);
845842

846843
this.eventBus.publish(new AttributeForwardingDetailsChangedEvent(this.identity.address.toString(), attribute));
847-
return attribute;
844+
}
845+
846+
private async _deleteForwardingDetails(query: any): Promise<void> {
847+
const existingForwardingDetailsDocs = await this.forwardingDetails.find(query);
848+
const existingForwardingDetails = existingForwardingDetailsDocs.map((obj) => AttributeForwardingDetails.from(obj));
849+
850+
for (const entry of existingForwardingDetails) {
851+
await this.forwardingDetails.delete(entry);
852+
}
848853
}
849854

850855
public async executeFullAttributeDeletionProcess(attribute: LocalAttribute): Promise<void> {
@@ -1566,7 +1571,6 @@ export class AttributesController extends ConsumptionBaseController {
15661571

15671572
public async getForwardingDetailsForAttribute(attribute: LocalAttribute, query: any = {}): Promise<AttributeForwardingDetails[]> {
15681573
const docs = await this.forwardingDetails.find({ ...query, attributeId: attribute.id.toString() });
1569-
15701574
return docs.map((doc) => AttributeForwardingDetails.from(doc));
15711575
}
15721576

packages/consumption/src/modules/requests/itemProcessors/readAttribute/ReadAttributeRequestItemProcessor.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -322,14 +322,14 @@ export class ReadAttributeRequestItemProcessor extends GenericRequestItemProcess
322322

323323
const wasNotSharedBefore = latestSharedVersion.length === 0;
324324
if (wasNotSharedBefore) {
325-
const thirdPartyAddress =
325+
const initialAttributePeer =
326326
existingAttribute instanceof OwnRelationshipAttribute || existingAttribute instanceof PeerRelationshipAttribute ? existingAttribute.peer : undefined;
327327

328328
return ReadAttributeAcceptResponseItem.from({
329329
result: ResponseItemResult.Accepted,
330330
attributeId: updatedAttribute.id,
331331
attribute: updatedAttribute.content,
332-
thirdPartyAddress
332+
initialAttributePeer
333333
});
334334
}
335335

@@ -443,13 +443,13 @@ export class ReadAttributeRequestItemProcessor extends GenericRequestItemProcess
443443
return;
444444
}
445445

446-
if (responseItem.thirdPartyAddress) {
446+
if (responseItem.initialAttributePeer) {
447447
await this.consumptionController.attributes.createThirdPartyRelationshipAttribute({
448448
id: responseItem.attributeId,
449449
content: responseItem.attribute,
450450
peer: requestInfo.peer,
451451
sourceReference: requestInfo.id,
452-
initialAttributePeer: responseItem.thirdPartyAddress
452+
initialAttributePeer: responseItem.initialAttributePeer
453453
});
454454
return;
455455
}

packages/consumption/src/modules/requests/itemProcessors/shareAttribute/ShareAttributeRequestItemProcessor.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ export class ShareAttributeRequestItemProcessor extends GenericRequestItemProces
8181
);
8282
}
8383

84-
if (requestItem.thirdPartyAddress) {
85-
return ValidationResult.error(ConsumptionCoreErrors.requests.invalidRequestItem("When sharing an OwnIdentityAttribute, no thirdPartyAddress may be specified."));
84+
if (requestItem.initialAttributePeer) {
85+
return ValidationResult.error(ConsumptionCoreErrors.requests.invalidRequestItem("When sharing an OwnIdentityAttribute, no initialAttributePeer may be specified."));
8686
}
8787

8888
const tagValidationResult = await this.consumptionController.attributes.validateTagsOfAttribute(requestItem.attribute);
@@ -114,10 +114,10 @@ export class ShareAttributeRequestItemProcessor extends GenericRequestItemProces
114114
return ValidationResult.error(ConsumptionCoreErrors.requests.cannotShareRelationshipAttributeOfPendingRelationship());
115115
}
116116

117-
if (!requestItem.thirdPartyAddress?.equals(initialPeer)) {
117+
if (!requestItem.initialAttributePeer?.equals(initialPeer)) {
118118
return ValidationResult.error(
119119
ConsumptionCoreErrors.requests.invalidRequestItem(
120-
"When sharing a RelationshipAttribute with another Identity, the address of the peer of the Relationship in which the RelationshipAttribute exists must be specified as thirdPartyAddress."
120+
"When sharing a RelationshipAttribute with another Identity, the address of the peer of the Relationship in which the RelationshipAttribute exists must be specified as initialAttributePeer."
121121
)
122122
);
123123
}
@@ -141,15 +141,15 @@ export class ShareAttributeRequestItemProcessor extends GenericRequestItemProces
141141
return ValidationResult.error(ConsumptionCoreErrors.requests.invalidRequestItem(tagValidationResult.error.message));
142142
}
143143

144-
if (requestItem.thirdPartyAddress && requestItem.attribute instanceof IdentityAttribute) {
144+
if (requestItem.initialAttributePeer && requestItem.attribute instanceof IdentityAttribute) {
145145
return ValidationResult.error(
146-
ConsumptionCoreErrors.requests.invalidRequestItem("The RequestItem is invalid, since it must contain a RelationshipAttribute if thirdPartyAddress is defined.")
146+
ConsumptionCoreErrors.requests.invalidRequestItem("The RequestItem is invalid, since it must contain a RelationshipAttribute if initialAttributePeer is defined.")
147147
);
148148
}
149149

150-
if (!requestItem.thirdPartyAddress && requestItem.attribute instanceof RelationshipAttribute) {
150+
if (!requestItem.initialAttributePeer && requestItem.attribute instanceof RelationshipAttribute) {
151151
return ValidationResult.error(
152-
ConsumptionCoreErrors.requests.invalidRequestItem("The RequestItem is invalid, since it must contain an IdentityAttribute if thirdPartyAddress is undefined.")
152+
ConsumptionCoreErrors.requests.invalidRequestItem("The RequestItem is invalid, since it must contain an IdentityAttribute if initialAttributePeer is undefined.")
153153
);
154154
}
155155

@@ -161,7 +161,7 @@ export class ShareAttributeRequestItemProcessor extends GenericRequestItemProces
161161
_params: AcceptRequestItemParametersJSON,
162162
requestInfo: LocalRequestInfo
163163
): Promise<AcceptResponseItem | AttributeAlreadySharedAcceptResponseItem> {
164-
const isThirdPartyRelationshipAttribute = !!requestItem.thirdPartyAddress;
164+
const isThirdPartyRelationshipAttribute = !!requestItem.initialAttributePeer;
165165
if (isThirdPartyRelationshipAttribute) {
166166
const attribute = requestItem.attribute as RelationshipAttribute;
167167
const existingThirdPartyRelationshipAttribute = await this.consumptionController.attributes.getThirdPartyRelationshipAttributeWithSameValue(
@@ -187,7 +187,7 @@ export class ShareAttributeRequestItemProcessor extends GenericRequestItemProces
187187
content: requestItem.attribute as RelationshipAttribute,
188188
peer: requestInfo.peer,
189189
sourceReference: requestInfo.id,
190-
initialAttributePeer: requestItem.thirdPartyAddress!
190+
initialAttributePeer: requestItem.initialAttributePeer!
191191
});
192192

193193
return AcceptResponseItem.from({ result: ResponseItemResult.Accepted });

0 commit comments

Comments
 (0)