From 0110465b38c845b61c45ec84ab3b0e4931060539 Mon Sep 17 00:00:00 2001 From: Timo <16718859+toger5@users.noreply.github.com> Date: Mon, 19 May 2025 14:18:03 +0200 Subject: [PATCH 1/7] Docker-compose: do not access ports <443 (#3261) * Do not try accessing ports <1024 * adapt nginx reverse proxy for element web --------- Co-authored-by: fkwp --- backend/dev_nginx.conf | 4 ++-- dev-backend-docker-compose.yml | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/backend/dev_nginx.conf b/backend/dev_nginx.conf index 59a25ba0..44fef8a5 100644 --- a/backend/dev_nginx.conf +++ b/backend/dev_nginx.conf @@ -145,11 +145,11 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; - proxy_pass http://element-web:81; + proxy_pass http://element-web:8081; proxy_ssl_verify off; } error_page 500 502 503 504 /50x.html; -} \ No newline at end of file +} diff --git a/dev-backend-docker-compose.yml b/dev-backend-docker-compose.yml index c2786583..07a60863 100644 --- a/dev-backend-docker-compose.yml +++ b/dev-backend-docker-compose.yml @@ -73,11 +73,11 @@ services: image: ghcr.io/element-hq/element-web:develop pull_policy: always volumes: - - ./backend/ew.test.config.json:/app/config.json + - ./backend/ew.test.config.json:/app/config.json:Z environment: - ELEMENT_WEB_PORT: 81 + ELEMENT_WEB_PORT: 8081 ports: - - "8081:81" + - "8081:8081" networks: - ecbackend @@ -91,7 +91,6 @@ services: - ./backend/dev_tls_m.localhost.crt:/root/ssl/cert.pem:Z ports: # HOST_PORT:CONTAINER_PORT - - "80:80" - "443:443" - "8008:80" - "4443:443" From 28246ef86b1a3163a3b83020e9a3b08567bf97b7 Mon Sep 17 00:00:00 2001 From: Timo <16718859+toger5@users.noreply.github.com> Date: Mon, 19 May 2025 18:04:07 +0200 Subject: [PATCH 2/7] Update RTCSession configuration to non deprecated names. (#3267) * Update RTCSession configuration to non deprecated names. * bump js-sdk * es2024 and array buffer adaptions * Alternative without `createKeyMaterialFromBuffer` --- package.json | 2 +- src/e2ee/matrixKeyProvider.ts | 39 +++++++++++++++++++++-------------- src/rtcSessionHelpers.ts | 5 ++--- tsconfig.json | 2 +- yarn.lock | 10 ++++----- 5 files changed, 33 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index 6ff4198d..b815f189 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "livekit-client": "^2.11.3", "lodash-es": "^4.17.21", "loglevel": "^1.9.1", - "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#19b1b901f575755d29d1fe03ca48cbf7c1cae05c", + "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#457a300c9594dc24ba2f05cc16180112b9e8d0ac", "matrix-widget-api": "1.11.0", "normalize.css": "^8.0.1", "observable-hooks": "^4.2.3", diff --git a/src/e2ee/matrixKeyProvider.ts b/src/e2ee/matrixKeyProvider.ts index 9b190ed8..95033f87 100644 --- a/src/e2ee/matrixKeyProvider.ts +++ b/src/e2ee/matrixKeyProvider.ts @@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial Please see LICENSE in the repository root for full details. */ -import { BaseKeyProvider, createKeyMaterialFromBuffer } from "livekit-client"; +import { BaseKeyProvider } from "livekit-client"; import { logger } from "matrix-js-sdk/lib/logger"; import { type MatrixRTCSession, @@ -44,20 +44,29 @@ export class MatrixKeyProvider extends BaseKeyProvider { encryptionKeyIndex: number, participantId: string, ): void => { - createKeyMaterialFromBuffer(encryptionKey).then( - (keyMaterial) => { - this.onSetEncryptionKey(keyMaterial, participantId, encryptionKeyIndex); + crypto.subtle + .importKey("raw", encryptionKey, "HKDF", false, [ + "deriveBits", + "deriveKey", + ]) + .then( + (keyMaterial) => { + this.onSetEncryptionKey( + keyMaterial, + participantId, + encryptionKeyIndex, + ); - logger.debug( - `Sent new key to livekit room=${this.rtcSession?.room.roomId} participantId=${participantId} encryptionKeyIndex=${encryptionKeyIndex}`, - ); - }, - (e) => { - logger.error( - `Failed to create key material from buffer for livekit room=${this.rtcSession?.room.roomId} participantId=${participantId} encryptionKeyIndex=${encryptionKeyIndex}`, - e, - ); - }, - ); + logger.debug( + `Sent new key to livekit room=${this.rtcSession?.room.roomId} participantId=${participantId} encryptionKeyIndex=${encryptionKeyIndex}`, + ); + }, + (e) => { + logger.error( + `Failed to create key material from buffer for livekit room=${this.rtcSession?.room.roomId} participantId=${participantId} encryptionKeyIndex=${encryptionKeyIndex}`, + e, + ); + }, + ); }; } diff --git a/src/rtcSessionHelpers.ts b/src/rtcSessionHelpers.ts index 51bc79b8..e083b56c 100644 --- a/src/rtcSessionHelpers.ts +++ b/src/rtcSessionHelpers.ts @@ -121,10 +121,9 @@ export async function enterRTCSession( ...(useDeviceSessionMemberEvents !== undefined && { useLegacyMemberEvents: !useDeviceSessionMemberEvents, }), - membershipServerSideExpiryTimeout: + delayedLeaveEventDelayMs: matrixRtcSessionConfig?.membership_server_side_expiry_timeout, - membershipKeepAlivePeriod: - matrixRtcSessionConfig?.membership_keep_alive_period, + networkErrorRetryMs: matrixRtcSessionConfig?.membership_keep_alive_period, makeKeyDelay: matrixRtcSessionConfig?.key_rotation_on_leave_delay, useExperimentalToDeviceTransport, }, diff --git a/tsconfig.json b/tsconfig.json index be12658e..07632f20 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ "target": "es2022", "module": "es2022", "jsx": "react-jsx", - "lib": ["es2022", "dom", "dom.iterable"], + "lib": ["es2024", "dom", "dom.iterable"], // From Matrix-JS-SDK "strict": true, diff --git a/yarn.lock b/yarn.lock index bf7244c7..f2b1dd83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7007,7 +7007,7 @@ __metadata: livekit-client: "npm:^2.11.3" lodash-es: "npm:^4.17.21" loglevel: "npm:^1.9.1" - matrix-js-sdk: "github:matrix-org/matrix-js-sdk#19b1b901f575755d29d1fe03ca48cbf7c1cae05c" + matrix-js-sdk: "github:matrix-org/matrix-js-sdk#457a300c9594dc24ba2f05cc16180112b9e8d0ac" matrix-widget-api: "npm:1.11.0" normalize.css: "npm:^8.0.1" observable-hooks: "npm:^4.2.3" @@ -9610,9 +9610,9 @@ __metadata: languageName: node linkType: hard -"matrix-js-sdk@github:matrix-org/matrix-js-sdk#19b1b901f575755d29d1fe03ca48cbf7c1cae05c": - version: 37.4.0 - resolution: "matrix-js-sdk@https://github.com/matrix-org/matrix-js-sdk.git#commit=19b1b901f575755d29d1fe03ca48cbf7c1cae05c" +"matrix-js-sdk@github:matrix-org/matrix-js-sdk#457a300c9594dc24ba2f05cc16180112b9e8d0ac": + version: 37.5.0 + resolution: "matrix-js-sdk@https://github.com/matrix-org/matrix-js-sdk.git#commit=457a300c9594dc24ba2f05cc16180112b9e8d0ac" dependencies: "@babel/runtime": "npm:^7.12.5" "@matrix-org/matrix-sdk-crypto-wasm": "npm:^14.0.1" @@ -9629,7 +9629,7 @@ __metadata: sdp-transform: "npm:^2.14.1" unhomoglyph: "npm:^1.0.6" uuid: "npm:11" - checksum: 10c0/68a30a113059ba052b2e66502abcd9805f9a18a1bfd1d209203d728b36508af257a57e6248fb237c7018c81bfbe1ec78fa17aea8968c8af0729ea935398dcf8b + checksum: 10c0/121ecbe4ab6c3ce3fe399ab468958211b0c1c565d6da718903ccc0abc4af7341c764ebee07a553a4222b338bd8665de9fa50bb34a247555b908c4c2b46a97deb languageName: node linkType: hard From 8497f008c8cb08b5b5e962d694c4f6d6117fd2e7 Mon Sep 17 00:00:00 2001 From: Timo <16718859+toger5@users.noreply.github.com> Date: Mon, 19 May 2025 19:27:08 +0200 Subject: [PATCH 3/7] Bump js-sdk to support to-device fallback (#3277) --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b815f189..cc946a6f 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "livekit-client": "^2.11.3", "lodash-es": "^4.17.21", "loglevel": "^1.9.1", - "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#457a300c9594dc24ba2f05cc16180112b9e8d0ac", + "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#f3f4a1f7e2f5f2c26cf4fce89a729a9197f619b5", "matrix-widget-api": "1.11.0", "normalize.css": "^8.0.1", "observable-hooks": "^4.2.3", diff --git a/yarn.lock b/yarn.lock index f2b1dd83..1fd38eff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7007,7 +7007,7 @@ __metadata: livekit-client: "npm:^2.11.3" lodash-es: "npm:^4.17.21" loglevel: "npm:^1.9.1" - matrix-js-sdk: "github:matrix-org/matrix-js-sdk#457a300c9594dc24ba2f05cc16180112b9e8d0ac" + matrix-js-sdk: "github:matrix-org/matrix-js-sdk#f3f4a1f7e2f5f2c26cf4fce89a729a9197f619b5" matrix-widget-api: "npm:1.11.0" normalize.css: "npm:^8.0.1" observable-hooks: "npm:^4.2.3" @@ -9610,9 +9610,9 @@ __metadata: languageName: node linkType: hard -"matrix-js-sdk@github:matrix-org/matrix-js-sdk#457a300c9594dc24ba2f05cc16180112b9e8d0ac": +"matrix-js-sdk@github:matrix-org/matrix-js-sdk#f3f4a1f7e2f5f2c26cf4fce89a729a9197f619b5": version: 37.5.0 - resolution: "matrix-js-sdk@https://github.com/matrix-org/matrix-js-sdk.git#commit=457a300c9594dc24ba2f05cc16180112b9e8d0ac" + resolution: "matrix-js-sdk@https://github.com/matrix-org/matrix-js-sdk.git#commit=f3f4a1f7e2f5f2c26cf4fce89a729a9197f619b5" dependencies: "@babel/runtime": "npm:^7.12.5" "@matrix-org/matrix-sdk-crypto-wasm": "npm:^14.0.1" @@ -9629,7 +9629,7 @@ __metadata: sdp-transform: "npm:^2.14.1" unhomoglyph: "npm:^1.0.6" uuid: "npm:11" - checksum: 10c0/121ecbe4ab6c3ce3fe399ab468958211b0c1c565d6da718903ccc0abc4af7341c764ebee07a553a4222b338bd8665de9fa50bb34a247555b908c4c2b46a97deb + checksum: 10c0/14058044851110df967252ab9df0dcc480b2f60cedfb049edb51f8b8925d131f78b4ee9b974e5cdd39093fa32ce7e3318523059c82ecce290fa2fe03ed98506b languageName: node linkType: hard From 57f312494f438c4b75a15eb904ccc30feda8d012 Mon Sep 17 00:00:00 2001 From: Robin Date: Mon, 5 May 2025 17:27:32 +0200 Subject: [PATCH 4/7] Update matrix-js-sdk to support update_state action --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index cc946a6f..7eb10adf 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "livekit-client": "^2.11.3", "lodash-es": "^4.17.21", "loglevel": "^1.9.1", - "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#f3f4a1f7e2f5f2c26cf4fce89a729a9197f619b5", + "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#7fa9195e398764749b0195f14d3cf0190ad10253", "matrix-widget-api": "1.11.0", "normalize.css": "^8.0.1", "observable-hooks": "^4.2.3", diff --git a/yarn.lock b/yarn.lock index 1fd38eff..31a7738e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7007,7 +7007,7 @@ __metadata: livekit-client: "npm:^2.11.3" lodash-es: "npm:^4.17.21" loglevel: "npm:^1.9.1" - matrix-js-sdk: "github:matrix-org/matrix-js-sdk#f3f4a1f7e2f5f2c26cf4fce89a729a9197f619b5" + matrix-js-sdk: "github:matrix-org/matrix-js-sdk#7fa9195e398764749b0195f14d3cf0190ad10253" matrix-widget-api: "npm:1.11.0" normalize.css: "npm:^8.0.1" observable-hooks: "npm:^4.2.3" @@ -9610,9 +9610,9 @@ __metadata: languageName: node linkType: hard -"matrix-js-sdk@github:matrix-org/matrix-js-sdk#f3f4a1f7e2f5f2c26cf4fce89a729a9197f619b5": - version: 37.5.0 - resolution: "matrix-js-sdk@https://github.com/matrix-org/matrix-js-sdk.git#commit=f3f4a1f7e2f5f2c26cf4fce89a729a9197f619b5" +"matrix-js-sdk@github:matrix-org/matrix-js-sdk#7fa9195e398764749b0195f14d3cf0190ad10253": + version: 37.6.0 + resolution: "matrix-js-sdk@https://github.com/matrix-org/matrix-js-sdk.git#commit=7fa9195e398764749b0195f14d3cf0190ad10253" dependencies: "@babel/runtime": "npm:^7.12.5" "@matrix-org/matrix-sdk-crypto-wasm": "npm:^14.0.1" @@ -9629,7 +9629,7 @@ __metadata: sdp-transform: "npm:^2.14.1" unhomoglyph: "npm:^1.0.6" uuid: "npm:11" - checksum: 10c0/14058044851110df967252ab9df0dcc480b2f60cedfb049edb51f8b8925d131f78b4ee9b974e5cdd39093fa32ce7e3318523059c82ecce290fa2fe03ed98506b + checksum: 10c0/f2c973cf7e4ac01b387a78af11c44735cc2895b28b571f9bbe8c18ed29c3d7383272116dc181057b69e55771dbafb3a4a1527593d54f3c37db705fb57b81616d languageName: node linkType: hard From c473d1fa8fc316a61eaea90402973d47de15c12d Mon Sep 17 00:00:00 2001 From: Robin Date: Mon, 5 May 2025 17:29:46 +0200 Subject: [PATCH 5/7] Update matrix-widget-api to support update_state action --- package.json | 5 ++--- yarn.lock | 10 +++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 7eb10adf..e727ac31 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "lodash-es": "^4.17.21", "loglevel": "^1.9.1", "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#7fa9195e398764749b0195f14d3cf0190ad10253", - "matrix-widget-api": "1.11.0", + "matrix-widget-api": "^1.13.0", "normalize.css": "^8.0.1", "observable-hooks": "^4.2.3", "pako": "^2.0.4", @@ -133,8 +133,7 @@ }, "resolutions": { "@livekit/components-core/rxjs": "^7.8.1", - "@livekit/track-processors/@mediapipe/tasks-vision": "^0.10.18", - "matrix-widget-api": "1.11.0" + "@livekit/track-processors/@mediapipe/tasks-vision": "^0.10.18" }, "packageManager": "yarn@4.7.0" } diff --git a/yarn.lock b/yarn.lock index 31a7738e..9b6b9a9e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7008,7 +7008,7 @@ __metadata: lodash-es: "npm:^4.17.21" loglevel: "npm:^1.9.1" matrix-js-sdk: "github:matrix-org/matrix-js-sdk#7fa9195e398764749b0195f14d3cf0190ad10253" - matrix-widget-api: "npm:1.11.0" + matrix-widget-api: "npm:^1.13.0" normalize.css: "npm:^8.0.1" observable-hooks: "npm:^4.2.3" pako: "npm:^2.0.4" @@ -9633,13 +9633,13 @@ __metadata: languageName: node linkType: hard -"matrix-widget-api@npm:1.11.0": - version: 1.11.0 - resolution: "matrix-widget-api@npm:1.11.0" +"matrix-widget-api@npm:^1.10.0, matrix-widget-api@npm:^1.13.0": + version: 1.13.1 + resolution: "matrix-widget-api@npm:1.13.1" dependencies: "@types/events": "npm:^3.0.0" events: "npm:^3.2.0" - checksum: 10c0/ac35ed8fb2b5df6d186beb64b5faf907ec113d708ad8353bdd8f9196fb3da255561b8807e2e845f39d4cf7ae6af36f90b54c230a0a100556ac7ebd8f18bee848 + checksum: 10c0/25ded744922755b3eb65f4e171cf6cff1a2e0fe43fc3fecbb13e565e41d8af066daa817dd2c3c7d921b996af399eec3b23df70ab7b682cf422d9cee7ca202512 languageName: node linkType: hard From 2ec4b4ee878f59e9103a619aebdcb2e81be68c10 Mon Sep 17 00:00:00 2001 From: Andrew Ferrazzutti Date: Wed, 21 May 2025 08:06:04 -0400 Subject: [PATCH 6/7] Fix lk-jwt-service config in example compose file The port config name was changed in v0.2.0 --- dev-backend-docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-backend-docker-compose.yml b/dev-backend-docker-compose.yml index 07a60863..da3c3530 100644 --- a/dev-backend-docker-compose.yml +++ b/dev-backend-docker-compose.yml @@ -6,7 +6,7 @@ services: image: ghcr.io/element-hq/lk-jwt-service:latest-ci hostname: auth-server environment: - - LK_JWT_PORT=8080 + - LIVEKIT_JWT_PORT=8080 - LIVEKIT_URL=wss://matrix-rtc.m.localhost/livekit/sfu - LIVEKIT_KEY=devkey - LIVEKIT_SECRET=secret From e4924df8fba113b0cf1f047ceffe65ea5b30c2f5 Mon Sep 17 00:00:00 2001 From: Robin Date: Wed, 21 May 2025 12:59:31 -0400 Subject: [PATCH 7/7] Reference matrix-js-sdk by branch name Rather than by commit, which makes it hard to tell whether we're using mainline matrix-js-sdk or not. --- package.json | 2 +- yarn.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index e727ac31..5d5bce55 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "livekit-client": "^2.11.3", "lodash-es": "^4.17.21", "loglevel": "^1.9.1", - "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#7fa9195e398764749b0195f14d3cf0190ad10253", + "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#head=toger5/add-room-key-fallback-on-encryption-manager-not-supported", "matrix-widget-api": "^1.13.0", "normalize.css": "^8.0.1", "observable-hooks": "^4.2.3", diff --git a/yarn.lock b/yarn.lock index 9b6b9a9e..a0b6c97d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7007,7 +7007,7 @@ __metadata: livekit-client: "npm:^2.11.3" lodash-es: "npm:^4.17.21" loglevel: "npm:^1.9.1" - matrix-js-sdk: "github:matrix-org/matrix-js-sdk#7fa9195e398764749b0195f14d3cf0190ad10253" + matrix-js-sdk: "github:matrix-org/matrix-js-sdk#head=toger5/add-room-key-fallback-on-encryption-manager-not-supported" matrix-widget-api: "npm:^1.13.0" normalize.css: "npm:^8.0.1" observable-hooks: "npm:^4.2.3" @@ -9610,7 +9610,7 @@ __metadata: languageName: node linkType: hard -"matrix-js-sdk@github:matrix-org/matrix-js-sdk#7fa9195e398764749b0195f14d3cf0190ad10253": +"matrix-js-sdk@github:matrix-org/matrix-js-sdk#head=toger5/add-room-key-fallback-on-encryption-manager-not-supported": version: 37.6.0 resolution: "matrix-js-sdk@https://github.com/matrix-org/matrix-js-sdk.git#commit=7fa9195e398764749b0195f14d3cf0190ad10253" dependencies: