Compare commits

..

193 Commits

Author SHA1 Message Date
Package Updates
f328f6c882 Update package version to 1.119.0 2025-09-10 10:32:08 +00:00
Renovate Bot
8a720c2882 chore(deps): update dependency element-hq/synapse to v1.138.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.137.0 | 1.138.0 |
2025-09-10 06:19:42 +00:00
Package Updates
288b0af857 Update package version to 1.118.0 2025-08-27 06:38:19 +00:00
Renovate Bot
0b67787dd9 chore(deps): update dependency element-hq/synapse to v1.137.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.136.0 | 1.137.0 |
2025-08-27 06:19:49 +00:00
Package Updates
3486bcbf96 Update package version to 1.117.0 2025-08-13 08:46:22 +00:00
Renovate Bot
ea566f6926 chore(deps): update dependency element-hq/synapse to v1.136.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.135.2 | 1.136.0 |
2025-08-13 06:19:45 +00:00
Package Updates
3122d5522c Update package version to 1.116.1 2025-08-12 09:02:26 +00:00
Renovate Bot
c52f7063b5 chore(deps): update dependency element-hq/synapse to v1.135.2
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.135.0 | 1.135.2 |
2025-08-12 06:19:38 +00:00
Package Updates
c32b081abd Update package version to 1.116.0 2025-08-02 08:42:04 +00:00
Renovate Bot
ed28b815a8 chore(deps): update dependency element-hq/synapse to v1.135.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.134.0 | 1.135.0 |
2025-08-02 06:19:39 +00:00
Package Updates
c6d5e6abbe Update package version to 1.115.0 2025-07-22 08:48:05 +00:00
Vladimir D
958289bcab tests updated 2025-07-22 12:27:27 +04:00
Renovate Bot
6f3b4547f5 chore(deps): update dependency element-hq/synapse to v1.134.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.133.0 | 1.134.0 |
2025-07-16 06:19:42 +00:00
Package Updates
cff6bc14bd Update package version to 1.114.0 2025-07-02 07:11:29 +00:00
Renovate Bot
ff0d46ee4b chore(deps): update dependency element-hq/synapse to v1.133.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.132.0 | 1.133.0 |
2025-07-02 06:19:34 +00:00
Package Updates
479ad654fa Update package version to 1.113.0 2025-06-17 16:00:16 +00:00
Renovate Bot
a772670867 chore(deps): update dependency element-hq/synapse to v1.132.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.131.0 | 1.132.0 |
2025-06-17 15:28:28 +00:00
Girish Ramakrishnan
a4171db41b Update documentation url 2025-06-05 10:22:43 +02:00
Package Updates
c5e85aff41 Update package version to 1.112.0 2025-06-04 06:41:42 +00:00
Renovate Bot
f524394443 chore(deps): update dependency element-hq/synapse to v1.131.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.130.0 | 1.131.0 |
2025-06-04 06:19:37 +00:00
Package Updates
b03fa43028 Update package version to 1.111.0 2025-05-27 14:11:43 +00:00
Vladimir D
02c27e3230 tests updated 2025-05-27 17:50:18 +04:00
Renovate Bot
a646b717a8 chore(deps): update dependency element-hq/synapse to v1.130.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.129.0 | 1.130.0 |
2025-05-24 10:11:06 +02:00
Girish Ramakrishnan
98c8dd38fc cache is cleared, remove extra delete cookies 2025-05-24 09:55:04 +02:00
Girish Ramakrishnan
3ea7e30812 add email_template 2025-05-24 09:34:46 +02:00
Girish Ramakrishnan
62360cca09 sync config with upstream 2025-05-24 09:34:43 +02:00
Girish Ramakrishnan
64c1afc544 Fix link 2025-05-24 08:19:57 +02:00
Package Updates
b8917a4805 Update package version to 1.110.0 2025-05-06 14:33:51 +00:00
Renovate Bot
68d09734ca chore(deps): update dependency element-hq/synapse to v1.129.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.128.0 | 1.129.0 |
2025-05-06 12:55:10 +00:00
Package Updates
6cfdea8b6d Update package version to 1.109.0 2025-04-09 08:35:30 +00:00
Renovate Bot
25f398eda9 chore(deps): update dependency element-hq/synapse to v1.128.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.127.1 | 1.128.0 |
2025-04-08 14:32:22 +00:00
Girish Ramakrishnan
c6be4b9e11 Fix chown usage 2025-04-08 10:07:36 +02:00
Package Updates
f2efa0ace4 Update package version to 1.108.1 2025-03-27 09:14:49 +00:00
Renovate Bot
3efa89f92b chore(deps): update dependency element-hq/synapse to v1.127.1
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.127.0 | 1.127.1 |
2025-03-27 07:19:44 +00:00
Package Updates
fe51b493d4 Update package version to 1.108.0 2025-03-25 14:55:56 +00:00
Renovate Bot
85186e353f chore(deps): update dependency element-hq/synapse to v1.127.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.126.0 | 1.127.0 |
2025-03-25 13:47:13 +00:00
Package Updates
d294beaf99 Update package version to 1.107.0 2025-03-12 10:21:55 +00:00
Girish Ramakrishnan
40c4dfc7af Update base image to 5.0.0 2025-03-12 11:03:38 +01:00
Package Updates
2bc7648a68 Update package version to 1.106.0 2025-03-12 09:49:15 +00:00
Renovate Bot
1a2af0e566 chore(deps): update dependency element-hq/synapse to v1.126.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.125.0 | 1.126.0 |
2025-03-12 07:19:39 +00:00
Package Updates
62a12ea30b Update package version to 1.105.0 2025-02-26 08:53:32 +00:00
Girish Ramakrishnan
6bcba878fd Fix test 2025-02-26 09:32:38 +01:00
Renovate Bot
231ee9b187 chore(deps): update dependency element-hq/synapse to v1.125.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.124.0 | 1.125.0 |
2025-02-25 16:41:33 +00:00
Package Updates
d9420c319d Update package version to 1.104.0 2025-02-13 14:40:58 +00:00
Vladimir D
050f4d8a26 tests updated 2025-02-13 18:21:36 +04:00
Renovate Bot
e6d1f16b1d chore(deps): update dependency element-hq/synapse to v1.124.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.123.0 | 1.124.0 |
2025-02-12 07:19:36 +00:00
Package Updates
3991b28ba5 Update package version to 1.103.0 2025-01-29 08:44:31 +00:00
Renovate Bot
467685dee3 chore(deps): update dependency element-hq/synapse to v1.123.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.122.0 | 1.123.0 |
2025-01-29 07:19:27 +00:00
Package Updates
5a60a8b057 Update package version to 1.102.0 2025-01-15 09:15:08 +00:00
Renovate Bot
c8ed7b7882 chore(deps): update dependency element-hq/synapse to v1.122.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.121.1 | 1.122.0 |
2025-01-15 07:19:59 +00:00
Package Updates
3b5069dd3e Update package version to 1.101.1 2024-12-25 09:27:06 +00:00
Vladimir D
bb28b946d2 CLOUDRON_OIDC_PROVIDER_NAME implemented, tests updated and fixed 2024-12-24 23:27:38 +04:00
Girish Ramakrishnan
99117698a6 Version 1.101.0 2024-12-22 20:42:34 +01:00
Girish Ramakrishnan
b279638c84 no session 2024-12-22 18:45:56 +01:00
Girish Ramakrishnan
c9c9259808 clear cache after update 2024-12-22 18:25:13 +01:00
Girish Ramakrishnan
91b6c529e3 try to fix tests 2024-12-22 18:02:29 +01:00
Girish Ramakrishnan
d2bfffb179 Update test packages 2024-12-22 16:36:54 +01:00
Renovate Bot
4692c12d60 chore(deps): update dependency element-hq/synapse to v1.121.1
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.120.2 | 1.121.1 |
2024-12-12 07:19:54 +00:00
Package Updates
6bcfb0a0c6 Update package version to 1.100.1 2024-12-03 17:54:25 +00:00
Renovate Bot
f6997147c6 chore(deps): update dependency element-hq/synapse to v1.120.2
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.120.0 | 1.120.2 |
2024-12-03 16:50:28 +00:00
Package Updates
e4a405a5f1 Update package version to 1.100.0 2024-11-27 11:04:27 +00:00
Renovate Bot
e475e1ec34 chore(deps): update dependency element-hq/synapse to v1.120.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.119.0 | 1.120.0 |
2024-11-27 07:19:53 +00:00
Package Updates
5f17b33dbc Update package version to 1.99.0 2024-11-13 17:35:41 +00:00
Renovate Bot
0a64acf236 chore(deps): update dependency element-hq/synapse to v1.119.0
| datasource      | package            | from    | to      |
| --------------- | ------------------ | ------- | ------- |
| github-releases | element-hq/synapse | 1.117.0 | 1.119.0 |
2024-11-13 16:17:44 +00:00
Girish Ramakrishnan
1b20ba1a1a Update renovate.json5 2024-11-04 17:09:48 +00:00
Girish Ramakrishnan
16414ae13c Add renovate.json5 2024-11-04 17:02:43 +00:00
Girish Ramakrishnan
55935f194f Delete renovate.json 2024-11-04 16:56:38 +00:00
Girish Ramakrishnan
7cbe157dbd Delete .gitlab-ci.yml 2024-11-04 08:37:39 +00:00
Girish Ramakrishnan
46f25d776d Version 1.98.1 2024-10-15 20:02:07 +02:00
Girish Ramakrishnan
1e9400ab2e Version 1.98.0 2024-10-15 20:01:29 +02:00
Renovate Bot
c8b81a87b3 chore(deps): update dependency matrix-org/synapse-s3-storage-provider to v1.5.0 2024-10-15 17:07:42 +00:00
Renovate Bot
337178cbe3 chore(deps): update dependency element-hq/synapse to v1.117.0 2024-10-15 16:21:57 +00:00
Girish Ramakrishnan
417ccb1b90 update tests 2024-10-15 18:21:42 +02:00
Girish Ramakrishnan
bd139e7e51 uninstall element 2024-10-15 18:00:47 +02:00
Girish Ramakrishnan
1fd50ed537 proceed with reset here 2024-10-15 17:33:46 +02:00
Girish Ramakrishnan
fbcbe82562 unsure when reset comes in 2024-10-15 17:20:17 +02:00
Girish Ramakrishnan
0796c63cfc have separate app objects 2024-10-15 17:11:36 +02:00
Girish Ramakrishnan
57a7c5a874 removed login by mistake 2024-10-15 17:00:04 +02:00
Girish Ramakrishnan
564422747a more test fixing 2024-10-15 16:56:23 +02:00
Girish Ramakrishnan
540e8b955a uninstall any previous element 2024-10-15 16:35:05 +02:00
Girish Ramakrishnan
d80249d454 Fix test 2024-10-15 16:31:20 +02:00
Renovate Bot
144d1169ec chore(deps): add renovate.json 2024-10-15 14:14:56 +00:00
Girish Ramakrishnan
f5ebcedfa3 Update renovate for s3 2024-10-15 14:13:43 +00:00
Girish Ramakrishnan
647e78afd2 Add renovate 2024-10-15 14:11:31 +00:00
Girish Ramakrishnan
b255387cde add files for ci 2024-10-15 16:09:15 +02:00
Johannes Zellner
7976cc122d Bump version 2024-10-02 17:46:05 +02:00
Johannes Zellner
a2709eebdb Update test deps 2024-10-02 17:14:42 +02:00
Johannes Zellner
3018681164 Update to 1.116.0 2024-10-02 17:14:29 +02:00
Girish Ramakrishnan
800e8f667e add element to tag list 2024-09-23 10:06:46 +02:00
Johannes Zellner
1363bab648 Bump version 2024-09-18 12:44:07 +02:00
Johannes Zellner
6099885ae5 Update test deps 2024-09-18 11:56:09 +02:00
Johannes Zellner
638ba056a0 Update to 1.115.0 2024-09-18 11:56:02 +02:00
Johannes Zellner
d589b1320b Bump version 2024-09-02 22:22:26 +02:00
Johannes Zellner
9c254a6c62 Update test deps 2024-09-02 21:40:24 +02:00
Johannes Zellner
82d1cc5b58 Update to 1.114.0 2024-09-02 21:40:16 +02:00
Johannes Zellner
c3238ff948 Bump version 2024-08-14 09:14:39 +02:00
Johannes Zellner
b8e3320d41 Update test deps 2024-08-14 09:00:05 +02:00
Johannes Zellner
e8a420f8e0 Update to 1.113.0 2024-08-14 08:59:29 +02:00
Johannes Zellner
8857f033f5 Bump version 2024-07-31 13:28:56 +02:00
Johannes Zellner
15151c92e0 Update test deps 2024-07-31 10:51:22 +02:00
Johannes Zellner
0ec5205865 Update to 1.112.0 2024-07-31 10:51:16 +02:00
Johannes Zellner
5d93801795 Bump version 2024-07-30 18:43:47 +02:00
Johannes Zellner
f8682e43af Fixup tests 2024-07-30 18:43:15 +02:00
Johannes Zellner
290ecd7fb9 Update test deps 2024-07-30 18:23:39 +02:00
Johannes Zellner
26aeb33d0e Update to 1.111.1 2024-07-30 18:23:28 +02:00
Johannes Zellner
9f6a6ef771 Bump version 2024-07-16 15:08:05 +02:00
Johannes Zellner
8e72c77151 Update to 1.111.0 2024-07-16 14:51:10 +02:00
Johannes Zellner
0931e8bfad Bump version 2024-07-04 14:48:44 +02:00
Johannes Zellner
8bfcb263ce Update test deps 2024-07-04 12:31:46 +02:00
Johannes Zellner
94bd140d92 Update to 1.110.0 2024-07-04 12:31:37 +02:00
Johannes Zellner
55fb3bde18 Bump version 2024-06-18 14:34:17 +02:00
Johannes Zellner
b8c2e4b286 Update test deps 2024-06-18 12:57:27 +02:00
Johannes Zellner
422f2b5f35 Update to 1.109.0 2024-06-18 12:57:19 +02:00
Girish Ramakrishnan
25c9352df2 Version 1.94.0 2024-05-28 18:21:44 +02:00
Girish Ramakrishnan
478f3580a6 Update tests 2024-05-28 18:20:51 +02:00
Girish Ramakrishnan
58d82345cf Update test packages 2024-05-28 18:20:46 +02:00
Girish Ramakrishnan
49a2dbbea9 Update Synapse to 1.108.0 2024-05-28 18:20:40 +02:00
Girish Ramakrishnan
e5df109acc Version 1.93.0 2024-05-28 18:20:29 +02:00
Johannes Zellner
fd80c93278 Update test deps 2024-05-14 17:43:34 +02:00
Johannes Zellner
8b56a68dd0 Update to 1.107.0 2024-05-14 17:42:31 +02:00
Johannes Zellner
e99b0d9a5d Bump version 2024-04-30 17:53:40 +02:00
Johannes Zellner
9394b4a02e Update test deps 2024-04-30 17:37:39 +02:00
Johannes Zellner
b93b5621a8 Update to 1.106.0 2024-04-30 17:37:28 +02:00
Girish Ramakrishnan
028c6645f6 Version 1.91.2 2024-04-23 19:07:11 +02:00
Girish Ramakrishnan
29b721457f Update Synapse to 1.105.1 2024-04-23 18:47:14 +02:00
Johannes Zellner
436ff4266d Bump version 2024-04-16 18:54:10 +02:00
Johannes Zellner
b60557ea14 Update test deps 2024-04-16 18:31:52 +02:00
Johannes Zellner
cc40cbbfcb Update to 1.105.0 2024-04-16 18:31:44 +02:00
Johannes Zellner
53a48ceeb4 Bump version 2024-04-02 20:15:47 +02:00
Johannes Zellner
de750591bb Update test deps 2024-04-02 19:15:11 +02:00
Johannes Zellner
7f53673d66 Update to 1.104.0 2024-04-02 19:14:58 +02:00
Girish Ramakrishnan
a4e9b9a6d1 Version 1.90.0 2024-03-19 17:16:22 +01:00
Girish Ramakrishnan
abafe0b579 Update Synapse to 1.103.0 2024-03-19 15:51:11 +01:00
Girish Ramakrishnan
b8a59ebb69 Version 1.89.0 2024-03-06 09:28:31 +01:00
Girish Ramakrishnan
e41486e1b4 Update test packages 2024-03-06 09:28:26 +01:00
Girish Ramakrishnan
7fee626dbb Update Synapse to 1.102.0 2024-03-05 18:39:12 +01:00
Johannes Zellner
de3ae78346 Bump version 2024-02-13 13:59:15 +01:00
Johannes Zellner
9cb28d29dc Update test deps 2024-02-13 13:40:31 +01:00
Johannes Zellner
4fc1c3cef0 Update to 1.101.0 2024-02-13 13:40:18 +01:00
Johannes Zellner
0d55a94c8d Bump version 2024-01-31 13:51:28 +01:00
Johannes Zellner
0868614791 Update test deps 2024-01-31 13:34:44 +01:00
Johannes Zellner
8041a9fcef Update to 1.100.0 2024-01-31 13:34:34 +01:00
Johannes Zellner
4ef20a8f08 Bump version 2024-01-16 18:35:04 +01:00
Johannes Zellner
d898f229c8 Make tests language independent 2024-01-16 18:33:34 +01:00
Johannes Zellner
75efef6cbb Update to 1.99.0 2024-01-16 17:57:28 +01:00
Girish Ramakrishnan
3ca3794cc1 Version 1.85.0 2024-01-02 22:43:22 +01:00
Girish Ramakrishnan
58fe826905 Update test packages 2024-01-02 22:38:02 +01:00
Girish Ramakrishnan
2d8b58a66b Update the public suffix list 2024-01-02 22:37:58 +01:00
Girish Ramakrishnan
80ea999dcf Image workaround not needed 2024-01-02 22:11:57 +01:00
Girish Ramakrishnan
d57e637ac7 Version 1.84.0 2023-12-13 10:32:21 +01:00
Girish Ramakrishnan
4becdfaf1a Update test packages 2023-12-13 10:13:34 +01:00
Girish Ramakrishnan
2ed3fd8eb1 Update Synapse to 1.98.0 2023-12-13 10:06:45 +01:00
Girish Ramakrishnan
8a7e098f4f always generate pepper salt 2023-12-08 11:24:20 +01:00
Girish Ramakrishnan
5a73f8790c remove superagent 2023-11-29 11:11:24 +01:00
Girish Ramakrishnan
1c8bd95bf8 Version 1.83.0 2023-11-29 11:10:47 +01:00
Girish Ramakrishnan
da68486f69 Fix update test 2023-11-29 10:28:42 +01:00
Girish Ramakrishnan
e338d70303 Update Synapse to 1.97.0 2023-11-28 15:39:39 +01:00
Girish Ramakrishnan
0e793468aa Version 1.82.0 2023-11-24 14:53:43 +01:00
Girish Ramakrishnan
1ed71044fd also skip verification 2023-11-24 14:33:47 +01:00
Girish Ramakrishnan
61f6bf7e11 forgot to remove 2023-11-24 14:33:21 +01:00
Girish Ramakrishnan
08ce8185b7 Use allow_existing_users flag instead
when external registration is enabled, this means that we don't move
all of the external users as oidc accounts
2023-11-24 14:31:20 +01:00
Vladimir D
7f405a1e6b Fixes to migration 2023-11-24 14:30:08 +01:00
Vladimir D
630b30e9cd tests refactored using Element-web app 2023-11-24 10:36:19 +01:00
Vladimir D
7ceec54658 OIDC auth implemented, ldap users migration implemented 2023-11-24 10:33:57 +01:00
Girish Ramakrishnan
9ff85f5103 Version 1.81.0 2023-11-20 11:51:56 +01:00
Girish Ramakrishnan
3402ad2131 Update Synapse to 1.96.1 2023-11-20 11:44:12 +01:00
Johannes Zellner
5410b2b017 Bump version 2023-11-17 11:42:24 +01:00
Girish Ramakrishnan
c9814e25db Version 1.80.1 2023-11-01 15:47:08 +01:00
Girish Ramakrishnan
89eb13fa70 Update Synapse to 1.95.1 2023-11-01 15:23:59 +01:00
Girish Ramakrishnan
e8316ee377 Version 1.80.0 2023-11-01 15:21:54 +01:00
Girish Ramakrishnan
6603220ece Update Synapse to 1.95.0 2023-11-01 15:01:57 +01:00
Girish Ramakrishnan
9b790d39b7 Version 1.79.0 2023-10-10 17:52:52 +05:30
Girish Ramakrishnan
6fbd0e437c Update Synapse to 1.94.0 2023-10-10 16:17:30 +05:30
Girish Ramakrishnan
f03c4e5243 Version 1.78.0 2023-10-08 19:14:15 +05:30
Girish Ramakrishnan
3969cc4fe5 Update base image 2023-10-08 18:30:07 +05:30
Girish Ramakrishnan
d4356d2e75 Version 1.77.0 2023-09-26 23:26:14 +05:30
Girish Ramakrishnan
3f416461fb Update test packages 2023-09-26 22:44:47 +05:30
Girish Ramakrishnan
f951536f97 Update Synapse to 1.93.0 2023-09-26 22:33:17 +05:30
Johannes Zellner
213dcc79bf Bump version 2023-09-18 17:05:10 +02:00
Girish Ramakrishnan
43631d9042 Version 1.76.1 2023-09-16 09:55:43 +05:30
Girish Ramakrishnan
7889bd5bba Update Synapse to 1.92.2 2023-09-16 09:14:51 +05:30
Johannes Zellner
a29ec53ef8 Bump version 2023-09-12 17:49:59 +02:00
Johannes Zellner
ff7dc454d1 Bump version 2023-09-06 20:18:37 +02:00
Johannes Zellner
9e0b281b9f Update test deps 2023-09-04 16:34:38 +02:00
Johannes Zellner
44dbaf4e5f Bump version 2023-09-04 16:34:29 +02:00
Johannes Zellner
d124978826 Bump version 2023-08-30 13:55:16 +02:00
Girish Ramakrishnan
d2366dca87 Version 1.74.0-1 2023-08-23 08:08:54 +05:30
Girish Ramakrishnan
18c22f35ea minBoxVersion has to be 7.5.1 2023-08-23 08:08:38 +05:30
Girish Ramakrishnan
98c21db158 Version 1.74.0 2023-08-23 07:09:23 +05:30
Girish Ramakrishnan
3649849e1c Update test packages 2023-08-23 07:00:42 +05:30
Girish Ramakrishnan
f450beb46f Optional turn server support 2023-08-23 06:50:59 +05:30
Johannes Zellner
b4c4b76e52 Update test deps 2023-08-15 13:14:50 +02:00
Johannes Zellner
8cb161e997 Bump version 2023-08-15 13:14:34 +02:00
10 changed files with 1902 additions and 1923 deletions

View File

@@ -1022,3 +1022,440 @@
* Properly handle redactions of creation events. (#15973) * Properly handle redactions of creation events. (#15973)
* Fix a bug where resyncing stale device lists could block responding to federation transactions, and thus delay receiving new data from the remote server. (#15975) * Fix a bug where resyncing stale device lists could block responding to federation transactions, and thus delay receiving new data from the remote server. (#15975)
[1.73.0]
* Update Synapse to 1.90.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.90.0)
* Scope transaction IDs to devices (implement MSC3970). (#15629)
* Remove old rows from the cache_invalidation_stream_by_instance table automatically (this table is unused in SQLite). (#15868)
* Fix a long-standing bug where purging history and paginating simultaneously could lead to database corruption when using workers. (#15791)
* Fix a long-standing bug where profile endpoint returned a 404 when the user's display name was empty. (#16012)
* Fix a long-standing bug where the synapse_port_db failed to configure sequences for application services and partial stated rooms. (#16043)
* Fix long-standing bug with deletion in dehydrated devices v2. (#16046)
[1.74.0]
* Turn addon can be optionally enabled/disabled
[1.75.0]
* Update Synapse to 1.91.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.91.0)
[1.75.1]
* Update Synapse to 1.91.1
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.91.1)
* Fix a performance regression introduced in Synapse 1.91.0 where event persistence would cause an excessive linear growth in CPU usage. (#16220)
[1.75.2]
* Update Synapse to 1.91.2
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.91.2)
* Revert MSC3861 introspection cache, admin impersonation and account lock. (#16258)
[1.76.0]
* Update Synapse to 1.92.1
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.92.0)
* Revert MSC3861 introspection cache, admin impersonation and account lock. (#16258)
* Fix incorrect docstring for Ratelimiter. (#16255)
[1.76.1]
* Update Synapse to 1.92.2
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.92.2)
[1.76.2]
* Update Synapse to 1.92.3
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.92.3)
* Pillow 10.0.1 is now mandatory because of libwebp CVE-2023-4863, since Pillow provides libwebp in the wheels. (#16347)
[1.77.0]
* Update Synapse to 1.93.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.93.0)
* GHSA-4f74-84v3-j9q5 / CVE-2023-41335 — Low Severity Temporary storage of plaintext passwords during password changes.
* GHSA-7565-cq32-vx2x / CVE-2023-42453 — Low Severity Improper validation of receipts allows forged read receipts.
* Add automatic purge after all users have forgotten a room. (#15488)
* Restore room purge/shutdown after a Synapse restart. (#15488)
* Support resolving homeservers using matrix-fed DNS SRV records from MSC4040. (#16137)
* Add the ability to use G (GiB) and T (TiB) suffixes in configuration options that refer to numbers of bytes. (#16219)
* Add span information to requests sent to appservices. Contributed by MTRNord. (#16227)
* Add the ability to enable/disable registrations when using CAS. Contributed by Aurélien Grimpard. (#16262)
* Allow the /notifications endpoint to be routed to workers. (#16265)
[1.78.0]
* Update base image to 4.2.0
[1.79.0]
* Update Synapse to 1.94.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.94.0)
* Render plain, CSS, CSV, JSON and common image formats in the browser (inline) when requested through the /download endpoint. (#15988)
* Add experimental support for MSC4028 to push all encrypted events to clients. (#16361)
* Minor performance improvement when sending presence to federated servers. (#16385)
* Minor performance improvement by caching server ACL checking. (#16360)
[1.80.0]
* Update Synapse to 1.95.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.95.0)
* Remove legacy unspecced `knock_state_events` field returned in some responses. (#16403)
* Fix a bug introduced in Synapse 1.81.0 where an AttributeError would be raised when `_matrix/client/v3/account/whoami` is called over a unix socket. Contributed by @Sir-Photch. (#16404)
* Properly return inline media when content types have parameters. (#16440)
* Prevent the purging of large rooms from timing out when Postgres is in use. The timeout which causes this issue was introduced in Synapse 1.88.0. (#16455)
* Improve the performance of purging rooms, particularly encrypted rooms. (#16457)
* Fix a bug introduced in Synapse 1.59.0 where servers could be incorrectly marked as available after an error response was received. (#16506)
[1.80.1]
* Update Synapse to 1.95.1
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.95.1)
* GHSA-mp92-3jfm-3575 / CVE-2023-43796 — Moderate Severity
[1.81.0]
* Update Synapse to 1.96.1
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.96.1)
* Add experimental support to allow multiple workers to write to receipts stream. (#16432)
* Add a new module API for controller presence. (#16544)
* Add a new module API callback that allows adding extra fields to events' unsigned section when sent down to clients. (#16549)
* Improve the performance of claiming encryption keys. (#16565, #16570)
[1.82.0]
* Switch LDAP authentication to OIDC login
[1.83.0]
* Update Synapse to 1.97.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.97.0)
* Add support for asynchronous uploads as defined by MSC2246. Contributed by @sumnerevans at @beeper. (#15503)
* Improve the performance of some operations in multi-worker deployments. (#16613, #16616)
* Fix a long-standing bug where some queries updated the same row twice. Introduced in Synapse 1.57.0. (#16609)
* Fix a long-standing bug where Synapse would not unbind third-party identifiers for Application Service users when deactivated and would not emit a compliant response. (#16617)
* Fix sending out of order POSITION over replication, causing additional database load. (#16639)
[1.84.0]
* Update Synapse to 1.98.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.98.0)
* Synapse now declares support for Matrix v1.7, v1.8, and v1.9. (#16707)
* Add `on_user_login` module API callback for when a user logs in. (#15207)
* Support MSC4069: Inhibit profile propagation. (#16636)
* Restore tracking of requests and monthly active users when delegating authentication via MSC3861 to an OIDC provider. (#16672)
* Add an autojoin setting for server notices rooms, so users may be joined directly instead of receiving an invite. (#16699)
* Follow redirects when downloading media over federation (per MSC3860). (#16701)
[1.85.0]
* Update public suffix list as part of the base image to get the latest domains
[1.86.0]
* Update Synapse to 1.99.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.99.0)
* Add config options to set the avatar and the topic of the server notices room, as well as the avatar of the server notices user. (\https://github.com/element-hq/synapse/issues/16679)
* Add config option email.notif_delay_before_mail to tweak the delay before an email is sent following a notification. (\https://github.com/element-hq/synapse/issues/16696)
* Add new configuration option sentry.environment for improved system monitoring. Contributed by @zeeshanrafiqrana. (\https://github.com/element-hq/synapse/issues/16738)
* Filter out rooms from the room directory being served to other homeservers when those rooms block that homeserver by their Access Control Lists. (\https://github.com/element-hq/synapse/pull/16759)
* Fix a long-standing bug where the signing keys generated by Synapse were world-readable. Contributed by Fabian Klemp. (\https://github.com/element-hq/synapse/issues/16740)
* Fix email verification redirection. Contributed by Fadhlan Ridhwanallah. (\https://github.com/element-hq/synapse/pull/16761)
* Fixed a bug that prevented users from being queried by display name if it contains non-ASCII characters. (\https://github.com/element-hq/synapse/pull/16767)
* Allow reactivate user without password with Admin API in some edge cases. (\https://github.com/element-hq/synapse/pull/16770)
* Adds the recursion_depth parameter to the response of the /relations endpoint if MSC3981 recursion is being performed. (\https://github.com/element-hq/synapse/pull/16775)
* Added version picker for Synapse documentation. Contributed by @Dmytro27Ind. (\https://github.com/element-hq/synapse/issues/16533)
* Clarify that password_config.enabled: "only_for_reauth" does not allow new logins to be created using password auth. (\https://github.com/element-hq/synapse/issues/16737)
* Remove value from header in configuration documentation for refresh_token_lifetime. (\https://github.com/element-hq/synapse/pull/16763)
* Add another custom statistics collection server to the documentation. Contributed by @loelkes. (\https://github.com/element-hq/synapse/pull/16769)
* Remove run-once workflow after adding the version picker to the documentation. (\https://github.com/element-hq/synapse/pull/9453)
* Update the implementation of [MSC2965](matrix-org/matrix-spec-proposals#2965) (OIDC Provider discovery). (\https://github.com/element-hq/synapse/issues/16726)
* Move the rust stubs inline for better IDE integration. (\https://github.com/element-hq/synapse/pull/16757)
* Fix sample config doc CI. (\https://github.com/element-hq/synapse/pull/16758)
* Simplify event internal metadata class. (\https://github.com/element-hq/synapse/pull/16762, \https://github.com/element-hq/synapse/pull/16780)
* Sign the published docker image using cosign. (\https://github.com/element-hq/synapse/pull/16774)
* Port EventInternalMetadata class to Rust. (\https://github.com/element-hq/synapse/pull/16782)
* Bump actions/setup-go from 4 to 5. (\https://github.com/element-hq/synapse/issues/16749)
* Bump actions/setup-python from 4 to 5. (\https://github.com/element-hq/synapse/issues/16748)
* Bump immutabledict from 3.0.0 to 4.0.0. (\https://github.com/element-hq/synapse/issues/16743)
* Bump isort from 5.12.0 to 5.13.0. (\https://github.com/element-hq/synapse/issues/16745)
* Bump isort from 5.13.0 to 5.13.1. (\https://github.com/element-hq/synapse/issues/16752)
* Bump pydantic from 2.5.1 to 2.5.2. (\https://github.com/element-hq/synapse/issues/16747)
* Bump ruff from 0.1.6 to 0.1.7. (\https://github.com/element-hq/synapse/issues/16746)
* Bump types-setuptools from 68.2.0.2 to 69.0.0.0. (\https://github.com/element-hq/synapse/issues/16744)
[1.87.0]
* Update Synapse to 1.100.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.100.0)
* Fix database performance regression due to changing Postgres table statistics. Introduced in v1.100.0rc1. (#16849)
* Advertise experimental support for MSC4028 through /matrix/clients/versions if enabled. Contributed by @hanadi92. (#16787)
* Handle wildcard type filters properly for room messages endpoint. Contributed by Mo Balaa. (#14984)
[1.88.0]
* Update Synapse to 1.101.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.101.0)
* Add support for stabilised MSC3981 that adds a recurse parameter on the /relations API. (#16842)
* Fix performance regression when fetching auth chains from the DB. Introduced in v1.100.0. (#16893)
[1.89.0]
* Update Synapse to 1.102.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.102.0)
* A metric was added for emails sent by Synapse, broken down by type: `synapse_emails_sent_total`. Contributed by Remi Rampin. (#16881)
* Do not send multiple concurrent requests for keys for the same server. (#16894)
* Fix performance issue when joining very large rooms that can cause the server to lock up. Introduced in v1.100.0. (#16903)
* Always prefer unthreaded receipt when >1 exist (MSC4102). (#16927)
[1.90.0]
* Update Synapse to 1.103.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.103.0)
* Add a new List Accounts v3 Admin API with improved deactivated user filtering capabilities. (#16874)
* Include Retry-After header by default per MSC4041. Contributed by @clokep. (#16947)
* Fix joining remote rooms when a module uses the `on_new_event` callback. This callback may now pass partial state events instead of the full state for remote rooms. Introduced in v1.76.0. (#16973)
* Fix performance issue when joining very large rooms that can cause the server to lock up. Introduced in v1.100.0. Contributed by @ggogel. (#16968)
[1.91.0]
* Update Synapse to 1.104.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.104.0)
* Fix regression when using OIDC provider. Introduced in v1.104.0rc1. (#17031)
* Add an OIDC config to specify extra parameters for the authorization grant URL. IT can be useful to pass an ACR value for example. (#16971)
* Add support for OIDC provider returning JWT. (#16972, #17031)
* Fix a bug which meant that, under certain circumstances, we might never retry sending events or to-device messages over federation after a failure. (#16925)
* Fix various long-standing bugs which could cause incorrect state to be returned from /sync in certain situations. (#16949)
* Fix case in which m.fully_read marker would not get updated. Contributed by @SpiritCroc. (#16990)
* Fix bug which did not retract a user's pending knocks at rooms when their account was deactivated. Contributed by @hanadi92. (#17010)
[1.91.1]
* Update Synapse to 1.105.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.105.0)
* Stabilize support for MSC4010 which clarifies the interaction of push rules and account data. Contributed by @clokep. (#17022)
* Stabilize support for MSC3981: /relations recursion. Contributed by @clokep. (#17023)
* Add support for moving /pushrules off of main process. (#17037, #17038)
* Fix various long-standing bugs which could cause incorrect state to be returned from /sync in certain situations. (#16930, #16932, #16942, #17064, #17065, #17066)
* Fix server notice rooms not always being created as unencrypted rooms, even when encryption_enabled_by_default_for_room_type is in use (server notices are always unencrypted). (#17033)
* Fix the .m.rule.encrypted_room_one_to_one and .m.rule.room_one_to_one default underride push rules being in the wrong order. Contributed by @Sumpy1. (#17043)
[1.91.2]
* Update Synapse to 1.105.1
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.105.1)
* GHSA-3h7q-rfh9-xm4v / CVE-2024-31208 — High Severity . Weakness in auth chain indexing allows DoS from remote room members through disk fill and high CPU usage.
[1.92.0]
* Update Synapse to 1.106.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.106.0)
* Send an email if the address is already bound to an user account. (#16819)
* Implement the rendezvous mechanism described by MSC4108. (#17056)
* Support delegating the rendezvous mechanism described MSC4108 to an external implementation. (#17086)
* Add validation to ensure that the limit parameter on /publicRooms is non-negative. (#16920)
* Return 400 M_NOT_JSON upon receiving invalid JSON in query parameters across various client and admin endpoints, rather than an internal server error. (#16923)
* Make the CSAPI endpoint /keys/device_signing/upload idempotent. (#16943)
* Redact membership events if the user requested erasure upon deactivating. (#17076)
[1.93.0]
* Update Synapse to 1.107.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.107.0)
[1.94.0]
* Update Synapse to 1.108.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.108.0)
* Add a feature that allows clients to query the configured federation whitelist. Disabled by default. (#16848, #17199)
* Add the ability to allow numeric user IDs with a specific prefix when in the CAS flow. Contributed by Aurélien Grimpard. (#17098)
* Fix bug where push rules would be empty in /sync for some accounts. Introduced in v1.93.0. (#17142)
* Add support for optional whitespace around the Federation API's Authorization header's parameter commas. (#17145)
* Fix bug where disabling room publication prevented public rooms being created on workers. (#17177, #17184)
[1.95.0]
* Update Synapse to 1.109.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.109.0)
[1.96.0]
* Update Synapse to 1.110.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.110.0)
[1.97.0]
* Update Synapse to 1.111.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.111.0)
[1.97.1]
* Update Synapse to 1.111.1
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.111.1)
[1.97.2]
* Update Synapse to 1.112.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.112.0)
[1.97.3]
* Update Synapse to 1.113.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.113.0)
[1.97.4]
* Update Synapse to 1.114.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.114.0)
[1.97.5]
* Update Synapse to 1.115.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.115.0)
[1.97.6]
* Update Synapse to 1.116.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.116.0)
[1.98.0]
* Update Synapse to 1.118.0
* [Full changelog](https://github.com/element-hq/synapse/releases/tag/v1.118.0)
[1.98.1]
* Update S3 Storage Provider to 1.5.0
[1.99.0]
* Update synapse to 1.119.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.118.0)
* Support [MSC4151](https://github.com/matrix-org/matrix-spec-proposals/pull/4151)'s stable report room API. ([#​17374](https://github.com/element-hq/synapse/issues/17374))
* Add experimental support for [MSC4222](https://github.com/matrix-org/matrix-spec-proposals/pull/4222) (Adding `state_after` to sync v2). ([#​17888](https://github.com/element-hq/synapse/issues/17888))
* Fix bug with sliding sync where `$LAZY`-loading room members would not return `required_state` membership in incremental syncs. ([#​17809](https://github.com/element-hq/synapse/issues/17809))
* Check if user has membership in a room before tagging it. Contributed by Lama Alosaimi. ([#​17839](https://github.com/element-hq/synapse/issues/17839))
* Fix a bug in the admin redact endpoint where the background task would not run if a worker was specified in
* Fix bug where some presence and typing timeouts can expire early. ([#​17850](https://github.com/element-hq/synapse/issues/17850))
* Fix detection when the built Rust library was outdated when using source installations. ([#​17861](https://github.com/element-hq/synapse/issues/17861))
* Fix a long-standing bug in Synapse which could cause one-time keys to be issued in the incorrect order, causing message decryption failures. ([#​17903](https://github.com/element-hq/synapse/pull/17903))
* Fix experimental support for [MSC4222](https://github.com/matrix-org/matrix-spec-proposals/pull/4222) (Adding `state_after` to sync v2) where we would return the full state on incremental syncs when using lazy loaded members and there were no new events in the timeline. ([#​17915](https://github.com/element-hq/synapse/pull/17915))
* Remove support for python 3.8. ([#​17908](https://github.com/element-hq/synapse/issues/17908))
* Add a test for downloading and thumbnailing a CMYK JPEG. ([#​17786](https://github.com/element-hq/synapse/issues/17786))
* Refactor database calls to remove `Generator` usage. ([#​17813](https://github.com/element-hq/synapse/issues/17813), [#​17814](https://github.com/element-hq/synapse/issues/17814), [#​17815](https://github.com/element-hq/synapse/issues/17815), [#​17816](https://github.com/element-hq/synapse/issues/17816), [#​17817](https://github.com/element-hq/synapse/issues/17817), [#​17818](https://github.com/element-hq/synapse/issues/17818), [#​17890](https://github.com/element-hq/synapse/issues/17890))
* Include the destination in the error of 'Destination mismatch' on federation requests. ([#​17830](https://github.com/element-hq/synapse/issues/17830))
* The nix flake inside the repository no longer tracks nixpkgs/master to not catch the latest bugs from a MR merged 5 minutes ago. ([#​17852](https://github.com/element-hq/synapse/issues/17852))
* Minor speed-up of sliding sync by computing extensions results in parallel. ([#​17884](https://github.com/element-hq/synapse/issues/17884))
* Bump the default Python version in the Synapse Dockerfile from 3.11 -> 3.12. ([#​17887](https://github.com/element-hq/synapse/issues/17887))
* Remove usage of internal header encoding API. ([#​17894](https://github.com/element-hq/synapse/issues/17894))
* Use unique name for each os.arch variant when uploading Wheel artifacts. ([#​17905](https://github.com/element-hq/synapse/issues/17905))
* Fix tests to run with latest Twisted. ([#​17906](https://github.com/element-hq/synapse/pull/17906), [#​17907](https://github.com/element-hq/synapse/pull/17907), [#​17911](https://github.com/element-hq/synapse/pull/17911))
* Update version constraint to allow the latest poetry-core 1.9.1. ([#​17902](https://github.com/element-hq/synapse/pull/17902))
* Update the portdb CI to use Python 3.13 and Postgres 17 as latest dependencies. ([#​17909](https://github.com/element-hq/synapse/pull/17909))
* Add an index to `current_state_delta_stream` table. ([#​17912](https://github.com/element-hq/synapse/issues/17912))
* Fix building and attaching release artifacts during the release process. ([#​17921](https://github.com/element-hq/synapse/issues/17921))
[1.100.0]
* Update synapse to 1.120.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.118.0)
* Fix a bug introduced in Synapse v1.120rc1 which would cause the newly-introduced `delete_old_otks` job to fail in worker-mode deployments. ([#​17960](https://github.com/element-hq/synapse/issues/17960))
[1.100.1]
* Update synapse to 1.120.2
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.118.0)
[1.101.0]
* Update synapse to 1.121.1
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.121.0)
* Support for MSC4190: device management for Application Services. (#17705)
* Update MSC4186 Sliding Sync to include invite, ban, kick, targets when $LAZY-loading room members. (#17947)
* Use stable M_USER_LOCKED error code for locked accounts, as per Matrix 1.12. (#17965)
* MSC4076: Add disable_badge_count to pusher configuration. (#17975)
[1.101.1]
* CLOUDRON_OIDC_PROVIDER_NAME implemented
[1.102.0]
* Update synapse to 1.122.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.122.0)
[1.103.0]
* Update synapse to 1.123.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.123.0)
[1.104.0]
* Update synapse to 1.124.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.124.0)
[1.105.0]
* Update synapse to 1.125.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.125.0)
* Add functionality to be able to use multiple values in SSO feature attribute_requirements. (#17949)
* Add experimental config options admin_token_path and client_secret_path for MSC3861. (#18004)
* Add get_current_time_msec() method to the module API for sound time comparisons with Synapse. (#18144)
* Update the response when a client attempts to add an invalid email address to the user's account from a 500, to a 400 with error text. (#18125)
* Fix user directory search when using a legacy module with a check_username_for_spam callback. Broke in v1.122.0. (#18135)
[1.106.0]
* Update synapse to 1.126.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.126.0)
* Define ratelimit configuration for delayed event management. (#18019)
* Add form_secret_path config option. (#18090)
* Add the --no-secrets-in-config command line option. (#18092)
* Add background job to clear unreferenced state groups. (#18154)
* Add support for specifying/overriding id_token_signing_alg_values_supported for an OpenID identity provider. (#18177)
* Add worker_replication_secret_path config option. (#18191)
* Add support for specifying/overriding redirect_uri in the authorization and token requests against an OpenID identity provider. (#18197)
[1.107.0]
* Update base image to 5.0.0
[1.108.0]
* Update synapse to 1.127.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.127.0)
* Update MSC4140 implementation to no longer cancel a user's own delayed state events with an event type & state key that match a more recent state event sent by that user. (#17810)
* Fixed a minor typo in the Synapse documentation. Contributed by @karuto12. (#18224)
* Remove undocumented SYNAPSE_USE_FROZEN_DICTS environment variable. (#18123)
* Fix detection of workflow failures in the release script. (#18211)
* Add caching support to media endpoints. (#18235)
[1.108.1]
* Update synapse to 1.127.1
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.127.1)
* Fix CVE-2025-30355 / GHSA-v56r-hwv5-mxg6. High severity vulnerability affecting federation. The vulnerability has been exploited in the wild.
[1.109.0]
* Update synapse to 1.128.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.128.0)
* Add an access token introspection cache to make Matrix Authentication Service integration (MSC3861) more efficient. (#18231)
* Add background job to clear unreferenced state groups. (#18254)
* Hashes of media files are now tracked by Synapse. Media quarantines will now apply to all files with the same hash. (#18277, #18302, #18296)
[1.110.0]
* Update synapse to 1.129.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.129.0)
[1.111.0]
* Update synapse to 1.130.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.130.0)
* Fix startup being blocked on creating a new index that was introduced in v1.130.0rc1. ([#​18439](https://github.com/element-hq/synapse/issues/18439))
* Fix the ordering of local messages in rooms that were affected by [GHSA-v56r-hwv5-mxg6](https://github.com/advisories/GHSA-v56r-hwv5-mxg6). ([#​18447](https://github.com/element-hq/synapse/issues/18447))
[1.112.0]
* Update synapse to 1.131.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.131.0)
[1.113.0]
* Update synapse to 1.132.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.132.0)
[1.114.0]
* Update synapse to 1.133.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.133.0)
* Pre-built wheels are now built using the manylinux\_2\_28 base, which is expected to be compatible with distros using glibc 2.28 or later, including:
* Previously, wheels were built using the manylinux2014 base, which was expected to be compatible with distros using glibc 2.17 or later.
* Bump `cibuildwheel` to 3.0.0 to fix the `manylinux` wheel builds. ([#​18615](https://github.com/element-hq/synapse/issues/18615))
[1.115.0]
* Update synapse to 1.134.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.134.0)
[1.116.0]
* Update synapse to 1.135.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.135.0)
[1.116.1]
* Update synapse to 1.135.2
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.135.2)
* Fix invalidation of storage cache that was broken in 1.135.0. ([#​18786](https://github.com/element-hq/synapse/issues/18786))
* Add a parameter to `upgrade_rooms(..)` to allow auto join local users. ([#​82](https://github.com/element-hq/synapse/issues/82))
* Speed up upgrading a room with large numbers of banned users. ([#​18574](https://github.com/element-hq/synapse/issues/18574))
[1.117.0]
* Update synapse to 1.136.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.136.0)
* Fix bug introduced in 1.135.2 and 1.136.0rc2 where the [Make Room Admin API](https://element-hq.github.io/synapse/latest/admin_api/rooms.html#make-room-admin-api) would not treat a room v12's creator power level as the highest in room. ([#​18805](https://github.com/element-hq/synapse/issues/18805))
[1.118.0]
* Update synapse to 1.137.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.137.0)
* Fix a bug which could corrupt auth chains making it impossible to perform state resolution. (#18746)
* Fix error message in register_new_matrix_user utility script for empty registration_shared_secret. (#18780)
* Allow enabling MSC4108 when the stable Matrix Authentication Service integration is enabled. (#18832)
* Include IPv6 networks in denied-peer-ips of coturn setup. Contributed by @litetex. (#18781)
[1.119.0]
* Update synapse to 1.138.0
* [Full Changelog](https://github.com/element-hq/synapse/releases/tag/v1.138.0)
* Support for the stable endpoint and scopes of [MSC3861](https://github.com/matrix-org/matrix-spec-proposals/pull/3861) & co. ([\#18549](https://github.com/element-hq/synapse/issues/18549))
* Improve database performance of [MSC4293](https://github.com/matrix-org/matrix-spec-proposals/pull/4293) - Redact on Kick/Ban. ([\#18851](https://github.com/element-hq/synapse/issues/18851))
* Do not throw an error when fetching a rejected delayed state event on startup. ([\#18858](https://github.com/element-hq/synapse/issues/18858))
* Fix worker documentation incorrectly indicating all room Admin API requests were capable of being handled by workers. ([\#18853](https://github.com/element-hq/synapse/issues/18853))
* Instrument `_ByteProducer` with tracing to measure potential dead time while writing bytes to the request. ([\#18804](https://github.com/element-hq/synapse/issues/18804))
* Switch to OpenTracing's `ContextVarsScopeManager` instead of our own custom `LogContextScopeManager`. ([\#18849](https://github.com/element-hq/synapse/issues/18849))
* Trace how much work is being done while "recursively fetching redactions". ([\#18854](https://github.com/element-hq/synapse/issues/18854))
* Link [upstream Twisted bug](https://github.com/twisted/twisted/issues/12498) tracking the problem that explains why we have to use a `Producer` to write bytes to the request. ([\#18855](https://github.com/element-hq/synapse/issues/18855))
* Introduce `EventPersistencePair` type. ([\#18857](https://github.com/element-hq/synapse/issues/18857))

View File

@@ -5,33 +5,57 @@
"description": "file://DESCRIPTION.md", "description": "file://DESCRIPTION.md",
"changelog": "file://CHANGELOG.md", "changelog": "file://CHANGELOG.md",
"tagline": "Secure & decentralized communication", "tagline": "Secure & decentralized communication",
"version": "1.72.0", "version": "1.119.0",
"upstreamVersion": "1.89.0", "upstreamVersion": "1.138.0",
"healthCheckPath": "/", "healthCheckPath": "/",
"httpPort": 8008, "httpPort": 8008,
"memoryLimit": 536870912, "memoryLimit": 536870912,
"addons": { "addons": {
"localstorage": {}, "localstorage": {},
"ldap": {}, "oidc": {
"loginRedirectUri": "/_synapse/client/oidc/callback"
},
"postgresql": {}, "postgresql": {},
"sendmail": { "supportsDisplayName": true }, "sendmail": {
"turn": {} "supportsDisplayName": true
},
"turn": {
"optional": true
}
}, },
"manifestVersion": 2, "manifestVersion": 2,
"website": "https://matrix.org", "website": "https://matrix.org",
"contactEmail": "support@cloudron.io", "contactEmail": "support@cloudron.io",
"icon": "file://logo.png", "icon": "file://logo.png",
"tags": [ "tags": [
"im", "collaboration", "voip", "videochat", "chat", "slack", "zulip", "federated" "im",
"collaboration",
"voip",
"videochat",
"chat",
"slack",
"zulip",
"federated",
"element",
"riot"
], ],
"mediaLinks": [ "mediaLinks": [
"https://screenshots.cloudron.io/org.matrix.synapse/1.png", "https://screenshots.cloudron.io/org.matrix.synapse/1.png",
"https://screenshots.cloudron.io/org.matrix.synapse/2.png", "https://screenshots.cloudron.io/org.matrix.synapse/2.png",
"https://screenshots.cloudron.io/org.matrix.synapse/3.png" "https://screenshots.cloudron.io/org.matrix.synapse/3.png"
], ],
"checklist": {
"configure-federation": {
"message": "For federation to work, the delegation URI `https://$CLOUDRON-APP-DOMAIN/.well-known/matrix/server` must be configured. See the [docs](https://docs.cloudron.io/apps/synapse/#post-installation) on how to do this."
},
"registration-enabled-without-verification": {
"message": "Registration is enabled but verification is disabled. See [docs](https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html?highlight=registration_require#enable_registration) for more information",
"sso": false
}
},
"postInstallMessage": "file://POSTINSTALL.md", "postInstallMessage": "file://POSTINSTALL.md",
"minBoxVersion": "7.2.0", "minBoxVersion": "8.2.0",
"forumUrl": "https://forum.cloudron.io/category/50/matrix-synapse-riot", "forumUrl": "https://forum.cloudron.io/category/50/matrix-synapse-riot",
"documentationUrl": "https://docs.cloudron.io/apps/synapse/", "documentationUrl": "https://docs.cloudron.io/packages/synapse/",
"optionalSso": true "optionalSso": true
} }

View File

@@ -1,31 +1,27 @@
FROM cloudron/base:4.0.0@sha256:31b195ed0662bdb06a6e8a5ddbedb6f191ce92e8bee04c03fb02dd4e9d0286df FROM cloudron/base:5.0.0@sha256:04fd70dbd8ad6149c19de39e35718e024417c3e01dc9c6637eaf4a41ec4e596c
RUN mkdir -p /app/pkg RUN mkdir -p /app/pkg
WORKDIR /app/code WORKDIR /app/code
# https://pythonspeed.com/articles/activate-virtualenv-dockerfile/ # https://github.com/element-hq/synapse/blob/master/docs/setup/installation.md?plain=1#L202
RUN virtualenv -p python3 /app/code/env RUN python3 -m venv /app/code/env
ENV VIRTUAL_ENV=/app/code/env
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
ARG VERSION=1.89.0 # renovate: datasource=github-releases depName=element-hq/synapse versioning=semver extractVersion=^v(?<version>.+)$
ARG SYNAPSE_VERSION=1.138.0
# https://github.com/matrix-org/synapse-s3-storage-provider # renovate: datasource=github-releases depName=matrix-org/synapse-s3-storage-provider versioning=semver extractVersion=^v(?<version>.+)$
ARG STORAGE_PROVIDER_VERSION=1beb6af95e1f5caedb8e6e7e1cc176cdb2106d37 ARG S3PROVIDER_VERSION=1.5.0
# Synapse (https://github.com/matrix-org/synapse/blob/master/INSTALL.md) # Synapse (https://github.com/matrix-org/synapse/blob/master/INSTALL.md)
# lxml - required for previews # lxml - required for previews
RUN pip install --upgrade pip && \ RUN source /app/code/env/bin/activate && \
pip install --upgrade setuptools && \ pip3 install --no-cache-dir matrix-synapse==v${SYNAPSE_VERSION} psycopg2-binary python-ldap matrix-synapse-ldap3 lxml publicsuffix2 git+https://github.com/matrix-org/synapse-s3-storage-provider.git@v${S3PROVIDER_VERSION} matrix-synapse[oidc]
pip install matrix-synapse==v${VERSION} psycopg2-binary python-ldap matrix-synapse-ldap3 lxml publicsuffix2 git+https://github.com/matrix-org/synapse-s3-storage-provider.git@${STORAGE_PROVIDER_VERSION} matrix-synapse[oidc]
# workaround (https://github.com/matrix-org/synapse/issues/15873) . remove after 1.87.0 # Updated suffix list
RUN sed -e "s/Image.ANTIALIAS/Image.LANCZOS/" -i /app/code/env/lib/python3.10/site-packages/synapse/media/thumbnailer.py RUN curl -L https://publicsuffix.org/list/public_suffix_list.dat -o /app/code/env/lib/python3.12/site-packages/publicsuffix2/public_suffix_list.dat
RUN ln -sf /app/data/index.html /app/code/env/lib/python3.10/site-packages/synapse/static/index.html RUN ln -sf /app/data/index.html /app/code/env/lib/python3.12/site-packages/synapse/static/index.html
RUN chown -R cloudron.cloudron /app/code
ADD index.html homeserver.yaml.template start.sh /app/pkg/ ADD index.html homeserver.yaml.template start.sh /app/pkg/

View File

@@ -1,6 +1,2 @@
Account ids are created with the username and the second level domain under which the Account ids are created with the username and the second level domain under which the
app is installed e.g. `@$CLOUDRON-USERNAME:$CLOUDRON-APP-DOMAIN`. app is installed e.g. `@$CLOUDRON-USERNAME:$CLOUDRON-APP-DOMAIN`.
For federation to work, the delegation URI `https://$CLOUDRON-APP-DOMAIN/.well-known/matrix/server`
must be configured. See the [docs](https://docs.cloudron.io/apps/synapse/#post-installation) on how to do this.

View File

@@ -1,4 +1,4 @@
# https://github.com/matrix-org/synapse/blob/master/docs/sample_config.yaml # https://github.com/element-hq/synapse/blob/master/docs/sample_config.yaml
# if you change this, change the auto_join_rooms below as well # if you change this, change the auto_join_rooms below as well
server_name: "example.com" server_name: "example.com"
@@ -13,7 +13,6 @@ listeners:
type: http type: http
x_forwarded: true x_forwarded: true
bind_addresses: ['0.0.0.0'] bind_addresses: ['0.0.0.0']
resources: resources:
- names: [client,federation] - names: [client,federation]
compress: false compress: false
@@ -21,7 +20,6 @@ listeners:
database: database:
name: "psycopg2" name: "psycopg2"
args: args:
# Path to the database
user: ${POSTGRESQL_USERNAME} user: ${POSTGRESQL_USERNAME}
password: ${POSTGRESQL_PASSWORD} password: ${POSTGRESQL_PASSWORD}
database: ${POSTGRESQL_DATABASE} database: ${POSTGRESQL_DATABASE}
@@ -29,6 +27,17 @@ database:
cp_min: 5 cp_min: 5
cp_max: 10 cp_max: 10
log_config: "/app/data/configs/log.config"
media_store_path: "/app/data/data/media_store"
registration_shared_secret: "some_shared_secret"
report_stats: false
macaroon_secret_key: "some_macaroon_secret"
form_secret: "some_form_secret"
signing_key_path: "/app/data/configs/signing.key"
trusted_key_servers:
- server_name: "matrix.org"
## Cloudron packaging
email: email:
smtp_host: mail.server smtp_host: mail.server
smtp_port: 587 smtp_port: 587
@@ -40,74 +49,37 @@ email:
enable_notifs: true enable_notifs: true
notif_for_new_users: true notif_for_new_users: true
password_providers:
- module: "synapse.util.ldap_auth_provider.LdapAuthProvider"
config:
enabled: true
uri: "ldap://ldap.example.com:389"
start_tls: true
base: "ou=users,dc=example,dc=com"
attributes:
uid: "username"
mail: "mail"
name: "username"
bind_dn: "ou=users,dc=cloudron"
bind_password: "password"
filter: "(objectClass=posixAccount)"
# turn # turn
turn_uris: [] turn_uris: []
turn_shared_secret: "sharedsecret" turn_shared_secret: "sharedsecret"
turn_allow_guests: true turn_allow_guests: true
federation_ip_range_blacklist: # sso (https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#single-sign-on-integration)
- '127.0.0.0/8'
- '10.0.0.0/8'
- '172.16.0.0/12'
- '192.168.0.0/16'
- '100.64.0.0/10'
- '169.254.0.0/16'
- '::1/128'
- 'fe80::/64'
- 'fc00::/7'
enable_registration: false enable_registration: false
# without this, registration requires one of email/captcha/token verification
enable_registration_without_verification: true enable_registration_without_verification: true
registration_shared_secret: "somesecret"
allow_guest_access: false
enable_group_creation: true oidc_providers:
- idp_id: cloudron
report_stats: False idp_name: "CLOUDRON_OIDC_PROVIDER_NAME"
issuer: "CLOUDRON_OIDC_ISSUER"
signing_key_path: "/app/data/configs/signing.key" client_id: "CLOUDRON_OIDC_CLIENT_ID"
client_secret: "CLOUDRON_OIDC_CLIENT_SECRET"
url_preview_enabled: true scopes: ["openid", "profile", "email"]
url_preview_ip_range_blacklist: authorization_endpoint: "CLOUDRON_OIDC_AUTH_ENDPOINT"
- '127.0.0.0/8' token_endpoint: "CLOUDRON_OIDC_TOKEN_ENDPOINT"
- '10.0.0.0/8' userinfo_endpoint: "CLOUDRON_OIDC_AUTH_ENDPOINT"
- '172.16.0.0/12' allow_existing_users: true
- '192.168.0.0/16' enable_registration: true
- '100.64.0.0/10' backchannel_logout_enabled: false
- '169.254.0.0/16' user_mapping_provider:
- '::1/128' config:
- 'fe80::/64' localpart_template: "{{ user.sub }}"
- 'fc00::/7' display_name_template: "{{ user.name }}"
email_template: "{{ user.email }}"
media_store_path: "/app/data/data/media_store"
max_upload_size: 200M
max_image_pixels: "32M"
dynamic_thumbnails: false
autocreate_auto_join_rooms: true
auto_join_rooms:
- "#discuss:example.com"
trusted_key_servers:
- server_name: "matrix.org"
suppress_key_server_warning: true
password_config: password_config:
enabled: true enabled: false
localdb_enabled: false localdb_enabled: false
pepper: "some_pepper_secret"

4
renovate.json5 Normal file
View File

@@ -0,0 +1,4 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["local>devops/renovator//default.renovate.json5"]
}

View File

@@ -4,6 +4,8 @@ set -eu
mkdir -p /app/data/data /app/data/configs /run/synapse mkdir -p /app/data/data /app/data/configs /run/synapse
source /app/code/env/bin/activate
if [[ ! -f /app/data/configs/homeserver.yaml ]]; then if [[ ! -f /app/data/configs/homeserver.yaml ]]; then
echo "==> Detected first run" echo "==> Detected first run"
@@ -31,16 +33,16 @@ if [[ ! -f /app/data/configs/homeserver.yaml ]]; then
yq eval -i ".server_name=\"${server_name}\"" /app/data/configs/homeserver.yaml yq eval -i ".server_name=\"${server_name}\"" /app/data/configs/homeserver.yaml
yq eval -i ".registration_shared_secret=\"$(pwgen -1s 64)\"" /app/data/configs/homeserver.yaml yq eval -i ".registration_shared_secret=\"$(pwgen -1s 64)\"" /app/data/configs/homeserver.yaml
yq eval -i ".macaroon_secret_key=\"$(pwgen -1s 64)\"" /app/data/configs/homeserver.yaml
yq eval -i ".form_secret=\"$(pwgen -1s 64)\"" /app/data/configs/homeserver.yaml
yq eval -i ".auto_join_rooms=[]" /app/data/configs/homeserver.yaml if [[ -z "${CLOUDRON_OIDC_ISSUER:-}" ]]; then
yq eval -i ".auto_join_rooms[0]=\"#discuss:${server_name}\"" /app/data/configs/homeserver.yaml
if [[ -z "${CLOUDRON_LDAP_SERVER:-}" ]]; then
yq eval -i ".enable_registration=true" /app/data/configs/homeserver.yaml yq eval -i ".enable_registration=true" /app/data/configs/homeserver.yaml
yq eval -i ".password_config.pepper=\"$(pwgen -1s 12)\"" /app/data/configs/homeserver.yaml yq eval -i ".password_config.enabled=true" /app/data/configs/homeserver.yaml
# just setting enabled to false is not enough. see https://github.com/matrix-org/matrix-synapse-ldap3/issues/123 yq eval -i ".password_config.localdb_enabled=true" /app/data/configs/homeserver.yaml
yq eval -i "del(.password_providers)" /app/data/configs/homeserver.yaml yq eval -i "del(.oidc_providers)" /app/data/configs/homeserver.yaml
fi fi
yq eval -i ".password_config.pepper=\"$(pwgen -1s 12)\"" /app/data/configs/homeserver.yaml # always set this so that users can enable password login if needed
fi fi
echo "==> Ensure we log to console" echo "==> Ensure we log to console"
@@ -65,30 +67,40 @@ yq eval -i ".email.smtp_user=\"${CLOUDRON_MAIL_SMTP_USERNAME}\"" /app/data/confi
yq eval -i ".email.smtp_pass=\"${CLOUDRON_MAIL_SMTP_PASSWORD}\"" /app/data/configs/homeserver.yaml yq eval -i ".email.smtp_pass=\"${CLOUDRON_MAIL_SMTP_PASSWORD}\"" /app/data/configs/homeserver.yaml
yq eval -i ".email.notif_from=\"${CLOUDRON_MAIL_FROM_DISPLAY_NAME:-Matrix} <${CLOUDRON_MAIL_FROM}>\"" /app/data/configs/homeserver.yaml yq eval -i ".email.notif_from=\"${CLOUDRON_MAIL_FROM_DISPLAY_NAME:-Matrix} <${CLOUDRON_MAIL_FROM}>\"" /app/data/configs/homeserver.yaml
# ldap # oidc
if [[ -n "${CLOUDRON_LDAP_SERVER:-}" ]]; then if [[ -n "${CLOUDRON_OIDC_ISSUER:-}" ]]; then
yq eval -i ".password_providers[0].config.uri=\"${CLOUDRON_LDAP_URL}\"" /app/data/configs/homeserver.yaml echo " ==> Configuring OIDC auth"
yq eval -i ".password_providers[0].config.start_tls=false" /app/data/configs/homeserver.yaml yq eval -i ".oidc_providers[0].idp_id=\"cloudron\"" /app/data/configs/homeserver.yaml
yq eval -i ".password_providers[0].config.base=\"${CLOUDRON_LDAP_USERS_BASE_DN}\"" /app/data/configs/homeserver.yaml yq eval -i ".oidc_providers[0].idp_name=\"${CLOUDRON_OIDC_PROVIDER_NAME:-Cloudron}\"" /app/data/configs/homeserver.yaml
yq eval -i ".password_providers[0].config.bind_dn=\"${CLOUDRON_LDAP_BIND_DN}\"" /app/data/configs/homeserver.yaml yq eval -i ".oidc_providers[0].issuer=\"${CLOUDRON_OIDC_ISSUER}\"" /app/data/configs/homeserver.yaml
yq eval -i ".password_providers[0].config.bind_password=\"${CLOUDRON_LDAP_BIND_PASSWORD}\"" /app/data/configs/homeserver.yaml yq eval -i ".oidc_providers[0].client_id=\"${CLOUDRON_OIDC_CLIENT_ID}\"" /app/data/configs/homeserver.yaml
yq eval -i ".password_providers[0].config.filter=\"(objectClass=user)\"" /app/data/configs/homeserver.yaml yq eval -i ".oidc_providers[0].client_secret=\"${CLOUDRON_OIDC_CLIENT_SECRET}\"" /app/data/configs/homeserver.yaml
yq eval -i ".oidc_providers[0].scopes=[\"openid\", \"email\", \"profile\"]" /app/data/configs/homeserver.yaml
yq eval -i ".oidc_providers[0].authorization_endpoint=\"${CLOUDRON_OIDC_AUTH_ENDPOINT}\"" /app/data/configs/homeserver.yaml
yq eval -i ".oidc_providers[0].token_endpoint=\"${CLOUDRON_OIDC_TOKEN_ENDPOINT}\"" /app/data/configs/homeserver.yaml
yq eval -i ".oidc_providers[0].userinfo_endpoint=\"${CLOUDRON_OIDC_PROFILE_ENDPOINT}\"" /app/data/configs/homeserver.yaml
# https://s3lph.me/ldap-to-oidc-migration-3-matrix.html
yq eval -i ".oidc_providers[0].allow_existing_users=true" /app/data/configs/homeserver.yaml
yq eval -i ".oidc_providers[0].skip_verification=true" /app/data/configs/homeserver.yaml
yq eval -i ".oidc_providers[0].user_mapping_provider.config.localpart_template=\"{{ user.sub }}\"" /app/data/configs/homeserver.yaml
yq eval -i ".oidc_providers[0].user_mapping_provider.config.display_name_template=\"{{ user.name }}\"" /app/data/configs/homeserver.yaml
yq eval -i ".oidc_providers[0].user_mapping_provider.config.email_template=\"{{ user.email }}\"" /app/data/configs/homeserver.yaml
else else
yq eval -i ".password_config.localdb_enabled=true" /app/data/configs/homeserver.yaml yq eval -i ".password_config.localdb_enabled=true" /app/data/configs/homeserver.yaml
# just setting enabled to false is not enough. see https://github.com/matrix-org/matrix-synapse-ldap3/issues/123
yq eval -i "del(.password_providers)" /app/data/configs/homeserver.yaml
fi fi
# turn (https://github.com/matrix-org/synapse/blob/master/docs/turn-howto.md#synapse-setup) # turn (https://github.com/matrix-org/synapse/blob/master/docs/turn-howto.md#synapse-setup)
yq eval -i ".turn_uris=[]" /app/data/configs/homeserver.yaml if [[ -n "${CLOUDRON_TURN_SERVER:-}" ]]; then
yq eval -i ".turn_uris[0]=\"turn:${CLOUDRON_TURN_SERVER}:${CLOUDRON_TURN_TLS_PORT}?transport=udp\"" /app/data/configs/homeserver.yaml yq eval -i ".turn_uris=[]" /app/data/configs/homeserver.yaml
yq eval -i ".turn_uris[1]=\"turn:${CLOUDRON_TURN_SERVER}:${CLOUDRON_TURN_TLS_PORT}?transport=tcp\"" /app/data/configs/homeserver.yaml yq eval -i ".turn_uris[0]=\"turn:${CLOUDRON_TURN_SERVER}:${CLOUDRON_TURN_TLS_PORT}?transport=udp\"" /app/data/configs/homeserver.yaml
yq eval -i ".turn_shared_secret=\"${CLOUDRON_TURN_SECRET}\"" /app/data/configs/homeserver.yaml yq eval -i ".turn_uris[1]=\"turn:${CLOUDRON_TURN_SERVER}:${CLOUDRON_TURN_TLS_PORT}?transport=tcp\"" /app/data/configs/homeserver.yaml
yq eval -i ".turn_shared_secret=\"${CLOUDRON_TURN_SECRET}\"" /app/data/configs/homeserver.yaml
fi
# fix permissions # fix permissions
echo "==> Fixing permissions" echo "==> Fixing permissions"
chown -R cloudron.cloudron /app/data /run/synapse chown -R cloudron:cloudron /app/data /run/synapse
echo "==> Starting synapse" echo "==> Starting synapse"
gosu cloudron:cloudron python3 -m synapse.app.homeserver --config-path /app/data/configs/homeserver.yaml -n exec gosu cloudron:cloudron python3 -m synapse.app.homeserver --config-path /app/data/configs/homeserver.yaml -n

2705
test/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -9,10 +9,9 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"chromedriver": "^115.0.0", "chromedriver": "^140.0.0",
"expect.js": "^0.3.1", "expect.js": "^0.3.1",
"mocha": "^10.2.0", "mocha": "^11.7.2",
"selenium-webdriver": "^4.11.1", "selenium-webdriver": "^4.35.0"
"superagent": "^8.0.9"
} }
} }

View File

@@ -1,214 +1,410 @@
#!/usr/bin/env node #!/usr/bin/env node
/* jshint esversion: 8 */ /* jshint esversion: 8 */
/* global describe */ /* global it, xit, describe, before, after, afterEach */
/* global before */
/* global after */
/* global it */
/* global xit */
'use strict'; 'use strict';
require('chromedriver'); require('chromedriver');
var execSync = require('child_process').execSync, const execSync = require('child_process').execSync,
expect = require('expect.js'), expect = require('expect.js'),
fs = require('fs'),
path = require('path'), path = require('path'),
superagent = require('superagent'),
{ Builder, By, Key, until } = require('selenium-webdriver'), { Builder, By, Key, until } = require('selenium-webdriver'),
{ Options } = require('selenium-webdriver/chrome'); { Options } = require('selenium-webdriver/chrome');
if (!process.env.USERNAME || !process.env.PASSWORD) {
console.log('USERNAME and PASSWORD env vars need to be set');
process.exit(1);
}
describe('Application life cycle test', function () { describe('Application life cycle test', function () {
this.timeout(0); this.timeout(0);
const LOCATION = 'test'; const ELEMENT_LOCATION = 'element-test';
const TEST_TIMEOUT = 10000; const LOCATION = process.env.LOCATION || 'test';
const TEST_TIMEOUT = parseInt(process.env.TIMEOUT, 10) || 10000;
const EXEC_ARGS = { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' }; const EXEC_ARGS = { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' };
const USERNAME = process.env.USERNAME;
const PASSWORD = process.env.PASSWORD;
const ROOM_ID = Math.floor((Math.random() * 100) + 1);
const ROOM_NAME = 'Test room ' + ROOM_ID;
const MSG_TEXT = 'Test message ';
const username = process.env.USERNAME; let browser, app, elementApp;
const password = process.env.PASSWORD;
var app, browser;
var token, roomId;
before(function () { before(function () {
if (!process.env.USERNAME) throw new Error('USERNAME env var not set'); const chromeOptions = new Options().windowSize({ width: 1280, height: 1024 });
if (!process.env.PASSWORD) throw new Error('PASSWORD env var not set'); if (process.env.CI) chromeOptions.addArguments('no-sandbox', 'disable-dev-shm-usage', 'headless');
browser = new Builder().forBrowser('chrome').setChromeOptions(chromeOptions).build();
if (!fs.existsSync('./screenshots')) fs.mkdirSync('./screenshots');
browser = new Builder().forBrowser('chrome').setChromeOptions(new Options().windowSize({ width: 1280, height: 1024 })).build(); if (process.env.CI) execSync(`cloudron uninstall --app ${ELEMENT_LOCATION} || true`, EXEC_ARGS);
}); });
after(function () { after(function () {
browser.quit(); browser.quit();
}); });
afterEach(async function () {
if (!process.env.CI || !app) return;
const currentUrl = await browser.getCurrentUrl();
if (!currentUrl.includes(app.domain)) return;
expect(this.currentTest.title).to.be.a('string');
const screenshotData = await browser.takeScreenshot();
fs.writeFileSync(`./screenshots/${new Date().getTime()}-${this.currentTest.title.replaceAll(' ', '_')}.png`, screenshotData, 'base64');
});
async function clearCache() {
await browser.manage().deleteAllCookies();
await browser.quit();
browser = null;
const chromeOptions = new Options().windowSize({ width: 1280, height: 1024 });
if (process.env.CI) chromeOptions.addArguments('no-sandbox', 'disable-dev-shm-usage', 'headless');
chromeOptions.addArguments(`--user-data-dir=${await fs.promises.mkdtemp('/tmp/test-')}`); // --profile-directory=Default
browser = new Builder().forBrowser('chrome').setChromeOptions(chromeOptions).build();
}
async function waitForElement(elem) {
await browser.wait(until.elementLocated(elem), TEST_TIMEOUT);
await browser.wait(until.elementIsVisible(browser.findElement(elem)), TEST_TIMEOUT);
}
function getAppInfo() { function getAppInfo() {
var inspect = JSON.parse(execSync('cloudron inspect')); const inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location.indexOf(LOCATION) === 0; })[0]; app = inspect.apps.filter(function (a) { return a.location.indexOf(LOCATION) === 0; })[0];
expect(app).to.be.an('object'); expect(app).to.be.an('object');
} }
function getElementAppInfo() {
const inspect = JSON.parse(execSync('cloudron inspect'));
elementApp = inspect.apps.filter(function (a) { return a.location.indexOf(ELEMENT_LOCATION) === 0; })[0];
expect(elementApp).to.be.an('object');
}
function getMessage() {
return MSG_TEXT + Math.floor((Math.random() * 100) + 1);
}
async function updateSynapseConfig() {
console.log(`Setting Synapse Matrix server location to "https://${app.fqdn}"`);
execSync(`cloudron exec --app ${ELEMENT_LOCATION} -- bash -c "jq '.default_server_config[\\"m.homeserver\\"].base_url = \\"https://${app.fqdn}\\"' /app/data/config.json | sponge /app/data/config.json"`);
execSync(`cloudron restart --app ${ELEMENT_LOCATION}`);
// wait when all services are up and running
await browser.sleep(15000);
}
async function checkLandingPage() { async function checkLandingPage() {
await browser.get(`https://${app.fqdn}`); await browser.get(`https://${app.fqdn}`);
await browser.wait(until.elementLocated(By.xpath('//h1[contains(text(),"Synapse is running")]')), TEST_TIMEOUT); await browser.wait(until.elementLocated(By.xpath('//h1[contains(text(),"Synapse is running")]')), TEST_TIMEOUT);
} }
// https://matrix.org/docs/spec/client_server/latest#user-interactive-api-in-the-rest-api async function registerUser() {
function registerUser(done) { await browser.get(`https://${elementApp.fqdn}/#/register`);
superagent.post('https://' + app.fqdn + '/_matrix/client/r0/register?kind=user').send({ await waitForElement(By.xpath('//input[@label="Username"]'));
username: username, await browser.findElement(By.xpath('//input[@label="Username"]')).sendKeys(USERNAME);
password: password, await browser.findElement(By.xpath('//input[@label="Password"]')).sendKeys(PASSWORD);
inhibit_login: false await browser.findElement(By.xpath('//input[@label="Confirm password"]')).sendKeys(PASSWORD);
}).end(function (error, result) { await browser.findElement(By.xpath('//input[@value="Register"]')).click();
// we will first get a 401
let session = result.body.session;
console.log('session is', session);
if (result.statusCode !== 401) return done(new Error('Expecting a 401 ' + result.statusCode));
superagent.post('https://' + app.fqdn + '/_matrix/client/r0/register?kind=user').send({ await waitForElement(By.xpath('//h1[text()="You\'re in"] | //h1[contains(., "Welcome")]'));
auth: { if (await browser.findElements(By.xpath('//div[@role="button" and text()="Skip"]')).then(found => !!found.length)) {
type: 'm.login.dummy', await browser.findElement(By.xpath('//div[@role="button" and text()="Skip"]')).click();
session: session }
},
username: username,
password: password,
inhibit_login: false
}).end(function (error, result) {
if (error) return done(error);
if (result.statusCode !== 200) return done(new Error('Login failed with status ' + result.statusCode));
console.log('registered user with id', result.body.user_id); await waitForElement(By.xpath(`//h1[contains(., "Welcome")]`));
done();
});
});
} }
// https://matrix.org/docs/spec/client_server/latest async function loginOIDC(username, password, alreadyAuthenticated, proceedWithReset) {
function checkLogin(done) { await browser.get(`https://${elementApp.fqdn}/#/login`);
superagent.post('https://' + app.fqdn + '/_matrix/client/r0/login').send({ await browser.sleep(2000);
type: 'm.login.password',
user: username,
password: password
}).end(function (error, result) {
if (error) return done(error);
if (result.statusCode !== 200) return done(new Error('Login failed with status ' + result.statusCode));
token = result.body.access_token; await waitForElement(By.css('.mx_Dropdown_arrow'));
if (!token) return done(new Error('No token')); await browser.findElement(By.css('.mx_Dropdown_arrow')).click();
await waitForElement(By.id('mx_LanguageDropdown__en'));
await browser.findElement(By.id('mx_LanguageDropdown__en')).click();
await browser.sleep(3000);
done(); await waitForElement(By.xpath('//div[@role="button" and contains(., "Continue with")]'));
}); await browser.findElement(By.xpath('//div[@role="button" and contains(., "Continue with")]')).click();
if (!alreadyAuthenticated) {
await waitForElement(By.id('inputUsername'));
await browser.findElement(By.id('inputUsername')).sendKeys(username);
await browser.findElement(By.id('inputPassword')).sendKeys(password);
await browser.findElement(By.id('loginSubmitButton')).click();
}
await waitForElement(By.xpath('//p[@class="confirm-trust" and contains(., "Continuing will grant ")]'));
await browser.findElement(By.xpath('//a[contains(., "Continue")]')).click();
if (proceedWithReset) {
await waitForElement(By.xpath('//div[text()="Proceed with reset" or text()="Reset all"]'));
if (await browser.findElements(By.xpath('//div[text()="Reset all"]')).then(found => !!found.length)) {
await browser.findElement(By.xpath('//div[text()="Reset all"]')).click();
}
await waitForElement(By.xpath('//div[text()="Proceed with reset"]'));
await browser.findElement(By.xpath('//div[text()="Proceed with reset"]')).click();
await waitForElement(By.xpath('//button[@class="mx_Dialog_primary" and text()="Continue"] | //div[@class="mx_EncryptionCard_buttons"]/button[@data-kind="primary"]'));
await browser.findElement(By.xpath('//button[@class="mx_Dialog_primary" and text()="Continue"] | //div[@class="mx_EncryptionCard_buttons"]/button[@data-kind="primary"]')).click();
await waitForElement(By.xpath('//button[@class="mx_Dialog_primary" and text()="Continue"] | //div[@class="mx_EncryptionCard_buttons"]/button[@data-kind="primary"]'));
await browser.findElement(By.xpath('//button[@class="mx_Dialog_primary" and text()="Continue"] | //div[@class="mx_EncryptionCard_buttons"]/button[@data-kind="primary"]')).click();
await waitForElement(By.xpath('//button[text()="Done"] | //div[text()="Single Sign On"]'));
if (await browser.findElements(By.xpath('//div[text()="Single Sign On"]')).then(found => !!found.length)) {
await browser.findElement(By.xpath('//div[text()="Single Sign On"]')).click();
const originalWindowHandle = await browser.getWindowHandle();
await browser.wait(async () => (await browser.getAllWindowHandles()).length === 2, 10000);
//Loop through until we find a new window handle
const windows = await browser.getAllWindowHandles();
windows.forEach(async handle => {
if (handle !== originalWindowHandle) {
await browser.switchTo().window(handle);
}
});
await waitForElement(By.xpath('//a[contains(., "Continue with")]'));
await browser.findElement(By.xpath('//a[contains(., "Continue with")]')).click();
// switch back to the main window
await browser.switchTo().window(originalWindowHandle);
await waitForElement(By.xpath('//div[text()="Confirm"]'));
await browser.findElement(By.xpath('//div[text()="Confirm"]')).click();
}
await waitForElement(By.xpath('//div[text()="Cancel"] | //h1[contains(., "Welcome")]'));
if (await browser.findElements(By.xpath('//div[text()="Cancel"]')).then(found => !!found.length)) {
await browser.findElement(By.xpath('//div[text()="Cancel"]')).click();
}
}
await browser.sleep(3000);
await waitForElement(By.xpath(`//h1[contains(., "Welcome")]`));
} }
function checkAutoJoinRoom(done) { async function login() {
superagent.get('https://' + app.fqdn + '/_matrix/client/r0/joined_rooms?access_token=' + token).end(function (error, result) { await browser.get(`https://${elementApp.fqdn}/#/login`);
if (error) return done(error); await browser.wait(until.elementLocated(By.xpath('//input[@value="Sign in"]')), TEST_TIMEOUT);
if (result.statusCode !== 200) return done(new Error('Room listing failed with status ' + result.statusCode)); await browser.findElement(By.xpath('//input[@name="username"]')).sendKeys(USERNAME);
await browser.findElement(By.xpath('//input[@name="password"]')).sendKeys(PASSWORD);
if (result.body.joined_rooms.length !== 1) return done(new Error('User must have auto-joined discuss channel:' + result.statusCode)); await browser.findElement(By.xpath('//input[@value="Sign in"]')).click();
done(); await browser.sleep(5000);
}); await skipVerification();
await browser.wait(until.elementLocated(By.xpath('//span[text()="Rooms"]')), TEST_TIMEOUT);
} }
function createRoom(done) { async function skipVerification() {
superagent.post('https://' + app.fqdn + '/_matrix/client/r0/createRoom?access_token=' + token).send({ await browser.wait(until.elementLocated(By.xpath('//div[@aria-label="Skip verification for now"]')), TEST_TIMEOUT);
room_alias_name: 'general' await browser.sleep(5000);
}).end(function (error, result) { await browser.findElement(By.xpath('//div[@aria-label="Skip verification for now"]')).click();
if (error) return done(error); await browser.wait(until.elementLocated(By.xpath('//div[contains(text(), "verify later")]')), TEST_TIMEOUT);
if (result.statusCode !== 200) return done(new Error('Room creation failed with status ' + result.statusCode)); await browser.sleep(5000);
await browser.findElement(By.xpath('//div[contains(text(), "verify later")]')).click();
roomId = result.body.room_id; await browser.sleep(5000);
if (!roomId) return done(new Error('No room id'));
done();
});
} }
function checkRoom(done) { async function logout() {
superagent.get('https://' + app.fqdn + '/_matrix/client/r0/joined_rooms?access_token=' + token).end(function (error, result) { await browser.get(`https://${elementApp.fqdn}/#/home`);
if (error) return done(error); await browser.sleep(5000);
if (result.statusCode !== 200) return done(new Error('Room listing failed with status ' + result.statusCode)); await waitForElement(By.xpath('//div[@role="button" and @aria-label="User menu"]'));
if (!result.body.joined_rooms.includes(roomId)) return done(new Error('No room in list: ' + JSON.stringify(result.body))); await browser.findElement(By.xpath('//div[@role="button" and @aria-label="User menu"]')).click();
await browser.sleep(2000);
done(); await browser.findElement(By.xpath('//li[@role="menuitem" and @aria-label="Sign out"]')).click();
}); await browser.sleep(2000);
if (await browser.findElements(By.xpath('//button[contains(text(), "I don\'t want my encrypted messages")]')).then(found => !!found.length)) {
await browser.findElement(By.xpath('//button[contains(text(), "I don\'t want my encrypted messages")]')).click();
await browser.sleep(3000);
}
await waitForElement(By.xpath('//h1[text()="Sign in"]'));
}
async function isLoggedIn() {
await browser.get(`https://${elementApp.fqdn}/#/home`);
await browser.wait(until.elementLocated(By.xpath('//span[text()="Rooms"]')), TEST_TIMEOUT);
}
async function createRoom() {
await browser.get(`https://${elementApp.fqdn}/#/home`);
await browser.sleep(2000);
await waitForElement(By.xpath('//div[@role="button" and @aria-label="Add room"]'));
await browser.findElement(By.xpath('//div[@role="button" and @aria-label="Add room"]')).click();
await browser.sleep(1000);
await waitForElement(By.xpath('//li[@role="menuitem" and @aria-label="New room"]'));
await browser.findElement(By.xpath('//li[@role="menuitem" and @aria-label="New room"]')).click();
await browser.sleep(1000);
await waitForElement(By.xpath('//input[@label="Name"]'));
await browser.findElement(By.xpath('//input[@label="Name"]')).sendKeys(ROOM_NAME);
await browser.sleep(1000);
await waitForElement(By.xpath('//button[text()="Create room"]'));
await browser.findElement(By.xpath('//button[text()="Create room"]')).click();
await browser.sleep(1000);
await waitForElement(By.xpath('//div[@role="button" and @aria-label="Add room"]'));
await waitForElement(By.xpath('//div[@class="mx_RoomTile_titleContainer"]/div[@title="' + ROOM_NAME + '"]'));
}
async function checkRoom() {
await browser.get(`https://${elementApp.fqdn}/#/home`);
await browser.sleep(4000);
await waitForElement(By.xpath('//div[@role="treeitem" and @aria-label="' + ROOM_NAME + '"]'));
await browser.findElement(By.xpath('//div[@role="treeitem" and @aria-label="' + ROOM_NAME + '"]')).click();
await browser.sleep(2000);
await waitForElement(By.xpath('//h2[text()="' + ROOM_NAME + '"]'));
}
async function sendMessage() {
await checkRoom();
await browser.findElement(By.xpath('//div[contains(@class, "mx_BasicMessageComposer_input")]')).sendKeys(getMessage());
await browser.sleep(2000);
await browser.findElement(By.xpath('//div[@role="button" and @aria-label="Send message"]')).click();
await browser.sleep(2000);
} }
xit('build app', function () { execSync('cloudron build', EXEC_ARGS); }); xit('build app', function () { execSync('cloudron build', EXEC_ARGS); });
// No SSO // No SSO
it('install app (no sso)', function () { execSync('cloudron install --no-sso --location ' + LOCATION, EXEC_ARGS); }); it('install app (no sso)', function () { execSync('cloudron install --no-sso --location ' + LOCATION, EXEC_ARGS); });
it('can get app information', getAppInfo); it('can get app information', getAppInfo);
it('check landing page', checkLandingPage); it('check landing page', checkLandingPage);
it('can register new user', registerUser);
it('can login', checkLogin);
it('check autojoin', checkAutoJoinRoom);
it('create room', createRoom);
it('check room', checkRoom);
it('can install element-web app (no sso)', function () { execSync('cloudron install --appstore-id im.riot.cloudronapp --location ' + ELEMENT_LOCATION, EXEC_ARGS); });
it('update element-app config', updateSynapseConfig);
it('can get Element app info', getElementAppInfo);
it('can register new user', registerUser);
it('create room', createRoom);
it('can send message', sendMessage);
it('can logout', logout); // from auto-login
it('can login', login);
it('check room', checkRoom);
it('can logout', logout);
it('uninstall element-web app', async function () {
await browser.get('about:blank');
execSync(`cloudron uninstall --app ${ELEMENT_LOCATION}`, EXEC_ARGS);
});
it('uninstall app', function () { execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS); }); it('uninstall app', function () { execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS); });
// SSO // SSO
it('install app', function () { execSync('cloudron install --location ' + LOCATION, EXEC_ARGS); }); it('install app (sso)', function () { execSync('cloudron install --location ' + LOCATION, EXEC_ARGS); });
it('can get app info', getAppInfo);
it('can get app information', getAppInfo); it('can install element-web app (sso)', function () { execSync('cloudron install --appstore-id im.riot.cloudronapp --location ' + ELEMENT_LOCATION, EXEC_ARGS); });
it('can get Element app info', getElementAppInfo);
it('update element-app config', updateSynapseConfig);
it('check landing page', checkLandingPage); it('can login via OIDC', loginOIDC.bind(null, USERNAME, PASSWORD, false, false));
it('can login', checkLogin);
it('check autojoin', checkAutoJoinRoom);
it('create room', createRoom); it('create room', createRoom);
it('can send message', sendMessage);
it('can get app info', getAppInfo);
it('can restart app', function () { execSync(`cloudron restart --app ${app.id}`); });
it('backup app', function () { execSync(`cloudron backup create --app ${app.id}`, EXEC_ARGS); });
it('is logged in', isLoggedIn);
it('check room', checkRoom); it('check room', checkRoom);
it('can restart app', function () { execSync('cloudron restart'); }); it('restore app', async function () {
const backups = JSON.parse(execSync(`cloudron backup list --raw --app ${app.id}`));
it('check landing page', checkLandingPage); await browser.get('about:blank');
it('check room', checkRoom); execSync(`cloudron uninstall --app ${app.id}`, EXEC_ARGS);
execSync(`cloudron install --location ${LOCATION}`, EXEC_ARGS);
it('backup app', function () { execSync('cloudron backup create --app ' + app.id, EXEC_ARGS); });
it('check landing page', checkLandingPage);
it('check room', checkRoom);
it('restore app', function () {
const backups = JSON.parse(execSync('cloudron backup list --raw'));
execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS);
execSync('cloudron install --location ' + LOCATION, EXEC_ARGS);
getAppInfo(); getAppInfo();
execSync(`cloudron restore --backup ${backups[0].id} --app ${app.id}`, EXEC_ARGS); execSync(`cloudron restore --backup ${backups[0].id} --app ${app.id}`, EXEC_ARGS);
}); });
it('check landing page', checkLandingPage); it('is logged in', isLoggedIn);
it('check room', checkRoom); it('check room', checkRoom);
it('can send message', sendMessage);
it('can logout', logout);
it('can get app info', getAppInfo);
it('move to different location', function () { // web ui also throws random errors after changing domain
xit('move to different location (skipped since no matrix support)', async function () {
browser.manage().deleteAllCookies(); browser.manage().deleteAllCookies();
execSync('cloudron configure --location ' + LOCATION + '2', EXEC_ARGS); await browser.get('about:blank');
execSync(`cloudron configure --location ${LOCATION}2`, EXEC_ARGS);
getAppInfo(); getAppInfo();
await browser.sleep(15000);
});
xit('update element-app config', updateSynapseConfig);
xit('can get Element app info', getElementAppInfo);
xit('can login via OIDC', loginOIDC.bind(null, USERNAME, PASSWORD, true, true));
xit('check room', checkRoom);
xit('can send message', sendMessage);
it('uninstall app', async function () {
await browser.get('about:blank');
execSync(`cloudron uninstall --app ${app.id}`, EXEC_ARGS);
}); });
it('check landing page', checkLandingPage); it('uninstall element-web app', function () {
it('check room', checkRoom); execSync(`cloudron uninstall --app ${ELEMENT_LOCATION}`, EXEC_ARGS);
});
it('uninstall app', function () { execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS); });
// test update // test update
it('can install app', function () { execSync('cloudron install --appstore-id org.matrix.synapse --location ' + LOCATION, EXEC_ARGS); }); it('clear cache', clearCache);
it('can install app for update', function () { execSync('cloudron install --appstore-id org.matrix.synapse --location ' + LOCATION, EXEC_ARGS); });
it('can get app info', getAppInfo);
it('can get app information', getAppInfo); it('can install element-web app (update)', function () { execSync('cloudron install --appstore-id im.riot.cloudronapp --location ' + ELEMENT_LOCATION, EXEC_ARGS); });
it('can get Element app info', getElementAppInfo);
it('update element-app config', updateSynapseConfig);
it('check landing page', checkLandingPage); it('can login via OIDC', loginOIDC.bind(null, USERNAME, PASSWORD, false, false));
it('can login', checkLogin); it('is logged in', isLoggedIn);
it('create room', createRoom); it('create room', createRoom);
it('can send message', sendMessage);
it('can logout', logout);
it('clear cache', clearCache);
it('can update', async function () {
await browser.get('about:blank');
execSync(`cloudron update --app ${app.id}`, EXEC_ARGS);
await browser.sleep(15000);
});
it('can get Element app info', getElementAppInfo);
it('can login via OIDC', loginOIDC.bind(null, USERNAME, PASSWORD, false, true));
it('is logged in', isLoggedIn);
it('check room', checkRoom); it('check room', checkRoom);
it('can update', function () { execSync('cloudron update --app ' + LOCATION, EXEC_ARGS); }); it('can send message', sendMessage);
it('check landing page', checkLandingPage); it('uninstall app', async function () {
it('check room', checkRoom); await browser.get('about:blank');
execSync(`cloudron uninstall --app ${app.id}`, EXEC_ARGS);
});
it('uninstall app', function () { execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS); }); it('uninstall element-web app', function () {
execSync(`cloudron uninstall --app ${ELEMENT_LOCATION}`, EXEC_ARGS);
});
}); });