Compare commits

...

386 Commits

Author SHA1 Message Date
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
Johannes Zellner
5fdccc8df9 Update test deps 2023-08-01 13:21:07 +02:00
Johannes Zellner
9e387f7915 Bump version 2023-08-01 13:20:27 +02:00
Johannes Zellner
a3584e777e Bump version 2023-07-18 17:59:12 +02:00
Girish Ramakrishnan
d1867c7ba6 Version 1.70.1 2023-07-07 09:39:49 +05:30
Girish Ramakrishnan
4b6d902230 thumbnailing workaround 2023-07-07 09:20:22 +05:30
Girish Ramakrishnan
2774e37e72 Update s3 storage provider 2023-07-07 09:14:21 +05:30
Girish Ramakrishnan
f3f7bec506 Version 1.70.0 2023-07-05 13:42:11 +05:30
Girish Ramakrishnan
9735318be9 Update Synapse to 1.87.0 2023-07-05 13:30:52 +05:30
Johannes Zellner
b06afd8e63 Fix version in changelog 2023-06-20 19:23:19 +02:00
Johannes Zellner
6403278d37 Update test deps 2023-06-20 19:15:03 +02:00
Johannes Zellner
3e2d60a34c Bump version 2023-06-20 19:14:52 +02:00
Girish Ramakrishnan
b02f6409cb Version 1.68.2 2023-06-09 22:28:05 +05:30
Girish Ramakrishnan
29e23bd85e Update Synapse to 1.85.2 2023-06-09 22:07:53 +05:30
Girish Ramakrishnan
eed12bfe0b Version 1.68.1 2023-06-08 09:38:24 +05:30
Girish Ramakrishnan
1a30c1864d Update Synapse to 1.85.1 2023-06-08 09:20:25 +05:30
Girish Ramakrishnan
cf8933b222 Version 1.68.0 2023-06-07 16:08:28 +05:30
Girish Ramakrishnan
9d1d46c30f Update Synapse to 1.85.0 2023-06-07 15:38:39 +05:30
Girish Ramakrishnan
8ca2a5c12a Version 1.67.1 2023-05-27 10:03:09 +02:00
Girish Ramakrishnan
2ea3d1b3c8 Update test packages 2023-05-27 10:03:04 +02:00
Girish Ramakrishnan
4a48d7978b Update Synapse to 1.84.1 2023-05-27 09:28:31 +02:00
Johannes Zellner
b636aff2ae Bump package version 2023-05-23 14:32:27 +02:00
Johannes Zellner
2f4a5d9d5a Update test deps 2023-05-09 22:35:38 +02:00
Johannes Zellner
fd18a30b94 Bump version 2023-05-09 22:35:21 +02:00
Johannes Zellner
0dd99f211c Update test deps 2023-04-25 14:17:47 +02:00
Johannes Zellner
807c03724d Bump version 2023-04-25 14:17:31 +02:00
Johannes Zellner
90bed040d5 Update test deps 2023-04-11 17:04:37 +02:00
Johannes Zellner
82bc13b9cc Bump version 2023-04-11 17:00:21 +02:00
Johannes Zellner
faa3e64bc9 Update test deps 2023-03-28 15:30:33 +02:00
Johannes Zellner
898f2db57b Bump version 2023-03-28 15:30:17 +02:00
Girish Ramakrishnan
03e34a374a Version 1.62.1 2023-03-22 09:55:04 +01:00
Girish Ramakrishnan
cfbd1cd54e typo in post install 2023-03-22 09:24:41 +01:00
Johannes Zellner
429625a920 Update test deps 2023-03-15 10:52:36 +01:00
Johannes Zellner
e2a6fd55a2 Bump version 2023-03-15 10:52:21 +01:00
Girish Ramakrishnan
23d4c1106a Version 1.61.0 2023-03-01 09:29:49 +01:00
Girish Ramakrishnan
99612d5740 Update test packages 2023-03-01 09:14:17 +01:00
Girish Ramakrishnan
2f3b5edfbc Update synapseto 1.78.0 2023-03-01 08:57:29 +01:00
Johannes Zellner
35ee043100 Update test deps 2023-02-14 16:29:59 +01:00
Johannes Zellner
ed9a5d5cd5 Bump version 2023-02-14 16:29:37 +01:00
Johannes Zellner
d9e1eca30e Update test deps 2023-02-01 11:35:06 +01:00
Johannes Zellner
ea99f2f4a5 Bump version 2023-02-01 11:34:54 +01:00
Johannes Zellner
35c31e2512 Update test deps 2023-01-17 14:11:52 +01:00
Johannes Zellner
370f256143 Bump version 2023-01-17 14:11:43 +01:00
Johannes Zellner
f5a5440cc8 Update test deps 2022-12-20 19:35:45 +01:00
Johannes Zellner
e226002bf3 Bump version 2022-12-20 19:33:51 +01:00
Johannes Zellner
9c84c6424f Update to base image 4.0.0 2022-12-06 14:41:44 +01:00
Johannes Zellner
97eebecf37 Update test deps 2022-12-06 14:28:42 +01:00
Johannes Zellner
0c32ddde1f Bump version 2022-12-06 14:28:32 +01:00
Girish Ramakrishnan
24680e18af Version 1.55.0 2022-11-22 15:41:15 +01:00
Girish Ramakrishnan
97e11820b7 Update test packages 2022-11-22 15:29:51 +01:00
Girish Ramakrishnan
700d3b23cb Update Synapse to 1.72.0 2022-11-22 15:15:11 +01:00
Johannes Zellner
2859cc73d0 Update test deps 2022-11-08 14:50:49 +01:00
Johannes Zellner
aae5a5eecd Bump version 2022-11-08 14:50:39 +01:00
Johannes Zellner
9ed6f56792 Fix version in changelog 2022-10-29 07:08:31 +02:00
Johannes Zellner
404f794d10 Bump version 2022-10-29 06:59:44 +02:00
Johannes Zellner
8d5978a8e0 Bump version 2022-10-26 13:59:00 +02:00
Johannes Zellner
c380911b76 Bump version 2022-10-17 17:53:15 +02:00
Johannes Zellner
ac332c311a Bump version 2022-09-27 15:25:07 +02:00
Johannes Zellner
6f78e44bf2 Bump version 2022-09-13 15:35:28 +02:00
Johannes Zellner
2c407c2f3c Remove double changelog line 2022-08-31 21:02:35 +02:00
Johannes Zellner
1069750c78 Bump version 2022-08-31 20:33:52 +02:00
Girish Ramakrishnan
99b08d6c0a Version 1.49.1 2022-08-22 19:04:39 +02:00
Girish Ramakrishnan
b2e7800788 install oidc 2022-08-22 18:52:12 +02:00
Girish Ramakrishnan
e915c9837c Version 1.49.0 2022-08-17 06:54:06 +02:00
Girish Ramakrishnan
8b9c4141a2 Update Synapse to 1.65.0 2022-08-17 06:08:02 +02:00
Johannes Zellner
760a37bdb2 Bump version 2022-08-02 14:40:19 +02:00
Johannes Zellner
d4f05c3748 Bump version 2022-07-20 21:36:38 +02:00
Johannes Zellner
401535ce2d Update test deps 2022-07-19 16:47:28 +02:00
Johannes Zellner
fbf2ac8ef4 Bump version 2022-07-19 16:47:19 +02:00
Johannes Zellner
4d0bfd8bf1 Bump version 2022-07-05 14:39:00 +02:00
Johannes Zellner
0d8f2eab6f Bump version for 1.61.1 2022-06-28 16:21:48 +02:00
Girish Ramakrishnan
0bc489a337 Version 1.45.1 2022-06-27 17:37:20 -07:00
Girish Ramakrishnan
ce0f8eb9be Update test packages 2022-06-27 17:29:32 -07:00
Girish Ramakrishnan
f47064f648 Add s3 storage provider
https://forum.cloudron.io/topic/7285/request-include-s3-storage-module
2022-06-27 16:54:53 -07:00
Girish Ramakrishnan
75d97f2bb3 Version 1.45.0 2022-06-14 17:49:45 -07:00
Girish Ramakrishnan
43f64a052d Display name support 2022-06-14 17:39:10 -07:00
Girish Ramakrishnan
27e6c5a442 Update Synapse to 1.61.0 2022-06-14 17:39:01 -07:00
Girish Ramakrishnan
8983e8fcee Version 1.44.0 2022-05-31 13:58:13 -07:00
Girish Ramakrishnan
4ec76880a0 Update Synapse to 1.60.0 2022-05-31 13:45:57 -07:00
Girish Ramakrishnan
01ed3cc5ab Version 1.43.1 2022-05-18 09:51:21 -07:00
Girish Ramakrishnan
6e4c16ba2e Update synapse to 1.59.1 2022-05-18 09:32:02 -07:00
Johannes Zellner
b2f3950795 Bump version for 1.59.0 2022-05-17 12:29:22 +02:00
Girish Ramakrishnan
2844b64621 Update synapse to 1.58.1 2022-05-05 08:58:19 -07:00
Johannes Zellner
20582a7fe6 Update test deps 2022-05-03 13:35:41 +02:00
Johannes Zellner
de875e14f6 Bump version for 1.58.0 2022-05-03 13:35:13 +02:00
Girish Ramakrishnan
6ca10fe63d Version 1.41.1 2022-04-20 15:51:50 -07:00
Girish Ramakrishnan
08e65a0769 Update synapse to 1.57.1 2022-04-20 09:04:41 -07:00
Girish Ramakrishnan
bc031e515e Update postinstall 2022-04-19 10:04:27 -05:00
Girish Ramakrishnan
ce74f2b418 Set enable_registration_without_verification to true 2022-04-19 10:03:47 -05:00
Johannes Zellner
292ffd482b Bump version for 1.57.0 2022-04-19 15:27:12 +02:00
Girish Ramakrishnan
8267b04c4f Update test packages 2022-04-05 10:36:18 -07:00
Girish Ramakrishnan
4ab831470b Update Synapse to 1.56.0 2022-04-05 09:10:51 -07:00
Girish Ramakrishnan
203fcc8baf Version 1.40.1-1 2022-03-24 17:34:29 -07:00
Girish Ramakrishnan
dbb03144dd Update Synapse to 1.55.2 2022-03-24 17:08:12 -07:00
Girish Ramakrishnan
3e384b6ea4 Version 1.40.1 2022-03-24 12:16:47 -07:00
Girish Ramakrishnan
2b70590b4f Update Synapse to 1.55.1 2022-03-24 12:05:12 -07:00
Girish Ramakrishnan
f32618bc44 Version 1.40.0 2022-03-22 15:55:57 -07:00
Girish Ramakrishnan
63389b8969 Update test packages 2022-03-22 15:35:17 -07:00
Girish Ramakrishnan
2faf4a83c1 Update Synapse to 1.55.0 2022-03-22 15:30:11 -07:00
Johannes Zellner
0de4fcd2c1 Update test deps 2022-03-08 18:12:43 +01:00
Johannes Zellner
4501f517cd Bump version for 1.54.0 2022-03-08 18:12:23 +01:00
Johannes Zellner
50b81437a3 Update test deps 2022-02-22 14:19:02 +01:00
Johannes Zellner
cb2effd01e Bump version for 1.53.0 2022-02-22 14:18:44 +01:00
Johannes Zellner
8a0741d6a2 Update test deps 2022-02-08 17:05:35 +01:00
Johannes Zellner
8605a2801f Bump version for 1.52.0 2022-02-08 17:05:18 +01:00
Johannes Zellner
39b8fe59e8 Update test deps 2022-01-25 13:45:11 +01:00
Johannes Zellner
ab0335ff1a Bump version for 1.51.0 2022-01-25 13:43:50 +01:00
Johannes Zellner
e6d27ee341 Update test deps 2022-01-24 16:31:23 +01:00
Johannes Zellner
306ee5dadb Bump version for 1.50.2 2022-01-24 16:31:09 +01:00
Johannes Zellner
e6b9d6cafb Jump to 1.50.1 2022-01-18 22:04:38 +01:00
Johannes Zellner
8e02930fbd Update test deps 2022-01-18 13:24:46 +01:00
Johannes Zellner
8c3209768d Bump version for 1.50.0 2022-01-18 13:24:30 +01:00
Girish Ramakrishnan
cdab116284 Version 1.38.1 2021-12-21 11:16:25 -08:00
Girish Ramakrishnan
092b466ff4 Update test packages 2021-12-21 11:08:59 -08:00
Girish Ramakrishnan
6177240cf6 Update synapse to 1.49.2 2021-12-21 11:03:24 -08:00
Girish Ramakrishnan
cf22aa6ae7 Update Synapse to 1.49.1 2021-12-21 09:23:09 -08:00
Johannes Zellner
aa02b23016 Bump version for 1.49.0 2021-12-14 16:38:09 +01:00
Johannes Zellner
2cd92623e2 Bump version for 1.48.0 2021-11-30 16:17:32 +01:00
Johannes Zellner
ee7878d3d2 Update test deps 2021-11-23 14:33:16 +01:00
Johannes Zellner
33dca51dcd Bump version for 1.47.1 2021-11-23 14:33:02 +01:00
Johannes Zellner
122b16805f Update test deps 2021-11-17 16:29:12 +01:00
Johannes Zellner
3a69b0c615 Bump version for 1.47.0 2021-11-17 16:28:56 +01:00
Johannes Zellner
f27425775e Update test deps 2021-11-02 16:07:28 +01:00
Johannes Zellner
47855846f5 Bump version for 1.46.0 2021-11-02 16:07:07 +01:00
Johannes Zellner
96bfd2839c Bump version for 1.45.1 2021-10-21 11:19:50 +02:00
Johannes Zellner
e6f8f7b246 Update test deps 2021-10-19 14:47:32 +02:00
Johannes Zellner
426035f1d5 Bump version for 1.45.0 2021-10-19 14:46:47 +02:00
Girish Ramakrishnan
c2d2f9bd03 Version 1.33.0 2021-10-05 09:35:20 -07:00
Girish Ramakrishnan
4e5fb767f6 Update test packages 2021-10-05 09:29:26 -07:00
Girish Ramakrishnan
feb0208b8d Update synapse to 1.44.0 2021-10-05 09:25:59 -07:00
Johannes Zellner
ec4900372c Bump version for 1.43.0 2021-09-21 16:50:19 +02:00
Johannes Zellner
340a757d88 Update test deps 2021-09-08 11:33:58 +02:00
Johannes Zellner
93ec693780 Bump version for 1.42.0 2021-09-08 11:30:54 +02:00
Girish Ramakrishnan
668112e865 Version 1.30.2 2021-08-31 12:32:30 -07:00
Girish Ramakrishnan
233a26a8db Update synapse to 1.41.1 2021-08-31 11:26:11 -07:00
Girish Ramakrishnan
5703b98d6f Version 1.30.1 2021-08-30 23:05:59 -07:00
Girish Ramakrishnan
ee10da9df5 Fix postinstall message 2021-08-30 22:42:00 -07:00
Johannes Zellner
7123688a92 Ensure we log to stdout/stderr 2021-08-30 15:50:49 +02:00
Girish Ramakrishnan
38cd11c0b7 Version 1.30.0 2021-08-24 09:53:13 -07:00
Girish Ramakrishnan
d06f83a567 Update synapse to 1.41.0 2021-08-24 09:45:09 -07:00
Girish Ramakrishnan
fb83f5a54e Version 1.29.0 2021-08-10 11:23:44 -07:00
Girish Ramakrishnan
ad4d18e706 Update synapse to 1.40.0 2021-08-10 11:10:43 -07:00
Girish Ramakrishnan
80425602a3 Update test packages 2021-08-02 23:08:28 -07:00
Girish Ramakrishnan
de44651747 delete password_providers on update 2021-08-02 23:08:16 -07:00
Johannes Zellner
79c17c17f1 Update test deps 2021-07-29 21:43:40 +02:00
Johannes Zellner
605a809a32 Bump version for 1.39.0 2021-07-29 21:43:02 +02:00
Girish Ramakrishnan
b5963b4276 Version 1.27.1 2021-07-24 00:08:49 -07:00
Girish Ramakrishnan
a6c93ac360 Update synapse to 1.38.1 2021-07-24 00:03:54 -07:00
Girish Ramakrishnan
b5662ec4dc Version 1.27.0 2021-07-24 00:02:44 -07:00
Girish Ramakrishnan
6775418daf delete password_providers section without sso 2021-07-23 23:56:08 -07:00
Johannes Zellner
66231bcae5 Update test deps 2021-07-13 16:43:14 +02:00
Johannes Zellner
acd9e9cbf6 Bump version for 1.38.0 2021-07-13 16:42:50 +02:00
Johannes Zellner
f7a3528db0 Bump version for 1.37.1 2021-07-01 12:12:58 +02:00
Johannes Zellner
affa9850a3 Rework test to follow new patterns 2021-06-29 14:56:14 +02:00
Johannes Zellner
ad9429c622 Update test deps 2021-06-29 14:13:55 +02:00
Johannes Zellner
208b5b689d Bump version for 1.37.0 2021-06-29 14:13:26 +02:00
Girish Ramakrishnan
54428229bb Version 1.26.0 2021-06-15 09:42:40 -07:00
Girish Ramakrishnan
805349b360 Update Synapse to 1.36.0 2021-06-15 09:41:54 -07:00
Johannes Zellner
47dcff5e35 Update test deps 2021-06-04 10:21:08 +02:00
Johannes Zellner
260198817d Bump version for 1.35.1 2021-06-04 10:11:04 +02:00
Girish Ramakrishnan
f9f5353f42 Version 1.25.0 2021-06-02 18:31:44 -07:00
Girish Ramakrishnan
4d0ef3f614 Update Synapse to 1.35.0 2021-06-02 18:21:41 -07:00
Girish Ramakrishnan
b7b20f0b56 Version 1.24.0 2021-05-18 09:34:30 -07:00
Girish Ramakrishnan
7cd91ecd61 Update synapse to 1.34.0 2021-05-18 09:17:38 -07:00
Johannes Zellner
fbf55b9162 Bump version for 1.33.2 2021-05-14 10:40:12 +02:00
Johannes Zellner
d27523bc00 Update test deps 2021-05-08 18:23:49 +02:00
Johannes Zellner
fad354943f Bump version for 1.23.1 2021-05-08 18:23:02 +02:00
Johannes Zellner
a4b8455363 Bump version for 1.33.0 2021-05-06 10:21:14 +02:00
Johannes Zellner
dc25932bfd Bump version for 1.32.2 2021-04-22 12:36:21 +02:00
Johannes Zellner
908481d2c6 Bump version for 1.32.1 2021-04-22 10:37:22 +02:00
Johannes Zellner
bcbb54c9be Fixup changelog 2021-04-20 18:07:50 +02:00
Johannes Zellner
d749c8f974 Update test deps 2021-04-20 17:39:39 +02:00
Johannes Zellner
169510a50d Bump version for 1.32.0 2021-04-20 17:38:49 +02:00
Johannes Zellner
bd6d954ddd Do not redirect stdio to logfile 2021-04-08 14:52:34 +02:00
Girish Ramakrishnan
c39c97bf64 Version 1.22.0 2021-04-06 15:40:25 -07:00
Girish Ramakrishnan
007f0607fd Update synapse to 1.31.0 2021-04-06 15:39:53 -07:00
Johannes Zellner
a53664b9b1 Update test deps 2021-03-26 14:55:57 +01:00
Johannes Zellner
53f7612ba9 Bump version for 1.30.1 2021-03-26 14:54:03 +01:00
Girish Ramakrishnan
d51a1d3b40 Version 1.21.0 2021-03-22 11:02:48 -07:00
Girish Ramakrishnan
e0abc92551 Update synapse to 1.30.0 2021-03-22 10:40:03 -07:00
Girish Ramakrishnan
98fc17e9d3 Version 1.20.0 2021-03-08 09:39:15 -08:00
Girish Ramakrishnan
aa32c3c771 Update synapse to 1.29.0 2021-03-08 09:27:43 -08:00
Girish Ramakrishnan
d7e26b3687 Version 1.19.0 2021-02-26 13:10:14 -08:00
Girish Ramakrishnan
2882a804c8 Update synapse to 1.28.0 2021-02-26 12:17:37 -08:00
Girish Ramakrishnan
a1ffa1e1dc Version 1.18.0 2021-02-16 12:29:45 -08:00
Girish Ramakrishnan
15672eddc2 v4 yq has different syntax 2021-02-16 12:14:39 -08:00
Girish Ramakrishnan
022881e357 Fix base image 2021-02-16 11:39:04 -08:00
Girish Ramakrishnan
8d92d05a90 Update test packages 2021-02-05 21:56:47 -08:00
Girish Ramakrishnan
f97dde4b75 python is 3.8 2021-02-05 21:54:24 -08:00
Girish Ramakrishnan
d3b63b30a0 Update base image 2021-02-05 21:51:43 -08:00
Girish Ramakrishnan
80bdba8f29 Version 1.17.0 2021-01-27 13:07:50 -08:00
Girish Ramakrishnan
7ff92d42cf Update synapse to 1.26.0 2021-01-27 11:48:24 -08:00
Girish Ramakrishnan
5e2d8155bd Version 1.16.0 2021-01-13 09:30:04 -08:00
Girish Ramakrishnan
fe4fff7057 Update synapse to 1.25.0 2021-01-13 09:12:56 -08:00
Girish Ramakrishnan
ae6d081dfa Version 1.15.0-1 2021-01-11 21:37:53 -08:00
Girish Ramakrishnan
1b6f7f9c8a Add federated tag 2021-01-11 21:34:31 -08:00
Girish Ramakrishnan
c6dc2d84ff Version 1.24.0 2020-12-09 22:19:44 -08:00
Girish Ramakrishnan
0c44e699b6 Update synapse to 1.24.0 2020-12-09 22:11:44 -08:00
Girish Ramakrishnan
e9fc19d2c2 Version 1.14.1 2020-12-09 22:10:48 -08:00
Girish Ramakrishnan
f7283f78c3 Update synapse to 1.23.1 2020-12-09 17:08:24 -08:00
Girish Ramakrishnan
c4a4489a2d Version 1.14.0 2020-11-19 00:51:29 -08:00
Girish Ramakrishnan
b504a462f6 Update synapse to 1.23.0 2020-11-19 00:42:17 -08:00
12 changed files with 3530 additions and 2128 deletions

259
CHANGELOG
View File

@@ -1,259 +0,0 @@
[0.1.0]
* Initial version
[0.1.1]
* Removed the Riot part of the installation due to security
* Changed from Sqlite to Postgres
* Added LDAP support
* Fixed upload limit in nginx_matrix.conf
* Added bogus index.html so cloudron recognizes the matrix server as online
* Added coturn as TURN server
[0.1.2]
* Updated logo (transparent)
* Enabled email settings
[0.1.3]
* Changed log location of nginx due to backup crashes
[0.1.4]
* Changed log location of synapse due to backup crashes
* Updated some configs
[0.1.5]
* Update to synapse v0.31.2
[0.1.6]
* Update to synapse v0.33.8
[0.1.7]
* Update to synapse v0.33.9
[0.1.8]
* Update to synapse v0.99.0
* Fixed missing LDAP stuff
[0.1.9]
* Update to synapse v0.99.3
[0.2.0]
* Update to synapse v0.99.4
[0.2.1]
* Update to synapse v0.99.5.1
[0.2.2]
* Update to synapse v0.99.5.2
[0.2.3]
* Update to synapse v1.0.0
* Fixed url preview
* Fixed voip
[0.2.4]
* Fixed federation
[0.2.5]
* Update to synapse v1.1.0
[0.2.6]
* Update to synapse v1.2.1
[0.2.7]
* Update to synapse v1.3.0
[0.2.8]
* Update to synapse v1.3.1
[0.2.9]
* Update to synapse v1.4.0 (lots of changes)
[0.3.0]
* Update to synapse v1.4.1
[0.3.1]
* Update to synapse v1.5.1
[0.3.3]
* Update to synapse v1.6.0
[0.3.4]
* Update to synapse v1.6.1
[0.3.5]
* Update to synapse v1.8.0
[0.3.6]
* Update to synapse v1.9.1
[0.3.7]
* Update to synapse v1.10.0
[0.3.8]
* Update to synapse v1.11.0
[0.4.0]
* Update to synapse v1.12.0
[0.4.1]
* Update to synapse v1.12.2
[0.5.0]
* New reworked app
[0.6.0]
* Fix title
[0.7.0]
* Set turn_uris to an array and not a string
[0.7.1]
* Users will now automatically join the #discuss channel (only in new installations)
[1.0.0]
* Use latest base image
* Update to synapse v1.12.4
[1.1.0]
* Update Synapse to 1.13.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.13.0)
* Set Referrer-Policy header to no-referrer on media downloads. (#7009)
* Admin API POST /_synapse/admin/v1/join/<roomIdOrAlias> to join users to a room like auto_join_rooms for creation of users. (#7051)
* Add options to prevent users from changing their profile or associated 3PIDs. (#7096)
* Allow server admins to define and enforce a password policy (MSC2000). (#7118)
* Improve the support for SSO authentication on the login fallback page. (#7152, #7235)
* Always whitelist the login fallback in the SSO configuration if public_baseurl is set. (#7153)
* Admin users are no longer required to be in a room to create an alias for it. (#7191)
* Require admin privileges to enable room encryption by default. This does not affect existing rooms. (#7230)
[1.2.0]
* Update Synapse to 1.14.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.14.0)
[1.3.0]
* Add optional sso support
[1.4.0]
* Update Synapse to 1.15.1
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.15.0)
* Advertise support for Client-Server API r0.6.0 and remove related unstable feature flags. (#6585)
* Add an option to disable autojoining rooms for guest accounts. (#6637)
* Add admin APIs to allow server admins to manage users' devices. Contributed by @dklimpel. (#7481)
* Add support for generating thumbnails for WebP images. Previously, users would see an empty box instead of preview image. Contributed by @WGH-. (#7586)
* Support the standardized m.login.sso user-interactive authentication flow. (#7630)
[1.5.0]
* Update Synapse to 1.15.2
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.15.2)
* A malicious homeserver could force Synapse to reset the state in a room to a small subset of the correct state. This affects all Synapse deployments which federate with untrusted servers. (96e9afe6)
* HTML pages served via Synapse were vulnerable to clickjacking attacks. This predominantly affects homeservers with single-sign-on enabled, but all server administrators are encouraged to upgrade. (ea26e9a9)
[1.6.0]
* Update Synapse to 1.16.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.16.0)
* Add an option to enable encryption by default for new rooms. (#7639)
* Add support for running multiple media repository workers. See docs/workers.md for instructions. (#7706)
* Media can now be marked as safe from quarantined. (#7718)
* Expand the configuration options for auto-join rooms. (#7763)
[1.6.1]
* Update Synapse to 1.16.1
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.16.1)
* Drop table local_rejections_stream which was incorrectly added in Synapse 1.16.0. (#7816, b1beb3ff5)
[1.7.0]
* Update Synapse to 1.17.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.17.0)
* Fix inconsistent handling of upper and lower case in email addresses when used as identifiers for login, etc. Contributed by @dklimpel. (#7021)
* Fix "Tried to close a non-active scope!" error messages when opentracing is enabled. (#7732)
* Fix incorrect error message when database CTYPE was set incorrectly. (#7760)
* Fix to not ignore set_tweak actions in Push Rules that have no value, as permitted by the specification. (#7766)
* Fix synctl to handle empty config files correctly. Contributed by @kotovalexarian. (#7779)
* Fixes a long standing bug in worker mode where worker information was saved in the devices table instead of the original IP address and user agent. (#7797)
* Fix 'stuck invites' which happen when we are unable to reject a room invite received over federation. (#7804, #7809, #7810)
[1.8.0]
* Update Synapse to 1.18.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.18.0)
* Include room states on invite events that are sent to application services. Contributed by @Sorunome. (#6455)
* Add delete room admin endpoint (POST /_synapse/admin/v1/rooms/<room_id>/delete). Contributed by @dklimpel. (#7613, #7953)
* Add experimental support for running multiple federation sender processes. (#7798)
* Add the option to validate the iss and aud claims for JWT logins. (#7827)
* Add support for handling registration requests across multiple client reader workers. (#7830)
* Add an admin API to list the users in a room. Contributed by Awesome Technologies Innovationslabor GmbH. (#7842)
* Allow email subjects to be customised through Synapse's configuration. (#7846)
* Add the ability to re-activate an account from the admin API. (#7847, #7908)
* Support oEmbed for media previews. (#7920)
[1.9.0]
* Update Synapse to 1.19.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.19.0)
* Add option to allow server admins to join rooms which fail complexity checks. Contributed by @lugino-emeritus. (#7902)
* Add an option to purge room or not with delete room admin endpoint (POST /_synapse/admin/v1/rooms/<room_id>/delete). Contributed by @dklimpel. (#7964)
* Add rate limiting to users joining rooms. (#8008)
* Add a /health endpoint to every configured HTTP listener that can be used as a health check endpoint by load balancers. (#8048)
* Allow login to be blocked based on the values of SAML attributes. (#8052)
* Allow guest access to the GET /_matrix/client/r0/rooms/{room_id}/members endpoint, according to MSC2689. Contributed by Awesome Technologies Innovationslabor GmbH. (#7314)
[1.9.1]
* Update Synapse to 1.19.1
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.19.1)
* Fix a bug introduced in v1.19.0 where appservices with ratelimiting disabled would still be ratelimited when joining rooms. (#8139)
* Fix a bug introduced in v1.19.0 that would cause e.g. profile updates to fail due to incorrect application of rate limits on join requests. (#8153)
[1.10.0]
* Update Synapse to 1.19.3
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.19.3)
* Partially mitigate bug where newly joined servers couldn't get past events in a room when there is a malformed event. (#8350)
* Make index.html customizable
[1.11.0]
* Update Synapse to 1.20.1
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.20.0)
* Add an endpoint to query your shared rooms with another user as an implementation of MSC2666. (#7785)
* Iteratively encode JSON to avoid blocking the reactor. (#8013, #8116)
* Add support for shadow-banning users (ignoring any message send requests). (#8034, #8092, #8095, #8142, #8152, #8157, #8158, #8176)
* Use the default template file when its equivalent is not found in a custom template directory. (#8037, #8107, #8252)
* Add unread messages count to sync responses, as specified in MSC2654. (#8059, #8254, #8270, #8274)
* Optimise /federation/v1/user/devices/ API by only returning devices with encryption keys. (#8198)
[1.12.0]
* Update Synapse to 1.21.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.21.0)
* Require the user to confirm that their password should be reset after clicking the email confirmation link. (#8004)
* Add an admin API GET /_synapse/admin/v1/event_reports to read entries of table event_reports. Contributed by @dklimpel. (#8217)
* Consolidate the SSO error template across all configuration. (#8248, #8405)
* Add a configuration option to specify a whitelist of domains that a user can be redirected to after validating their email or phone number. (#8275, #8417)
* Add experimental support for sharding event persister. (#8294, #8387, #8396, #8419)
* Add the room topic and avatar to the room details admin API. (#8305)
* Add an admin API for querying rooms where a user is a member. Contributed by @dklimpel. (#8306)
[1.12.1]
* Updat Synapse to 1.21.1
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.21.1)
[1.12.2]
* Update Synapse to 1.21.2
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.21.2)
* Security: HTML pages served via Synapse were vulnerable to cross-site scripting (XSS) attacks. All server administrators are encouraged to upgrade
* Fix rare bug where sending an event would fail due to a racey assertion. (#8530)
[1.13.0]
* Update Synapse to 1.22.0
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.22.0)
* Add ability for ThirdPartyEventRules modules to query and manipulate whether a room is in the public rooms directory. (#8292, #8467)
* Add support for olm fallback keys (MSC2732). (#8312, #8501)
* Add support for running background tasks in a separate worker process. (#8369, #8458, #8489, #8513, #8544, #8599)
* Add support for device dehydration (MSC2697). (#8380)
* Add support for MSC2409, which allows sending typing, read receipts, and presence events to appservices. (#8437, #8590)
* Change default room version to "6", per MSC2788. (#8461)
* Add the ability to send non-membership events into a room via the ModuleApi. (#8479)
* Increase default upload size limit from 10M to 50M. Contributed by @Akkowicz. (#8502)
* Add support for modifying event content in ThirdPartyRules modules. (#8535, #8564)
[1.13.1]
* Update Synapse to 1.22.1
* [Full changelog](https://github.com/matrix-org/synapse/releases/tag/v1.22.1)
* Fix a bug where an appservice may not be forwarded events for a room it was recently invited to. Broke in v1.22.0. (#8676)
* Fix Object of type frozendict is not JSON serializable exceptions when using third-party event rules. Broke in v1.22.0. (#8678)

1428
CHANGELOG.md Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -3,35 +3,59 @@
"title": "Matrix Synapse",
"author": "Matrix synapse authors",
"description": "file://DESCRIPTION.md",
"changelog": "file://CHANGELOG",
"changelog": "file://CHANGELOG.md",
"tagline": "Secure & decentralized communication",
"version": "1.13.1",
"version": "1.116.0",
"upstreamVersion": "1.135.0",
"healthCheckPath": "/",
"httpPort": 8008,
"memoryLimit": 536870912,
"addons": {
"localstorage": {},
"ldap": {},
"oidc": {
"loginRedirectUri": "/_synapse/client/oidc/callback"
},
"postgresql": {},
"sendmail": {},
"turn": {}
"sendmail": {
"supportsDisplayName": true
},
"turn": {
"optional": true
}
},
"manifestVersion": 2,
"website": "https://matrix.org",
"contactEmail": "support@cloudron.io",
"icon": "file://logo.png",
"tags": [
"im", "collaboration", "voip", "videochat", "chat", "slack", "zulip"
"im",
"collaboration",
"voip",
"videochat",
"chat",
"slack",
"zulip",
"federated",
"element",
"riot"
],
"mediaLinks": [
"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/3.png"
],
"changelog": "file://CHANGELOG",
"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",
"minBoxVersion": "5.3.0",
"minBoxVersion": "8.2.0",
"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
}

View File

@@ -1,12 +1,10 @@
This app packages Synapse <upstream>1.22.1</upstream>.
**This package only provides the Matrix backend. A variety of clients are available
[here](https://matrix.org/clients/). Riot is a popular web frontend for Matrix and
is available as a separate app.**
Matrix is an ambitious new ecosystem for open federated Instant Messaging and VoIP.
## About
## Matrix
Matrix is an ambitious new ecosystem for open federated Instant Messaging and VoIP.
Matrix specifies a set of pragmatic RESTful HTTP JSON APIs as an open standard, which handle:
@@ -18,7 +16,7 @@ Matrix specifies a set of pragmatic RESTful HTTP JSON APIs as an open standard,
* Using 3rd Party IDs (3PIDs) such as email addresses, phone numbers, Facebook accounts to authenticate, identify and discover users on Matrix.
* Placing 1:1 VoIP and Video calls
## Synapse
## What is Synapse?
Synapse is a reference "homeserver" implementation of Matrix from the core development
team at matrix.org, written in Python/Twisted.

View File

@@ -1,28 +1,27 @@
FROM cloudron/base:2.0.0@sha256:f9fea80513aa7c92fe2e7bf3978b54c8ac5222f47a9a32a7f8833edf0eb5a4f4
FROM cloudron/base:5.0.0@sha256:04fd70dbd8ad6149c19de39e35718e024417c3e01dc9c6637eaf4a41ec4e596c
RUN mkdir -p /app/pkg
WORKDIR /app/code
ARG VERSION=v1.22.1
# https://github.com/element-hq/synapse/blob/master/docs/setup/installation.md?plain=1#L202
RUN python3 -m venv /app/code/env
# https://pythonspeed.com/articles/activate-virtualenv-dockerfile/
RUN virtualenv -p python3 /app/code/env
ENV VIRTUAL_ENV=/app/code/env
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
# renovate: datasource=github-releases depName=element-hq/synapse versioning=semver extractVersion=^v(?<version>.+)$
ARG SYNAPSE_VERSION=1.135.0
# renovate: datasource=github-releases depName=matrix-org/synapse-s3-storage-provider versioning=semver extractVersion=^v(?<version>.+)$
ARG S3PROVIDER_VERSION=1.5.0
# Synapse (https://github.com/matrix-org/synapse/blob/master/INSTALL.md)
# lxml - required for previews
RUN pip install --upgrade pip && \
pip install --upgrade setuptools && \
pip install matrix-synapse==${VERSION} psycopg2-binary python-ldap matrix-synapse-ldap3 lxml publicsuffix2
RUN source /app/code/env/bin/activate && \
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]
RUN curl -sL https://github.com/mikefarah/yq/releases/download/3.2.1/yq_linux_amd64 -o /usr/bin/yq && \
chmod +x /usr/bin/yq
# Updated suffix list
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.6/site-packages/synapse/static/index.html
RUN chown -R cloudron.cloudron /app/code
RUN ln -sf /app/data/index.html /app/code/env/lib/python3.12/site-packages/synapse/static/index.html
ADD index.html homeserver.yaml.template start.sh /app/pkg/

View File

@@ -1,8 +1,2 @@
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`.
For federation to work, the second level domain has to be configured to serve up the
`.well-known/domain.com/matrix` URI. See the
[federation docs](https://cloudron.io/documentation/apps/synapse/) on
how to do this.
app is installed e.g. `@$CLOUDRON-USERNAME:$CLOUDRON-APP-DOMAIN`.

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
server_name: "example.com"
@@ -13,7 +13,6 @@ listeners:
type: http
x_forwarded: true
bind_addresses: ['0.0.0.0']
resources:
- names: [client,federation]
compress: false
@@ -21,7 +20,6 @@ listeners:
database:
name: "psycopg2"
args:
# Path to the database
user: ${POSTGRESQL_USERNAME}
password: ${POSTGRESQL_PASSWORD}
database: ${POSTGRESQL_DATABASE}
@@ -29,6 +27,17 @@ database:
cp_min: 5
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:
smtp_host: mail.server
smtp_port: 587
@@ -40,73 +49,37 @@ email:
enable_notifs: 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_uris: []
turn_shared_secret: "sharedsecret"
turn_allow_guests: true
federation_ip_range_blacklist:
- '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'
# sso (https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#single-sign-on-integration)
enable_registration: false
registration_shared_secret: "somesecret"
allow_guest_access: false
# without this, registration requires one of email/captcha/token verification
enable_registration_without_verification: true
enable_group_creation: true
report_stats: False
signing_key_path: "/app/data/configs/signing.key"
url_preview_enabled: true
url_preview_ip_range_blacklist:
- '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'
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
oidc_providers:
- idp_id: cloudron
idp_name: "CLOUDRON_OIDC_PROVIDER_NAME"
issuer: "CLOUDRON_OIDC_ISSUER"
client_id: "CLOUDRON_OIDC_CLIENT_ID"
client_secret: "CLOUDRON_OIDC_CLIENT_SECRET"
scopes: ["openid", "profile", "email"]
authorization_endpoint: "CLOUDRON_OIDC_AUTH_ENDPOINT"
token_endpoint: "CLOUDRON_OIDC_TOKEN_ENDPOINT"
userinfo_endpoint: "CLOUDRON_OIDC_AUTH_ENDPOINT"
allow_existing_users: true
enable_registration: true
backchannel_logout_enabled: false
user_mapping_provider:
config:
localpart_template: "{{ user.sub }}"
display_name_template: "{{ user.name }}"
email_template: "{{ user.email }}"
password_config:
enabled: true
localdb_enabled: false
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
source /app/code/env/bin/activate
if [[ ! -f /app/data/configs/homeserver.yaml ]]; then
echo "==> Detected first run"
@@ -16,67 +18,89 @@ if [[ ! -f /app/data/configs/homeserver.yaml ]]; then
--config-directory /app/data/configs \
--data-directory /app/data/data \
--generate-config \
--report-stats=no
--report-stats=no
# fix logging configuration
cp /app/pkg/homeserver.yaml.template /app/data/configs/homeserver.yaml
mv /app/data/configs/${server_name}.log.config /app/data/configs/log.config
yq w -i /app/data/configs/homeserver.yaml log_config /app/data/configs/log.config
yq w -i /app/data/configs/log.config handlers.file.filename /run/synapse/homeserver.log
yq eval -i ".log_config=\"/app/data/configs/log.config\"" /app/data/configs/homeserver.yaml
# delete default file and buffer handlers
yq eval -i "del(.handlers.file)" /app/data/configs/log.config
yq eval -i "del(.handlers.buffer)" /app/data/configs/log.config
mv /app/data/configs/${server_name}.signing.key /app/data/configs/signing.key
yq w -i /app/data/configs/homeserver.yaml server_name "${server_name}"
yq w -i /app/data/configs/homeserver.yaml registration_shared_secret "$(pwgen -1s 64)"
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 ".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 w -i /app/data/configs/homeserver.yaml auto_join_rooms "[]"
yq w -i /app/data/configs/homeserver.yaml auto_join_rooms\[0\] "#discuss:${server_name}"
if [[ -z "${CLOUDRON_LDAP_SERVER:-}" ]]; then
yq w -i /app/data/configs/homeserver.yaml enable_registration true
yq w -i /app/data/configs/homeserver.yaml password_config.pepper "$(pwgen -1s 12)"
if [[ -z "${CLOUDRON_OIDC_ISSUER:-}" ]]; then
yq eval -i ".enable_registration=true" /app/data/configs/homeserver.yaml
yq eval -i ".password_config.enabled=true" /app/data/configs/homeserver.yaml
yq eval -i ".password_config.localdb_enabled=true" /app/data/configs/homeserver.yaml
yq eval -i "del(.oidc_providers)" /app/data/configs/homeserver.yaml
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
echo "==> Ensure we log to console"
yq eval -i ".root.handlers=[\"console\"]" /app/data/configs/log.config
yq eval -i ".loggers.twisted.handlers=[\"console\"]" /app/data/configs/log.config
[[ ! -f /app/data/index.html ]] && cp /app/pkg/index.html /app/data/index.html
echo "==> Configuring synapse"
yq w -i /app/data/configs/homeserver.yaml public_baseurl "${CLOUDRON_APP_ORIGIN}"
yq eval -i ".public_baseurl=\"${CLOUDRON_APP_ORIGIN}\"" /app/data/configs/homeserver.yaml
# database
yq w -i /app/data/configs/homeserver.yaml database.args.user "${CLOUDRON_POSTGRESQL_USERNAME}"
yq w -i /app/data/configs/homeserver.yaml database.args.password "${CLOUDRON_POSTGRESQL_PASSWORD}"
yq w -i /app/data/configs/homeserver.yaml database.args.database "${CLOUDRON_POSTGRESQL_DATABASE}"
yq w -i /app/data/configs/homeserver.yaml database.args.host "${CLOUDRON_POSTGRESQL_HOST}"
yq eval -i ".database.args.user=\"${CLOUDRON_POSTGRESQL_USERNAME}\"" /app/data/configs/homeserver.yaml
yq eval -i ".database.args.password=\"${CLOUDRON_POSTGRESQL_PASSWORD}\"" /app/data/configs/homeserver.yaml
yq eval -i ".database.args.database=\"${CLOUDRON_POSTGRESQL_DATABASE}\"" /app/data/configs/homeserver.yaml
yq eval -i ".database.args.host=\"${CLOUDRON_POSTGRESQL_HOST}\"" /app/data/configs/homeserver.yaml
# email
yq w -i /app/data/configs/homeserver.yaml email.smtp_host "${CLOUDRON_MAIL_SMTP_SERVER}"
yq w -i /app/data/configs/homeserver.yaml email.smtp_port "${CLOUDRON_MAIL_SMTP_PORT}"
yq w -i /app/data/configs/homeserver.yaml email.smtp_user "${CLOUDRON_MAIL_SMTP_USERNAME}"
yq w -i /app/data/configs/homeserver.yaml email.smtp_pass "${CLOUDRON_MAIL_SMTP_PASSWORD}"
yq w -i /app/data/configs/homeserver.yaml email.notif_from "%(app)s <${CLOUDRON_MAIL_FROM}>"
yq eval -i ".email.smtp_host=\"${CLOUDRON_MAIL_SMTP_SERVER}\"" /app/data/configs/homeserver.yaml
yq eval -i ".email.smtp_port=${CLOUDRON_MAIL_SMTP_PORT}" /app/data/configs/homeserver.yaml
yq eval -i ".email.smtp_user=\"${CLOUDRON_MAIL_SMTP_USERNAME}\"" /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
# ldap
if [[ -n "${CLOUDRON_LDAP_SERVER:-}" ]]; then
yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.uri' "${CLOUDRON_LDAP_URL}"
yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.start_tls' false
yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.base' "${CLOUDRON_LDAP_USERS_BASE_DN}"
yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.bind_dn' "${CLOUDRON_LDAP_BIND_DN}"
yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.bind_password' "${CLOUDRON_LDAP_BIND_PASSWORD}"
yq w -i /app/data/configs/homeserver.yaml 'password_providers[0].config.filter' "(objectClass=user)"
# oidc
if [[ -n "${CLOUDRON_OIDC_ISSUER:-}" ]]; then
echo " ==> Configuring OIDC auth"
yq eval -i ".oidc_providers[0].idp_id=\"cloudron\"" /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 ".oidc_providers[0].issuer=\"${CLOUDRON_OIDC_ISSUER}\"" /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 ".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
yq w -i /app/data/configs/homeserver.yaml password_config.localdb_enabled true
yq eval -i ".password_config.localdb_enabled=true" /app/data/configs/homeserver.yaml
fi
# turn (https://github.com/matrix-org/synapse/blob/master/docs/turn-howto.md#synapse-setup)
yq w -i /app/data/configs/homeserver.yaml turn_uris "[]"
yq w -i /app/data/configs/homeserver.yaml turn_uris\[0\] "turn:${CLOUDRON_TURN_SERVER}:${CLOUDRON_TURN_TLS_PORT}?transport=udp"
yq w -i /app/data/configs/homeserver.yaml turn_uris\[1\] "turn:${CLOUDRON_TURN_SERVER}:${CLOUDRON_TURN_TLS_PORT}?transport=tcp"
yq w -i /app/data/configs/homeserver.yaml turn_shared_secret "${CLOUDRON_TURN_SECRET}"
if [[ -n "${CLOUDRON_TURN_SERVER:-}" ]]; then
yq eval -i ".turn_uris=[]" /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_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
echo "==> Fixing permissions"
chown -R cloudron.cloudron /app/data /run/synapse
chown -R cloudron:cloudron /app/data /run/synapse
echo "==> Starting synapse"
gosu cloudron:cloudron python3 -m synapse.app.homeserver --config-path /app/data/configs/homeserver.yaml
exec gosu cloudron:cloudron python3 -m synapse.app.homeserver --config-path /app/data/configs/homeserver.yaml -n

3120
test/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -9,14 +9,9 @@
"author": "",
"license": "ISC",
"dependencies": {
"chromedriver": "^86.0.0",
"ejs": "^3.1.5",
"chromedriver": "^138.0.5",
"expect.js": "^0.3.1",
"mkdirp": "^1.0.4",
"mocha": "^8.1.3",
"rimraf": "^3.0.2",
"selenium-server-standalone-jar": "^3.141.59",
"selenium-webdriver": "^3.6.0",
"superagent": "^6.1.0"
"mocha": "^11.7.1",
"selenium-webdriver": "^4.34.0"
}
}

View File

@@ -1,256 +1,410 @@
#!/usr/bin/env node
/* jslint node:true */
/* global it:false */
/* global xit:false */
/* global describe:false */
/* global before:false */
/* global after:false */
/* jshint esversion: 8 */
/* global it, xit, describe, before, after, afterEach */
'use strict';
require('chromedriver');
var execSync = require('child_process').execSync,
const execSync = require('child_process').execSync,
expect = require('expect.js'),
fs = require('fs'),
path = require('path'),
superagent = require('superagent'),
webdriver = require('selenium-webdriver');
{ Builder, By, Key, until } = require('selenium-webdriver'),
{ Options } = require('selenium-webdriver/chrome');
var by = require('selenium-webdriver').By,
until = require('selenium-webdriver').until,
Key = require('selenium-webdriver').Key;
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 () {
this.timeout(0);
var server, browser = new webdriver.Builder().forBrowser('chrome').build();
var LOCATION = 'test';
var app;
var username = process.env.USERNAME;
var password = process.env.PASSWORD;
var TIMEOUT = process.env.TIMEOUT | 30000;
var token, roomId;
const ELEMENT_LOCATION = 'element-test';
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 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 ';
before(function (done) {
if (!process.env.USERNAME) return done(new Error('USERNAME env var not set'));
if (!process.env.PASSWORD) return done(new Error('PASSWORD env var not set'));
let browser, app, elementApp;
var seleniumJar= require('selenium-server-standalone-jar');
var SeleniumServer = require('selenium-webdriver/remote').SeleniumServer;
server = new SeleniumServer(seleniumJar.path, { port: 4444 });
server.start();
before(function () {
const chromeOptions = new Options().windowSize({ width: 1280, height: 1024 });
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');
done();
if (process.env.CI) execSync(`cloudron uninstall --app ${ELEMENT_LOCATION} || true`, EXEC_ARGS);
});
after(function (done) {
after(function () {
browser.quit();
server.stop();
done();
});
function checkLandingPage(done) {
browser.get('https://' + app.fqdn).then(function () {
return browser.wait(until.elementLocated(by.xpath('//h1[contains(text(),"Synapse is running")]')), TIMEOUT);
}).then(function () {
done();
});
}
afterEach(async function () {
if (!process.env.CI || !app) return;
// https://matrix.org/docs/spec/client_server/latest#user-interactive-api-in-the-rest-api
function registerUser(done) {
superagent.post('https://' + app.fqdn + '/_matrix/client/r0/register?kind=user').send({
username: username,
password: password,
inhibit_login: false
}).end(function (error, result) {
// 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));
const currentUrl = await browser.getCurrentUrl();
if (!currentUrl.includes(app.domain)) return;
expect(this.currentTest.title).to.be.a('string');
superagent.post('https://' + app.fqdn + '/_matrix/client/r0/register?kind=user').send({
auth: {
type: 'm.login.dummy',
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.user_id);
done();
});
});
}
// https://matrix.org/docs/spec/client_server/latest
function checkLogin(done) {
superagent.post('https://' + app.fqdn + '/_matrix/client/r0/login').send({
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;
if (!token) return done(new Error('No token'));
done();
});
}
function checkAutoJoinRoom(done) {
superagent.get('https://' + app.fqdn + '/_matrix/client/r0/joined_rooms?access_token=' + token).end(function (error, result) {
if (error) return done(error);
if (result.statusCode !== 200) return done(new Error('Room listing failed with status ' + result.statusCode));
if (result.body.joined_rooms.length !== 1) return done(new Error('User must have auto-joined discuss channel:' + result.statusCode));
done();
});
}
function createRoom(done) {
superagent.post('https://' + app.fqdn + '/_matrix/client/r0/createRoom?access_token=' + token).send({
room_alias_name: 'general'
}).end(function (error, result) {
if (error) return done(error);
if (result.statusCode !== 200) return done(new Error('Room creation failed with status ' + result.statusCode));
roomId = result.body.room_id;
if (!roomId) return done(new Error('No room id'));
done();
});
}
function checkRoom(done) {
superagent.get('https://' + app.fqdn + '/_matrix/client/r0/joined_rooms?access_token=' + token).end(function (error, result) {
if (error) return done(error);
if (result.statusCode !== 200) return done(new Error('Room listing failed with status ' + result.statusCode));
if (!result.body.joined_rooms.includes(roomId)) return done(new Error('No room in list: ' + JSON.stringify(result.body)));
done();
});
}
xit('build app', function () {
execSync('cloudron build', { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
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() {
const inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location.indexOf(LOCATION) === 0; })[0];
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() {
await browser.get(`https://${app.fqdn}`);
await browser.wait(until.elementLocated(By.xpath('//h1[contains(text(),"Synapse is running")]')), TEST_TIMEOUT);
}
async function registerUser() {
await browser.get(`https://${elementApp.fqdn}/#/register`);
await waitForElement(By.xpath('//input[@label="Username"]'));
await browser.findElement(By.xpath('//input[@label="Username"]')).sendKeys(USERNAME);
await browser.findElement(By.xpath('//input[@label="Password"]')).sendKeys(PASSWORD);
await browser.findElement(By.xpath('//input[@label="Confirm password"]')).sendKeys(PASSWORD);
await browser.findElement(By.xpath('//input[@value="Register"]')).click();
await waitForElement(By.xpath('//h1[text()="You\'re in"] | //h1[contains(., "Welcome")]'));
if (await browser.findElements(By.xpath('//div[@role="button" and text()="Skip"]')).then(found => !!found.length)) {
await browser.findElement(By.xpath('//div[@role="button" and text()="Skip"]')).click();
}
await waitForElement(By.xpath(`//h1[contains(., "Welcome")]`));
}
async function loginOIDC(username, password, alreadyAuthenticated, proceedWithReset) {
await browser.get(`https://${elementApp.fqdn}/#/login`);
await browser.sleep(2000);
await waitForElement(By.css('.mx_Dropdown_arrow'));
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);
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")]`));
}
async function login() {
await browser.get(`https://${elementApp.fqdn}/#/login`);
await browser.wait(until.elementLocated(By.xpath('//input[@value="Sign in"]')), TEST_TIMEOUT);
await browser.findElement(By.xpath('//input[@name="username"]')).sendKeys(USERNAME);
await browser.findElement(By.xpath('//input[@name="password"]')).sendKeys(PASSWORD);
await browser.findElement(By.xpath('//input[@value="Sign in"]')).click();
await browser.sleep(5000);
await skipVerification();
await browser.wait(until.elementLocated(By.xpath('//span[text()="Rooms"]')), TEST_TIMEOUT);
}
async function skipVerification() {
await browser.wait(until.elementLocated(By.xpath('//div[@aria-label="Skip verification for now"]')), TEST_TIMEOUT);
await browser.sleep(5000);
await browser.findElement(By.xpath('//div[@aria-label="Skip verification for now"]')).click();
await browser.wait(until.elementLocated(By.xpath('//div[contains(text(), "verify later")]')), TEST_TIMEOUT);
await browser.sleep(5000);
await browser.findElement(By.xpath('//div[contains(text(), "verify later")]')).click();
await browser.sleep(5000);
}
async function logout() {
await browser.get(`https://${elementApp.fqdn}/#/home`);
await browser.sleep(5000);
await waitForElement(By.xpath('//div[@role="button" and @aria-label="User menu"]'));
await browser.findElement(By.xpath('//div[@role="button" and @aria-label="User menu"]')).click();
await browser.sleep(2000);
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); });
// No SSO
it('install app (no sso)', function () {
execSync('cloudron install --no-sso --location ' + LOCATION, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
it('can get app information', function () {
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION; })[0];
expect(app).to.be.an('object');
});
it('install app (no sso)', function () { execSync('cloudron install --no-sso --location ' + LOCATION, EXEC_ARGS); });
it('can get app information', getAppInfo);
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('uninstall app', function () {
execSync('cloudron uninstall --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
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); });
// SSO
it('install app', function () {
execSync('cloudron install --location ' + LOCATION, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
it('install app (sso)', function () { execSync('cloudron install --location ' + LOCATION, EXEC_ARGS); });
it('can get app info', getAppInfo);
it('can get app information', function () {
var inspect = JSON.parse(execSync('cloudron inspect'));
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);
app = inspect.apps.filter(function (a) { return a.location === LOCATION; })[0];
expect(app).to.be.an('object');
});
it('check landing page', checkLandingPage);
it('can login', checkLogin);
it('check autojoin', checkAutoJoinRoom);
it('can login via OIDC', loginOIDC.bind(null, USERNAME, PASSWORD, false, false));
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('can restart app', function (done) {
execSync('cloudron restart');
done();
it('restore app', async function () {
const backups = JSON.parse(execSync(`cloudron backup list --raw --app ${app.id}`));
await browser.get('about:blank');
execSync(`cloudron uninstall --app ${app.id}`, EXEC_ARGS);
execSync(`cloudron install --location ${LOCATION}`, EXEC_ARGS);
getAppInfo();
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('can send message', sendMessage);
it('can logout', logout);
it('can get app info', getAppInfo);
it('backup app', function () {
execSync('cloudron backup create --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
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, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
execSync('cloudron install --location ' + LOCATION, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION; })[0];
execSync(`cloudron restore --backup ${backups[0].id} --app ${app.id}`, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
it('check landing page', checkLandingPage);
it('check room', checkRoom);
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();
execSync('cloudron configure --location ' + LOCATION + '2', { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION + '2'; })[0];
expect(app).to.be.an('object');
await browser.get('about:blank');
execSync(`cloudron configure --location ${LOCATION}2`, EXEC_ARGS);
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('check room', checkRoom);
it('uninstall app', function () {
execSync('cloudron uninstall --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
it('uninstall element-web app', function () {
execSync(`cloudron uninstall --app ${ELEMENT_LOCATION}`, EXEC_ARGS);
});
// test update
it('can install app', function () {
execSync('cloudron install --appstore-id org.matrix.synapse --location ' + LOCATION, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION; })[0];
expect(app).to.be.an('object');
});
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('check landing page', checkLandingPage);
it('can login', checkLogin);
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('can login via OIDC', loginOIDC.bind(null, USERNAME, PASSWORD, false, false));
it('is logged in', isLoggedIn);
it('create room', createRoom);
it('check room', checkRoom);
it('can send message', sendMessage);
it('can logout', logout);
it('clear cache', clearCache);
it('can update', function () {
execSync('cloudron update --app ' + LOCATION, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
it('can update', async function () {
await browser.get('about:blank');
execSync(`cloudron update --app ${app.id}`, EXEC_ARGS);
await browser.sleep(15000);
});
it('check landing page', checkLandingPage);
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('uninstall app', function () {
execSync('cloudron uninstall --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
it('can send message', sendMessage);
it('uninstall app', async function () {
await browser.get('about:blank');
execSync(`cloudron uninstall --app ${app.id}`, EXEC_ARGS);
});
it('uninstall element-web app', function () {
execSync(`cloudron uninstall --app ${ELEMENT_LOCATION}`, EXEC_ARGS);
});
});