Skip to content

Commit ce218a3

Browse files
authored
Add team ID to encrypted payloads to support multiple communities writing to QSS (#2901)
1 parent a94a2e9 commit ce218a3

7 files changed

Lines changed: 11 additions & 1 deletion

File tree

packages/backend/src/nest/auth/services/crypto/crypto.service.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ class CryptoService extends ChainServiceBase {
6464
},
6565
ts: Date.now(),
6666
userId: this.sigChain.user.userId,
67-
} as EncryptedAndSignedPayload
67+
teamId: this.sigChain.team!.id,
68+
}
6869
}
6970

7071
private symEncrypt(message: any, scope: EncryptionScope): EncryptedPayload {

packages/backend/src/nest/auth/services/crypto/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export type EncryptedAndSignedPayload = {
2727
signature: Signature
2828
ts: number
2929
userId: string
30+
teamId: string
3031
}
3132

3233
export type DecryptedPayload<T> = {

packages/backend/src/nest/storage/channels/messages/messages.service.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ describe('MessagesService', () => {
4949
expect(encryptedMessage).toEqual(
5050
expect.objectContaining({
5151
id: message.id,
52+
teamId: sigChainService.team.id,
5253
createdAt: message.createdAt,
5354
channelId: message.channelId,
5455
contents: expect.objectContaining({

packages/backend/src/nest/storage/channels/messages/messages.service.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ export class MessagesService extends EventEmitter {
6161
id: rawMessage.id,
6262
channelId: rawMessage.channelId,
6363
createdAt: rawMessage.createdAt,
64+
teamId: encryptedMessage.teamId,
6465
encSignature: encryptedMessage.signature,
6566
contents: encryptedMessage.encrypted,
6667
}

packages/backend/src/nest/storage/channels/messages/messages.types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@ export interface EncryptedMessage {
1717
contents: EncryptedPayload
1818
createdAt: number
1919
channelId: string
20+
teamId: string
2021
encSignature: Signature
2122
}

packages/backend/src/nest/validation/validators.spec.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ describe('Validators - Encrypted Messages', () => {
9292
},
9393
createdAt: 1710000000000,
9494
channelId: 'channel-abc',
95+
teamId: 'teamId',
9596
encSignature: {
9697
author: {
9798
generation: 0,
@@ -117,6 +118,7 @@ describe('Validators - Encrypted Messages', () => {
117118
},
118119
createdAt: 1710000000000,
119120
channelId: 'channel-abc',
121+
teamId: 'teamId',
120122
encSignature: {
121123
author: {
122124
generation: 0,
@@ -142,6 +144,7 @@ describe('Validators - Encrypted Messages', () => {
142144
},
143145
createdAt: 1710000000000,
144146
channelId: 'channel-abc',
147+
teamId: 'teamId',
145148
}
146149
expect(isEncryptedMessage(invalidEncryptedMessage as unknown as EncryptedMessage)).toBeFalsy()
147150
})
@@ -159,6 +162,7 @@ describe('Validators - Encrypted Messages', () => {
159162
},
160163
createdAt: 1710000000000,
161164
channelId: 'channel-abc',
165+
teamId: 'teamId',
162166
encSignature: {
163167
author: {
164168
generation: 0,

packages/backend/src/nest/validation/validators.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ const encryptedMessageSchema = joi.object({
8080
}),
8181
createdAt: joi.number().required(),
8282
channelId: joi.string().required(),
83+
teamId: joi.string().required(),
8384
encSignature: EncryptionSignatureSchema.required(),
8485
})
8586

0 commit comments

Comments
 (0)